diff options
author | Tim Gadanidis <tim@gadanidis.ca> | 2021-11-04 12:38:13 -0400 |
---|---|---|
committer | Tim Gadanidis <tim@gadanidis.ca> | 2021-11-04 13:36:40 -0400 |
commit | 7c5eb1e22c86701b4cdee502ff0301fafde1932a (patch) | |
tree | 3ccfe351db5dca4f12f84eb02a40c440256dc0b8 | |
parent | 0b1d9ed3bc9ab9dc4658d658a669f99f438fb2fc (diff) | |
download | qutebrowser-7c5eb1e22c86701b4cdee502ff0301fafde1932a.tar.gz qutebrowser-7c5eb1e22c86701b4cdee502ff0301fafde1932a.zip |
Use a helper method to (re)set search flags
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 21 | ||||
-rw-r--r-- | qutebrowser/browser/webkit/webkittab.py | 28 |
2 files changed, 22 insertions, 27 deletions
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 9d253a833..926ccf133 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -200,6 +200,14 @@ class WebEngineSearch(browsertab.AbstractSearch): def _empty_flags(self): return QWebEnginePage.FindFlags(0) # type: ignore[call-overload] + def _args_to_flags(self, reverse, ignore_case): + flags = self._empty_flags() + if self._is_case_sensitive(ignore_case): + flags |= QWebEnginePage.FindCaseSensitively + if reverse: + flags |= QWebEnginePage.FindBackward + return flags + def connect_signals(self): self._wrap_handler.connect_signal(self._widget.page()) @@ -247,22 +255,13 @@ class WebEngineSearch(browsertab.AbstractSearch): if self.text == text and self.search_displayed: log.webview.debug("Ignoring duplicate search request" " for {}, but resetting flags".format(text)) - # Reset flags - self._flags = self._empty_flags() - if self._is_case_sensitive(ignore_case): - self._flags |= QWebEnginePage.FindCaseSensitively - if reverse: - self._flags |= QWebEnginePage.FindBackward + self._flags = self._args_to_flags(reverse, ignore_case) return self.text = text - self._flags = self._empty_flags() + self._flags = self._args_to_flags(reverse, ignore_case) self._wrap_handler.reset_match_data() self._wrap_handler.flag_wrap = wrap - if self._is_case_sensitive(ignore_case): - self._flags |= QWebEnginePage.FindCaseSensitively - if reverse: - self._flags |= QWebEnginePage.FindBackward self._find(text, self._flags, result_cb, 'search') diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 05e80295d..6575f532c 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -108,6 +108,16 @@ 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): + 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): """Call the given callback if it's non-None. @@ -151,15 +161,7 @@ class WebKitSearch(browsertab.AbstractSearch): if self.text == text and self.search_displayed: log.webview.debug("Ignoring duplicate search request" " for {}, but resetting flags".format(text)) - - # Reset flags - self._flags = self._empty_flags() - if self._is_case_sensitive(ignore_case): - self._flags |= QWebPage.FindCaseSensitively - if reverse: - self._flags |= QWebPage.FindBackward - if wrap: - self._flags |= QWebPage.FindWrapsAroundDocument + self._flags = self._args_to_flags(reverse, ignore_case, reverse) return # Clear old search results, this is done automatically on QtWebEngine. @@ -167,13 +169,7 @@ class WebKitSearch(browsertab.AbstractSearch): self.text = text self.search_displayed = True - self._flags = self._empty_flags() - if self._is_case_sensitive(ignore_case): - self._flags |= QWebPage.FindCaseSensitively - if reverse: - self._flags |= QWebPage.FindBackward - if wrap: - self._flags |= QWebPage.FindWrapsAroundDocument + self._flags = self._args_to_flags(reverse, ignore_case, wrap) # 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) |