Add remaining logic to document splitter, and fix bug in recursive permanet delete
This commit is contained in:
+33
-20
@@ -517,18 +517,14 @@ class GuiProjectTree(QTreeWidget):
|
||||
|
||||
# Handle new file creation
|
||||
if itemType == nwItemType.FILE and hLevel > 0:
|
||||
if self.theProject.writeNewFile(tHandle, hLevel, not isNote):
|
||||
# If successful, update word count
|
||||
wC = self.theProject.index.getCounts(tHandle)[1]
|
||||
self.propagateCount(tHandle, wC)
|
||||
self.projView.wordCountsChanged.emit()
|
||||
self.theProject.writeNewFile(tHandle, hLevel, not isNote)
|
||||
|
||||
# Add the new item to the project tree
|
||||
self.revealNewTreeItem(tHandle, nHandle)
|
||||
self.revealNewTreeItem(tHandle, nHandle=nHandle, wordCount=True)
|
||||
|
||||
return True
|
||||
|
||||
def revealNewTreeItem(self, tHandle, nHandle=None):
|
||||
def revealNewTreeItem(self, tHandle, nHandle=None, wordCount=False):
|
||||
"""Reveal a newly added project item in the project tree.
|
||||
"""
|
||||
nwItem = self.theProject.tree[tHandle]
|
||||
@@ -539,6 +535,11 @@ class GuiProjectTree(QTreeWidget):
|
||||
if trItem is None:
|
||||
return False
|
||||
|
||||
if nwItem.isFileType() and wordCount:
|
||||
wC = self.theProject.index.getCounts(tHandle)[1]
|
||||
self.propagateCount(tHandle, wC)
|
||||
self.projView.wordCountsChanged.emit()
|
||||
|
||||
pHandle = nwItem.itemParent
|
||||
if pHandle is not None and pHandle in self._treeMap:
|
||||
self._treeMap[pHandle].setExpanded(True)
|
||||
@@ -802,17 +803,16 @@ class GuiProjectTree(QTreeWidget):
|
||||
logger.debug("Permanently deleting item '%s'", tHandle)
|
||||
|
||||
self.propagateCount(tHandle, 0)
|
||||
itemList = self.getTreeFromHandle(tHandle)
|
||||
|
||||
trItemP = trItemS.parent()
|
||||
tIndex = trItemP.indexOfChild(trItemS)
|
||||
trItemP.takeChild(tIndex)
|
||||
|
||||
for dHandle in reversed(itemList):
|
||||
for dHandle in reversed(self.getTreeFromHandle(tHandle)):
|
||||
if self.mainGui.docEditor.docHandle() == dHandle:
|
||||
self.mainGui.closeDocument()
|
||||
self.theProject.removeItem(tHandle)
|
||||
self._treeMap.pop(tHandle, None)
|
||||
self.theProject.removeItem(dHandle)
|
||||
self._treeMap.pop(dHandle, None)
|
||||
|
||||
self._alertTreeChange(tHandle, flush=flush)
|
||||
self.projView.wordCountsChanged.emit()
|
||||
@@ -1433,14 +1433,14 @@ class GuiProjectTree(QTreeWidget):
|
||||
|
||||
if not docMerger.writeTargetDoc():
|
||||
self.mainGui.makeAlert([
|
||||
self.tr("Could not save document."), docMerger.getError()
|
||||
self.tr("Could not write document content."), docMerger.getError()
|
||||
], nwAlert.ERROR)
|
||||
return False
|
||||
|
||||
if newFile:
|
||||
self.mainGui.projView.revealNewTreeItem(mHandle, tHandle)
|
||||
|
||||
self.theProject.index.reIndexHandle(mHandle)
|
||||
if newFile:
|
||||
self.revealNewTreeItem(mHandle, nHandle=tHandle, wordCount=True)
|
||||
|
||||
self.mainGui.openDocument(mHandle, doScroll=True)
|
||||
|
||||
if mrgData.get("moveToTrash", False):
|
||||
@@ -1477,17 +1477,30 @@ class GuiProjectTree(QTreeWidget):
|
||||
if dlgSplit.result() == QDialog.Accepted:
|
||||
|
||||
splitData, splitText = dlgSplit.getData()
|
||||
print(splitData)
|
||||
|
||||
headerList = splitData.get("headerList", [])
|
||||
intoFolder = splitData.get("intoFolder", False)
|
||||
docHierarchy = splitData.get("docHierarchy", False)
|
||||
|
||||
docSplit = DocSplitter(self.theProject, tHandle)
|
||||
docSplit.setParentItem(tItem.itemParent)
|
||||
docSplit.splitDocument(headerList, splitText)
|
||||
if intoFolder:
|
||||
fHandle = docSplit.newParentFolder(tItem.itemParent, tItem.itemName)
|
||||
self.revealNewTreeItem(fHandle, nHandle=tHandle)
|
||||
self._alertTreeChange(fHandle, flush=False)
|
||||
else:
|
||||
docSplit.setParentItem(tItem.itemParent)
|
||||
|
||||
for writeOk, dHandle, nHandle in docSplit.writeDocuments():
|
||||
self.mainGui.projView.revealNewTreeItem(dHandle, nHandle)
|
||||
docSplit.splitDocument(headerList, splitText)
|
||||
for writeOk, dHandle, nHandle in docSplit.writeDocuments(docHierarchy):
|
||||
self.theProject.index.reIndexHandle(dHandle)
|
||||
self.revealNewTreeItem(dHandle, nHandle=nHandle, wordCount=True)
|
||||
self._alertTreeChange(dHandle, flush=False)
|
||||
if not writeOk:
|
||||
self.mainGui.makeAlert([
|
||||
self.tr("Could not write document content."), docSplit.getError()
|
||||
], nwAlert.ERROR)
|
||||
|
||||
self.saveTreeOrder()
|
||||
|
||||
else:
|
||||
logger.info("Action cancelled by user")
|
||||
|
||||
Reference in New Issue
Block a user