src/eric7/PdfViewer/PdfSearchWidget.py

branch
pdf_viewer
changeset 9707
717f95e35ca8
parent 9706
c0ff0b4d5657
child 9709
c89fc15ecf56
--- a/src/eric7/PdfViewer/PdfSearchWidget.py	Wed Jan 18 16:38:29 2023 +0100
+++ b/src/eric7/PdfViewer/PdfSearchWidget.py	Fri Jan 20 15:05:59 2023 +0100
@@ -28,11 +28,16 @@
         search results after the current one
     @signal searchPrevAvailable(bool) emitted to indicate the availability of
         search results before the current one
+    @signal searchResult(QPdfLink) emitted to send the link of a search result
+    @signal searchCleared() emitted to indicate that the search results have been
+        cleared
     """
 
     rowCountChanged = pyqtSignal()
     searchNextAvailable = pyqtSignal(bool)
     searchPrevAvailable = pyqtSignal(bool)
+    searchResult = pyqtSignal(QPdfLink)
+    searchCleared = pyqtSignal()
 
     def __init__(self, parent=None):
         """
@@ -99,6 +104,7 @@
         """
         self.clear()
 
+        self.searchCleared.emit()
         self.rowCountChanged.emit()
         self.searchNextAvailable.emit(False)
         self.searchPrevAvailable.emit(False)
@@ -150,6 +156,9 @@
             )
             self.setItemWidget(itm, 1, resultLabel)
 
+            if Preferences.getPdfViewer("PdfSearchHighlightAll"):
+                self.searchResult.emit(self.__searchModel.resultAtIndex(row))
+
         for column in range(self.columnCount()):
             self.resizeColumnToContents(column)
 
@@ -238,11 +247,16 @@
         search results after the current one
     @signal searchPrevAvailable(bool) emitted to indicate the availability of
         search results before the current one
+    @signal searchResult(QPdfLink) emitted to send the link of a search result
+    @signal searchCleared() emitted to indicate that the search results have been
+        cleared
     """
 
     searchResultActivated = pyqtSignal(QPdfLink)
     searchNextAvailable = pyqtSignal(bool)
     searchPrevAvailable = pyqtSignal(bool)
+    searchResult = pyqtSignal(QPdfLink)
+    searchCleared = pyqtSignal()
 
     def __init__(self, document, parent=None):
         """
@@ -314,6 +328,8 @@
         )
         self.__findNextButton.clicked.connect(self.nextResult)
         self.__findPrevButton.clicked.connect(self.previousResult)
+        self.__resultsWidget.searchCleared.connect(self.searchCleared)
+        self.__resultsWidget.searchResult.connect(self.searchResult)
 
     @pyqtSlot(QPdfDocument.Status)
     def __handleDocumentStatus(self, status):

eric ide

mercurial