--- 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):