Clean up item notification and item main icon
This commit is contained in:
@@ -339,17 +339,13 @@ class _ViewPanelBackRefs(QTreeWidget):
|
||||
def _setTreeItemValues(self, tHandle: str, sTitle: str, hItem: IndexHeading) -> None:
|
||||
"""Add or update a tree item."""
|
||||
if nwItem := SHARED.project.tree[tHandle]:
|
||||
docIcon = SHARED.theme.getItemIcon(
|
||||
nwItem.itemType, nwItem.itemClass,
|
||||
nwItem.itemLayout, nwItem.mainHeading
|
||||
)
|
||||
iLevel = nwStyles.H_LEVEL.get(hItem.level, 0) if nwItem.isDocumentLayout() else 5
|
||||
hDec = SHARED.theme.getHeaderDecorationNarrow(iLevel)
|
||||
|
||||
tKey = f"{tHandle}:{sTitle}"
|
||||
trItem = self._treeMap[tKey] if tKey in self._treeMap else QTreeWidgetItem()
|
||||
|
||||
trItem.setIcon(self.C_DOC, docIcon)
|
||||
trItem.setIcon(self.C_DOC, nwItem.getMainIcon())
|
||||
trItem.setText(self.C_DOC, nwItem.itemName)
|
||||
trItem.setToolTip(self.C_DOC, nwItem.itemName)
|
||||
trItem.setIcon(self.C_EDIT, self._editIcon)
|
||||
@@ -448,10 +444,6 @@ class _ViewPanelKeyWords(QTreeWidget):
|
||||
def addUpdateEntry(self, tag: str, name: str, iItem: IndexItem, hItem: IndexHeading) -> None:
|
||||
"""Add a new entry, or update an existing one."""
|
||||
nwItem = iItem.item
|
||||
docIcon = SHARED.theme.getItemIcon(
|
||||
nwItem.itemType, nwItem.itemClass,
|
||||
nwItem.itemLayout, nwItem.mainHeading
|
||||
)
|
||||
impLabel, impIcon = nwItem.getImportStatus()
|
||||
iLevel = nwStyles.H_LEVEL.get(hItem.level, 0) if nwItem.isDocumentLayout() else 5
|
||||
hDec = SHARED.theme.getHeaderDecorationNarrow(iLevel)
|
||||
@@ -468,7 +460,7 @@ class _ViewPanelKeyWords(QTreeWidget):
|
||||
trItem.setIcon(self.C_IMPORT, impIcon)
|
||||
trItem.setText(self.C_IMPORT, impLabel)
|
||||
trItem.setToolTip(self.C_IMPORT, impLabel)
|
||||
trItem.setIcon(self.C_DOC, docIcon)
|
||||
trItem.setIcon(self.C_DOC, nwItem.getMainIcon())
|
||||
trItem.setText(self.C_DOC, nwItem.itemName)
|
||||
trItem.setToolTip(self.C_DOC, nwItem.itemName)
|
||||
trItem.setData(self.C_TITLE, QtDecoration, hDec)
|
||||
|
||||
@@ -269,10 +269,7 @@ class GuiItemDetails(QWidget):
|
||||
# Layout
|
||||
# ======
|
||||
|
||||
usageIcon = SHARED.theme.getItemIcon(
|
||||
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout, nwItem.mainHeading
|
||||
)
|
||||
self.usageIcon.setPixmap(usageIcon.pixmap(iPx, iPx))
|
||||
self.usageIcon.setPixmap(nwItem.getMainIcon().pixmap(iPx, iPx))
|
||||
self.usageData.setText(nwItem.describeMe())
|
||||
|
||||
# Counts
|
||||
|
||||
+27
-50
@@ -130,7 +130,6 @@ class GuiProjectView(QWidget):
|
||||
|
||||
# Signals
|
||||
self.selectedItemChanged.connect(self.projBar.treeSelectionChanged)
|
||||
self.projTree.itemRefreshed.connect(self.projBar.treeItemRefreshed)
|
||||
self.projBar.newDocumentFromTemplate.connect(self.createFileFromTemplate)
|
||||
|
||||
# Function Mappings
|
||||
@@ -145,7 +144,6 @@ class GuiProjectView(QWidget):
|
||||
def updateTheme(self) -> None:
|
||||
"""Update theme elements."""
|
||||
self.projBar.updateTheme()
|
||||
self.populateTree()
|
||||
return
|
||||
|
||||
def initSettings(self) -> None:
|
||||
@@ -162,21 +160,12 @@ class GuiProjectView(QWidget):
|
||||
|
||||
def openProjectTasks(self) -> None:
|
||||
"""Run open project tasks."""
|
||||
self.populateTree()
|
||||
self.projTree.loadModel()
|
||||
self.projBar.buildTemplatesMenu()
|
||||
self.projBar.buildQuickLinksMenu()
|
||||
self.projBar.setEnabled(True)
|
||||
return
|
||||
|
||||
def saveProjectTasks(self) -> None:
|
||||
"""Run save project tasks."""
|
||||
# self.projTree.saveTreeOrder()
|
||||
return
|
||||
|
||||
def populateTree(self) -> None:
|
||||
"""Build the tree structure from project data."""
|
||||
self.projTree.loadModel()
|
||||
return
|
||||
|
||||
def setTreeFocus(self) -> None:
|
||||
"""Forward the set focus call to the tree widget."""
|
||||
self.projTree.setFocus()
|
||||
@@ -227,10 +216,9 @@ class GuiProjectView(QWidget):
|
||||
return
|
||||
|
||||
@pyqtSlot(str)
|
||||
def updateItemValues(self, tHandle: str) -> None:
|
||||
"""Update tree item."""
|
||||
# if nwItem := SHARED.project.tree[tHandle]:
|
||||
# self.projTree.setTreeItemValues(nwItem)
|
||||
def projectItemChanged(self, tHandle: str) -> None:
|
||||
"""Refresh other content when project item changed."""
|
||||
self.projBar.processTemplateDocuments(tHandle)
|
||||
return
|
||||
|
||||
@pyqtSlot(str)
|
||||
@@ -246,12 +234,6 @@ class GuiProjectView(QWidget):
|
||||
self.projBar.buildQuickLinksMenu()
|
||||
return
|
||||
|
||||
@pyqtSlot(str)
|
||||
def refreshUserLabels(self, kind: str) -> None:
|
||||
"""Refresh status or importance labels."""
|
||||
self.projTree.refreshUserLabels(kind)
|
||||
return
|
||||
|
||||
|
||||
class GuiProjectToolBar(QWidget):
|
||||
|
||||
@@ -398,6 +380,7 @@ class GuiProjectToolBar(QWidget):
|
||||
self.aAddNote.setIcon(SHARED.theme.getIcon("proj_note"))
|
||||
self.aAddFolder.setIcon(SHARED.theme.getIcon("proj_folder"))
|
||||
|
||||
self.buildTemplatesMenu()
|
||||
self.buildQuickLinksMenu()
|
||||
self._buildRootMenu()
|
||||
|
||||
@@ -422,19 +405,26 @@ class GuiProjectToolBar(QWidget):
|
||||
)
|
||||
return
|
||||
|
||||
def buildTemplatesMenu(self) -> None:
|
||||
"""Build the templates menu."""
|
||||
for tHandle, _ in SHARED.project.tree.iterRoots(nwItemClass.TEMPLATE):
|
||||
for dHandle in SHARED.project.tree.subTree(tHandle):
|
||||
self.processTemplateDocuments(dHandle)
|
||||
return
|
||||
|
||||
def processTemplateDocuments(self, tHandle: str) -> None:
|
||||
"""Process change in tree items to update menu content."""
|
||||
if item := SHARED.project.tree[tHandle]:
|
||||
if item.isTemplateFile() and item.isActive:
|
||||
self.mTemplates.addUpdate(tHandle, item.itemName, item.getMainIcon())
|
||||
elif tHandle in self.mTemplates:
|
||||
self.mTemplates.remove(tHandle)
|
||||
return
|
||||
|
||||
##
|
||||
# Public Slots
|
||||
##
|
||||
|
||||
@pyqtSlot(str, NWItem, QIcon)
|
||||
def treeItemRefreshed(self, tHandle: str, nwItem: NWItem, icon: QIcon) -> None:
|
||||
"""Process change in tree items to update menu content."""
|
||||
if nwItem.isTemplateFile() and nwItem.isActive:
|
||||
self.mTemplates.addUpdate(tHandle, nwItem.itemName, icon)
|
||||
elif tHandle in self.mTemplates:
|
||||
self.mTemplates.remove(tHandle)
|
||||
return
|
||||
|
||||
@pyqtSlot(str)
|
||||
def treeSelectionChanged(self, tHandle: str) -> None:
|
||||
"""Toggle the visibility of the new item entries for novel
|
||||
@@ -482,8 +472,6 @@ class GuiProjectToolBar(QWidget):
|
||||
|
||||
class GuiProjectTree(QTreeView):
|
||||
|
||||
itemRefreshed = pyqtSignal(str, NWItem, QIcon)
|
||||
|
||||
def __init__(self, projView: GuiProjectView) -> None:
|
||||
super().__init__(parent=projView)
|
||||
|
||||
@@ -635,6 +623,7 @@ class GuiProjectTree(QTreeView):
|
||||
|
||||
SHARED.project.newRoot(itemClass, pos)
|
||||
self.restoreExpandedState()
|
||||
self.projView.rootFolderChanged.emit(tHandle)
|
||||
|
||||
elif itemType in (nwItemType.FILE, nwItemType.FOLDER):
|
||||
|
||||
@@ -927,7 +916,9 @@ class GuiProjectTree(QTreeView):
|
||||
if node := model.node(index):
|
||||
for child in reversed(node.allChildren()):
|
||||
SHARED.project.removeItem(child.item.itemHandle)
|
||||
self.projView.projBar.processTemplateDocuments(child.item.itemHandle)
|
||||
SHARED.project.removeItem(node.item.itemHandle)
|
||||
self.projView.projBar.processTemplateDocuments(node.item.itemHandle)
|
||||
|
||||
elif trashNode := SHARED.project.tree.trash:
|
||||
if askFirst and not SHARED.question(self.tr("Move selected item(s) to Trash?")):
|
||||
@@ -1043,22 +1034,6 @@ class GuiProjectTree(QTreeView):
|
||||
return node
|
||||
return None
|
||||
|
||||
# =========================================================================================== #
|
||||
# Old Code
|
||||
# =========================================================================================== #
|
||||
|
||||
def refreshUserLabels(self, kind: str) -> None:
|
||||
"""Refresh status or importance labels."""
|
||||
# if kind == "s":
|
||||
# for nwItem in SHARED.project.tree:
|
||||
# if nwItem.isNovelLike():
|
||||
# self.setTreeItemValues(nwItem)
|
||||
# elif kind == "i":
|
||||
# for nwItem in SHARED.project.tree:
|
||||
# if not nwItem.isNovelLike():
|
||||
# self.setTreeItemValues(nwItem)
|
||||
return
|
||||
|
||||
|
||||
class _UpdatableMenu(QMenu):
|
||||
|
||||
@@ -1350,6 +1325,8 @@ class _TreeContextMenu(QMenu):
|
||||
"""Add move to Trash action."""
|
||||
if self._model.trashSelection(self._indices):
|
||||
text = self.tr("Delete Permanently")
|
||||
elif len(self._indices) == 1 and self._item.isRootType():
|
||||
text = self.tr("Delete Permanently")
|
||||
else:
|
||||
text = self.tr("Move to Trash")
|
||||
action = self.addAction(text)
|
||||
|
||||
@@ -334,15 +334,11 @@ class GuiProjectSearch(QWidget):
|
||||
"""Populate the result tree."""
|
||||
if results and nwItem:
|
||||
tHandle = nwItem.itemHandle
|
||||
docIcon = SHARED.theme.getItemIcon(
|
||||
nwItem.itemType, nwItem.itemClass,
|
||||
nwItem.itemLayout, nwItem.mainHeading
|
||||
)
|
||||
ext = "+" if capped else ""
|
||||
|
||||
tItem = QTreeWidgetItem()
|
||||
tItem.setText(self.C_NAME, nwItem.itemName)
|
||||
tItem.setIcon(self.C_NAME, docIcon)
|
||||
tItem.setIcon(self.C_NAME, nwItem.getMainIcon())
|
||||
tItem.setData(self.C_NAME, self.D_HANDLE, tHandle)
|
||||
tItem.setText(self.C_COUNT, f"({len(results):n}{ext})")
|
||||
tItem.setTextAlignment(self.C_COUNT, QtAlignRight)
|
||||
|
||||
Reference in New Issue
Block a user