Finished adding the saving of tree state.

This commit is contained in:
Veronica K. B. Olsen
2018-10-28 22:36:28 +01:00
parent 0f8090601b
commit 02ed230c24
4 changed files with 27 additions and 17 deletions
+6 -5
View File
@@ -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
+5
View File
@@ -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"
+5 -3
View File
@@ -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
#
+11 -9
View File
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="0.1.0" fileVersion="1.0" timeStamp="2018-10-27 23:46:46">
<novelWriterXML appVersion="0.1.0" fileVersion="1.0" timeStamp="2018-10-28 22:31:56">
<project>
<name>Sample Project</name>
<title>Sample Project</title>
@@ -11,6 +11,16 @@
<name>Novel</name>
<type>ROOT</type>
<class>NOVEL</class>
<expanded/>
</item>
<item handle="e7ded148d6e4a" order="None" parent="7031beac91f75">
<name>New Chapter</name>
<type>FOLDER</type>
<expanded/>
</item>
<item handle="96b68994dfa3d" order="None" parent="e7ded148d6e4a">
<name>New Scene</name>
<type>FILE</type>
</item>
<item handle="f6622b4617424" order="None" parent="None">
<name>Characters</name>
@@ -22,13 +32,5 @@
<type>ROOT</type>
<class>WORLD</class>
</item>
<item handle="e7ded148d6e4a" order="None" parent="7031beac91f75">
<name>New Chapter</name>
<type>FOLDER</type>
</item>
<item handle="96b68994dfa3d" order="None" parent="e7ded148d6e4a">
<name>New Scene</name>
<type>FILE</type>
</item>
</content>
</novelWriterXML>