src/eric7/PdfViewer/PdfSearchWidget.py

branch
pdf_viewer
changeset 9707
717f95e35ca8
parent 9706
c0ff0b4d5657
child 9709
c89fc15ecf56
equal deleted inserted replaced
9706:c0ff0b4d5657 9707:717f95e35ca8
26 of items 26 of items
27 @signal searchNextAvailable(bool) emitted to indicate the availability of 27 @signal searchNextAvailable(bool) emitted to indicate the availability of
28 search results after the current one 28 search results after the current one
29 @signal searchPrevAvailable(bool) emitted to indicate the availability of 29 @signal searchPrevAvailable(bool) emitted to indicate the availability of
30 search results before the current one 30 search results before the current one
31 @signal searchResult(QPdfLink) emitted to send the link of a search result
32 @signal searchCleared() emitted to indicate that the search results have been
33 cleared
31 """ 34 """
32 35
33 rowCountChanged = pyqtSignal() 36 rowCountChanged = pyqtSignal()
34 searchNextAvailable = pyqtSignal(bool) 37 searchNextAvailable = pyqtSignal(bool)
35 searchPrevAvailable = pyqtSignal(bool) 38 searchPrevAvailable = pyqtSignal(bool)
39 searchResult = pyqtSignal(QPdfLink)
40 searchCleared = pyqtSignal()
36 41
37 def __init__(self, parent=None): 42 def __init__(self, parent=None):
38 """ 43 """
39 Constructor 44 Constructor
40 45
97 """ 102 """
98 Private slot to clear the list of search results. 103 Private slot to clear the list of search results.
99 """ 104 """
100 self.clear() 105 self.clear()
101 106
107 self.searchCleared.emit()
102 self.rowCountChanged.emit() 108 self.rowCountChanged.emit()
103 self.searchNextAvailable.emit(False) 109 self.searchNextAvailable.emit(False)
104 self.searchPrevAvailable.emit(False) 110 self.searchPrevAvailable.emit(False)
105 111
106 @pyqtSlot(QModelIndex, int, int) 112 @pyqtSlot(QModelIndex, int, int)
148 "context before, search string, context after" 154 "context before, search string, context after"
149 ).format(contextBefore, self.searchString(), contextAfter) 155 ).format(contextBefore, self.searchString(), contextAfter)
150 ) 156 )
151 self.setItemWidget(itm, 1, resultLabel) 157 self.setItemWidget(itm, 1, resultLabel)
152 158
159 if Preferences.getPdfViewer("PdfSearchHighlightAll"):
160 self.searchResult.emit(self.__searchModel.resultAtIndex(row))
161
153 for column in range(self.columnCount()): 162 for column in range(self.columnCount()):
154 self.resizeColumnToContents(column) 163 self.resizeColumnToContents(column)
155 164
156 self.rowCountChanged.emit() 165 self.rowCountChanged.emit()
157 self.searchNextAvailable.emit(True) 166 self.searchNextAvailable.emit(True)
236 result link 245 result link
237 @signal searchNextAvailable(bool) emitted to indicate the availability of 246 @signal searchNextAvailable(bool) emitted to indicate the availability of
238 search results after the current one 247 search results after the current one
239 @signal searchPrevAvailable(bool) emitted to indicate the availability of 248 @signal searchPrevAvailable(bool) emitted to indicate the availability of
240 search results before the current one 249 search results before the current one
250 @signal searchResult(QPdfLink) emitted to send the link of a search result
251 @signal searchCleared() emitted to indicate that the search results have been
252 cleared
241 """ 253 """
242 254
243 searchResultActivated = pyqtSignal(QPdfLink) 255 searchResultActivated = pyqtSignal(QPdfLink)
244 searchNextAvailable = pyqtSignal(bool) 256 searchNextAvailable = pyqtSignal(bool)
245 searchPrevAvailable = pyqtSignal(bool) 257 searchPrevAvailable = pyqtSignal(bool)
258 searchResult = pyqtSignal(QPdfLink)
259 searchCleared = pyqtSignal()
246 260
247 def __init__(self, document, parent=None): 261 def __init__(self, document, parent=None):
248 """ 262 """
249 Constructor 263 Constructor
250 264
312 self.__resultsWidget.searchPrevAvailable.connect( 326 self.__resultsWidget.searchPrevAvailable.connect(
313 self.__findPrevButton.setEnabled 327 self.__findPrevButton.setEnabled
314 ) 328 )
315 self.__findNextButton.clicked.connect(self.nextResult) 329 self.__findNextButton.clicked.connect(self.nextResult)
316 self.__findPrevButton.clicked.connect(self.previousResult) 330 self.__findPrevButton.clicked.connect(self.previousResult)
331 self.__resultsWidget.searchCleared.connect(self.searchCleared)
332 self.__resultsWidget.searchResult.connect(self.searchResult)
317 333
318 @pyqtSlot(QPdfDocument.Status) 334 @pyqtSlot(QPdfDocument.Status)
319 def __handleDocumentStatus(self, status): 335 def __handleDocumentStatus(self, status):
320 """ 336 """
321 Private slot to handle a change of the document status. 337 Private slot to handle a change of the document status.

eric ide

mercurial