mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 00:12:25 -04:00
add find_deck_in_tree()
This commit is contained in:
parent
578b60c104
commit
8eada2b57d
2 changed files with 14 additions and 11 deletions
|
@ -12,6 +12,7 @@ from anki import hooks
|
|||
from anki.consts import *
|
||||
from anki.errors import DeckRenameError
|
||||
from anki.lang import _
|
||||
from anki.rsbackend import DeckTreeNode
|
||||
from anki.utils import ids2str, intTime
|
||||
|
||||
# legacy code may pass this in as the type argument to .id()
|
||||
|
@ -175,6 +176,16 @@ class DeckManager:
|
|||
def deck_tree(self) -> pb.DeckTreeNode:
|
||||
return self.col.backend.deck_tree(include_counts=False)
|
||||
|
||||
@classmethod
|
||||
def find_deck_in_tree(cls, node: DeckTreeNode, deck_id: int) -> Optional[DeckTreeNode]:
|
||||
if node.deck_id == deck_id:
|
||||
return node
|
||||
for child in node.children:
|
||||
match = cls.find_deck_in_tree(child, deck_id)
|
||||
if match:
|
||||
return match
|
||||
return None
|
||||
|
||||
def all(self) -> List:
|
||||
"All decks. Expensive; prefer all_names_and_ids()"
|
||||
return self.get_all_legacy()
|
||||
|
|
|
@ -268,18 +268,10 @@ where id > ?""",
|
|||
|
||||
def _collapse(self, did: int) -> None:
|
||||
self.mw.col.decks.collapse(did)
|
||||
self._toggle_collapsed_in_node(did, self._dueTree)
|
||||
self._renderPage(reuse=True)
|
||||
|
||||
def _toggle_collapsed_in_node(self, deck_id: int, node: DeckTreeNode) -> bool:
|
||||
"Toggle collapsed on deck in tree. Returns true if found."
|
||||
if node.deck_id == deck_id:
|
||||
node = self.mw.col.decks.find_deck_in_tree(self._dueTree, did)
|
||||
if node:
|
||||
node.collapsed = not node.collapsed
|
||||
return True
|
||||
for child in node.children:
|
||||
if self._toggle_collapsed_in_node(deck_id, child):
|
||||
return True
|
||||
return False
|
||||
self._renderPage(reuse=True)
|
||||
|
||||
def _dragDeckOnto(self, draggedDeckDid, ontoDeckDid):
|
||||
try:
|
||||
|
|
Loading…
Reference in a new issue