Item -> ItemId

This commit is contained in:
Damien Elmes 2021-03-29 16:52:41 +10:00
parent 28aae21d51
commit 0269a4a8f4

View file

@ -39,7 +39,7 @@ from aqt.utils import (
tr,
)
Item = Union[CardId, NoteId]
ItemId = Union[CardId, NoteId]
ItemList = Union[Sequence[CardId], Sequence[NoteId]]
@ -50,7 +50,7 @@ class SearchContext:
order: Union[bool, str] = True
# if set, provided card ids will be used instead of the regular search
# fixme: legacy support for card_ids?
ids: Optional[Sequence[Item]] = None
ids: Optional[Sequence[ItemId]] = None
class Table:
@ -66,8 +66,8 @@ class Table:
)
self._model = DataModel(self.col, self._state)
self._view: Optional[QTableView] = None
self._current_item: Optional[Item] = None
self._selected_items: Sequence[Item] = []
self._current_item: Optional[ItemId] = None
self._selected_items: Sequence[ItemId] = []
def set_view(self, view: QTableView) -> None:
self._view = view
@ -531,12 +531,12 @@ class ItemState(ABC):
# Stateless Helpers
def note_ids_from_card_ids(self, items: Sequence[Item]) -> Sequence[NoteId]:
def note_ids_from_card_ids(self, items: Sequence[ItemId]) -> Sequence[NoteId]:
return self.col.db.list(
f"select distinct nid from cards where id in {ids2str(items)}"
)
def card_ids_from_note_ids(self, items: Sequence[Item]) -> Sequence[CardId]:
def card_ids_from_note_ids(self, items: Sequence[ItemId]) -> Sequence[CardId]:
return self.col.db.list(f"select id from cards where nid in {ids2str(items)}")
# Columns and sorting
@ -572,29 +572,29 @@ class ItemState(ABC):
# Get objects
@abstractmethod
def get_card(self, item: Item) -> Card:
def get_card(self, item: ItemId) -> Card:
"""Return the item if it's a card or its first card if it's a note."""
@abstractmethod
def get_note(self, item: Item) -> Note:
def get_note(self, item: ItemId) -> Note:
"""Return the item if it's a note or its note if it's a card."""
# Get ids
@abstractmethod
def find_items(self, search: str, order: Union[bool, str]) -> Sequence[Item]:
def find_items(self, search: str, order: Union[bool, str]) -> Sequence[ItemId]:
"""Return the item ids fitting the given search and order."""
@abstractmethod
def get_item_from_card_id(self, card: CardId) -> Item:
def get_item_from_card_id(self, card: CardId) -> ItemId:
"""Return the appropriate item id for a card id."""
@abstractmethod
def get_card_ids(self, items: Sequence[Item]) -> Sequence[CardId]:
def get_card_ids(self, items: Sequence[ItemId]) -> Sequence[CardId]:
"""Return the card ids for the given item ids."""
@abstractmethod
def get_note_ids(self, items: Sequence[Item]) -> Sequence[NoteId]:
def get_note_ids(self, items: Sequence[ItemId]) -> Sequence[NoteId]:
"""Return the note ids for the given item ids."""
# Toggle
@ -604,12 +604,12 @@ class ItemState(ABC):
"""Return an instance of the other state."""
@abstractmethod
def get_new_item(self, old_item: Item) -> Item:
def get_new_item(self, old_item: ItemId) -> ItemId:
"""Given an id from the other state, return the corresponding id for
this state."""
@abstractmethod
def get_new_items(self, old_items: Sequence[Item]) -> ItemList:
def get_new_items(self, old_items: Sequence[ItemId]) -> ItemList:
"""Given a list of ids from the other state, return the corresponding
ids for this state."""
@ -682,31 +682,31 @@ class CardState(ItemState):
self.col.set_config_bool(Config.Bool.BROWSER_SORT_BACKWARDS, order)
self._sort_backwards = order
def get_card(self, item: Item) -> Card:
def get_card(self, item: ItemId) -> Card:
return self.col.get_card(CardId(item))
def get_note(self, item: Item) -> Note:
def get_note(self, item: ItemId) -> Note:
return self.get_card(item).note()
def find_items(self, search: str, order: Union[bool, str]) -> Sequence[Item]:
def find_items(self, search: str, order: Union[bool, str]) -> Sequence[ItemId]:
return self.col.find_cards(search, order)
def get_item_from_card_id(self, card: CardId) -> Item:
def get_item_from_card_id(self, card: CardId) -> ItemId:
return card
def get_card_ids(self, items: Sequence[Item]) -> Sequence[CardId]:
def get_card_ids(self, items: Sequence[ItemId]) -> Sequence[CardId]:
return cast(Sequence[CardId], items)
def get_note_ids(self, items: Sequence[Item]) -> Sequence[NoteId]:
def get_note_ids(self, items: Sequence[ItemId]) -> Sequence[NoteId]:
return super().note_ids_from_card_ids(items)
def toggle_state(self) -> NoteState:
return NoteState(self.col)
def get_new_item(self, old_item: Item) -> CardId:
def get_new_item(self, old_item: ItemId) -> CardId:
return super().card_ids_from_note_ids([old_item])[0]
def get_new_items(self, old_items: Sequence[Item]) -> Sequence[CardId]:
def get_new_items(self, old_items: Sequence[ItemId]) -> Sequence[CardId]:
return super().card_ids_from_note_ids(old_items)
@ -770,31 +770,31 @@ class NoteState(ItemState):
self.col.set_config_bool(Config.Bool.BROWSER_NOTE_SORT_BACKWARDS, order)
self._sort_backwards = order
def get_card(self, item: Item) -> Card:
def get_card(self, item: ItemId) -> Card:
return self.get_note(item).cards()[0]
def get_note(self, item: Item) -> Note:
def get_note(self, item: ItemId) -> Note:
return self.col.get_note(NoteId(item))
def find_items(self, search: str, order: Union[bool, str]) -> Sequence[Item]:
def find_items(self, search: str, order: Union[bool, str]) -> Sequence[ItemId]:
return self.col.find_notes(search, order)
def get_item_from_card_id(self, card: CardId) -> Item:
def get_item_from_card_id(self, card: CardId) -> ItemId:
return self.get_card(card).note().id
def get_card_ids(self, items: Sequence[Item]) -> Sequence[CardId]:
def get_card_ids(self, items: Sequence[ItemId]) -> Sequence[CardId]:
return super().card_ids_from_note_ids(items)
def get_note_ids(self, items: Sequence[Item]) -> Sequence[NoteId]:
def get_note_ids(self, items: Sequence[ItemId]) -> Sequence[NoteId]:
return cast(Sequence[NoteId], items)
def toggle_state(self) -> CardState:
return CardState(self.col)
def get_new_item(self, old_item: Item) -> NoteId:
def get_new_item(self, old_item: ItemId) -> NoteId:
return super().note_ids_from_card_ids([old_item])[0]
def get_new_items(self, old_items: Sequence[Item]) -> Sequence[NoteId]:
def get_new_items(self, old_items: Sequence[ItemId]) -> Sequence[NoteId]:
return super().note_ids_from_card_ids(old_items)
@ -864,7 +864,7 @@ class DataModel(QAbstractTableModel):
QAbstractTableModel.__init__(self)
self.col: Collection = col
self._state: ItemState = state
self._items: Sequence[Item] = []
self._items: Sequence[ItemId] = []
self._rows: Dict[int, CellRow] = {}
self._last_refresh = 0.0
# serve stale content to avoid hitting the DB?
@ -956,10 +956,10 @@ class DataModel(QAbstractTableModel):
# Get items (card or note ids depending on state)
def get_item(self, index: QModelIndex) -> Item:
def get_item(self, index: QModelIndex) -> ItemId:
return self._items[index.row()]
def get_items(self, indices: List[QModelIndex]) -> Sequence[Item]:
def get_items(self, indices: List[QModelIndex]) -> Sequence[ItemId]:
return [self.get_item(index) for index in indices]
def get_card_ids(self, indices: List[QModelIndex]) -> Sequence[CardId]:
@ -970,13 +970,13 @@ class DataModel(QAbstractTableModel):
# Get row numbers from items
def get_item_row(self, item: Item) -> Optional[int]:
def get_item_row(self, item: ItemId) -> Optional[int]:
for row, i in enumerate(self._items):
if i == item:
return row
return None
def get_item_rows(self, items: Sequence[Item]) -> List[int]:
def get_item_rows(self, items: Sequence[ItemId]) -> List[int]:
rows = []
for row, i in enumerate(self._items):
if i in items: