summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/webkit/webkittab.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/webkit/webkittab.py')
-rw-r--r--qutebrowser/browser/webkit/webkittab.py26
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')