From 665fbb04fe25e6646ff75f4af1ea442a863db5d1 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" Date: Fri, 3 May 2019 20:46:06 +0200 Subject: [PATCH] Fixed setting class and parent of a dropped orphaned item. --- nw/gui/doctree.py | 17 +++++++++++++++-- sample/sampleNovel/nwProject.nwx | 6 +++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/nw/gui/doctree.py b/nw/gui/doctree.py index f4edfeec..c38d1527 100644 --- a/nw/gui/doctree.py +++ b/nw/gui/doctree.py @@ -243,6 +243,20 @@ class GuiDocTree(QTreeWidget): self.orphRoot = None return + def _moveOrphanedItem(self, tHandle, dHandle): + trItemS = self.theMap[tHandle] + nwItemS = self.theProject.getItem(tHandle) + nwItemD = self.theProject.getItem(dHandle) + trItemP = trItemS.parent() + nwItemS.setClass(nwItemD.itemClass) + if trItemP is None: + logger.error("Failed to find new parent item of %s" % tHandle) + return + pHandle = trItemP.text(self.C_HANDLE) + nwItemS.setParent(pHandle) + self.setTreeItemValues(tHandle) + return + def setTreeItemValues(self, tHandle): trItem = self.theMap[tHandle] @@ -331,8 +345,7 @@ class GuiDocTree(QTreeWidget): logger.verbose("Drag'n'drop of item %s accepted" % sHandle) QTreeWidget.dropEvent(self, theEvent) if isNone: - snItem.setClass(dnItem.itemClass) - self.setTreeItemValues(sHandle) + self._moveOrphanedItem(sHandle, dHandle) self._cleanOrphanedRoot() else: logger.verbose("Drag'n'drop of item %s not accepted" % sHandle) diff --git a/sample/sampleNovel/nwProject.nwx b/sample/sampleNovel/nwProject.nwx index 48d6d3ee..6ddaced2 100644 --- a/sample/sampleNovel/nwProject.nwx +++ b/sample/sampleNovel/nwProject.nwx @@ -1,5 +1,5 @@ - + Sample Project Sample Project @@ -16,11 +16,11 @@ True True - + Title Page FILE NOVEL - 0 + 2 0 False False