Refactor the projhect tree context menu code
This commit is contained in:
+30
-47
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user