diff --git a/soitool/setup_settings.py b/soitool/setup_settings.py index 2bfe2248a23bdefc365ec2dc17d53a5a4cad7e84..4b2dd935b1eb8371d7826c70e30a3cc59a394d16 100644 --- a/soitool/setup_settings.py +++ b/soitool/setup_settings.py @@ -16,7 +16,6 @@ from PySide2.QtWidgets import ( from soitool.soi import ( STRING_TO_ALGORITHM_RECTPACK_BIN, STRING_TO_ALGORITHM_RECTPACK_PACK, - STRING_TO_ALGORITHM_INITIAL_SORT, ) from soitool.accept_reject_dialog import AcceptRejectDialog @@ -38,7 +37,7 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 The SOI-instance to change """ - def __init__(self, soi): # pylint: disable = R0915 + def __init__(self, soi): super().__init__() self.soi = soi @@ -66,7 +65,6 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 self.label_module_placement = QLabel("Modulplassering") # Headerdata - self.layout_setup.addWidget(self.label_header) self.label_title = QLabel("Tittel:") self.label_description = QLabel("Beskrivelse:") self.label_version = QLabel("Versjon:") @@ -83,12 +81,30 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 self.edit_valid_to = QLineEdit() self.edit_classification = QComboBox() - self.edit_classification.addItem("UGRADERT") - self.edit_classification.addItem("BEGRENSET") - self.edit_classification.addItem("KONFIDENSIELT") - self.edit_classification.addItem("HEMMELIG") - self.edit_classification.addItem("STRENGT HEMMELIG") + # Radiobuttons + self.rbutton_landscape = QRadioButton("Landskap") + self.rbutton_portrait = QRadioButton("Portrett") + self.rbutton_auto = QRadioButton("Automatisk") + self.rbutton_manual = QRadioButton("Manuelt") + self.rbutton_sort_none = QRadioButton("Ingenting") + self.rbutton_sort_area = QRadioButton("Areal") + self.rbutton_sort_width = QRadioButton("Bredde") + self.rbutton_sort_height = QRadioButton("Høyde") + + # Customize ok button from superclass to something more fitting + self.button_ok.setText("Lagre") + self.add_widgets_to_layout() + self.layout_content.addLayout(self.layout_setup) + + def add_widgets_to_layout(self): + """Add each widget to layouts. + + Takes the widgets created in init and adds them + the the different layouts. + """ + # Headerdata + self.layout_setup.addWidget(self.label_header) self.layout_header.addRow(self.label_title, self.edit_title) self.layout_header.addRow( self.label_description, self.edit_description @@ -97,6 +113,11 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 self.layout_header.addRow(self.label_date, self.edit_date) self.layout_header.addRow(self.label_valid_from, self.edit_valid_from) self.layout_header.addRow(self.label_valid_to, self.edit_valid_to) + self.edit_classification.addItem("UGRADERT") + self.edit_classification.addItem("BEGRENSET") + self.edit_classification.addItem("KONFIDENSIELT") + self.edit_classification.addItem("HEMMELIG") + self.edit_classification.addItem("STRENGT HEMMELIG") self.layout_header.addRow( self.label_classification, self.edit_classification ) @@ -104,8 +125,6 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 # Paperorientation self.layout_setup.addWidget(self.label_paper_orientation) - self.rbutton_landscape = QRadioButton("Landskap") - self.rbutton_portrait = QRadioButton("Portrett") self.layout_orientation_button.addWidget(self.rbutton_landscape) self.layout_orientation_button.addWidget(self.rbutton_portrait) self.group_orientation.setLayout(self.layout_orientation_button) @@ -113,8 +132,6 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 # Moduleplacement self.layout_setup.addWidget(self.label_module_placement) - self.rbutton_auto = QRadioButton("Automatisk") - self.rbutton_manual = QRadioButton("Manuelt") self.layout_placement_button.addWidget(self.rbutton_auto) self.layout_placement_button.addWidget(self.rbutton_manual) self.group_placement.setLayout(self.layout_placement_button) @@ -128,9 +145,6 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 self.rbuttons_option_pack = [ QRadioButton(name) for name in STRING_TO_ALGORITHM_RECTPACK_PACK ] - self.rbuttons_option_sort = [ - QRadioButton(name) for name in STRING_TO_ALGORITHM_INITIAL_SORT - ] self.layout_alg_button_bin.addWidget(QLabel("Bin")) for rbutton in self.rbuttons_option_bin: @@ -138,10 +152,12 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 self.layout_alg_button_pack.addWidget(QLabel("Pack")) for rbutton in self.rbuttons_option_pack: self.layout_alg_button_pack.addWidget(rbutton) - self.layout_alg_button_sort.addWidget(QLabel("Sort")) - for rbutton in self.rbuttons_option_sort: - self.layout_alg_button_sort.addWidget(rbutton) + self.layout_alg_button_sort.addWidget(QLabel("Sorter etter")) + self.layout_alg_button_sort.addWidget(self.rbutton_sort_none) + self.layout_alg_button_sort.addWidget(self.rbutton_sort_area) + self.layout_alg_button_sort.addWidget(self.rbutton_sort_width) + self.layout_alg_button_sort.addWidget(self.rbutton_sort_height) self.group_algorithm_bin.setLayout(self.layout_alg_button_bin) self.group_algorithm_pack.setLayout(self.layout_alg_button_pack) self.group_algorithm_sort.setLayout(self.layout_alg_button_sort) @@ -150,12 +166,8 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 self.layout_setup.addWidget(self.group_algorithm_pack) self.layout_setup.addWidget(self.group_algorithm_sort) - # Customize ok button from superclass to something more fitting - self.button_ok.setText("Lagre") - - self.layout_content.addLayout(self.layout_setup) - - def accept(self): + # Ignoring "Too many branches" + def accept(self): # pylint: disable = R0912 """Save and update the SOI with the given changes. Overriden to implement custom behavior on accept, executes superclass' @@ -196,9 +208,14 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 break for i in self.group_algorithm_sort.findChildren(QRadioButton): - if i.isChecked(): - property_changes["algorithm_sort"] = i.text() - break + if i.isChecked() and i.text() == "Ingenting": + property_changes["algorithm_sort"] = "none" + elif i.isChecked() and i.text() == "Areal": + property_changes["algorithm_sort"] = "area" + elif i.isChecked() and i.text() == "Bredde": + property_changes["algorithm_sort"] = "width" + elif i.isChecked() and i.text() == "Høyde": + property_changes["algorithm_sort"] = "height" # Pass changes as unpacked variable list self.soi.update_properties(**property_changes) @@ -215,7 +232,7 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 self.edit_valid_to.setText(self.soi.valid_to) self.edit_classification.setCurrentText(self.soi.classification) - # Check radiobuttons according to current SOI settings + # Check the radiobutton according to SOI settings if self.soi.orientation == "landscape": self.rbutton_landscape.setChecked(True) else: @@ -226,7 +243,10 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 else: self.rbutton_manual.setChecked(True) - # Loop through the groupbox to find children that are radiobuttons + self.groupbox_find_children() + + def groupbox_find_children(self): + """Loop through groupbox to check radiobuttons according to SOI.""" for i in self.group_algorithm_bin.findChildren(QRadioButton): if i.text() == self.soi.algorithm_bin: i.setChecked(True) @@ -238,6 +258,11 @@ class Setup(AcceptRejectDialog): # pylint: disable = R0902 break for i in self.group_algorithm_sort.findChildren(QRadioButton): - if i.text() == self.soi.algorithm_sort: + if i.text() == "Ingenting" and self.soi.algorithm_sort == "none": + i.setChecked(True) + elif i.text() == "Areal" and self.soi.algorithm_sort == "area": + i.setChecked(True) + elif i.text() == "Bredde" and self.soi.algorithm_sort == "width": + i.setChecked(True) + elif i.text() == "Høyde" and self.soi.algorithm_sort == "height": i.setChecked(True) - break