305 |
305 |
306 self.__resultsWidget = PdfSearchResultsWidget(self) |
306 self.__resultsWidget = PdfSearchResultsWidget(self) |
307 self.__resultsWidget.setDocument(document) |
307 self.__resultsWidget.setDocument(document) |
308 self.__layout.addWidget(self.__resultsWidget) |
308 self.__layout.addWidget(self.__resultsWidget) |
309 |
309 |
|
310 self.__infoLabel = QLabel(self) |
|
311 self.__infoLabel.setAlignment(Qt.AlignmentFlag.AlignCenter) |
|
312 self.__layout.addWidget(self.__infoLabel) |
|
313 |
310 self.setLayout(self.__layout) |
314 self.setLayout(self.__layout) |
311 |
315 |
312 self.__searchEdit.setEnabled(False) |
316 self.__searchEdit.setEnabled(False) |
313 self.__resultsWidget.setEnabled(False) |
317 self.__resultsWidget.setEnabled(False) |
314 self.__findPrevButton.setEnabled(False) |
318 self.__findPrevButton.setEnabled(False) |
328 ) |
332 ) |
329 self.__findNextButton.clicked.connect(self.nextResult) |
333 self.__findNextButton.clicked.connect(self.nextResult) |
330 self.__findPrevButton.clicked.connect(self.previousResult) |
334 self.__findPrevButton.clicked.connect(self.previousResult) |
331 self.__resultsWidget.searchCleared.connect(self.searchCleared) |
335 self.__resultsWidget.searchCleared.connect(self.searchCleared) |
332 self.__resultsWidget.searchResult.connect(self.searchResult) |
336 self.__resultsWidget.searchResult.connect(self.searchResult) |
|
337 self.__resultsWidget.rowCountChanged.connect(self.__updateInfoLabel) |
|
338 self.__resultsWidget.currentItemChanged.connect(self.__updateInfoLabel) |
|
339 |
|
340 self.__updateInfoLabel() |
333 |
341 |
334 @pyqtSlot(QPdfDocument.Status) |
342 @pyqtSlot(QPdfDocument.Status) |
335 def __handleDocumentStatus(self, status): |
343 def __handleDocumentStatus(self, status): |
336 """ |
344 """ |
337 Private slot to handle a change of the document status. |
345 Private slot to handle a change of the document status. |
404 """ |
412 """ |
405 Public slot to 'activate' a search. |
413 Public slot to 'activate' a search. |
406 """ |
414 """ |
407 self.__searchEdit.setFocus(Qt.FocusReason.OtherFocusReason) |
415 self.__searchEdit.setFocus(Qt.FocusReason.OtherFocusReason) |
408 self.__searchEdit.selectAll() |
416 self.__searchEdit.selectAll() |
|
417 |
|
418 @pyqtSlot() |
|
419 def __updateInfoLabel(self): |
|
420 """ |
|
421 Private slot to update the data of the info label. |
|
422 """ |
|
423 rowCount = self.__resultsWidget.rowCount() |
|
424 if rowCount: |
|
425 currentRow = self.__resultsWidget.currentRow() |
|
426 if currentRow == -1: # no result selected yet |
|
427 self.__infoLabel.setText(self.tr("%n Result(s)", "", rowCount)) |
|
428 else: |
|
429 self.__infoLabel.setText( |
|
430 self.tr("{0} of %n Results", "", rowCount).format(currentRow + 1) |
|
431 ) |
|
432 else: |
|
433 self.__infoLabel.setText(self.tr("No results")) |