Add a way to pass information from browser_will_search to browser_did_search without having it going to the backend (#3945)

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

* Allow None for SearchContext.properties

* Adding myself in CONTRIBUTORS

* Rename SearchContext.properties to SearchContext.addon_metadata

* Revert "Adding myself in CONTRIBUTORS"

This reverts commit a993577279.

* Reapply "Adding myself in CONTRIBUTORS"

This reverts commit f3ce51c83d.
This commit is contained in:
Jonathan Schoreels 2025-04-25 10:40:24 +02:00 committed by GitHub
parent 0aaa6383f8
commit 863fe3cd50
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 10 additions and 0 deletions

View file

@ -222,6 +222,7 @@ ikkz <ylei.mk@gmail.com>
derivativeoflog7 <https://github.com/derivativeoflog7> derivativeoflog7 <https://github.com/derivativeoflog7>
rreemmii-dev <https://github.com/rreemmii-dev> rreemmii-dev <https://github.com/rreemmii-dev>
babofitos <https://github.com/babofitos> babofitos <https://github.com/babofitos>
Jonathan Schoreels <https://github.com/JSchoreels>
******************** ********************

View file

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

View file

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

View file

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