diff --git a/nw/gui/elements/doctree.py b/nw/gui/elements/doctree.py index 75c745a6..d618e4ce 100644 --- a/nw/gui/elements/doctree.py +++ b/nw/gui/elements/doctree.py @@ -220,7 +220,7 @@ class GuiDocTree(QTreeWidget): def deleteItem(self, tHandle=None): """Delete items from the tree. Note that this does not delete the item from the item tree in the project object. However, since this is only meta data, there isn't really a need to do - that to save memory. As items not in the tree are not saved to the project file, a loaded + that to save memory. Items not in the tree are not saved to the project file, so a loaded project will be clean anyway. """ @@ -247,6 +247,7 @@ class GuiDocTree(QTreeWidget): self.clearSelection() trItemP.setSelected(True) self.theProject.setProjectChanged(True) + self.theParent.theIndex.deleteHandle(tHandle) elif nwItemS.itemType == nwItemType.FOLDER: logger.debug("User requested folder %s deleted" % tHandle) diff --git a/nw/project/index.py b/nw/project/index.py index 9097c462..93890664 100644 --- a/nw/project/index.py +++ b/nw/project/index.py @@ -64,10 +64,27 @@ class NWIndex(): return + ## + # Public Methods + ## + def clearIndex(self): self.tagIndex = {} self.refIndex = {} self.novelIndex = {} + self.noteIndex = {} + return + + def deleteHandle(self, tHandle): + + for tTag in self.tagIndex: + if self.tagIndex[tTag][1] == tHandle: + self.tagIndex.pop(tTag, None) + + self.refIndex.pop(tHandle, None) + self.novelIndex.pop(tHandle, None) + self.noteIndex.pop(tHandle, None) + return ## @@ -142,6 +159,7 @@ class NWIndex(): theItem = self.theProject.getItem(tHandle) if theItem is None: return False if theItem.itemType != nwItemType.FILE: return False + if theItem.parHandle == self.theProject.trashRoot: return False itemClass = theItem.itemClass itemLayout = theItem.itemLayout @@ -336,19 +354,19 @@ class NWIndex(): return True - def buildReferenceList(self, theHandle): - """Build a list of files referring back to our file, specified by theHandle. + def buildReferenceList(self, tHandle): + """Build a list of files referring back to our file, specified by tHandle. """ theRefs = {} - tItem = self.theProject.getItem(theHandle) - if theHandle is None: + tItem = self.theProject.getItem(tHandle) + if tHandle is None: return theRefs theTag = None for tTag in self.tagIndex: - if theHandle == self.tagIndex[tTag][1]: + if tHandle == self.tagIndex[tTag][1]: theTag = tTag break