From 1fc076b158231be9891dff1dd0989390306f52ec Mon Sep 17 00:00:00 2001 From: David Robertson Date: Wed, 6 May 2020 02:15:41 +0100 Subject: [PATCH] Make all of the prefs sections into subclasses of PreferencesSectionUI --- .../preferences/PreferencesUIManager.py | 11 ++- .../preferences/cncjob/CNCJobPreferencesUI.py | 25 +++--- .../excellon/ExcellonPreferencesUI.py | 50 +++-------- .../geometry/GeometryPreferencesUI.py | 45 +++------- .../preferences/gerber/GerberPreferencesUI.py | 51 +++-------- .../preferences/tools/Tools2PreferencesUI.py | 84 +++++------------- .../preferences/tools/ToolsPreferencesUI.py | 87 +++++-------------- .../utilities/UtilPreferencesUI.py | 36 +++----- 8 files changed, 115 insertions(+), 274 deletions(-) diff --git a/flatcamGUI/preferences/PreferencesUIManager.py b/flatcamGUI/preferences/PreferencesUIManager.py index eec62277..90d2cbf2 100644 --- a/flatcamGUI/preferences/PreferencesUIManager.py +++ b/flatcamGUI/preferences/PreferencesUIManager.py @@ -543,8 +543,15 @@ class PreferencesUIManager: } self.sections = [ - # FIXME! - ui.general_defaults_form + # FIXME + ui.general_defaults_form, + ui.gerber_defaults_form, + ui.excellon_defaults_form, + ui.geometry_defaults_form, + ui.cncjob_defaults_form, + ui.tools_defaults_form, + ui.tools2_defaults_form, + ui.util_defaults_form ] def get_form_fields(self) -> Dict[str, Any]: diff --git a/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py b/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py index cc9a7e32..5262a691 100644 --- a/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py +++ b/flatcamGUI/preferences/cncjob/CNCJobPreferencesUI.py @@ -1,27 +1,24 @@ from PyQt5 import QtWidgets +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesSectionUI import PreferencesSectionUI from flatcamGUI.preferences.cncjob.CNCJobAdvOptPrefGroupUI import CNCJobAdvOptPrefGroupUI from flatcamGUI.preferences.cncjob.CNCJobOptPrefGroupUI import CNCJobOptPrefGroupUI from flatcamGUI.preferences.cncjob.CNCJobGenPrefGroupUI import CNCJobGenPrefGroupUI -class CNCJobPreferencesUI(QtWidgets.QWidget): +class CNCJobPreferencesUI(PreferencesSectionUI): - def __init__(self, decimals, parent=None): - QtWidgets.QWidget.__init__(self, parent=parent) - self.layout = QtWidgets.QHBoxLayout() - self.setLayout(self.layout) + def __init__(self, decimals, **kwargs): self.decimals = decimals - self.cncjob_gen_group = CNCJobGenPrefGroupUI(decimals=self.decimals) - self.cncjob_gen_group.setMinimumWidth(260) self.cncjob_opt_group = CNCJobOptPrefGroupUI(decimals=self.decimals) - self.cncjob_opt_group.setMinimumWidth(260) self.cncjob_adv_opt_group = CNCJobAdvOptPrefGroupUI(decimals=self.decimals) - self.cncjob_adv_opt_group.setMinimumWidth(260) + super().__init__(**kwargs) - self.layout.addWidget(self.cncjob_gen_group) - self.layout.addWidget(self.cncjob_opt_group) - self.layout.addWidget(self.cncjob_adv_opt_group) - - self.layout.addStretch() + def build_groups(self) -> [OptionsGroupUI]: + return [ + self.cncjob_gen_group, + self.cncjob_opt_group, + self.cncjob_adv_opt_group + ] diff --git a/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py b/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py index b3d6d165..3ba51eb1 100644 --- a/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py +++ b/flatcamGUI/preferences/excellon/ExcellonPreferencesUI.py @@ -1,53 +1,29 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesSectionUI import PreferencesSectionUI from flatcamGUI.preferences.excellon.ExcellonEditorPrefGroupUI import ExcellonEditorPrefGroupUI from flatcamGUI.preferences.excellon.ExcellonExpPrefGroupUI import ExcellonExpPrefGroupUI from flatcamGUI.preferences.excellon.ExcellonAdvOptPrefGroupUI import ExcellonAdvOptPrefGroupUI from flatcamGUI.preferences.excellon.ExcellonOptPrefGroupUI import ExcellonOptPrefGroupUI from flatcamGUI.preferences.excellon.ExcellonGenPrefGroupUI import ExcellonGenPrefGroupUI -import gettext -import FlatCAMTranslation as fcTranslate -import builtins -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext +class ExcellonPreferencesUI(PreferencesSectionUI): -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class ExcellonPreferencesUI(QtWidgets.QWidget): - - def __init__(self, decimals, parent=None): - QtWidgets.QWidget.__init__(self, parent=parent) - self.layout = QtWidgets.QHBoxLayout() - self.setLayout(self.layout) + def __init__(self, decimals, **kwargs): self.decimals = decimals - self.excellon_gen_group = ExcellonGenPrefGroupUI(decimals=self.decimals) - self.excellon_gen_group.setMinimumWidth(220) self.excellon_opt_group = ExcellonOptPrefGroupUI(decimals=self.decimals) - self.excellon_opt_group.setMinimumWidth(290) self.excellon_exp_group = ExcellonExpPrefGroupUI(decimals=self.decimals) - self.excellon_exp_group.setMinimumWidth(250) self.excellon_adv_opt_group = ExcellonAdvOptPrefGroupUI(decimals=self.decimals) - self.excellon_adv_opt_group.setMinimumWidth(250) self.excellon_editor_group = ExcellonEditorPrefGroupUI(decimals=self.decimals) - self.excellon_editor_group.setMinimumWidth(260) + super().__init__(**kwargs) - self.vlay = QtWidgets.QVBoxLayout() - self.vlay.addWidget(self.excellon_opt_group) - self.vlay.addWidget(self.excellon_exp_group) + def build_groups(self) -> [OptionsGroupUI]: + return [ + self.excellon_gen_group, + self.excellon_opt_group, + self.excellon_exp_group, + self.excellon_adv_opt_group, + self.excellon_editor_group + ] - self.layout.addWidget(self.excellon_gen_group) - self.layout.addLayout(self.vlay) - self.layout.addWidget(self.excellon_adv_opt_group) - self.layout.addWidget(self.excellon_editor_group) - - self.layout.addStretch() diff --git a/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py b/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py index cf906d61..621cf294 100644 --- a/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py +++ b/flatcamGUI/preferences/geometry/GeometryPreferencesUI.py @@ -1,46 +1,25 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesSectionUI import PreferencesSectionUI from flatcamGUI.preferences.geometry.GeometryEditorPrefGroupUI import GeometryEditorPrefGroupUI from flatcamGUI.preferences.geometry.GeometryAdvOptPrefGroupUI import GeometryAdvOptPrefGroupUI from flatcamGUI.preferences.geometry.GeometryOptPrefGroupUI import GeometryOptPrefGroupUI from flatcamGUI.preferences.geometry.GeometryGenPrefGroupUI import GeometryGenPrefGroupUI -import gettext -import FlatCAMTranslation as fcTranslate -import builtins -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext +class GeometryPreferencesUI(PreferencesSectionUI): -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class GeometryPreferencesUI(QtWidgets.QWidget): - - def __init__(self, decimals, parent=None): - QtWidgets.QWidget.__init__(self, parent=parent) - self.layout = QtWidgets.QHBoxLayout() - self.setLayout(self.layout) + def __init__(self, decimals, **kwargs): self.decimals = decimals - self.geometry_gen_group = GeometryGenPrefGroupUI(decimals=self.decimals) - self.geometry_gen_group.setMinimumWidth(220) self.geometry_opt_group = GeometryOptPrefGroupUI(decimals=self.decimals) - self.geometry_opt_group.setMinimumWidth(300) self.geometry_adv_opt_group = GeometryAdvOptPrefGroupUI(decimals=self.decimals) - self.geometry_adv_opt_group.setMinimumWidth(270) self.geometry_editor_group = GeometryEditorPrefGroupUI(decimals=self.decimals) - self.geometry_editor_group.setMinimumWidth(250) + super().__init__(**kwargs) - self.layout.addWidget(self.geometry_gen_group) - self.layout.addWidget(self.geometry_opt_group) - self.layout.addWidget(self.geometry_adv_opt_group) - self.layout.addWidget(self.geometry_editor_group) - - self.layout.addStretch() + def build_groups(self) -> [OptionsGroupUI]: + return [ + self.geometry_gen_group, + self.geometry_opt_group, + self.geometry_adv_opt_group, + self.geometry_editor_group + ] diff --git a/flatcamGUI/preferences/gerber/GerberPreferencesUI.py b/flatcamGUI/preferences/gerber/GerberPreferencesUI.py index f9d9f8aa..f7306b21 100644 --- a/flatcamGUI/preferences/gerber/GerberPreferencesUI.py +++ b/flatcamGUI/preferences/gerber/GerberPreferencesUI.py @@ -1,53 +1,28 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesSectionUI import PreferencesSectionUI from flatcamGUI.preferences.gerber.GerberEditorPrefGroupUI import GerberEditorPrefGroupUI from flatcamGUI.preferences.gerber.GerberExpPrefGroupUI import GerberExpPrefGroupUI from flatcamGUI.preferences.gerber.GerberAdvOptPrefGroupUI import GerberAdvOptPrefGroupUI from flatcamGUI.preferences.gerber.GerberOptPrefGroupUI import GerberOptPrefGroupUI from flatcamGUI.preferences.gerber.GerberGenPrefGroupUI import GerberGenPrefGroupUI -import gettext -import FlatCAMTranslation as fcTranslate -import builtins -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext +class GerberPreferencesUI(PreferencesSectionUI): -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class GerberPreferencesUI(QtWidgets.QWidget): - - def __init__(self, decimals, parent=None): - QtWidgets.QWidget.__init__(self, parent=parent) - self.layout = QtWidgets.QHBoxLayout() - self.setLayout(self.layout) + def __init__(self, decimals, **kwargs): self.decimals = decimals - self.gerber_gen_group = GerberGenPrefGroupUI(decimals=self.decimals) - self.gerber_gen_group.setMinimumWidth(250) self.gerber_opt_group = GerberOptPrefGroupUI(decimals=self.decimals) - self.gerber_opt_group.setMinimumWidth(250) self.gerber_exp_group = GerberExpPrefGroupUI(decimals=self.decimals) - self.gerber_exp_group.setMinimumWidth(230) self.gerber_adv_opt_group = GerberAdvOptPrefGroupUI(decimals=self.decimals) - self.gerber_adv_opt_group.setMinimumWidth(200) self.gerber_editor_group = GerberEditorPrefGroupUI(decimals=self.decimals) - self.gerber_editor_group.setMinimumWidth(200) + super().__init__(**kwargs) - self.vlay = QtWidgets.QVBoxLayout() - self.vlay.addWidget(self.gerber_opt_group) - self.vlay.addWidget(self.gerber_exp_group) - - self.layout.addWidget(self.gerber_gen_group) - self.layout.addLayout(self.vlay) - self.layout.addWidget(self.gerber_adv_opt_group) - self.layout.addWidget(self.gerber_editor_group) - - self.layout.addStretch() + def build_groups(self) -> [OptionsGroupUI]: + return [ + self.gerber_gen_group, + self.gerber_opt_group, # FIXME vertical layout with opt and ext + self.gerber_exp_group, + self.gerber_adv_opt_group, + self.gerber_editor_group + ] \ No newline at end of file diff --git a/flatcamGUI/preferences/tools/Tools2PreferencesUI.py b/flatcamGUI/preferences/tools/Tools2PreferencesUI.py index 01ed4def..8cf6a95b 100644 --- a/flatcamGUI/preferences/tools/Tools2PreferencesUI.py +++ b/flatcamGUI/preferences/tools/Tools2PreferencesUI.py @@ -1,6 +1,5 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesSectionUI import PreferencesSectionUI from flatcamGUI.preferences.tools.Tools2InvertPrefGroupUI import Tools2InvertPrefGroupUI from flatcamGUI.preferences.tools.Tools2PunchGerberPrefGroupUI import Tools2PunchGerberPrefGroupUI from flatcamGUI.preferences.tools.Tools2EDrillsPrefGroupUI import Tools2EDrillsPrefGroupUI @@ -11,79 +10,40 @@ from flatcamGUI.preferences.tools.Tools2QRCodePrefGroupUI import Tools2QRCodePre from flatcamGUI.preferences.tools.Tools2OptimalPrefGroupUI import Tools2OptimalPrefGroupUI from flatcamGUI.preferences.tools.Tools2RulesCheckPrefGroupUI import Tools2RulesCheckPrefGroupUI -import gettext -import FlatCAMTranslation as fcTranslate -import builtins -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext +class Tools2PreferencesUI(PreferencesSectionUI): -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class Tools2PreferencesUI(QtWidgets.QWidget): - - def __init__(self, decimals, parent=None): - QtWidgets.QWidget.__init__(self, parent=parent) - self.layout = QtWidgets.QHBoxLayout() - self.setLayout(self.layout) + def __init__(self, decimals, **kwargs): self.decimals = decimals - self.tools2_checkrules_group = Tools2RulesCheckPrefGroupUI(decimals=self.decimals) - self.tools2_checkrules_group.setMinimumWidth(220) - self.tools2_optimal_group = Tools2OptimalPrefGroupUI(decimals=self.decimals) - self.tools2_optimal_group.setMinimumWidth(220) - self.tools2_qrcode_group = Tools2QRCodePrefGroupUI(decimals=self.decimals) - self.tools2_qrcode_group.setMinimumWidth(220) - self.tools2_cfill_group = Tools2CThievingPrefGroupUI(decimals=self.decimals) - self.tools2_cfill_group.setMinimumWidth(220) - self.tools2_fiducials_group = Tools2FiducialsPrefGroupUI(decimals=self.decimals) - self.tools2_fiducials_group.setMinimumWidth(220) - self.tools2_cal_group = Tools2CalPrefGroupUI(decimals=self.decimals) - self.tools2_cal_group.setMinimumWidth(220) - self.tools2_edrills_group = Tools2EDrillsPrefGroupUI(decimals=self.decimals) - self.tools2_edrills_group.setMinimumWidth(220) - self.tools2_punch_group = Tools2PunchGerberPrefGroupUI(decimals=self.decimals) - self.tools2_punch_group.setMinimumWidth(220) - self.tools2_invert_group = Tools2InvertPrefGroupUI(decimals=self.decimals) - self.tools2_invert_group.setMinimumWidth(220) + super().__init__(**kwargs) - self.vlay = QtWidgets.QVBoxLayout() - self.vlay.addWidget(self.tools2_checkrules_group) - self.vlay.addWidget(self.tools2_optimal_group) + def build_groups(self) -> [OptionsGroupUI]: + return [ + # fixme column 1 + self.tools2_checkrules_group, + self.tools2_optimal_group, - self.vlay1 = QtWidgets.QVBoxLayout() - self.vlay1.addWidget(self.tools2_qrcode_group) - self.vlay1.addWidget(self.tools2_fiducials_group) + # fixme column 2 + self.tools2_qrcode_group, + self.tools2_fiducials_group, - self.vlay2 = QtWidgets.QVBoxLayout() - self.vlay2.addWidget(self.tools2_cfill_group) + # fixme column 3 + self.tools2_cfill_group, - self.vlay3 = QtWidgets.QVBoxLayout() - self.vlay3.addWidget(self.tools2_cal_group) - self.vlay3.addWidget(self.tools2_edrills_group) + # fixme column 4 + self.tools2_cal_group, + self.tools2_edrills_group, - self.vlay4 = QtWidgets.QVBoxLayout() - self.vlay4.addWidget(self.tools2_punch_group) - self.vlay4.addWidget(self.tools2_invert_group) - - self.layout.addLayout(self.vlay) - self.layout.addLayout(self.vlay1) - self.layout.addLayout(self.vlay2) - self.layout.addLayout(self.vlay3) - self.layout.addLayout(self.vlay4) - - self.layout.addStretch() + # fixme column 5 + self.tools2_punch_group, + self.tools2_invert_group, + ] \ No newline at end of file diff --git a/flatcamGUI/preferences/tools/ToolsPreferencesUI.py b/flatcamGUI/preferences/tools/ToolsPreferencesUI.py index dc3061a8..2b9000cd 100644 --- a/flatcamGUI/preferences/tools/ToolsPreferencesUI.py +++ b/flatcamGUI/preferences/tools/ToolsPreferencesUI.py @@ -1,6 +1,5 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesSectionUI import PreferencesSectionUI from flatcamGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI from flatcamGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI from flatcamGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI @@ -12,83 +11,43 @@ from flatcamGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefG from flatcamGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI from flatcamGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI -import gettext -import FlatCAMTranslation as fcTranslate -import builtins -fcTranslate.apply_language('strings') -if '_' not in builtins.__dict__: - _ = gettext.gettext +class ToolsPreferencesUI(PreferencesSectionUI): -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 - - -class ToolsPreferencesUI(QtWidgets.QWidget): - - def __init__(self, decimals, parent=None): - QtWidgets.QWidget.__init__(self, parent=parent) - self.layout = QtWidgets.QHBoxLayout() - self.setLayout(self.layout) + def __init__(self, decimals, **kwargs): self.decimals = decimals - self.tools_ncc_group = ToolsNCCPrefGroupUI(decimals=self.decimals) - self.tools_ncc_group.setMinimumWidth(220) - self.tools_paint_group = ToolsPaintPrefGroupUI(decimals=self.decimals) - self.tools_paint_group.setMinimumWidth(220) - self.tools_cutout_group = ToolsCutoutPrefGroupUI(decimals=self.decimals) - self.tools_cutout_group.setMinimumWidth(220) - self.tools_2sided_group = Tools2sidedPrefGroupUI(decimals=self.decimals) - self.tools_2sided_group.setMinimumWidth(220) - self.tools_film_group = ToolsFilmPrefGroupUI(decimals=self.decimals) - self.tools_film_group.setMinimumWidth(220) - self.tools_panelize_group = ToolsPanelizePrefGroupUI(decimals=self.decimals) - self.tools_panelize_group.setMinimumWidth(220) - self.tools_calculators_group = ToolsCalculatorsPrefGroupUI(decimals=self.decimals) - self.tools_calculators_group.setMinimumWidth(220) - self.tools_transform_group = ToolsTransformPrefGroupUI(decimals=self.decimals) - self.tools_transform_group.setMinimumWidth(200) - self.tools_solderpaste_group = ToolsSolderpastePrefGroupUI(decimals=self.decimals) - self.tools_solderpaste_group.setMinimumWidth(200) - self.tools_sub_group = ToolsSubPrefGroupUI(decimals=self.decimals) - self.tools_sub_group.setMinimumWidth(200) + super().__init__(**kwargs) - self.vlay = QtWidgets.QVBoxLayout() - self.vlay.addWidget(self.tools_ncc_group) - self.vlay.addWidget(self.tools_cutout_group) + def build_groups(self) -> [OptionsGroupUI]: + return [ + # fixme column 1 + self.tools_ncc_group, + self.tools_cutout_group, - self.vlay1 = QtWidgets.QVBoxLayout() - self.vlay1.addWidget(self.tools_paint_group) - self.vlay1.addWidget(self.tools_panelize_group) + # fixme column 2 + self.tools_paint_group, + self.tools_panelize_group, - self.vlay2 = QtWidgets.QVBoxLayout() - self.vlay2.addWidget(self.tools_transform_group) - self.vlay2.addWidget(self.tools_2sided_group) - self.vlay2.addWidget(self.tools_sub_group) + # fixme column 3 + self.tools_transform_group, + self.tools_2sided_group, + self.tools_sub_group, - self.vlay3 = QtWidgets.QVBoxLayout() - self.vlay3.addWidget(self.tools_film_group) - self.vlay3.addWidget(self.tools_calculators_group) + # fixme column 4 + self.tools_film_group, + self.tools_calculators_group, - self.vlay4 = QtWidgets.QVBoxLayout() - self.vlay4.addWidget(self.tools_solderpaste_group) + # fixme column 5 + self.tools_solderpaste_group, + ] - self.layout.addLayout(self.vlay) - self.layout.addLayout(self.vlay1) - self.layout.addLayout(self.vlay2) - self.layout.addLayout(self.vlay3) - self.layout.addLayout(self.vlay4) - - self.layout.addStretch() diff --git a/flatcamGUI/preferences/utilities/UtilPreferencesUI.py b/flatcamGUI/preferences/utilities/UtilPreferencesUI.py index ae9e2110..2ce2047a 100644 --- a/flatcamGUI/preferences/utilities/UtilPreferencesUI.py +++ b/flatcamGUI/preferences/utilities/UtilPreferencesUI.py @@ -1,37 +1,25 @@ -from PyQt5 import QtWidgets - +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.PreferencesSectionUI import PreferencesSectionUI from flatcamGUI.preferences.utilities.AutoCompletePrefGroupUI import AutoCompletePrefGroupUI from flatcamGUI.preferences.utilities.FAGrbPrefGroupUI import FAGrbPrefGroupUI from flatcamGUI.preferences.utilities.FAGcoPrefGroupUI import FAGcoPrefGroupUI from flatcamGUI.preferences.utilities.FAExcPrefGroupUI import FAExcPrefGroupUI -class UtilPreferencesUI(QtWidgets.QWidget): +class UtilPreferencesUI(PreferencesSectionUI): - def __init__(self, decimals, parent=None): - QtWidgets.QWidget.__init__(self, parent=parent) - self.layout = QtWidgets.QHBoxLayout() - self.setLayout(self.layout) + def __init__(self, decimals, **kwargs): self.decimals = decimals - - self.vlay = QtWidgets.QVBoxLayout() self.fa_excellon_group = FAExcPrefGroupUI(decimals=self.decimals) - self.fa_excellon_group.setMinimumWidth(260) - self.fa_gcode_group = FAGcoPrefGroupUI(decimals=self.decimals) - self.fa_gcode_group.setMinimumWidth(260) - - self.vlay.addWidget(self.fa_excellon_group) - self.vlay.addWidget(self.fa_gcode_group) - self.fa_gerber_group = FAGrbPrefGroupUI(decimals=self.decimals) - self.fa_gerber_group.setMinimumWidth(260) - self.kw_group = AutoCompletePrefGroupUI(decimals=self.decimals) - self.kw_group.setMinimumWidth(260) + super().__init__(**kwargs) - self.layout.addLayout(self.vlay) - self.layout.addWidget(self.fa_gerber_group) - self.layout.addWidget(self.kw_group) - - self.layout.addStretch() + def build_groups(self) -> [OptionsGroupUI]: + return [ + self.fa_excellon_group, # fixme column with fa_excellon and fa_gcode + self.fa_gcode_group, + self.fa_gerber_group, + self.kw_group, + ]