From 02ed230c24b98bfe6012a26aadf772676cb14340 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" Date: Sun, 28 Oct 2018 22:36:28 +0100 Subject: [PATCH] Finished adding the saving of tree state. --- nw/gui/doctree.py | 11 ++++++----- nw/project/item.py | 5 +++++ nw/project/project.py | 8 +++++--- sample/sampleNovel/nwProject.nwx | 20 +++++++++++--------- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/nw/gui/doctree.py b/nw/gui/doctree.py index 29ca90f7..7504d9fb 100644 --- a/nw/gui/doctree.py +++ b/nw/gui/doctree.py @@ -30,6 +30,7 @@ class GuiDocTree(QTreeWidget): self.theProject = theProject self.theMap = {} + self.setStyleSheet("QTreeWidget {font-size: 13px;}") self.setColumnCount(4) self.setHeaderLabels(["Name","","","Handle"]) if not self.debugGUI: @@ -47,17 +48,17 @@ class GuiDocTree(QTreeWidget): return def saveTreeOrder(self): - theList = [] for i in range(self.topLevelItemCount()): theList = self._scanChildren(theList, self.topLevelItem(i)) - - print(theList) - + self.theProject.setTreeOrder(theList) return True def _scanChildren(self, theList, theItem): - theList.append(theItem.text(3)) + tHandle = theItem.text(3) + nwItem = self.theProject.projTree[tHandle] + nwItem.setExpanded(theItem.isExpanded()) + theList.append(tHandle) for i in range(theItem.childCount()): self._scanChildren(theList, theItem.child(i)) return theList diff --git a/nw/project/item.py b/nw/project/item.py index 2bc49640..2d68e596 100644 --- a/nw/project/item.py +++ b/nw/project/item.py @@ -38,6 +38,7 @@ class NWItem(): self.itemOrder = None self.itemType = None self.itemClass = None + self.isExpanded = False return @@ -87,6 +88,10 @@ class NWItem(): self.itemClass = None return + def setExpanded(self, expState): + self.isExpanded = expState + return + def getType(self): if self.itemType == self.TYPE_ROOT: return "ROOT" if self.itemType == self.TYPE_FOLDER: return "FOLDER" diff --git a/nw/project/project.py b/nw/project/project.py index 2db609d1..916b0e96 100644 --- a/nw/project/project.py +++ b/nw/project/project.py @@ -70,7 +70,7 @@ class NWProject(): def newProject(self): self.projTree = {} - self.treeOrder - [] + self.treeOrder = [] self.projPath = None self.projFile = "nwProject.nwx" self.projName = "" @@ -155,7 +155,7 @@ class NWProject(): # Save Tree Content xContent = etree.SubElement(nwXML,"content",attrib={"count":str(len(self.projTree))}) itemIdx = 0 - for tHandle in self.projTree.keys(): + for tHandle in self.treeOrder: nwItem = self.projTree[tHandle] xItem = etree.SubElement(xContent,"item",attrib={ "handle" : str(tHandle), @@ -169,6 +169,8 @@ class NWProject(): if nwItem.getClass() is not "NONE": xItemClass = etree.SubElement(xItem,"class") xItemClass.text = str(nwItem.getClass()) + if nwItem.isExpanded: + xItemExpanded = etree.SubElement(xItem,"expanded") # Write the xml tree to file with open(path.join(self.projPath,self.projFile),"wb") as outFile: @@ -211,7 +213,7 @@ class NWProject(): def setTreeOrder(self, newOrder): if len(self.treeOrder) != len(newOrder): logger.warning("Size of new and old tree order does not match") - self.treeOrder - newOrder + self.treeOrder = newOrder return True # diff --git a/sample/sampleNovel/nwProject.nwx b/sample/sampleNovel/nwProject.nwx index 5fcbf62f..1dda2c5b 100644 --- a/sample/sampleNovel/nwProject.nwx +++ b/sample/sampleNovel/nwProject.nwx @@ -1,5 +1,5 @@ - + Sample Project Sample Project @@ -11,6 +11,16 @@ Novel ROOT NOVEL + + + + New Chapter + FOLDER + + + + New Scene + FILE Characters @@ -22,13 +32,5 @@ ROOT WORLD - - New Chapter - FOLDER - - - New Scene - FILE -