Preferences/ConfigurationDialog.py

changeset 4658
d760763dcc4a
parent 4631
5c1a96925da4
child 4798
ee1a24311b03
--- a/Preferences/ConfigurationDialog.py	Sun Jan 10 19:50:06 2016 +0100
+++ b/Preferences/ConfigurationDialog.py	Mon Jan 11 17:39:04 2016 +0100
@@ -78,6 +78,7 @@
     DefaultMode = 0
     HelpBrowserMode = 1
     TrayStarterMode = 2
+    HexEditorMode = 3
     
     def __init__(self, parent=None, fromEric=True, displayMode=DefaultMode,
                  expandedEntries=[]):
@@ -88,7 +89,7 @@
         @keyparam fromEric flag indicating a dialog generation from within the
             eric6 ide (boolean)
         @keyparam displayMode mode of the configuration dialog
-            (DefaultMode, HelpBrowserMode, TrayStarterMode)
+            (DefaultMode, HelpBrowserMode, TrayStarterMode, HexEditorMode)
         @exception RuntimeError raised to indicate an invalid dialog mode
         @keyparam expandedEntries list of entries to be shown expanded
             (list of strings)
@@ -96,7 +97,8 @@
         assert displayMode in (
             ConfigurationWidget.DefaultMode,
             ConfigurationWidget.HelpBrowserMode,
-            ConfigurationWidget.TrayStarterMode
+            ConfigurationWidget.TrayStarterMode,
+            ConfigurationWidget.HexEditorMode,
         )
         
         super(ConfigurationWidget, self).__init__(parent)
@@ -138,6 +140,9 @@
                 "graphicsPage":
                 [self.tr("Graphics"), "preferences-graphics.png",
                  "GraphicsPage", None, None],
+                "hexEditorPage":
+                [self.tr("Hex Editor"), "hexEditor.png",
+                 "HexEditorPage", None, None],
                 "iconsPage":
                 [self.tr("Icons"), "preferences-icons.png",
                  "IconsPage", None, None],
@@ -395,6 +400,19 @@
                  "TrayStarterPage", None, None],
             }
         
+        elif displayMode == ConfigurationWidget.HexEditorMode:
+            self.configItems = {
+                # key : [display string, pixmap name, dialog module name or
+                #        page creation function, parent key,
+                #        reference to configuration page (must always be last)]
+                # The dialog module must have the module function 'create' to
+                # create the configuration page. This must have the method
+                # 'save' to save the settings.
+                "hexEditorPage":
+                [self.tr("Hex Editor"), "hexEditor.png",
+                 "HexEditorPage", None, None],
+            }
+        
         else:
             raise RuntimeError("Illegal mode value: {0}".format(displayMode))
         
@@ -426,7 +444,13 @@
         self.buttonBox.accepted.connect(self.accept)
         self.buttonBox.rejected.connect(self.rejected)
         
-        if displayMode != ConfigurationWidget.TrayStarterMode:
+        if displayMode in [ConfigurationWidget.HelpBrowserMode,
+                           ConfigurationWidget.TrayStarterMode,
+                           ConfigurationWidget.HexEditorMode]:
+            self.configListSearch.hide()
+        
+        if displayMode not in [ConfigurationWidget.TrayStarterMode,
+                               ConfigurationWidget.HexEditorMode]:
             self.__initLexers()
         
     def accept(self):
@@ -764,6 +788,7 @@
             self.preferencesChanged.emit()
             if savedState is not None:
                 page.setState(savedState)
+            page.polishPage()
         
     @pyqtSlot()
     def on_resetButton_clicked(self):
@@ -828,6 +853,7 @@
     DefaultMode = ConfigurationWidget.DefaultMode
     HelpBrowserMode = ConfigurationWidget.HelpBrowserMode
     TrayStarterMode = ConfigurationWidget.TrayStarterMode
+    HexEditorMode = ConfigurationWidget.HexEditorMode
     
     def __init__(self, parent=None, name=None, modal=False,
                  fromEric=True, displayMode=ConfigurationWidget.DefaultMode,
@@ -841,7 +867,7 @@
         @keyparam fromEric flag indicating a dialog generation from within the
             eric6 ide (boolean)
         @keyparam displayMode mode of the configuration dialog
-            (DefaultMode, HelpBrowserMode, TrayStarterMode)
+            (DefaultMode, HelpBrowserMode, TrayStarterMode, HexEditorMode)
         @keyparam expandedEntries list of entries to be shown expanded
             (list of strings)
         """

eric ide

mercurial