src/eric7/QScintilla/SearchReplaceWidget.py

branch
eric7
changeset 10429
643989a1e2bd
parent 10422
e28b89693f37
child 10439
21c28b0f9e41
diff -r a071d4065202 -r 643989a1e2bd src/eric7/QScintilla/SearchReplaceWidget.py
--- a/src/eric7/QScintilla/SearchReplaceWidget.py	Wed Dec 20 14:58:58 2023 +0100
+++ b/src/eric7/QScintilla/SearchReplaceWidget.py	Wed Dec 20 15:42:44 2023 +0100
@@ -9,7 +9,7 @@
 
 import contextlib
 
-from PyQt6.QtCore import QEvent, Qt, pyqtSignal, pyqtSlot
+from PyQt6.QtCore import QEvent, Qt, QTimer, pyqtSignal, pyqtSlot
 from PyQt6.QtGui import QKeySequence
 from PyQt6.QtWidgets import (
     QFrame,
@@ -155,6 +155,12 @@
 
         self.modeToggleButton.clicked.connect(self.__toggleReplaceMode)
 
+        self.__quickSearchMarkOccurrencesTimer = QTimer(self)
+        self.__quickSearchMarkOccurrencesTimer.setSingleShot(True)
+        self.__quickSearchMarkOccurrencesTimer.timeout.connect(
+            self.__quickSearchMarkOccurrences
+        )
+
         # define actions
         self.modeToggleAct = EricAction(
             self.tr("Toggle Mode"),
@@ -520,7 +526,9 @@
                 txt = Utilities.unslash(txt)
 
             if Preferences.getEditor("QuickSearchMarkersEnabled"):
-                self.__quickSearchMarkOccurrences(txt)
+                self.__quickSearchMarkOccurrencesTimer.start(
+                    Preferences.getEditor("QuickSearchMarkOccurrencesTimeout")
+                )
 
             if self.selectionCheckBox.isChecked():
                 lineFrom, indexFrom, lineTo, indexTo = self.__selectionBoundary()
@@ -575,15 +583,17 @@
 
             self.__setSearchEditColors(ok)
 
-    def __quickSearchMarkOccurrences(self, txt):
+    @pyqtSlot()
+    def __quickSearchMarkOccurrences(self):
         """
-        Private method to mark all occurrences of the search text.
-
-        @param txt text to search for
-        @type str
+        Private slot to mark all occurrences of the current search text.
         """
         aw = self.__viewmanager.activeWindow()
 
+        txt = self.findtextCombo.currentText()
+        if self.escapeCheckBox.isChecked():
+            txt = Utilities.unslash(txt)
+
         if self.selectionCheckBox.isChecked():
             lineFrom, indexFrom, lineTo, indexTo = self.__selectionBoundary()
         else:

eric ide

mercurial