Add browser_did_fetch_columns hook and some doc

This commit is contained in:
RumovZ 2021-04-11 10:27:43 +02:00
parent eafa2afc0d
commit db32179a25
2 changed files with 25 additions and 2 deletions

View File

@ -817,16 +817,27 @@ def backend_color_to_aqt_color(color: BrowserRow.Color.V) -> Optional[Tuple[str,
class DataModel(QAbstractTableModel):
"""Data manager for the browser table.
_items -- The card or note ids currently hold and corresponding to the
table's rows.
_rows -- The cached data objects to render items to rows.
columns -- The data objects of all available columns, used to define the display
of active columns and list all toggleable columns to the user.
_block_updates -- If True, serve stale content to avoid hitting the DB.
_stale_cutoff -- A threshold to decide whether a cached row has gone stale.
"""
def __init__(self, col: Collection, state: ItemState) -> None:
QAbstractTableModel.__init__(self)
self.col: Collection = col
self.columns: Dict[str, Column] = dict(
((c.key, c) for c in self.col.all_browser_columns())
)
gui_hooks.browser_did_fetch_columns(self.columns)
self._state: ItemState = state
self._items: Sequence[ItemId] = []
self._rows: Dict[int, CellRow] = {}
# serve stale content to avoid hitting the DB?
self._block_updates = False
self._stale_cutoff = 0.0

View File

@ -16,7 +16,7 @@ prefix = """\
from __future__ import annotations
from typing import Any, Callable, List, Sequence, Tuple, Optional, Union
from typing import Any, Callable, Dict, List, Sequence, Tuple, Optional, Union
import anki
import aqt
@ -423,6 +423,18 @@ hooks = [
represents.
""",
),
Hook(
name="browser_did_fetch_columns",
args=["columns: Dict[str, aqt.table.Column]"],
doc="""Allows you to add custom columns to the browser.
columns is a dictionary of data obejcts. You can add an entry with a custom
column to describe how it should be displayed in the browser or modify
existing entries.
Every column in the dictionary will be toggleable by the user.
""",
),
# Main window states
###################
# these refer to things like deckbrowser, overview and reviewer state,