Merge 352138aa4e into 7e3df43463
This commit is contained in:
commit
920e0773bb
|
|
@ -150,6 +150,8 @@ class WebEngineSearch(browsertab.AbstractSearch):
|
|||
self._pending_searches = 0
|
||||
self.match = browsertab.SearchMatch()
|
||||
self._old_match = browsertab.SearchMatch()
|
||||
self._debounce_timer = usertypes.Timer(self)
|
||||
self._debounce_timer.setSingleShot(True)
|
||||
|
||||
def _store_flags(self, reverse, ignore_case):
|
||||
self._flags.case_sensitive = self._is_case_sensitive(ignore_case)
|
||||
|
|
@ -212,7 +214,7 @@ class WebEngineSearch(browsertab.AbstractSearch):
|
|||
log.webview.debug(f"Active search match: {self.match}")
|
||||
self.match_changed.emit(self.match)
|
||||
|
||||
def search(self, text, *, ignore_case=usertypes.IgnoreCase.never,
|
||||
def _search(self, text, *, ignore_case=usertypes.IgnoreCase.never,
|
||||
reverse=False, result_cb=None):
|
||||
# Don't go to next entry on duplicate search
|
||||
if self.text == text and self.search_displayed:
|
||||
|
|
@ -227,6 +229,20 @@ class WebEngineSearch(browsertab.AbstractSearch):
|
|||
|
||||
self._find(text, self._flags, result_cb, 'search')
|
||||
|
||||
def search(self, *args, **kwargs):
|
||||
delay = config.val.search.delay
|
||||
if delay:
|
||||
self._debounce_timer.stop()
|
||||
|
||||
self._debounce_timer.timeout.disconnect()
|
||||
self._debounce_timer.timeout.connect(
|
||||
lambda: self._search(*args, **kwargs)
|
||||
)
|
||||
|
||||
self._debounce_timer.start(delay)
|
||||
else:
|
||||
self._search(*args, **kwargs)
|
||||
|
||||
def clear(self):
|
||||
if self.search_displayed:
|
||||
self.cleared.emit()
|
||||
|
|
|
|||
|
|
@ -50,6 +50,16 @@ changelog_after_upgrade:
|
|||
ignore_case:
|
||||
renamed: search.ignore_case
|
||||
|
||||
search.delay:
|
||||
type:
|
||||
name: Int
|
||||
minval: 0
|
||||
maxval: maxint
|
||||
default: 400
|
||||
desc: Delay (in milliseconds) between last keystroke when searching and the
|
||||
search being submitted. Larger values produce fewer redundant searches but
|
||||
also delay receiving search results.
|
||||
|
||||
search.ignore_case:
|
||||
type: IgnoreCase
|
||||
default: smart
|
||||
|
|
|
|||
|
|
@ -13,6 +13,11 @@ def turn_on_scroll_logging(quteproc):
|
|||
quteproc.turn_on_scroll_logging(no_scroll_filtering=True)
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def disable_search_delay(quteproc):
|
||||
quteproc.set_setting('search.delay', '0')
|
||||
|
||||
|
||||
@bdd.then(bdd.parsers.parse("the page should be scrolled to {x} {y}"))
|
||||
def check_y(request, quteproc, x, y):
|
||||
data = quteproc.get_session()
|
||||
|
|
|
|||
Loading…
Reference in New Issue