Make a few more improvements to doc merge
This commit is contained in:
+34
-22
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user