Просмотр исходного кода

Deduplicate code in PreferencesUIManager.show_preferences_gui()

David Robertson 5 лет назад
Родитель
Сommit
9ec6b3afb2
1 измененных файлов с 43 добавлено и 66 удалено
  1. 43 66
      flatcamGUI/preferences/PreferencesUIManager.py

+ 43 - 66
flatcamGUI/preferences/PreferencesUIManager.py

@@ -1,4 +1,6 @@
 import os
 import os
+from typing import Any, Dict
+
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5 import QtGui, QtCore, QtWidgets
 from PyQt5.QtCore import QSettings
 from PyQt5.QtCore import QSettings
 from defaults import FlatCAMDefaults
 from defaults import FlatCAMDefaults
@@ -583,15 +585,44 @@ 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
+        }
+
+    def get_form_fields(self) -> Dict[str, Any]:
+        return self.defaults_form_fields
+
+    def get_form_field(self, option: str) -> Any:
+        return self.get_form_fields()[option]
+
+
+
     def defaults_read_form(self):
     def defaults_read_form(self):
         """
         """
         Will read all the values in the Preferences GUI and update the defaults dictionary.
         Will read all the values in the Preferences GUI and update the defaults dictionary.
 
 
         :return: None
         :return: None
         """
         """
-        for option in self.defaults_form_fields:
+        for option in self.get_form_fields():
             try:
             try:
-                self.defaults[option] = self.defaults_form_fields[option].get_value()
+                self.defaults[option] = self.get_form_field(option=option).get_value()
             except Exception as e:
             except Exception as e:
                 log.debug("App.defaults_read_form() --> %s" % str(e))
                 log.debug("App.defaults_read_form() --> %s" % str(e))
 
 
@@ -633,7 +664,7 @@ class PreferencesUIManager:
             if factor is not None:
             if factor is not None:
                 value *= factor
                 value *= factor
 
 
-            form_field = self.defaults_form_fields[field]
+            form_field = self.get_form_field(option=field)
             if units is None:
             if units is None:
                 form_field.set_value(value)
                 form_field.set_value(value)
             elif (units == 'IN' or units == 'MM') and (field == 'global_gridx' or field == 'global_gridy'):
             elif (units == 'IN' or units == 'MM') and (field == 'global_gridx' or field == 'global_gridy'):
@@ -651,69 +682,15 @@ class PreferencesUIManager:
         :return: None
         :return: None
         """
         """
 
 
-        gen_form = self.ui.general_defaults_form
-        try:
-            self.ui.general_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.general_scroll_area.setWidget(gen_form)
-        gen_form.show()
-
-        ger_form = self.ui.gerber_defaults_form
-        try:
-            self.ui.gerber_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.gerber_scroll_area.setWidget(ger_form)
-        ger_form.show()
-
-        exc_form = self.ui.excellon_defaults_form
-        try:
-            self.ui.excellon_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.excellon_scroll_area.setWidget(exc_form)
-        exc_form.show()
-
-        geo_form = self.ui.geometry_defaults_form
-        try:
-            self.ui.geometry_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.geometry_scroll_area.setWidget(geo_form)
-        geo_form.show()
-
-        cnc_form = self.ui.cncjob_defaults_form
-        try:
-            self.ui.cncjob_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.cncjob_scroll_area.setWidget(cnc_form)
-        cnc_form.show()
-
-        tools_form = self.ui.tools_defaults_form
-        try:
-            self.ui.tools_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.tools_scroll_area.setWidget(tools_form)
-        tools_form.show()
-
-        tools2_form = self.ui.tools2_defaults_form
-        try:
-            self.ui.tools2_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.tools2_scroll_area.setWidget(tools2_form)
-        tools2_form.show()
-
-        fa_form = self.ui.util_defaults_form
-        try:
-            self.ui.fa_scroll_area.takeWidget()
-        except Exception:
-            log.debug("Nothing to remove")
-        self.ui.fa_scroll_area.setWidget(fa_form)
-        fa_form.show()
+        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()
 
 
         # Initialize the color box's color in Preferences -> Global -> Colo
         # Initialize the color box's color in Preferences -> Global -> Colo
         self.__init_color_pickers()
         self.__init_color_pickers()