From 10215dfb834d44040d1285592170bcb22a2aea4c Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Sun, 24 May 2020 11:48:57 +0200 Subject: [PATCH 1/2] Fix item selection for project loader --- nw/gui/dialogs/projectload.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nw/gui/dialogs/projectload.py b/nw/gui/dialogs/projectload.py index 46d48824..17950b37 100644 --- a/nw/gui/dialogs/projectload.py +++ b/nw/gui/dialogs/projectload.py @@ -80,7 +80,7 @@ class GuiProjectLoad(QDialog): self.listBox.setHeaderLabels(["Working Title","Words","Last Opened","Path"]) self.listBox.setRootIsDecorated(False) self.listBox.setColumnHidden(3, True) - self.listBox.itemClicked.connect(self._doSelectRecent) + self.listBox.itemSelectionChanged.connect(self._doSelectRecent) self.listBox.itemDoubleClicked.connect(self._doOpenRecent) treeHead = self.listBox.headerItem() From 4de2b713f9ebccd3140d02baa678747861dd2798 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Sun, 24 May 2020 11:57:31 +0200 Subject: [PATCH 2/2] Ensure project tree is up to date before building project --- nw/core/project.py | 3 ++- nw/gui/build.py | 3 +++ nw/gui/elements/doctree.py | 6 ++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/nw/core/project.py b/nw/core/project.py index 55c69950..7838d5fd 100644 --- a/nw/core/project.py +++ b/nw/core/project.py @@ -669,7 +669,7 @@ class NWProject(): by drag-and-drop. Forwarded to the NWTree class. """ 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.setProjectChanged(True) return True @@ -1217,6 +1217,7 @@ class NWTree(): self._treeOrder = tmpOrder self._theLength = len(self._treeOrder) self._setTreeChanged(True) + logger.verbose("Project tree order updated") return diff --git a/nw/gui/build.py b/nw/gui/build.py index 1bf268eb..d5da32f9 100644 --- a/nw/gui/build.py +++ b/nw/gui/build.py @@ -314,6 +314,9 @@ class GuiBuildNovel(QDialog): makeHtml.setKeywords(incKeywords) makeHtml.setJustify(justifyText) + # Make sure the tree order is correct + self.theParent.treeView.saveTreeOrder() + self.buildProgress.setMaximum(len(self.theProject.projTree)) self.buildProgress.setValue(0) diff --git a/nw/gui/elements/doctree.py b/nw/gui/elements/doctree.py index 89ef9d8c..a91ee10e 100644 --- a/nw/gui/elements/doctree.py +++ b/nw/gui/elements/doctree.py @@ -235,11 +235,17 @@ class GuiDocTree(QTreeWidget): return True 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 = [] for i in range(self.topLevelItemCount()): if self.topLevelItem(i) == self.orphRoot: continue theList = self._scanChildren(theList, self.topLevelItem(i), i) + logger.debug("Saving project tree item order") self.theProject.setTreeOrder(theList) return True