diff options
Diffstat (limited to 'qutebrowser/browser/webkit/webkittab.py')
-rw-r--r-- | qutebrowser/browser/webkit/webkittab.py | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 24d232c9c..05e48b2f6 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -115,14 +115,12 @@ class WebKitSearch(browsertab.AbstractSearch): def _empty_flags(self): return QWebPage.FindFlags(0) # type: ignore[call-overload] - def _args_to_flags(self, reverse, ignore_case, wrap): + def _args_to_flags(self, reverse, ignore_case): flags = self._empty_flags() if self._is_case_sensitive(ignore_case): flags |= QWebPage.FindCaseSensitively if reverse: flags |= QWebPage.FindBackward - if wrap: - flags |= QWebPage.FindWrapsAroundDocument return flags def _call_cb(self, callback, found, text, flags, caller): @@ -164,12 +162,12 @@ class WebKitSearch(browsertab.AbstractSearch): '', QWebPage.HighlightAllOccurrences) # type: ignore[arg-type] def search(self, text, *, ignore_case=usertypes.IgnoreCase.never, - reverse=False, wrap=True, result_cb=None): + reverse=False, result_cb=None): # Don't go to next entry on duplicate search if self.text == text and self.search_displayed: log.webview.debug("Ignoring duplicate search request" " for {}, but resetting flags".format(text)) - self._flags = self._args_to_flags(reverse, ignore_case, wrap) + self._flags = self._args_to_flags(reverse, ignore_case) return # Clear old search results, this is done automatically on QtWebEngine. @@ -177,7 +175,7 @@ class WebKitSearch(browsertab.AbstractSearch): self.text = text self.search_displayed = True - self._flags = self._args_to_flags(reverse, ignore_case, wrap) + self._flags = self._args_to_flags(reverse, ignore_case) # We actually search *twice* - once to highlight everything, then again # to get a mark so we can navigate. found = self._widget.findText(text, self._flags) @@ -185,20 +183,32 @@ class WebKitSearch(browsertab.AbstractSearch): self._flags | QWebPage.HighlightAllOccurrences) self._call_cb(result_cb, found, text, self._flags, 'search') - def next_result(self, *, result_cb=None): + def next_result(self, *, wrap=False, result_cb=None): self.search_displayed = True + # The int() here makes sure we get a copy of the flags. + flags = QWebPage.FindFlags( + int(self._flags)) # type: ignore[call-overload] + + if wrap: + flags |= QWebPage.FindWrapsAroundDocument + found = self._widget.findText(self.text, self._flags) # type: ignore[arg-type] self._call_cb(result_cb, found, self.text, self._flags, 'next_result') - def prev_result(self, *, result_cb=None): + def prev_result(self, *, wrap=False, result_cb=None): self.search_displayed = True # The int() here makes sure we get a copy of the flags. flags = QWebPage.FindFlags( int(self._flags)) # type: ignore[call-overload] + if flags & QWebPage.FindBackward: flags &= ~QWebPage.FindBackward else: flags |= QWebPage.FindBackward + + if wrap: + flags |= QWebPage.FindWrapsAroundDocument + found = self._widget.findText(self.text, flags) # type: ignore[arg-type] self._call_cb(result_cb, found, self.text, flags, 'prev_result') |