Make a few more improvements to doc merge

This commit is contained in:
Veronica Berglyd Olsen
2022-10-09 21:40:50 +02:00
parent d9a59bccda
commit 02dc7f5fe0
+34 -22
View File
@@ -1116,8 +1116,8 @@ class GuiProjectTree(QTreeWidget):
trDoc = trConst(nwLabels.LAYOUT_NAME[nwItemLayout.DOCUMENT]) trDoc = trConst(nwLabels.LAYOUT_NAME[nwItemLayout.DOCUMENT])
trNote = trConst(nwLabels.LAYOUT_NAME[nwItemLayout.NOTE]) trNote = trConst(nwLabels.LAYOUT_NAME[nwItemLayout.NOTE])
isDocFile = tItem.isDocumentLayout() and isFile isDocFile = isFile and tItem.isDocumentLayout()
isNoteFile = tItem.isNoteLayout() and isFile isNoteFile = isFile and tItem.isNoteLayout()
if (isNoteFile or isFolder) and tItem.documentAllowed(): if (isNoteFile or isFolder) and tItem.documentAllowed():
mTrans.addAction( mTrans.addAction(
@@ -1131,21 +1131,21 @@ class GuiProjectTree(QTreeWidget):
lambda: self._changeItemLayout(tHandle, nwItemLayout.NOTE) lambda: self._changeItemLayout(tHandle, nwItemLayout.NOTE)
) )
if hasChild: if hasChild and isFile:
if isFile: mTrans.addAction(
mTrans.addAction( self.tr("Merge Child Items into Self"),
self.tr("Merge Child Items into Self"), lambda: self._mergeDocuments(tHandle, False)
lambda: self._mergeDocuments(tHandle, False) )
) mTrans.addAction(
mTrans.addAction( self.tr("Merge Child Items into New"),
self.tr("Merge Child Items into New"), lambda: self._mergeDocuments(tHandle, True)
lambda: self._mergeDocuments(tHandle, True) )
)
elif isFolder: if hasChild and isFolder:
mTrans.addAction( mTrans.addAction(
self.tr("Combine Documents in Folder"), self.tr("Combine Documents in Folder"),
lambda: self._mergeDocuments(tHandle, True) lambda: self._mergeDocuments(tHandle, True)
) )
if isFile: if isFile:
mTrans.addAction( mTrans.addAction(
@@ -1401,12 +1401,20 @@ class GuiProjectTree(QTreeWidget):
dlgMerge = GuiDocMerge(self.mainGui, tHandle, itemList) dlgMerge = GuiDocMerge(self.mainGui, tHandle, itemList)
dlgMerge.exec_() dlgMerge.exec_()
if dlgMerge.result() == QDialog.Accepted: if dlgMerge.result() != QDialog.Accepted:
# Save the open document first, in case it's part of this
mrgData = dlgMerge.getData()
mrgList = mrgData.get("finalItems", [])
if not mrgList:
self.mainGui.makeAlert([
self.tr("No documents selected for merging.")
], nwAlert.INFO)
return False
# Save the open document first, in case it's part of merge
self.mainGui.saveDocument() self.mainGui.saveDocument()
# Set up the merge job # Create merge object, and append docs
mrgData = dlgMerge.getData()
docMerger = DocMerger(self.theProject) docMerger = DocMerger(self.theProject)
mLabel = self.tr("Merged") mLabel = self.tr("Merged")
@@ -1419,7 +1427,7 @@ class GuiProjectTree(QTreeWidget):
else: else:
return False return False
for sHandle in mrgData.get("finalItems", []): for sHandle in mrgList:
docMerger.appendText(sHandle, True, mLabel) docMerger.appendText(sHandle, True, mLabel)
if not docMerger.writeTargetDoc(): if not docMerger.writeTargetDoc():
@@ -1443,6 +1451,10 @@ class GuiProjectTree(QTreeWidget):
self._alertTreeChange(mHandle, flush=True) self._alertTreeChange(mHandle, flush=True)
self.projView.wordCountsChanged.emit() self.projView.wordCountsChanged.emit()
else:
logger.info("Action cancelled by user")
return False
return True return True
def _splitDocument(self, tHandle): def _splitDocument(self, tHandle):