Finished adding the saving of tree state.
This commit is contained in:
+6
-5
@@ -30,6 +30,7 @@ class GuiDocTree(QTreeWidget):
|
|||||||
self.theProject = theProject
|
self.theProject = theProject
|
||||||
self.theMap = {}
|
self.theMap = {}
|
||||||
|
|
||||||
|
self.setStyleSheet("QTreeWidget {font-size: 13px;}")
|
||||||
self.setColumnCount(4)
|
self.setColumnCount(4)
|
||||||
self.setHeaderLabels(["Name","","","Handle"])
|
self.setHeaderLabels(["Name","","","Handle"])
|
||||||
if not self.debugGUI:
|
if not self.debugGUI:
|
||||||
@@ -47,17 +48,17 @@ class GuiDocTree(QTreeWidget):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def saveTreeOrder(self):
|
def saveTreeOrder(self):
|
||||||
|
|
||||||
theList = []
|
theList = []
|
||||||
for i in range(self.topLevelItemCount()):
|
for i in range(self.topLevelItemCount()):
|
||||||
theList = self._scanChildren(theList, self.topLevelItem(i))
|
theList = self._scanChildren(theList, self.topLevelItem(i))
|
||||||
|
self.theProject.setTreeOrder(theList)
|
||||||
print(theList)
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _scanChildren(self, theList, theItem):
|
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()):
|
for i in range(theItem.childCount()):
|
||||||
self._scanChildren(theList, theItem.child(i))
|
self._scanChildren(theList, theItem.child(i))
|
||||||
return theList
|
return theList
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ class NWItem():
|
|||||||
self.itemOrder = None
|
self.itemOrder = None
|
||||||
self.itemType = None
|
self.itemType = None
|
||||||
self.itemClass = None
|
self.itemClass = None
|
||||||
|
self.isExpanded = False
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -87,6 +88,10 @@ class NWItem():
|
|||||||
self.itemClass = None
|
self.itemClass = None
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def setExpanded(self, expState):
|
||||||
|
self.isExpanded = expState
|
||||||
|
return
|
||||||
|
|
||||||
def getType(self):
|
def getType(self):
|
||||||
if self.itemType == self.TYPE_ROOT: return "ROOT"
|
if self.itemType == self.TYPE_ROOT: return "ROOT"
|
||||||
if self.itemType == self.TYPE_FOLDER: return "FOLDER"
|
if self.itemType == self.TYPE_FOLDER: return "FOLDER"
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ class NWProject():
|
|||||||
|
|
||||||
def newProject(self):
|
def newProject(self):
|
||||||
self.projTree = {}
|
self.projTree = {}
|
||||||
self.treeOrder - []
|
self.treeOrder = []
|
||||||
self.projPath = None
|
self.projPath = None
|
||||||
self.projFile = "nwProject.nwx"
|
self.projFile = "nwProject.nwx"
|
||||||
self.projName = ""
|
self.projName = ""
|
||||||
@@ -155,7 +155,7 @@ class NWProject():
|
|||||||
# Save Tree Content
|
# Save Tree Content
|
||||||
xContent = etree.SubElement(nwXML,"content",attrib={"count":str(len(self.projTree))})
|
xContent = etree.SubElement(nwXML,"content",attrib={"count":str(len(self.projTree))})
|
||||||
itemIdx = 0
|
itemIdx = 0
|
||||||
for tHandle in self.projTree.keys():
|
for tHandle in self.treeOrder:
|
||||||
nwItem = self.projTree[tHandle]
|
nwItem = self.projTree[tHandle]
|
||||||
xItem = etree.SubElement(xContent,"item",attrib={
|
xItem = etree.SubElement(xContent,"item",attrib={
|
||||||
"handle" : str(tHandle),
|
"handle" : str(tHandle),
|
||||||
@@ -169,6 +169,8 @@ class NWProject():
|
|||||||
if nwItem.getClass() is not "NONE":
|
if nwItem.getClass() is not "NONE":
|
||||||
xItemClass = etree.SubElement(xItem,"class")
|
xItemClass = etree.SubElement(xItem,"class")
|
||||||
xItemClass.text = str(nwItem.getClass())
|
xItemClass.text = str(nwItem.getClass())
|
||||||
|
if nwItem.isExpanded:
|
||||||
|
xItemExpanded = etree.SubElement(xItem,"expanded")
|
||||||
|
|
||||||
# Write the xml tree to file
|
# Write the xml tree to file
|
||||||
with open(path.join(self.projPath,self.projFile),"wb") as outFile:
|
with open(path.join(self.projPath,self.projFile),"wb") as outFile:
|
||||||
@@ -211,7 +213,7 @@ class NWProject():
|
|||||||
def setTreeOrder(self, newOrder):
|
def setTreeOrder(self, newOrder):
|
||||||
if len(self.treeOrder) != len(newOrder):
|
if len(self.treeOrder) != len(newOrder):
|
||||||
logger.warning("Size of new and old tree order does not match")
|
logger.warning("Size of new and old tree order does not match")
|
||||||
self.treeOrder - newOrder
|
self.treeOrder = newOrder
|
||||||
return True
|
return True
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?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>
|
<project>
|
||||||
<name>Sample Project</name>
|
<name>Sample Project</name>
|
||||||
<title>Sample Project</title>
|
<title>Sample Project</title>
|
||||||
@@ -11,6 +11,16 @@
|
|||||||
<name>Novel</name>
|
<name>Novel</name>
|
||||||
<type>ROOT</type>
|
<type>ROOT</type>
|
||||||
<class>NOVEL</class>
|
<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>
|
||||||
<item handle="f6622b4617424" order="None" parent="None">
|
<item handle="f6622b4617424" order="None" parent="None">
|
||||||
<name>Characters</name>
|
<name>Characters</name>
|
||||||
@@ -22,13 +32,5 @@
|
|||||||
<type>ROOT</type>
|
<type>ROOT</type>
|
||||||
<class>WORLD</class>
|
<class>WORLD</class>
|
||||||
</item>
|
</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>
|
</content>
|
||||||
</novelWriterXML>
|
</novelWriterXML>
|
||||||
|
|||||||
Reference in New Issue
Block a user