Add a way to pass information from browser_will_search to browser_did_search without having it going to the backend

This commit is contained in:
Jonathan Schoreels 2025-04-24 22:21:16 +02:00
parent 1e6c8b2006
commit ea0f299a4e
3 changed files with 8 additions and 0 deletions

View file

@ -29,6 +29,7 @@ class SearchContext:
browser: aqt.browser.Browser
order: bool | str | Column = True
reverse: bool = False
properties: dict = None
# if set, provided ids will be used instead of the regular search
ids: Sequence[ItemId] | None = None

View file

@ -269,6 +269,7 @@ class DataModel(QAbstractTableModel):
# invalid sort column in config
context.order = self.columns["noteCrt"]
context.reverse = self._state.sort_backwards
context.properties = {}
gui_hooks.browser_will_search(context)
if context.ids is None:
context.ids = self._state.find_items(

View file

@ -549,6 +549,9 @@ hooks = [
You can modify context.search to change the text that is sent to the
searching backend.
If you need to pass properties to the browser_did_search hook, you can
do it with context.properties
If you set context.ids to a list of ids, the regular search will
not be performed, and the provided ids will be used instead.
@ -578,6 +581,9 @@ hooks = [
backend did not recognize will be returned as an empty string, and can be
replaced with custom content.
You can retrieve properties passed from browser_will_search with
context.properties (for example to trigger post-processing filtering)
Columns is a list of string values identifying what each column in the row
represents.
""",