Connected the make root menu options.

This commit is contained in:
Veronica K. B. Olsen
2019-04-28 12:32:05 +02:00
parent cd64b3f917
commit e00b3b4c20
4 changed files with 24 additions and 8 deletions
+2 -1
View File
@@ -72,7 +72,7 @@ class GuiDocTree(QTreeWidget):
itemClass = self.theProject.getItem(pHandle).itemClass
logger.verbose("Adding new item of type %s and class %s to handle %s" % (
itemType.name,itemClass.name,str(pHandle))
itemType.name, itemClass.name, str(pHandle))
)
if itemType == nwItemType.ROOT:
@@ -220,6 +220,7 @@ class GuiDocTree(QTreeWidget):
if nwItem.itemType == nwItemType.ROOT:
newItem.setIcon(self.C_NAME, QIcon.fromTheme("drive-harddisk"))
self.theParent.mainMenu.setAvailableRoot()
elif nwItem.itemType == nwItemType.FOLDER:
newItem.setIcon(self.C_NAME, QIcon.fromTheme("folder"))
elif nwItem.itemType == nwItemType.FILE:
+14
View File
@@ -52,6 +52,14 @@ class GuiMainMenu(QMenuBar):
self.theParent.openProject(self.mainConf.recentList[recentItem])
return True
def setAvailableRoot(self):
for itemClass in nwItemClass:
if itemClass != nwItemClass.NO_CLASS:
self.rootItems[itemClass].setEnabled(
self.theProject.checkRootUnique(itemClass)
)
return
##
# Menu Action
##
@@ -122,6 +130,12 @@ class GuiMainMenu(QMenuBar):
self.rootItems[nwItemClass.TIMELINE] = QAction(QIcon.fromTheme("folder-new"), "Timeline Root", rootMenu)
self.rootItems[nwItemClass.OBJECT] = QAction(QIcon.fromTheme("folder-new"), "Object Root", rootMenu)
self.rootItems[nwItemClass.CUSTOM] = QAction(QIcon.fromTheme("folder-new"), "Custom Root", rootMenu)
nCount = 0
for itemClass in self.rootItems.keys():
nCount += 1 # This forces the lambdas to be unique
self.rootItems[itemClass].triggered.connect(
lambda nCount, itemClass=itemClass : self._newTreeItem(nwItemType.ROOT, itemClass)
)
rootMenu.addActions(self.rootItems.values())
# Project > New Folder
+2 -1
View File
@@ -35,13 +35,14 @@ class NWItem():
nwItemClass.CUSTOM : "Custom",
}
CLASS_FLAG = {
nwItemClass.NO_CLASS : "X",
nwItemClass.NO_CLASS : "0",
nwItemClass.NOVEL : "N",
nwItemClass.PLOT : "P",
nwItemClass.CHARACTER : "C",
nwItemClass.WORLD : "L",
nwItemClass.TIMELINE : "T",
nwItemClass.OBJECT : "O",
nwItemClass.CUSTOM : "X",
}
LAYOUT_NAME = {
nwItemLayout.NO_LAYOUT : "None",
+6 -6
View File
@@ -281,7 +281,7 @@ class NWProject():
if tHandle is None:
validActions[nwItemAction.ADD_ROOT] = {
"Type" : nwItemType.ROOT,
"Class" : [x for x in nwItemClass if self._checkRootUnique(x)]
"Class" : [x for x in nwItemClass if self.checkRootUnique(x)]
}
return validActions
@@ -343,11 +343,7 @@ class NWProject():
return validActions
##
# Internal Functions
##
def _checkRootUnique(self, theClass):
def checkRootUnique(self, theClass):
"""Checks if there already is a root entry of class 'theClass' in the
root of the project tree.
"""
@@ -358,6 +354,10 @@ class NWProject():
return False
return True
##
# Internal Functions
##
def _countItemDepth(self, tHandle):
theDepth = 0
nwItem = self.getItem(tHandle)