Skip to content
Snippets Groups Projects
Commit 39aa6c31 authored by Thomas Holene Løkkeborg's avatar Thomas Holene Løkkeborg
Browse files

#81 reorganiserer når rel. alt. endrer seg & oppsett henter algoritmer

Før var algoritmevalgene hardkodet i oppsett dialogen, nå hentes de direkte fra kilden
parent e448c819
No related branches found
No related tags found
1 merge request!48#81 SOI listeners for prop oppdateringer & InlineEditableSOIView endres når oppsett lagres
......@@ -16,6 +16,11 @@ from PySide2.QtWidgets import (
QComboBox,
QGroupBox,
)
from soitool.soi import (
STRING_TO_ALGORITHM_RECTPACK_BIN,
STRING_TO_ALGORITHM_RECTPACK_PACK,
STRING_TO_ALGORITHM_INITIAL_SORT,
)
class Setup(QDialog): # pylint: disable = R0902
......@@ -120,28 +125,25 @@ class Setup(QDialog): # pylint: disable = R0902
# placement algorithm
self.layout_setup.addWidget(self.label_algorithm)
self.rbutton_bin1 = QRadioButton("BFF")
self.rbutton_bin2 = QRadioButton("BBF")
self.rbutton_pack1 = QRadioButton("MaxRectsBI")
self.rbutton_pack2 = QRadioButton("SkylinBl")
self.rbutton_pack3 = QRadioButton("GuillotineBssfSas")
self.rbutton_sort1 = QRadioButton("none")
self.rbutton_sort2 = QRadioButton("area")
self.rbutton_sort3 = QRadioButton("width")
self.rbutton_sort4 = QRadioButton("height")
self.rbuttons_option_bin = [
QRadioButton(name) for name in STRING_TO_ALGORITHM_RECTPACK_BIN
]
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"))
self.layout_alg_button_bin.addWidget(self.rbutton_bin1)
self.layout_alg_button_bin.addWidget(self.rbutton_bin2)
for rbutton in self.rbuttons_option_bin:
self.layout_alg_button_bin.addWidget(rbutton)
self.layout_alg_button_pack.addWidget(QLabel("Pack"))
self.layout_alg_button_pack.addWidget(self.rbutton_pack1)
self.layout_alg_button_pack.addWidget(self.rbutton_pack2)
self.layout_alg_button_pack.addWidget(self.rbutton_pack3)
for rbutton in self.rbuttons_option_pack:
self.layout_alg_button_pack.addWidget(rbutton)
self.layout_alg_button_sort.addWidget(QLabel("Sort"))
self.layout_alg_button_sort.addWidget(self.rbutton_sort1)
self.layout_alg_button_sort.addWidget(self.rbutton_sort2)
self.layout_alg_button_sort.addWidget(self.rbutton_sort3)
self.layout_alg_button_sort.addWidget(self.rbutton_sort4)
for rbutton in self.rbuttons_option_sort:
self.layout_alg_button_sort.addWidget(rbutton)
self.group_algorithm_bin.setLayout(self.layout_alg_button_bin)
self.group_algorithm_pack.setLayout(self.layout_alg_button_pack)
......
......@@ -557,6 +557,9 @@ class SOI:
All properties except "modules" and "attachements" can be updated
using this function.
If a change is made that affects placement of modules this function
will call `reorganize`
Parameters
----------
**kwargs : key, value pairs of properties to update
......@@ -603,3 +606,13 @@ class SOI:
for listener in self.update_property_listeners:
listener()
# If any properties relating to module placement were touched,
# reorganize
if (
"placement_strategy" in kwargs
or "algorithm_bin" in kwargs
or "algorithm_pack" in kwargs
or "algorithm_sort" in kwargs
):
self.reorganize()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment