Refactor the projhect tree context menu code

This commit is contained in:
Veronica Berglyd Olsen
2022-10-25 08:17:18 +02:00
parent 2f926301e6
commit 624787994a
+30 -47
View File
@@ -1128,9 +1128,8 @@ class GuiProjectTree(QTreeWidget):
trashHandle = self.theProject.tree.trashRoot() trashHandle = self.theProject.tree.trashRoot()
if tItem.itemHandle == trashHandle and trashHandle is not None: if tItem.itemHandle == trashHandle and trashHandle is not None:
# The trash folder only has one option # The trash folder only has one option
ctxMenu.addAction( aEmptyTrash = ctxMenu.addAction(self.tr("Empty Trash"))
self.tr("Empty Trash"), lambda: self.emptyTrash() aEmptyTrash.triggered.connect(lambda: self.emptyTrash())
)
ctxMenu.exec_(self.viewport().mapToGlobal(clickPos)) ctxMenu.exec_(self.viewport().mapToGlobal(clickPos))
return True return True
@@ -1143,12 +1142,12 @@ class GuiProjectTree(QTreeWidget):
hasChild = selItem.childCount() > 0 hasChild = selItem.childCount() > 0
if isFile: if isFile:
ctxMenu.addAction( aOpenDoc = ctxMenu.addAction(self.tr("Open Document"))
self.tr("Open Document"), aOpenDoc.triggered.connect(
lambda: self.projView.openDocumentRequest.emit(tHandle, nwDocMode.EDIT, -1, "") lambda: self.projView.openDocumentRequest.emit(tHandle, nwDocMode.EDIT, -1, "")
) )
ctxMenu.addAction( aViewDoc = ctxMenu.addAction(self.tr("View Document"))
self.tr("View Document"), aViewDoc.triggered.connect(
lambda: self.projView.openDocumentRequest.emit(tHandle, nwDocMode.VIEW, -1, "") lambda: self.projView.openDocumentRequest.emit(tHandle, nwDocMode.VIEW, -1, "")
) )
ctxMenu.addSeparator() ctxMenu.addSeparator()
@@ -1156,14 +1155,12 @@ class GuiProjectTree(QTreeWidget):
# Edit Item Settings # Edit Item Settings
# ================== # ==================
ctxMenu.addAction( aLabel = ctxMenu.addAction(self.tr("Change Label"))
self.tr("Change Label"), lambda: self.renameTreeItem(tHandle) aLabel.triggered.connect(lambda: self.renameTreeItem(tHandle))
)
if isFile: if isFile:
ctxMenu.addAction( aActive = ctxMenu.addAction(self.tr("Toggle Active"))
self.tr("Toggle Active"), lambda: self._toggleItemActive(tHandle) aActive.triggered.connect(lambda: self._toggleItemActive(tHandle))
)
if tItem.isNovelLike(): if tItem.isNovelLike():
mStatus = ctxMenu.addMenu(self.tr("Set Status to ...")) mStatus = ctxMenu.addMenu(self.tr("Set Status to ..."))
@@ -1193,38 +1190,30 @@ class GuiProjectTree(QTreeWidget):
isNoteFile = isFile and tItem.isNoteLayout() isNoteFile = isFile and tItem.isNoteLayout()
if (isNoteFile or isFolder) and tItem.documentAllowed(): if (isNoteFile or isFolder) and tItem.documentAllowed():
mTrans.addAction( aConvert1 = mTrans.addAction(self.tr("Convert to {0}").format(trDoc))
self.tr("Convert to {0}").format(trDoc), aConvert1.triggered.connect(
lambda: self._changeItemLayout(tHandle, nwItemLayout.DOCUMENT) lambda: self._changeItemLayout(tHandle, nwItemLayout.DOCUMENT)
) )
if isDocFile or isFolder: if isDocFile or isFolder:
mTrans.addAction( aConvert2 = mTrans.addAction(self.tr("Convert to {0}").format(trNote))
self.tr("Convert to {0}").format(trNote), aConvert2.triggered.connect(
lambda: self._changeItemLayout(tHandle, nwItemLayout.NOTE) lambda: self._changeItemLayout(tHandle, nwItemLayout.NOTE)
) )
if hasChild and isFile: if hasChild and isFile:
mTrans.addAction( aMerge1 = mTrans.addAction(self.tr("Merge Child Items into Self"))
self.tr("Merge Child Items into Self"), aMerge1.triggered.connect(lambda: self._mergeDocuments(tHandle, False))
lambda: self._mergeDocuments(tHandle, False) aMerge2 = mTrans.addAction(self.tr("Merge Child Items into New"))
) aMerge2.triggered.connect(lambda: self._mergeDocuments(tHandle, True))
mTrans.addAction(
self.tr("Merge Child Items into New"),
lambda: self._mergeDocuments(tHandle, True)
)
if hasChild and isFolder: if hasChild and isFolder:
mTrans.addAction( aMerge3 = mTrans.addAction(self.tr("Merge Documents in Folder"))
self.tr("Merge Documents in Folder"), aMerge3.triggered.connect(lambda: self._mergeDocuments(tHandle, True))
lambda: self._mergeDocuments(tHandle, True)
)
if isFile: if isFile:
mTrans.addAction( aSplit1 = mTrans.addAction(self.tr("Split Document by Headers"))
self.tr("Split Document by Headers"), aSplit1.triggered.connect(lambda: self._splitDocument(tHandle))
lambda: self._splitDocument(tHandle)
)
# Expand/Collapse/Delete # Expand/Collapse/Delete
# ====================== # ======================
@@ -1232,23 +1221,17 @@ class GuiProjectTree(QTreeWidget):
ctxMenu.addSeparator() ctxMenu.addSeparator()
if hasChild: if hasChild:
ctxMenu.addAction( aExpand = ctxMenu.addAction(self.tr("Expand All"))
self.tr("Expand All"), aExpand.triggered.connect(lambda: self.setExpandedFromHandle(tHandle, True))
lambda: self.setExpandedFromHandle(tHandle, True) aCollapse = ctxMenu.addAction(self.tr("Collapse All"))
) aCollapse.triggered.connect(lambda: self.setExpandedFromHandle(tHandle, False))
ctxMenu.addAction(
self.tr("Collapse All"),
lambda: self.setExpandedFromHandle(tHandle, False)
)
if tItem.itemClass == nwItemClass.TRASH or isRoot or (isFolder and not hasChild): if tItem.itemClass == nwItemClass.TRASH or isRoot or (isFolder and not hasChild):
ctxMenu.addAction( aDelete = ctxMenu.addAction(self.tr("Delete Permanently"))
self.tr("Delete Permanently"), lambda: self.permanentlyDeleteItem(tHandle) aDelete.triggered.connect(lambda: self.permanentlyDeleteItem(tHandle))
)
else: else:
ctxMenu.addAction( aMoveTrash = ctxMenu.addAction(self.tr("Move to Trash"))
self.tr("Move to Trash"), lambda: self.moveItemToTrash(tHandle) aMoveTrash.triggered.connect(lambda: self.moveItemToTrash(tHandle))
)
# Show Context Menu # Show Context Menu
ctxMenu.exec_(self.viewport().mapToGlobal(clickPos)) ctxMenu.exec_(self.viewport().mapToGlobal(clickPos))