src/eric7/QScintilla/SearchReplaceWidget.py

branch
eric7
changeset 10211
7caa05cd6168
parent 10187
cd500ea7f787
child 10422
e28b89693f37
diff -r 7d0e5ca7eb3e -r 7caa05cd6168 src/eric7/QScintilla/SearchReplaceWidget.py
--- a/src/eric7/QScintilla/SearchReplaceWidget.py	Fri Sep 15 10:27:46 2023 +0200
+++ b/src/eric7/QScintilla/SearchReplaceWidget.py	Fri Sep 22 17:24:02 2023 +0200
@@ -54,6 +54,8 @@
         super().__init__(parent)
         self.setupUi(self)
 
+        self.layout().setContentsMargins(1, 1, 1, 1)
+
         self.__viewmanager = vm
         self.__isMiniEditor = vm is parent
         self.__sliding = sliding
@@ -151,7 +153,22 @@
 
         self.__findtextComboStyleSheet = self.findtextCombo.styleSheet()
 
+        self.modeToggleButton.clicked.connect(self.__toggleReplaceMode)
+
         # define actions
+        self.modeToggleAct = EricAction(
+            self.tr("Toggle Mode"),
+            self.tr("Toggle Mode"),
+            0,
+            0,
+            self,
+            "search_widget_togle_mode",
+        )
+        self.modeToggleAct.triggered.connect(self.__toggleReplaceMode)
+        self.modeToggleAct.setShortcutContext(
+            Qt.ShortcutContext.WidgetWithChildrenShortcut
+        )
+
         self.findNextAct = EricAction(
             self.tr("Find Next"),
             self.tr("Find Next"),
@@ -220,6 +237,7 @@
             Qt.ShortcutContext.WidgetWithChildrenShortcut
         )
 
+        self.addAction(self.modeToggleAct)
         self.addAction(self.findNextAct)
         self.addAction(self.findPrevAct)
         self.addAction(self.replaceAndSearchAct)
@@ -280,6 +298,14 @@
         sequences as in the view manager.
         """
         if not self.__isMiniEditor:
+            if self.__replaceMode:
+                self.modeToggleAct.setShortcuts(
+                    self.__viewmanager.searchAct.shortcuts()
+                )
+            else:
+                self.modeToggleAct.setShortcuts(
+                    self.__viewmanager.replaceAct.shortcuts()
+                )
             self.findNextAct.setShortcuts(self.__viewmanager.searchNextAct.shortcuts())
             self.findPrevAct.setShortcuts(self.__viewmanager.searchPrevAct.shortcuts())
 
@@ -423,6 +449,19 @@
 
         return startLine, startIndex, endLine, endIndex
 
+    @pyqtSlot()
+    def __toggleReplaceMode(self):
+        """
+        Private slot to toggle the widget mode.
+        """
+        replaceMode = not self.__replaceMode
+        if self.__sliding:
+            self.__topWidget.show(
+                text=self.findtextCombo.currentText(), replaceMode=replaceMode
+            )
+        else:
+            self.show(text=self.findtextCombo.currentText(), replaceMode=replaceMode)
+
     @pyqtSlot(str)
     def on_findtextCombo_editTextChanged(self, txt):
         """
@@ -969,6 +1008,8 @@
         @param text text to be shown in the findtext edit (defaults to "")
         @type str (optional)
         """
+        self.modeToggleButton.setIcon(EricPixmapCache.getIcon("1downarrow"))
+
         # hide the replace related widgets
         for widget in (
             self.replaceLabel,
@@ -1294,7 +1335,9 @@
         @param text text to be shown in the findtext edit (defaults to "")
         @type str (optional)
         """
-        # hide the replace related widgets
+        self.modeToggleButton.setIcon(EricPixmapCache.getIcon("1uparrow"))
+
+        # show the replace related widgets
         for widget in (
             self.replaceLabel,
             self.replacetextCombo,

eric ide

mercurial