From 805a1567d8f1e28a8212d7bc25794ddcfc87a9fd Mon Sep 17 00:00:00 2001 From: David Robertson Date: Sat, 9 May 2020 16:26:54 +0100 Subject: [PATCH] Geometry editor prefs --- .../preferences/PreferencesUIManager.py | 4 - .../geometry/GeometryEditorPrefGroupUI.py | 84 +++++++------------ 2 files changed, 29 insertions(+), 59 deletions(-) diff --git a/flatcamGUI/preferences/PreferencesUIManager.py b/flatcamGUI/preferences/PreferencesUIManager.py index 7b5eaec6..5d89e7b7 100644 --- a/flatcamGUI/preferences/PreferencesUIManager.py +++ b/flatcamGUI/preferences/PreferencesUIManager.py @@ -175,10 +175,6 @@ class PreferencesUIManager: "geometry_area_strategy": self.ui.geometry_defaults_form.geometry_adv_opt_group.strategy_radio, "geometry_area_overz": self.ui.geometry_defaults_form.geometry_adv_opt_group.over_z_entry, - # Geometry Editor - "geometry_editor_sel_limit": self.ui.geometry_defaults_form.geometry_editor_group.sel_limit_entry, - "geometry_editor_milling_type": self.ui.geometry_defaults_form.geometry_editor_group.milling_type_radio, - # CNCJob General "cncjob_plot": self.ui.cncjob_defaults_form.cncjob_gen_group.plot_cb, "cncjob_plot_kind": self.ui.cncjob_defaults_form.cncjob_gen_group.cncplot_method_radio, diff --git a/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py b/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py index 9c5204ab..fe861c34 100644 --- a/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py +++ b/flatcamGUI/preferences/geometry/GeometryEditorPrefGroupUI.py @@ -1,67 +1,41 @@ -from PyQt5 import QtWidgets -from PyQt5.QtCore import QSettings - -from flatcamGUI.GUIElements import FCSpinner, RadioSet -from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI +from flatcamGUI.preferences.OptionUI import * +from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI2 import gettext import FlatCAMTranslation as fcTranslate import builtins - fcTranslate.apply_language('strings') if '_' not in builtins.__dict__: _ = gettext.gettext -settings = QSettings("Open Source", "FlatCAM") -if settings.contains("machinist"): - machinist_setting = settings.value('machinist', type=int) -else: - machinist_setting = 0 +class GeometryEditorPrefGroupUI(OptionsGroupUI2): -class GeometryEditorPrefGroupUI(OptionsGroupUI): - def __init__(self, decimals=4, parent=None): - # OptionsGroupUI.__init__(self, "Gerber Adv. Options Preferences", parent=parent) - super(GeometryEditorPrefGroupUI, self).__init__(self, parent=parent) - - self.setTitle(str(_("Geometry Editor"))) + def __init__(self, decimals=4, **kwargs): self.decimals = decimals + super().__init__(**kwargs) + self.setTitle(str(_("Geometry Editor"))) - # Advanced Geometry Parameters - self.param_label = QtWidgets.QLabel("%s:" % _("Parameters")) - self.param_label.setToolTip( - _("A list of Geometry Editor parameters.") - ) - self.layout.addWidget(self.param_label) - - grid0 = QtWidgets.QGridLayout() - self.layout.addLayout(grid0) - - # Selection Limit - self.sel_limit_label = QtWidgets.QLabel('%s:' % _("Selection limit")) - self.sel_limit_label.setToolTip( - _("Set the number of selected geometry\n" - "items above which the utility geometry\n" - "becomes just a selection rectangle.\n" - "Increases the performance when moving a\n" - "large number of geometric elements.") - ) - self.sel_limit_entry = FCSpinner() - self.sel_limit_entry.set_range(0, 9999) - - grid0.addWidget(self.sel_limit_label, 0, 0) - grid0.addWidget(self.sel_limit_entry, 0, 1) - - # Milling Type - milling_type_label = QtWidgets.QLabel('%s:' % _('Milling Type')) - milling_type_label.setToolTip( - _("Milling type:\n" - "- climb / best for precision milling and to reduce tool usage\n" - "- conventional / useful when there is no backlash compensation") - ) - self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, - {'label': _('Conventional'), 'value': 'cv'}]) - grid0.addWidget(milling_type_label, 1, 0) - grid0.addWidget(self.milling_type_radio, 1, 1) - - self.layout.addStretch() + def build_options(self) -> [OptionUI]: + return [ + HeadingOptionUI(label_text="Parameters"), + SpinnerOptionUI( + option="geometry_editor_sel_limit", + label_text="Selection limit", + label_tooltip="Set the number of selected geometry\n" + "items above which the utility geometry\n" + "becomes just a selection rectangle.\n" + "Increases the performance when moving a\n" + "large number of geometric elements.", + min_value=0, max_value=9999, step=1 + ), + RadioSetOptionUI( + option="geometry_editor_milling_type", + label_text="Milling Type", + label_tooltip="Milling type:\n" + "- climb / best for precision milling and to reduce tool usage\n" + "- conventional / useful when there is no backlash compensation", + choices=[{'label': _('Climb'), 'value': 'cl'}, + {'label': _('Conventional'), 'value': 'cv'}] + ) + ] \ No newline at end of file