src/eric7/PdfViewer/PdfSearchWidget.py

branch
pdf_viewer
changeset 9709
c89fc15ecf56
parent 9707
717f95e35ca8
child 9722
63135ab601e7
--- 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"))

eric ide

mercurial