Ensure project tree is up to date before building project

This commit is contained in:
Veronica K. B. Olsen
2020-05-24 11:57:31 +02:00
parent 10215dfb83
commit 4de2b713f9
3 changed files with 11 additions and 1 deletions
+2 -1
View File
@@ -669,7 +669,7 @@ class NWProject():
by drag-and-drop. Forwarded to the NWTree class. by drag-and-drop. Forwarded to the NWTree class.
""" """
if len(self.projTree) != len(newOrder): if len(self.projTree) != len(newOrder):
logger.warning("Size of new and old tree order does not match") logger.warning("Size of new and old tree order do not match")
self.projTree.setOrder(newOrder) self.projTree.setOrder(newOrder)
self.setProjectChanged(True) self.setProjectChanged(True)
return True return True
@@ -1217,6 +1217,7 @@ class NWTree():
self._treeOrder = tmpOrder self._treeOrder = tmpOrder
self._theLength = len(self._treeOrder) self._theLength = len(self._treeOrder)
self._setTreeChanged(True) self._setTreeChanged(True)
logger.verbose("Project tree order updated")
return return
+3
View File
@@ -314,6 +314,9 @@ class GuiBuildNovel(QDialog):
makeHtml.setKeywords(incKeywords) makeHtml.setKeywords(incKeywords)
makeHtml.setJustify(justifyText) makeHtml.setJustify(justifyText)
# Make sure the tree order is correct
self.theParent.treeView.saveTreeOrder()
self.buildProgress.setMaximum(len(self.theProject.projTree)) self.buildProgress.setMaximum(len(self.theProject.projTree))
self.buildProgress.setValue(0) self.buildProgress.setValue(0)
+6
View File
@@ -235,11 +235,17 @@ class GuiDocTree(QTreeWidget):
return True return True
def saveTreeOrder(self): def saveTreeOrder(self):
"""Build a list of the items in the project tree and send them
to the project class. This syncs up the two versions of the
project structure, and must be called before any code that
depends on this order to be up to date.
"""
theList = [] theList = []
for i in range(self.topLevelItemCount()): for i in range(self.topLevelItemCount()):
if self.topLevelItem(i) == self.orphRoot: if self.topLevelItem(i) == self.orphRoot:
continue continue
theList = self._scanChildren(theList, self.topLevelItem(i), i) theList = self._scanChildren(theList, self.topLevelItem(i), i)
logger.debug("Saving project tree item order")
self.theProject.setTreeOrder(theList) self.theProject.setTreeOrder(theList)
return True return True