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. |