diff --git a/nw/assets/graphics/export.svg b/nw/assets/graphics/export.svg
deleted file mode 100644
index 9594a980..00000000
--- a/nw/assets/graphics/export.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
\ No newline at end of file
diff --git a/nw/assets/graphics/merge.svg b/nw/assets/graphics/merge.svg
deleted file mode 100644
index 1b4c6ae9..00000000
--- a/nw/assets/graphics/merge.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
diff --git a/nw/assets/graphics/split.svg b/nw/assets/graphics/split.svg
deleted file mode 100644
index c427eea6..00000000
--- a/nw/assets/graphics/split.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
diff --git a/nw/gui/additions/__init__.py b/nw/gui/additions/__init__.py
index 32af81f6..dbacd16e 100644
--- a/nw/gui/additions/__init__.py
+++ b/nw/gui/additions/__init__.py
@@ -1,10 +1,12 @@
# -*- coding: utf-8 -*-
from nw.gui.additions.pageddialog import PagedDialog
from nw.gui.additions.qconfiglayout import QConfigLayout
+from nw.gui.additions.qconfiglayout import QHelpLabel
from nw.gui.additions.qswitch import QSwitch
__all__ = [
"PagedDialog",
"QConfigLayout",
+ "QHelpLabel",
"QSwitch",
]
diff --git a/nw/gui/additions/qconfiglayout.py b/nw/gui/additions/qconfiglayout.py
index 51face15..032d0e6b 100644
--- a/nw/gui/additions/qconfiglayout.py
+++ b/nw/gui/additions/qconfiglayout.py
@@ -130,17 +130,9 @@ class QConfigLayout(QGridLayout):
qLabel.setIndent(8)
if helpText is not None:
- qHelp = QLabel(str(helpText))
+ qHelp = QHelpLabel(str(helpText), self._helpCol, self._fontScale)
qHelp.setIndent(8)
- lblCol = qHelp.palette()
- lblCol.setColor(QPalette.WindowText, self._helpCol)
- qHelp.setPalette(lblCol)
-
- lblFont = qHelp.font()
- lblFont.setPointSizeF(self._fontScale*lblFont.pointSizeF())
- qHelp.setFont(lblFont)
-
labelBox = QVBoxLayout()
labelBox.addWidget(qLabel)
labelBox.addWidget(qHelp)
@@ -176,3 +168,25 @@ class QConfigLayout(QGridLayout):
return self._nextRow - 1
# END Class QConfigLayout
+
+class QHelpLabel(QLabel):
+
+ def __init__(self, theText, textCol, fontSize=0.9):
+ QLabel.__init__(self, theText)
+
+ if isinstance(textCol, QColor):
+ qCol = textCol
+ else:
+ qCol = QColor(*textCol)
+
+ lblCol = self.palette()
+ lblCol.setColor(QPalette.WindowText, qCol)
+ self.setPalette(lblCol)
+
+ lblFont = self.font()
+ lblFont.setPointSizeF(fontSize*lblFont.pointSizeF())
+ self.setFont(lblFont)
+
+ return
+
+# END Class QHelpLabel
diff --git a/nw/gui/dialogs/docmerge.py b/nw/gui/dialogs/docmerge.py
index 1094fb78..47391a72 100644
--- a/nw/gui/dialogs/docmerge.py
+++ b/nw/gui/dialogs/docmerge.py
@@ -29,11 +29,14 @@ import logging
import nw
from PyQt5.QtCore import Qt
+from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtWidgets import (
- QDialog, QHBoxLayout, QVBoxLayout, QGridLayout, QPushButton,
- QListWidget, QAbstractItemView, QListWidgetItem
+ QDialog, QHBoxLayout, QVBoxLayout, QGridLayout, QPushButton, QLabel,
+ QListWidget, QAbstractItemView, QListWidgetItem, QDialogButtonBox
)
+
from nw.constants import nwAlert, nwItemType
+from nw.gui.additions import QHelpLabel
from nw.core import NWDoc
logger = logging.getLogger(__name__)
@@ -50,34 +53,31 @@ class GuiDocMerge(QDialog):
self.theProject = theProject
self.sourceItem = None
- self.outerBox = QHBoxLayout()
- self.innerBox = QVBoxLayout()
- self.setLayout(self.outerBox)
-
+ self.outerBox = QVBoxLayout()
self.setWindowTitle("Merge Documents")
- self.guiDeco = self.theParent.theTheme.loadDecoration("merge",(64,64))
- self.outerBox.setSpacing(16)
- self.outerBox.addWidget(self.guiDeco, 0, Qt.AlignTop)
- self.outerBox.addLayout(self.innerBox)
-
- self.doMergeForm = QGridLayout()
- self.doMergeForm.setContentsMargins(0,0,0,0)
+ self.headLabel = QLabel("Documents to Merge")
+ self.helpLabel = QHelpLabel(
+ "Drag and drop items to change the order.", self.theParent.theTheme.helpText
+ )
self.listBox = QListWidget()
self.listBox.setDragDropMode(QAbstractItemView.InternalMove)
+ self.listBox.setMinimumWidth(400)
+ self.listBox.setMinimumHeight(180)
- self.mergeButton = QPushButton("Merge")
- self.mergeButton.clicked.connect(self._doMerge)
+ self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
+ self.buttonBox.accepted.connect(self._doMerge)
+ self.buttonBox.rejected.connect(self._doClose)
- self.closeButton = QPushButton("Close")
- self.closeButton.clicked.connect(self._doClose)
-
- self.doMergeForm.addWidget(self.listBox, 0, 0, 1, 3)
- self.doMergeForm.addWidget(self.mergeButton, 1, 1)
- self.doMergeForm.addWidget(self.closeButton, 1, 2)
-
- self.innerBox.addLayout(self.doMergeForm)
+ self.outerBox.setSpacing(0)
+ self.outerBox.addWidget(self.headLabel)
+ self.outerBox.addWidget(self.helpLabel)
+ self.outerBox.addSpacing(8)
+ self.outerBox.addWidget(self.listBox)
+ self.outerBox.addSpacing(12)
+ self.outerBox.addWidget(self.buttonBox)
+ self.setLayout(self.outerBox)
self.rejected.connect(self._doClose)
self.show()
diff --git a/nw/gui/dialogs/docsplit.py b/nw/gui/dialogs/docsplit.py
index dc795c77..7e2e80cd 100644
--- a/nw/gui/dialogs/docsplit.py
+++ b/nw/gui/dialogs/docsplit.py
@@ -31,9 +31,10 @@ import nw
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (
QDialog, QHBoxLayout, QVBoxLayout, QGridLayout, QPushButton, QComboBox,
- QListWidget, QAbstractItemView, QListWidgetItem
+ QListWidget, QAbstractItemView, QListWidgetItem, QDialogButtonBox, QLabel
)
from nw.constants import nwAlert, nwItemType, nwItemClass, nwItemLayout
+from nw.gui.additions import QHelpLabel
from nw.core import NWDoc
logger = logging.getLogger(__name__)
@@ -51,22 +52,18 @@ class GuiDocSplit(QDialog):
self.optState = self.theProject.optState
self.sourceItem = None
- self.outerBox = QHBoxLayout()
- self.innerBox = QVBoxLayout()
- self.setLayout(self.outerBox)
-
+ self.outerBox = QVBoxLayout()
self.setWindowTitle("Split Document")
- self.guiDeco = self.theParent.theTheme.loadDecoration("split",(64,64))
- self.outerBox.setSpacing(16)
- self.outerBox.addWidget(self.guiDeco, 0, Qt.AlignTop)
- self.outerBox.addLayout(self.innerBox)
-
- self.doMergeForm = QGridLayout()
- self.doMergeForm.setContentsMargins(0,0,0,0)
+ self.headLabel = QLabel("Document Headers")
+ self.helpLabel = QHelpLabel(
+ "Select the maximum level to split into files at.", self.theParent.theTheme.helpText
+ )
self.listBox = QListWidget()
self.listBox.setDragDropMode(QAbstractItemView.NoDragDrop)
+ self.listBox.setMinimumWidth(400)
+ self.listBox.setMinimumHeight(180)
self.splitLevel = QComboBox(self)
self.splitLevel.addItem("Split on Header Level 1 (Title)", 1)
@@ -80,18 +77,19 @@ class GuiDocSplit(QDialog):
self.splitLevel.setCurrentIndex(spIndex)
self.splitLevel.currentIndexChanged.connect(self._populateList)
- self.splitButton = QPushButton("Split")
- self.splitButton.clicked.connect(self._doSplit)
+ self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
+ self.buttonBox.accepted.connect(self._doSplit)
+ self.buttonBox.rejected.connect(self._doClose)
- self.closeButton = QPushButton("Close")
- self.closeButton.clicked.connect(self._doClose)
-
- self.doMergeForm.addWidget(self.listBox, 0, 0, 1, 3)
- self.doMergeForm.addWidget(self.splitLevel, 1, 0, 1, 3)
- self.doMergeForm.addWidget(self.splitButton, 2, 1)
- self.doMergeForm.addWidget(self.closeButton, 2, 2)
-
- self.innerBox.addLayout(self.doMergeForm)
+ self.outerBox.setSpacing(0)
+ self.outerBox.addWidget(self.headLabel)
+ self.outerBox.addWidget(self.helpLabel)
+ self.outerBox.addSpacing(8)
+ self.outerBox.addWidget(self.listBox)
+ self.outerBox.addWidget(self.splitLevel)
+ self.outerBox.addSpacing(12)
+ self.outerBox.addWidget(self.buttonBox)
+ self.setLayout(self.outerBox)
self.rejected.connect(self._doClose)
self.show()
diff --git a/nw/gui/icons.py b/nw/gui/icons.py
index 8457ea90..9340d900 100644
--- a/nw/gui/icons.py
+++ b/nw/gui/icons.py
@@ -99,10 +99,7 @@ class GuiIcons:
DECO_MAP = {
"nwicon" : ["icons", "novelWriter.svg"],
- "export" : ["graphics", "export.svg"],
- "merge" : ["graphics", "merge.svg"],
"settings" : ["graphics", "gear.svg"],
- "split" : ["graphics", "split.svg"],
}
def __init__(self, theParent):