eric7/QScintilla/MiniEditor.py

branch
eric7
changeset 8885
b0bbe8bda1f2
parent 8881
54e42bc2437a
child 9152
8a68afaf1ba2
--- a/eric7/QScintilla/MiniEditor.py	Fri Dec 31 17:19:19 2021 +0100
+++ b/eric7/QScintilla/MiniEditor.py	Fri Dec 31 17:22:45 2021 +0100
@@ -14,10 +14,12 @@
 import editorconfig
 
 from PyQt6.QtCore import (
-    pyqtSignal, Qt, QSignalMapper, QPoint, QTimer, QFileInfo, QSize,
+    pyqtSignal, pyqtSlot, Qt, QSignalMapper, QPoint, QTimer, QFileInfo, QSize,
     QCoreApplication
 )
-from PyQt6.QtGui import QKeySequence, QPalette, QFont, QPixmap, QActionGroup
+from PyQt6.QtGui import (
+    QKeySequence, QPalette, QFont, QPixmap, QActionGroup, QAction
+)
 from PyQt6.QtWidgets import (
     QWidget, QWhatsThis, QDialog, QInputDialog, QApplication,
     QMenu, QVBoxLayout, QHBoxLayout, QLabel
@@ -306,10 +308,7 @@
         self.__createToolBars()
         self.__createStatusBar()
         
-        self.__setTextDisplay()
-        self.__setMargins()
-        self.__setEolMode()
-        
+        self.__loadConfiguration()
         self.__readSettings()
         
         # clear QScintilla defined keyboard commands
@@ -561,16 +560,18 @@
         self.helpActions = []
         self.searchActions = []
         self.viewActions = []
+        self.configActions = []
         
         self.__createFileActions()
         self.__createEditActions()
         self.__createHelpActions()
         self.__createSearchActions()
         self.__createViewActions()
+        self.__createConfigActions()
         
         # read the keyboard shortcuts and make them identical to the main
         # eric shortcuts
-        for act in self.helpActions:
+        for act in self.helpActions + self.configActions:
             self.__readShortcut(act, "General")
         for act in self.editActions:
             self.__readShortcut(act, "Edit")
@@ -2439,6 +2440,26 @@
         self.whatsThisAct.triggered.connect(self.__whatsThis)
         self.helpActions.append(self.whatsThisAct)
     
+    def __createConfigActions(self):
+        """
+        Private method to create the Settings actions.
+        """
+        self.prefAct = EricAction(
+            self.tr('Preferences'),
+            UI.PixmapCache.getIcon("configure"),
+            self.tr('&Preferences...'),
+            0, 0, self, 'hexEditor_settings_preferences')
+        self.prefAct.setStatusTip(self.tr(
+            'Set the prefered configuration'))
+        self.prefAct.setWhatsThis(self.tr(
+            """<b>Preferences</b>"""
+            """<p>Set the configuration items of the application"""
+            """ with your prefered values.</p>"""
+        ))
+        self.prefAct.triggered.connect(self.__showPreferences)
+        self.prefAct.setMenuRole(QAction.MenuRole.PreferencesRole)
+        self.configActions.append(self.prefAct)
+    
     def __createMenus(self):
         """
         Private method to create the menus of the menu bar.
@@ -2464,14 +2485,16 @@
         self.editMenu.addAction(self.pasteAct)
         self.editMenu.addAction(self.deleteAct)
         self.editMenu.addSeparator()
-        self.editMenu.addAction(self.searchAct)
-        self.editMenu.addAction(self.searchNextAct)
-        self.editMenu.addAction(self.searchPrevAct)
-        self.editMenu.addAction(self.searchClearMarkersAct)
-        self.editMenu.addAction(self.replaceAct)
-        self.editMenu.addAction(self.replaceAndSearchAct)
-        self.editMenu.addAction(self.replaceSelectionAct)
-        self.editMenu.addAction(self.replaceAllAct)
+        
+        self.searchMenu = self.menuBar().addMenu(self.tr("&Search"))
+        self.searchMenu.addAction(self.searchAct)
+        self.searchMenu.addAction(self.searchNextAct)
+        self.searchMenu.addAction(self.searchPrevAct)
+        self.searchMenu.addAction(self.searchClearMarkersAct)
+        self.searchMenu.addAction(self.replaceAct)
+        self.searchMenu.addAction(self.replaceAndSearchAct)
+        self.searchMenu.addAction(self.replaceSelectionAct)
+        self.searchMenu.addAction(self.replaceAllAct)
         
         self.viewMenu = self.menuBar().addMenu(self.tr("&View"))
         self.viewMenu.addAction(self.zoomInAct)
@@ -2479,6 +2502,9 @@
         self.viewMenu.addAction(self.zoomResetAct)
         self.viewMenu.addAction(self.zoomToAct)
         
+        self.settingsMenu = self.menuBar().addMenu(self.tr("Se&ttings"))
+        self.settingsMenu.addAction(self.prefAct)
+       
         self.menuBar().addSeparator()
         
         self.helpMenu = self.menuBar().addMenu(self.tr("&Help"))
@@ -2516,7 +2542,7 @@
         edittb.addAction(self.pasteAct)
         edittb.addAction(self.deleteAct)
         
-        findtb = self.addToolBar(self.tr("Find"))
+        findtb = self.addToolBar(self.tr("Search"))
         findtb.setIconSize(UI.Config.ToolBarIconSize)
         findtb.addAction(self.searchAct)
         findtb.addAction(self.searchNextAct)
@@ -2530,6 +2556,10 @@
         viewtb.addAction(self.zoomResetAct)
         viewtb.addAction(self.zoomToAct)
         
+        settingstb = self.addToolBar(self.tr("Settings"))
+        settingstb.setIconSize(UI.Config.ToolBarIconSize)
+        settingstb.addAction(self.prefAct)
+        
         helptb = self.addToolBar(self.tr("Help"))
         helptb.setIconSize(UI.Config.ToolBarIconSize)
         helptb.addAction(self.whatsThisAct)
@@ -2584,6 +2614,45 @@
         
         self.__statusBar.showMessage(self.tr("Ready"))
     
+    def __showPreferences(self):
+        """
+        Private slot to set the preferences.
+        """
+        from Preferences.ConfigurationDialog import (
+            ConfigurationDialog, ConfigurationMode
+        )
+        dlg = ConfigurationDialog(
+            None, 'Configuration', True, fromEric=True,
+            displayMode=ConfigurationMode.EDITORMODE)
+        dlg.preferencesChanged.connect(self.__preferencesChanged)
+        dlg.show()
+        dlg.showConfigurationPageByName("interfacePage")
+        dlg.exec()
+        QCoreApplication.processEvents()
+        if dlg.result() == QDialog.DialogCode.Accepted:
+            dlg.setPreferences()
+            Preferences.syncPreferences()
+            self.__preferencesChanged()
+    
+    @pyqtSlot()
+    def __preferencesChanged(self):
+        """
+        Private slot to handle a configuration change.
+        """
+        self.__loadConfiguration()
+        
+        self.__markOccurrencesTimer.setInterval(
+            Preferences.getEditor("MarkOccurrencesTimeout"))
+    
+    @pyqtSlot()
+    def __loadConfiguration(self):
+        """
+        Private slot to load the configuration.
+        """
+        self.__setTextDisplay()
+        self.__setMargins()
+        self.__setEolMode()
+    
     def __readSettings(self):
         """
         Private method to read the settings remembered last time.

eric ide

mercurial