diff --git a/nw/gui/docmerge.py b/nw/gui/docmerge.py
index 547cbd44..06eb226a 100644
--- a/nw/gui/docmerge.py
+++ b/nw/gui/docmerge.py
@@ -109,15 +109,24 @@ class GuiDocMerge(QDialog):
if self.sourceItem is None:
self.theParent.makeAlert((
- "Cannot parse source item."
+ "No source document selected. Nothing to do."
), nwAlert.ERROR)
return
srcItem = self.theProject.projTree[self.sourceItem]
+ if srcItem is None:
+ self.theParent.makeAlert((
+ "Could not parse source document."
+ ), nwAlert.ERROR)
+ return
+
nHandle = self.theProject.newFile(srcItem.itemName, srcItem.itemClass, srcItem.parHandle)
- self.theParent.treeView.revealTreeItem(nHandle)
+ newItem = self.theProject.projTree[nHandle]
+ newItem.setStatus(srcItem.itemStatus)
+
theDoc.openDocument(nHandle, False)
theDoc.saveDocument(theText)
+ self.theParent.treeView.revealTreeItem(nHandle)
self.theParent.openDocument(nHandle, doScroll=True)
self.close()
diff --git a/nw/gui/docsplit.py b/nw/gui/docsplit.py
index edd92b6e..376eaf3a 100644
--- a/nw/gui/docsplit.py
+++ b/nw/gui/docsplit.py
@@ -31,7 +31,7 @@ import nw
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (
QDialog, QVBoxLayout, QComboBox, QListWidget, QAbstractItemView,
- QListWidgetItem, QDialogButtonBox, QLabel
+ QListWidgetItem, QDialogButtonBox, QLabel, QMessageBox
)
from nw.constants import nwAlert, nwItemType, nwItemClass, nwItemLayout, nwConst
@@ -107,7 +107,7 @@ class GuiDocSplit(QDialog):
def _doSplit(self):
"""Perform the split of the file, create a new folder in the
same parent folder, and multiple files depending on split level
- settings. The old file is not removed in the merge process, and
+ settings. The old file is not removed in the split process, and
must be deleted manually.
"""
logger.verbose("GuiDocSplit split button clicked")
@@ -143,7 +143,8 @@ class GuiDocSplit(QDialog):
if i > 0:
finalOrder[i-1][2] = lineNo
- if len(finalOrder) == 0:
+ nFiles = len(finalOrder)
+ if nFiles == 0:
self.theParent.makeAlert((
"No headers found. Nothing to do."
), nwAlert.ERROR)
@@ -159,6 +160,18 @@ class GuiDocSplit(QDialog):
), nwAlert.ERROR)
return
+ if self.mainConf.showGUI:
+ msgBox = QMessageBox()
+ msgRes = msgBox.question(
+ self, "Split Document", (
+ "The document will be split into %d file(s) in a new folder. "
+ "The original document will remain intact.
"
+ "Continue with the splitting process?"
+ ) % nFiles
+ )
+ if msgRes != QMessageBox.Yes:
+ return
+
# Create the folder
fHandle = self.theProject.newFolder(
srcItem.itemName, srcItem.itemClass, srcItem.parHandle
@@ -186,6 +199,7 @@ class GuiDocSplit(QDialog):
nHandle = self.theProject.newFile(wTitle, srcItem.itemClass, fHandle)
newItem = self.theProject.projTree[nHandle]
newItem.setLayout(itemLayout)
+ newItem.setStatus(srcItem.itemStatus)
logger.verbose(
"Creating new document %s with text from line %d to %d" % (
nHandle, iStart, iEnd-1