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: