Deduplicate code creating widgets for prefs tabs
This commit is contained in:
@@ -1207,89 +1207,6 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
||||
self.pref_tab_area_tabBar.setExpanding(True)
|
||||
self.pref_tab_layout.addWidget(self.pref_tab_area)
|
||||
|
||||
self.general_tab = QtWidgets.QWidget()
|
||||
self.general_tab.setObjectName("general_tab")
|
||||
self.pref_tab_area.addTab(self.general_tab, _("General"))
|
||||
self.general_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.general_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.general_tab.setLayout(self.general_tab_lay)
|
||||
|
||||
self.hlay1 = QtWidgets.QHBoxLayout()
|
||||
self.general_tab_lay.addLayout(self.hlay1)
|
||||
|
||||
self.hlay1.addStretch()
|
||||
|
||||
self.general_scroll_area = QtWidgets.QScrollArea()
|
||||
self.general_tab_lay.addWidget(self.general_scroll_area)
|
||||
|
||||
self.gerber_tab = QtWidgets.QWidget()
|
||||
self.gerber_tab.setObjectName("gerber_tab")
|
||||
self.pref_tab_area.addTab(self.gerber_tab, _("GERBER"))
|
||||
self.gerber_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.gerber_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.gerber_tab.setLayout(self.gerber_tab_lay)
|
||||
|
||||
self.gerber_scroll_area = QtWidgets.QScrollArea()
|
||||
self.gerber_tab_lay.addWidget(self.gerber_scroll_area)
|
||||
|
||||
self.excellon_tab = QtWidgets.QWidget()
|
||||
self.excellon_tab.setObjectName("excellon_tab")
|
||||
self.pref_tab_area.addTab(self.excellon_tab, _("EXCELLON"))
|
||||
self.excellon_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.excellon_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.excellon_tab.setLayout(self.excellon_tab_lay)
|
||||
|
||||
self.excellon_scroll_area = QtWidgets.QScrollArea()
|
||||
self.excellon_tab_lay.addWidget(self.excellon_scroll_area)
|
||||
|
||||
self.geometry_tab = QtWidgets.QWidget()
|
||||
self.geometry_tab.setObjectName("geometry_tab")
|
||||
self.pref_tab_area.addTab(self.geometry_tab, _("GEOMETRY"))
|
||||
self.geometry_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.geometry_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.geometry_tab.setLayout(self.geometry_tab_lay)
|
||||
|
||||
self.geometry_scroll_area = QtWidgets.QScrollArea()
|
||||
self.geometry_tab_lay.addWidget(self.geometry_scroll_area)
|
||||
|
||||
self.text_editor_tab = QtWidgets.QWidget()
|
||||
self.text_editor_tab.setObjectName("text_editor_tab")
|
||||
self.pref_tab_area.addTab(self.text_editor_tab, _("CNC-JOB"))
|
||||
self.cncjob_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.cncjob_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.text_editor_tab.setLayout(self.cncjob_tab_lay)
|
||||
|
||||
self.cncjob_scroll_area = QtWidgets.QScrollArea()
|
||||
self.cncjob_tab_lay.addWidget(self.cncjob_scroll_area)
|
||||
|
||||
self.tools_tab = QtWidgets.QWidget()
|
||||
self.pref_tab_area.addTab(self.tools_tab, _("TOOLS"))
|
||||
self.tools_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.tools_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.tools_tab.setLayout(self.tools_tab_lay)
|
||||
|
||||
self.tools_scroll_area = QtWidgets.QScrollArea()
|
||||
self.tools_tab_lay.addWidget(self.tools_scroll_area)
|
||||
|
||||
self.tools2_tab = QtWidgets.QWidget()
|
||||
self.pref_tab_area.addTab(self.tools2_tab, _("TOOLS 2"))
|
||||
self.tools2_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.tools2_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.tools2_tab.setLayout(self.tools2_tab_lay)
|
||||
|
||||
self.tools2_scroll_area = QtWidgets.QScrollArea()
|
||||
self.tools2_tab_lay.addWidget(self.tools2_scroll_area)
|
||||
|
||||
self.fa_tab = QtWidgets.QWidget()
|
||||
self.fa_tab.setObjectName("fa_tab")
|
||||
self.pref_tab_area.addTab(self.fa_tab, _("UTILITIES"))
|
||||
self.fa_tab_lay = QtWidgets.QVBoxLayout()
|
||||
self.fa_tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
self.fa_tab.setLayout(self.fa_tab_lay)
|
||||
|
||||
self.fa_scroll_area = QtWidgets.QScrollArea()
|
||||
self.fa_tab_lay.addWidget(self.fa_scroll_area)
|
||||
|
||||
self.pref_tab_bottom_layout = QtWidgets.QHBoxLayout()
|
||||
self.pref_tab_bottom_layout.setAlignment(QtCore.Qt.AlignVCenter)
|
||||
self.pref_tab_layout.addLayout(self.pref_tab_bottom_layout)
|
||||
|
||||
@@ -29,4 +29,29 @@ class PreferencesSectionUI(QtWidgets.QWidget):
|
||||
for group in self.groups:
|
||||
groupoptions = group.option_dict()
|
||||
result.update(groupoptions)
|
||||
return result
|
||||
return result
|
||||
|
||||
def build_tab(self):
|
||||
tab = QtWidgets.QWidget()
|
||||
|
||||
tab_lay = QtWidgets.QVBoxLayout()
|
||||
tab_lay.setContentsMargins(2, 2, 2, 2)
|
||||
tab.setLayout(tab_lay)
|
||||
|
||||
# Not sure what the point of this is ???
|
||||
hlay1 = QtWidgets.QHBoxLayout()
|
||||
hlay1.addStretch()
|
||||
tab_lay.addLayout(hlay1)
|
||||
|
||||
scroll_area = QtWidgets.QScrollArea()
|
||||
scroll_area.setWidget(self)
|
||||
self.show()
|
||||
tab_lay.addWidget(scroll_area)
|
||||
|
||||
return tab
|
||||
|
||||
def get_tab_id(self) -> str:
|
||||
raise NotImplementedError
|
||||
|
||||
def get_tab_label(self) -> str:
|
||||
raise NotImplementedError
|
||||
|
||||
@@ -521,29 +521,7 @@ class PreferencesUIManager:
|
||||
|
||||
}
|
||||
|
||||
self.child_forms = {
|
||||
"general": ui.general_defaults_form,
|
||||
"gerber": ui.gerber_defaults_form,
|
||||
"excellon": ui.excellon_defaults_form,
|
||||
"geometry": ui.geometry_defaults_form,
|
||||
"cncjob": ui.cncjob_defaults_form,
|
||||
"tools": ui.tools_defaults_form,
|
||||
"tools2": ui.tools2_defaults_form,
|
||||
"util": ui.util_defaults_form
|
||||
}
|
||||
self.child_scroll_areas = {
|
||||
"general": ui.general_scroll_area,
|
||||
"gerber": ui.gerber_scroll_area,
|
||||
"excellon": ui.excellon_scroll_area,
|
||||
"geometry": ui.geometry_scroll_area,
|
||||
"cncjob": ui.cncjob_scroll_area,
|
||||
"tools": ui.tools_scroll_area,
|
||||
"tools2": ui.tools2_scroll_area,
|
||||
"util": ui.fa_scroll_area
|
||||
}
|
||||
|
||||
self.sections = [
|
||||
# FIXME
|
||||
ui.general_defaults_form,
|
||||
ui.gerber_defaults_form,
|
||||
ui.excellon_defaults_form,
|
||||
@@ -642,16 +620,12 @@ class PreferencesUIManager:
|
||||
|
||||
:return: None
|
||||
"""
|
||||
# FIXME this should be done in __init__
|
||||
|
||||
for section in self.child_scroll_areas:
|
||||
scroll_area = self.child_scroll_areas[section]
|
||||
form = self.child_forms[section]
|
||||
try:
|
||||
scroll_area.takeWidget()
|
||||
except Exception:
|
||||
log.debug("Nothing to remove for section "+section)
|
||||
scroll_area.setWidget(form)
|
||||
form.show()
|
||||
for section in self.sections:
|
||||
tab = section.build_tab()
|
||||
tab.setObjectName(section.get_tab_id())
|
||||
self.ui.pref_tab_area.addTab(tab, section.get_tab_label())
|
||||
|
||||
# Initialize the color box's color in Preferences -> Global -> Colo
|
||||
self.__init_color_pickers()
|
||||
|
||||
@@ -22,3 +22,10 @@ class CNCJobPreferencesUI(PreferencesSectionUI):
|
||||
self.cncjob_opt_group,
|
||||
self.cncjob_adv_opt_group
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
# FIXME this doesn't seem right
|
||||
return "text_editor_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("CNC-JOB")
|
||||
@@ -27,3 +27,9 @@ class ExcellonPreferencesUI(PreferencesSectionUI):
|
||||
self.excellon_editor_group
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
return "excellon_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("EXCELLON")
|
||||
|
||||
|
||||
@@ -18,3 +18,8 @@ class GeneralPreferencesUI(PreferencesSectionUI):
|
||||
GeneralAppSettingsGroupUI(decimals=self.decimals)
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
return "general_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("General")
|
||||
|
||||
@@ -23,3 +23,10 @@ class GeometryPreferencesUI(PreferencesSectionUI):
|
||||
self.geometry_adv_opt_group,
|
||||
self.geometry_editor_group
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
return "geometry_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("GEOMETRY")
|
||||
|
||||
|
||||
@@ -25,4 +25,10 @@ class GerberPreferencesUI(PreferencesSectionUI):
|
||||
self.gerber_exp_group,
|
||||
self.gerber_adv_opt_group,
|
||||
self.gerber_editor_group
|
||||
]
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
return "gerber_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("GERBER")
|
||||
|
||||
@@ -46,4 +46,10 @@ class Tools2PreferencesUI(PreferencesSectionUI):
|
||||
# fixme column 5
|
||||
self.tools2_punch_group,
|
||||
self.tools2_invert_group,
|
||||
]
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
return "tools2_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("TOOLS 2")
|
||||
@@ -51,3 +51,8 @@ class ToolsPreferencesUI(PreferencesSectionUI):
|
||||
self.tools_solderpaste_group,
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
return "tools_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("TOOLS")
|
||||
|
||||
@@ -23,3 +23,9 @@ class UtilPreferencesUI(PreferencesSectionUI):
|
||||
self.fa_gerber_group,
|
||||
self.kw_group,
|
||||
]
|
||||
|
||||
def get_tab_id(self):
|
||||
return "fa_tab"
|
||||
|
||||
def get_tab_label(self):
|
||||
return _("UTILITIES")
|
||||
Reference in New Issue
Block a user