Cleaned up the split and merge dialogs
This commit is contained in:
@@ -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",
|
||||
]
|
||||
|
||||
@@ -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
|
||||
|
||||
+23
-23
@@ -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("<b>Documents to Merge</b>")
|
||||
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()
|
||||
|
||||
+21
-23
@@ -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("<b>Document Headers</b>")
|
||||
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()
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user