mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 01:06:35 -04:00
Fix state toggling when current is deleted
This commit is contained in:
parent
d6bac20c58
commit
fb86320038
1 changed files with 6 additions and 17 deletions
|
@ -432,7 +432,7 @@ class Table:
|
||||||
if rows:
|
if rows:
|
||||||
if len(rows) < self.SELECTION_LIMIT:
|
if len(rows) < self.SELECTION_LIMIT:
|
||||||
return rows
|
return rows
|
||||||
if current in rows:
|
if current and current in rows:
|
||||||
return [current]
|
return [current]
|
||||||
return rows[0:1]
|
return rows[0:1]
|
||||||
return [current if current else 0]
|
return [current if current else 0]
|
||||||
|
@ -454,9 +454,10 @@ class Table:
|
||||||
selected_rows = self._model.get_item_rows(
|
selected_rows = self._model.get_item_rows(
|
||||||
self._state.get_new_items(self._selected_items)
|
self._state.get_new_items(self._selected_items)
|
||||||
)
|
)
|
||||||
current_row = self._current_item and self._model.get_item_row(
|
current_row = None
|
||||||
self._state.get_new_item(self._current_item)
|
if self._current_item:
|
||||||
)
|
if new_current := self._state.get_new_items([self._current_item]):
|
||||||
|
current_row = self._model.get_item_row(new_current[0])
|
||||||
return selected_rows, current_row
|
return selected_rows, current_row
|
||||||
|
|
||||||
# Move
|
# Move
|
||||||
|
@ -607,15 +608,9 @@ class ItemState(ABC):
|
||||||
def toggle_state(self) -> ItemState:
|
def toggle_state(self) -> ItemState:
|
||||||
"""Return an instance of the other state."""
|
"""Return an instance of the other state."""
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def get_new_item(self, old_item: ItemId) -> ItemId:
|
|
||||||
"""Given an id from the other state, return the corresponding id for
|
|
||||||
this state."""
|
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_new_items(self, old_items: Sequence[ItemId]) -> ItemList:
|
def get_new_items(self, old_items: Sequence[ItemId]) -> ItemList:
|
||||||
"""Given a list of ids from the other state, return the corresponding
|
"""Given a list of ids from the other state, return the corresponding ids for this state."""
|
||||||
ids for this state."""
|
|
||||||
|
|
||||||
|
|
||||||
class CardState(ItemState):
|
class CardState(ItemState):
|
||||||
|
@ -707,9 +702,6 @@ class CardState(ItemState):
|
||||||
def toggle_state(self) -> NoteState:
|
def toggle_state(self) -> NoteState:
|
||||||
return NoteState(self.col)
|
return NoteState(self.col)
|
||||||
|
|
||||||
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[ItemId]) -> Sequence[CardId]:
|
def get_new_items(self, old_items: Sequence[ItemId]) -> Sequence[CardId]:
|
||||||
return super().card_ids_from_note_ids(old_items)
|
return super().card_ids_from_note_ids(old_items)
|
||||||
|
|
||||||
|
@ -795,9 +787,6 @@ class NoteState(ItemState):
|
||||||
def toggle_state(self) -> CardState:
|
def toggle_state(self) -> CardState:
|
||||||
return CardState(self.col)
|
return CardState(self.col)
|
||||||
|
|
||||||
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[ItemId]) -> Sequence[NoteId]:
|
def get_new_items(self, old_items: Sequence[ItemId]) -> Sequence[NoteId]:
|
||||||
return super().note_ids_from_card_ids(old_items)
|
return super().note_ids_from_card_ids(old_items)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue