Add DECK_CURRENT as a SidebarItemType

Thus, disable renaming, deleting etc. for the current deck item.
As a consequence, editable is no longer needed as a field of SidebarItem
as it can be derived from its type.
This commit is contained in:
RumovZ 2021-03-03 09:15:36 +01:00
parent adaea7227e
commit c0d77896da

View file

@ -47,6 +47,7 @@ class SidebarItemType(Enum):
CARD_STATE_ROOT = auto() CARD_STATE_ROOT = auto()
CARD_STATE = auto() CARD_STATE = auto()
DECK_ROOT = auto() DECK_ROOT = auto()
DECK_CURRENT = auto()
DECK = auto() DECK = auto()
NOTETYPE_ROOT = auto() NOTETYPE_ROOT = auto()
NOTETYPE = auto() NOTETYPE = auto()
@ -64,6 +65,8 @@ class SidebarItemType(Enum):
def is_section_root(self) -> bool: def is_section_root(self) -> bool:
return self in self.section_roots() return self in self.section_roots()
def is_editable(self) -> bool:
return self in (SidebarItemType.SAVED_SEARCH, SidebarItemType.DECK, SidebarItemType.TAG)
class SidebarStage(Enum): class SidebarStage(Enum):
ROOT = auto() ROOT = auto()
@ -88,7 +91,6 @@ class SidebarItem:
item_type: SidebarItemType = SidebarItemType.CUSTOM, item_type: SidebarItemType = SidebarItemType.CUSTOM,
id: int = 0, id: int = 0,
full_name: str = None, full_name: str = None,
editable: bool = False,
) -> None: ) -> None:
self.name = name self.name = name
if not full_name: if not full_name:
@ -99,7 +101,6 @@ class SidebarItem:
self.id = id self.id = id
self.on_click = on_click self.on_click = on_click
self.search_node = search_node self.search_node = search_node
self.editable = editable
self.on_expanded = on_expanded self.on_expanded = on_expanded
self.children: List["SidebarItem"] = [] self.children: List["SidebarItem"] = []
self.tooltip: Optional[str] = None self.tooltip: Optional[str] = None
@ -253,7 +254,7 @@ class SidebarModel(QAbstractItemModel):
SidebarItemType.TAG_ROOT, SidebarItemType.TAG_ROOT,
): ):
flags |= Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled flags |= Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled
if item.editable: if item.item_type.is_editable():
flags |= Qt.ItemIsEditable flags |= Qt.ItemIsEditable
return cast(Qt.ItemFlags, flags) return cast(Qt.ItemFlags, flags)
@ -731,7 +732,6 @@ class SidebarTreeView(QTreeView):
icon, icon,
search_node=SearchNode(parsable_text=filt), search_node=SearchNode(parsable_text=filt),
item_type=SidebarItemType.SAVED_SEARCH, item_type=SidebarItemType.SAVED_SEARCH,
editable=True,
) )
root.add_child(item) root.add_child(item)
@ -908,7 +908,6 @@ class SidebarTreeView(QTreeView):
expanded=node.expanded, expanded=node.expanded,
item_type=SidebarItemType.TAG, item_type=SidebarItemType.TAG,
full_name=head + node.name, full_name=head + node.name,
editable=True,
) )
root.add_child(item) root.add_child(item)
newhead = f"{head + node.name}::" newhead = f"{head + node.name}::"
@ -956,7 +955,6 @@ class SidebarTreeView(QTreeView):
item_type=SidebarItemType.DECK, item_type=SidebarItemType.DECK,
id=node.deck_id, id=node.deck_id,
full_name=head + node.name, full_name=head + node.name,
editable=True,
) )
root.add_child(item) root.add_child(item)
newhead = f"{head + node.name}::" newhead = f"{head + node.name}::"
@ -974,7 +972,7 @@ class SidebarTreeView(QTreeView):
current = root.add_simple( current = root.add_simple(
name=tr(TR.BROWSING_CURRENT_DECK), name=tr(TR.BROWSING_CURRENT_DECK),
icon=icon, icon=icon,
type=SidebarItemType.DECK, type=SidebarItemType.DECK_CURRENT,
search_node=SearchNode(deck="current"), search_node=SearchNode(deck="current"),
) )
current.id = self.mw.col.decks.selected() current.id = self.mw.col.decks.selected()