Allow converting folder to file in project tree (#1071)
This commit is contained in:
@@ -1077,6 +1077,20 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
),
|
),
|
||||||
lambda: self._changeItemLayout(tHandle, nwItemLayout.NOTE)
|
lambda: self._changeItemLayout(tHandle, nwItemLayout.NOTE)
|
||||||
)
|
)
|
||||||
|
elif isFolder:
|
||||||
|
if tItem.documentAllowed():
|
||||||
|
ctxMenu.addAction(
|
||||||
|
self.tr("Convert to {0}").format(
|
||||||
|
trConst(nwLabels.LAYOUT_NAME[nwItemLayout.DOCUMENT])
|
||||||
|
),
|
||||||
|
lambda: self._covertFolderToFile(tHandle, nwItemLayout.DOCUMENT)
|
||||||
|
)
|
||||||
|
ctxMenu.addAction(
|
||||||
|
self.tr("Convert to {0}").format(
|
||||||
|
trConst(nwLabels.LAYOUT_NAME[nwItemLayout.NOTE])
|
||||||
|
),
|
||||||
|
lambda: self._covertFolderToFile(tHandle, nwItemLayout.NOTE)
|
||||||
|
)
|
||||||
|
|
||||||
ctxMenu.addSeparator()
|
ctxMenu.addSeparator()
|
||||||
|
|
||||||
@@ -1269,6 +1283,32 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
self.setTreeItemValues(tItem.itemHandle)
|
self.setTreeItemValues(tItem.itemHandle)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def _covertFolderToFile(self, tHandle, itemLayout):
|
||||||
|
"""Convert a folder to a note or document.
|
||||||
|
"""
|
||||||
|
tItem = self.theProject.tree[tHandle]
|
||||||
|
if tItem is not None and tItem.isFolderType():
|
||||||
|
msgYes = self.mainGui.askQuestion(
|
||||||
|
self.tr("Convert Folder"),
|
||||||
|
self.tr(
|
||||||
|
"Do you want to convert the folder to a {0}? "
|
||||||
|
"This action cannot be reversed."
|
||||||
|
).format(trConst(nwLabels.LAYOUT_NAME[itemLayout]))
|
||||||
|
)
|
||||||
|
if msgYes and itemLayout == nwItemLayout.DOCUMENT and tItem.documentAllowed():
|
||||||
|
tItem.setType(nwItemType.FILE)
|
||||||
|
tItem.setLayout(nwItemLayout.DOCUMENT)
|
||||||
|
self.setTreeItemValues(tItem.itemHandle)
|
||||||
|
self._alertTreeChange(tHandle, flush=True)
|
||||||
|
elif msgYes and itemLayout == nwItemLayout.NOTE:
|
||||||
|
tItem.setType(nwItemType.FILE)
|
||||||
|
tItem.setLayout(nwItemLayout.NOTE)
|
||||||
|
self.setTreeItemValues(tItem.itemHandle)
|
||||||
|
self._alertTreeChange(tHandle, flush=True)
|
||||||
|
else:
|
||||||
|
logger.info("Folder conversion cancelled")
|
||||||
|
return
|
||||||
|
|
||||||
def _scanChildren(self, theList, tItem, tIndex):
|
def _scanChildren(self, theList, tItem, tIndex):
|
||||||
"""This is a recursive function returning all items in a tree
|
"""This is a recursive function returning all items in a tree
|
||||||
starting at a given QTreeWidgetItem.
|
starting at a given QTreeWidgetItem.
|
||||||
@@ -1364,12 +1404,14 @@ class GuiProjectTree(QTreeWidget):
|
|||||||
if flush:
|
if flush:
|
||||||
self.saveTreeOrder()
|
self.saveTreeOrder()
|
||||||
|
|
||||||
|
if tHandle is None:
|
||||||
|
return
|
||||||
|
|
||||||
tItem = self.theProject.tree[tHandle]
|
tItem = self.theProject.tree[tHandle]
|
||||||
if tItem is None:
|
if tItem is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
itemType = tItem.itemType
|
if tItem.isRootType():
|
||||||
if itemType == nwItemType.ROOT:
|
|
||||||
self.projView.rootFolderChanged.emit(tHandle)
|
self.projView.rootFolderChanged.emit(tHandle)
|
||||||
|
|
||||||
self.projView.treeItemChanged.emit(tHandle)
|
self.projView.treeItemChanged.emit(tHandle)
|
||||||
|
|||||||
Reference in New Issue
Block a user