--- a/src/eric7/PdfViewer/PdfSearchWidget.py Fri Jan 20 15:50:26 2023 +0100 +++ b/src/eric7/PdfViewer/PdfSearchWidget.py Fri Jan 20 15:50:55 2023 +0100 @@ -307,6 +307,10 @@ self.__resultsWidget.setDocument(document) self.__layout.addWidget(self.__resultsWidget) + self.__infoLabel = QLabel(self) + self.__infoLabel.setAlignment(Qt.AlignmentFlag.AlignCenter) + self.__layout.addWidget(self.__infoLabel) + self.setLayout(self.__layout) self.__searchEdit.setEnabled(False) @@ -330,6 +334,10 @@ self.__findPrevButton.clicked.connect(self.previousResult) self.__resultsWidget.searchCleared.connect(self.searchCleared) self.__resultsWidget.searchResult.connect(self.searchResult) + self.__resultsWidget.rowCountChanged.connect(self.__updateInfoLabel) + self.__resultsWidget.currentItemChanged.connect(self.__updateInfoLabel) + + self.__updateInfoLabel() @pyqtSlot(QPdfDocument.Status) def __handleDocumentStatus(self, status): @@ -406,3 +414,20 @@ """ self.__searchEdit.setFocus(Qt.FocusReason.OtherFocusReason) self.__searchEdit.selectAll() + + @pyqtSlot() + def __updateInfoLabel(self): + """ + Private slot to update the data of the info label. + """ + rowCount = self.__resultsWidget.rowCount() + if rowCount: + currentRow = self.__resultsWidget.currentRow() + if currentRow == -1: # no result selected yet + self.__infoLabel.setText(self.tr("%n Result(s)", "", rowCount)) + else: + self.__infoLabel.setText( + self.tr("{0} of %n Results", "", rowCount).format(currentRow + 1) + ) + else: + self.__infoLabel.setText(self.tr("No results"))