Update dialog buttons on all dialogs and tools
This commit is contained in:
@@ -37,9 +37,10 @@ from PyQt6.QtWidgets import (
|
||||
|
||||
from novelwriter import CONFIG, SHARED
|
||||
from novelwriter.common import formatFileFilter, formatInt, getFileSize, openExternalPath
|
||||
from novelwriter.enum import nwStandardButton
|
||||
from novelwriter.error import formatException
|
||||
from novelwriter.extensions.modified import NIconToolButton, NNonBlockingDialog
|
||||
from novelwriter.types import QtDialogClose, QtHexArgb
|
||||
from novelwriter.types import QtHexArgb
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -110,8 +111,11 @@ class GuiDictionaries(NNonBlockingDialog):
|
||||
self.infoBox.setFrameStyle(QFrame.Shape.NoFrame)
|
||||
|
||||
# Buttons
|
||||
self.buttonBox = QDialogButtonBox(QtDialogClose, self)
|
||||
self.buttonBox.rejected.connect(self.reject)
|
||||
self.btnClose = SHARED.theme.getStandardButton(nwStandardButton.CLOSE, self)
|
||||
self.btnClose.clicked.connect(self.reject)
|
||||
|
||||
self.btnBox = QDialogButtonBox(self)
|
||||
self.btnBox.addButton(self.btnClose, QDialogButtonBox.ButtonRole.AcceptRole)
|
||||
|
||||
# Assemble
|
||||
self.outerBox = QVBoxLayout()
|
||||
@@ -123,7 +127,7 @@ class GuiDictionaries(NNonBlockingDialog):
|
||||
self.outerBox.addLayout(self.inBox, 0)
|
||||
self.outerBox.addWidget(self.infoBox, 1)
|
||||
self.outerBox.addSpacing(8)
|
||||
self.outerBox.addWidget(self.buttonBox, 0)
|
||||
self.outerBox.addWidget(self.btnBox, 0)
|
||||
|
||||
self.setLayout(self.outerBox)
|
||||
|
||||
|
||||
+12
-11
@@ -34,9 +34,10 @@ from PyQt6.QtWidgets import (
|
||||
|
||||
from novelwriter import CONFIG, SHARED
|
||||
from novelwriter.common import readTextFile
|
||||
from novelwriter.enum import nwStandardButton
|
||||
from novelwriter.extensions.modified import NDialog
|
||||
from novelwriter.extensions.switch import NSwitch
|
||||
from novelwriter.types import QtAlignLeft, QtAlignRight, QtDialogClose, QtRoleAction
|
||||
from novelwriter.types import QtAlignLeft, QtAlignRight
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -91,22 +92,22 @@ class GuiLipsum(NDialog):
|
||||
self.innerBox.addLayout(self.formBox)
|
||||
|
||||
# Buttons
|
||||
self.buttonBox = QDialogButtonBox(self)
|
||||
self.buttonBox.rejected.connect(self.reject)
|
||||
self.btnInsert = SHARED.theme.getStandardButton(nwStandardButton.INSERT, self)
|
||||
self.btnInsert.clicked.connect(self._doInsert)
|
||||
self.btnInsert.setAutoDefault(False)
|
||||
|
||||
self.btnClose = self.buttonBox.addButton(QtDialogClose)
|
||||
if self.btnClose:
|
||||
self.btnClose.setAutoDefault(False)
|
||||
self.btnClose = SHARED.theme.getStandardButton(nwStandardButton.CLOSE, self)
|
||||
self.btnClose.clicked.connect(self.reject)
|
||||
self.btnClose.setAutoDefault(False)
|
||||
|
||||
self.btnInsert = self.buttonBox.addButton(self.tr("Insert"), QtRoleAction)
|
||||
if self.btnInsert:
|
||||
self.btnInsert.clicked.connect(self._doInsert)
|
||||
self.btnInsert.setAutoDefault(False)
|
||||
self.btnBox = QDialogButtonBox(self)
|
||||
self.btnBox.addButton(self.btnInsert, QDialogButtonBox.ButtonRole.ApplyRole)
|
||||
self.btnBox.addButton(self.btnClose, QDialogButtonBox.ButtonRole.RejectRole)
|
||||
|
||||
# Assemble
|
||||
self.outerBox = QVBoxLayout()
|
||||
self.outerBox.addLayout(self.innerBox)
|
||||
self.outerBox.addWidget(self.buttonBox)
|
||||
self.outerBox.addWidget(self.btnBox)
|
||||
self.outerBox.setSpacing(16)
|
||||
self.setLayout(self.outerBox)
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ from PyQt6.QtCore import QTimer, pyqtSlot
|
||||
from PyQt6.QtWidgets import (
|
||||
QAbstractButton, QAbstractItemView, QDialogButtonBox, QFileDialog,
|
||||
QGridLayout, QHBoxLayout, QLabel, QLineEdit, QListWidget, QListWidgetItem,
|
||||
QPushButton, QSplitter, QVBoxLayout, QWidget
|
||||
QSplitter, QVBoxLayout, QWidget
|
||||
)
|
||||
|
||||
from novelwriter import SHARED
|
||||
@@ -40,10 +40,10 @@ from novelwriter.common import makeFileNameSafe, openExternalPath
|
||||
from novelwriter.constants import nwLabels
|
||||
from novelwriter.core.docbuild import NWBuildDocument
|
||||
from novelwriter.core.item import NWItem
|
||||
from novelwriter.enum import nwBuildFmt
|
||||
from novelwriter.extensions.modified import NDialog, NIconToolButton
|
||||
from novelwriter.enum import nwBuildFmt, nwStandardButton
|
||||
from novelwriter.extensions.modified import NDialog, NIconToolButton, NPushButton
|
||||
from novelwriter.extensions.progressbars import NProgressSimple
|
||||
from novelwriter.types import QtAlignCenter, QtDialogClose, QtRoleAction, QtRoleReject, QtUserRole
|
||||
from novelwriter.types import QtAlignCenter, QtRoleAction, QtRoleReject, QtUserRole
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from PyQt6.QtGui import QCloseEvent
|
||||
@@ -178,25 +178,19 @@ class GuiManuscriptBuild(NDialog):
|
||||
self.buildBox.setVerticalSpacing(4)
|
||||
|
||||
# Dialog Buttons
|
||||
self.buttonBox = QDialogButtonBox(self)
|
||||
|
||||
self.btnOpen = QPushButton(
|
||||
SHARED.theme.getIcon("browse", "yellow"), self.tr("Open Folder"), self
|
||||
)
|
||||
self.btnOpen.setIconSize(bSz)
|
||||
self.btnOpen = NPushButton(self, self.tr("Open Folder"), bSz, "browse", "yellow")
|
||||
self.btnOpen.setAutoDefault(False)
|
||||
self.buttonBox.addButton(self.btnOpen, QtRoleAction)
|
||||
|
||||
self.btnBuild = QPushButton(
|
||||
SHARED.theme.getIcon("sb_build", "blue"), self.tr("&Build"), self
|
||||
)
|
||||
self.btnBuild.setIconSize(bSz)
|
||||
self.btnBuild = SHARED.theme.getStandardButton(nwStandardButton.BUILD, self)
|
||||
self.btnBuild.setAutoDefault(True)
|
||||
self.buttonBox.addButton(self.btnBuild, QtRoleAction)
|
||||
|
||||
self.btnClose = self.buttonBox.addButton(QtDialogClose)
|
||||
if self.btnClose:
|
||||
self.btnClose.setAutoDefault(False)
|
||||
self.btnClose = SHARED.theme.getStandardButton(nwStandardButton.CLOSE, self)
|
||||
self.btnClose.setAutoDefault(False)
|
||||
|
||||
self.btnBox = QDialogButtonBox(self)
|
||||
self.btnBox.addButton(self.btnOpen, QtRoleAction)
|
||||
self.btnBox.addButton(self.btnBuild, QtRoleAction)
|
||||
self.btnBox.addButton(self.btnClose, QtRoleReject)
|
||||
|
||||
# Assemble GUI
|
||||
# ============
|
||||
@@ -223,7 +217,7 @@ class GuiManuscriptBuild(NDialog):
|
||||
self.outerBox.addSpacing(4)
|
||||
self.outerBox.addLayout(self.buildBox, 0)
|
||||
self.outerBox.addSpacing(16)
|
||||
self.outerBox.addWidget(self.buttonBox, 0)
|
||||
self.outerBox.addWidget(self.btnBox, 0)
|
||||
self.outerBox.setSpacing(0)
|
||||
|
||||
self.setLayout(self.outerBox)
|
||||
@@ -239,7 +233,7 @@ class GuiManuscriptBuild(NDialog):
|
||||
# Signals
|
||||
self.btnReset.clicked.connect(self._doResetBuildName)
|
||||
self.btnBrowse.clicked.connect(self._doSelectPath)
|
||||
self.buttonBox.clicked.connect(self._dialogButtonClicked)
|
||||
self.btnBox.clicked.connect(self._dialogButtonClicked)
|
||||
self.listFormats.itemSelectionChanged.connect(self._resetProgress)
|
||||
|
||||
logger.debug("Ready: GuiManuscriptBuild")
|
||||
@@ -266,7 +260,7 @@ class GuiManuscriptBuild(NDialog):
|
||||
@pyqtSlot("QAbstractButton*")
|
||||
def _dialogButtonClicked(self, button: QAbstractButton) -> None:
|
||||
"""Handle button clicks from the dialog button box."""
|
||||
role = self.buttonBox.buttonRole(button)
|
||||
role = self.btnBox.buttonRole(button)
|
||||
if role == QtRoleAction:
|
||||
if button == self.btnBuild:
|
||||
self._runBuild()
|
||||
|
||||
@@ -36,9 +36,9 @@ from PyQt6.QtGui import (
|
||||
from PyQt6.QtPrintSupport import QPrinter, QPrintPreviewDialog
|
||||
from PyQt6.QtWidgets import (
|
||||
QAbstractItemView, QApplication, QFormLayout, QGridLayout, QHBoxLayout,
|
||||
QLabel, QListWidget, QListWidgetItem, QPushButton, QSplitter,
|
||||
QStackedWidget, QTabWidget, QTextBrowser, QTreeWidget, QTreeWidgetItem,
|
||||
QVBoxLayout, QWidget
|
||||
QLabel, QListWidget, QListWidgetItem, QSplitter, QStackedWidget,
|
||||
QTabWidget, QTextBrowser, QTreeWidget, QTreeWidgetItem, QVBoxLayout,
|
||||
QWidget
|
||||
)
|
||||
|
||||
from novelwriter import CONFIG, SHARED
|
||||
@@ -46,6 +46,7 @@ from novelwriter.common import fuzzyTime, qtLambda
|
||||
from novelwriter.constants import nwHeadFmt, nwLabels, nwStats, nwUnicode, trStats
|
||||
from novelwriter.core.buildsettings import BuildCollection, BuildSettings
|
||||
from novelwriter.core.docbuild import NWBuildDocument
|
||||
from novelwriter.enum import nwStandardButton
|
||||
from novelwriter.extensions.modified import NIconToggleButton, NIconToolButton, NToolDialog
|
||||
from novelwriter.extensions.progressbars import NProgressCircle
|
||||
from novelwriter.extensions.switch import NSwitch
|
||||
@@ -171,16 +172,16 @@ class GuiManuscript(NToolDialog):
|
||||
# Process Controls
|
||||
# ================
|
||||
|
||||
self.btnPreview = QPushButton(self.tr("Preview"), self)
|
||||
self.btnPreview = SHARED.theme.getStandardButton(nwStandardButton.PREVIEW, self)
|
||||
self.btnPreview.clicked.connect(self._generatePreview)
|
||||
|
||||
self.btnPrint = QPushButton(self.tr("Print"), self)
|
||||
self.btnPrint = SHARED.theme.getStandardButton(nwStandardButton.PRINT, self)
|
||||
self.btnPrint.clicked.connect(self._printDocument)
|
||||
|
||||
self.btnBuild = QPushButton(self.tr("Build"), self)
|
||||
self.btnBuild = SHARED.theme.getStandardButton(nwStandardButton.BUILD, self)
|
||||
self.btnBuild.clicked.connect(self._buildManuscript)
|
||||
|
||||
self.btnClose = QPushButton(self.tr("Close"), self)
|
||||
self.btnClose = SHARED.theme.getStandardButton(nwStandardButton.CLOSE, self)
|
||||
self.btnClose.clicked.connect(qtLambda(self.close))
|
||||
|
||||
self.processBox = QGridLayout()
|
||||
|
||||
@@ -40,6 +40,7 @@ from novelwriter import CONFIG, SHARED
|
||||
from novelwriter.common import describeFont, fontMatcher, qtAddAction, qtLambda
|
||||
from novelwriter.constants import nwHeadFmt, nwKeyWords, nwLabels, nwUnicode, trConst
|
||||
from novelwriter.core.buildsettings import BuildSettings, FilterMode
|
||||
from novelwriter.enum import nwStandardButton
|
||||
from novelwriter.extensions.configlayout import (
|
||||
NColorLabel, NFixedPage, NScrollableForm, NScrollablePage
|
||||
)
|
||||
@@ -50,9 +51,8 @@ from novelwriter.extensions.pagedsidebar import NPagedSideBar
|
||||
from novelwriter.extensions.switch import NSwitch
|
||||
from novelwriter.extensions.switchbox import NSwitchBox
|
||||
from novelwriter.types import (
|
||||
QtAlignCenter, QtAlignLeft, QtDialogApply, QtDialogClose, QtDialogSave,
|
||||
QtHeaderFixed, QtHeaderStretch, QtRoleAccept, QtRoleApply, QtRoleReject,
|
||||
QtUserRole
|
||||
QtAlignCenter, QtAlignLeft, QtHeaderFixed, QtHeaderStretch, QtRoleAccept,
|
||||
QtRoleApply, QtRoleReject, QtUserRole
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -125,8 +125,15 @@ class GuiBuildSettings(NToolDialog):
|
||||
self.toolStack.addWidget(self.optTabFormatting)
|
||||
|
||||
# Buttons
|
||||
self.buttonBox = QDialogButtonBox(QtDialogApply | QtDialogSave | QtDialogClose, self)
|
||||
self.buttonBox.clicked.connect(self._dialogButtonClicked)
|
||||
self.btnApply = SHARED.theme.getStandardButton(nwStandardButton.APPLY, self)
|
||||
self.btnSave = SHARED.theme.getStandardButton(nwStandardButton.SAVE, self)
|
||||
self.btnCancel = SHARED.theme.getStandardButton(nwStandardButton.CANCEL, self)
|
||||
|
||||
self.btnBox = QDialogButtonBox(self)
|
||||
self.btnBox.addButton(self.btnApply, QDialogButtonBox.ButtonRole.ApplyRole)
|
||||
self.btnBox.addButton(self.btnSave, QDialogButtonBox.ButtonRole.AcceptRole)
|
||||
self.btnBox.addButton(self.btnCancel, QDialogButtonBox.ButtonRole.RejectRole)
|
||||
self.btnBox.clicked.connect(self._dialogButtonClicked)
|
||||
|
||||
# Assemble
|
||||
self.topBox = QHBoxLayout()
|
||||
@@ -143,7 +150,7 @@ class GuiBuildSettings(NToolDialog):
|
||||
self.outerBox = QVBoxLayout()
|
||||
self.outerBox.addLayout(self.topBox)
|
||||
self.outerBox.addLayout(self.mainBox)
|
||||
self.outerBox.addWidget(self.buttonBox)
|
||||
self.outerBox.addWidget(self.btnBox)
|
||||
self.outerBox.setSpacing(12)
|
||||
|
||||
self.setLayout(self.outerBox)
|
||||
@@ -205,7 +212,7 @@ class GuiBuildSettings(NToolDialog):
|
||||
@pyqtSlot("QAbstractButton*")
|
||||
def _dialogButtonClicked(self, button: QAbstractButton) -> None:
|
||||
"""Handle button clicks from the dialog button box."""
|
||||
role = self.buttonBox.buttonRole(button)
|
||||
role = self.btnBox.buttonRole(button)
|
||||
if role == QtRoleApply:
|
||||
self._applyChanges()
|
||||
self._emitBuildData()
|
||||
|
||||
@@ -38,12 +38,13 @@ from PyQt6.QtWidgets import (
|
||||
from novelwriter import SHARED
|
||||
from novelwriter.common import formatTime, numberToRoman
|
||||
from novelwriter.constants import nwUnicode
|
||||
from novelwriter.enum import nwStandardButton
|
||||
from novelwriter.extensions.configlayout import NColorLabel, NFixedPage, NScrollablePage
|
||||
from novelwriter.extensions.modified import NNonBlockingDialog
|
||||
from novelwriter.extensions.novelselector import NovelSelector
|
||||
from novelwriter.extensions.pagedsidebar import NPagedSideBar
|
||||
from novelwriter.extensions.switch import NSwitch
|
||||
from novelwriter.types import QtAlignRight, QtDecoration, QtDialogClose
|
||||
from novelwriter.types import QtAlignRight, QtDecoration
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from PyQt6.QtGui import QCloseEvent
|
||||
@@ -102,8 +103,11 @@ class GuiNovelDetails(NNonBlockingDialog):
|
||||
self.mainStack.addWidget(self.contentsPage)
|
||||
|
||||
# Buttons
|
||||
self.buttonBox = QDialogButtonBox(QtDialogClose, self)
|
||||
self.buttonBox.rejected.connect(self.reject)
|
||||
self.btnClose = SHARED.theme.getStandardButton(nwStandardButton.CLOSE, self)
|
||||
self.btnClose.clicked.connect(self.reject)
|
||||
|
||||
self.btnBox = QDialogButtonBox(self)
|
||||
self.btnBox.addButton(self.btnClose, QDialogButtonBox.ButtonRole.RejectRole)
|
||||
|
||||
# Assemble
|
||||
self.topBox = QHBoxLayout()
|
||||
@@ -119,7 +123,7 @@ class GuiNovelDetails(NNonBlockingDialog):
|
||||
self.outerBox = QVBoxLayout()
|
||||
self.outerBox.addLayout(self.topBox)
|
||||
self.outerBox.addLayout(self.mainBox)
|
||||
self.outerBox.addWidget(self.buttonBox)
|
||||
self.outerBox.addWidget(self.btnBox)
|
||||
self.outerBox.setSpacing(8)
|
||||
|
||||
self.setLayout(self.outerBox)
|
||||
|
||||
@@ -39,13 +39,11 @@ from PyQt6.QtWidgets import (
|
||||
from novelwriter import CONFIG, SHARED
|
||||
from novelwriter.common import checkInt, checkIntTuple, formatTime, minmax, qtLambda
|
||||
from novelwriter.constants import nwConst
|
||||
from novelwriter.enum import nwStandardButton
|
||||
from novelwriter.error import formatException
|
||||
from novelwriter.extensions.modified import NToolDialog
|
||||
from novelwriter.extensions.modified import NPushButton, NToolDialog
|
||||
from novelwriter.extensions.switch import NSwitch
|
||||
from novelwriter.types import (
|
||||
QtAlignLeftMiddle, QtAlignRight, QtAlignRightMiddle, QtDecoration,
|
||||
QtDialogClose, QtRoleAction
|
||||
)
|
||||
from novelwriter.types import QtAlignLeftMiddle, QtAlignRight, QtAlignRightMiddle, QtDecoration
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from novelwriter.guimain import GuiMain
|
||||
@@ -182,6 +180,7 @@ class GuiWritingStats(NToolDialog):
|
||||
|
||||
# Filter Options
|
||||
iPx = SHARED.theme.baseIconHeight
|
||||
bSz = SHARED.theme.buttonIconSize
|
||||
|
||||
self.filterForm = QGridLayout(self)
|
||||
self.filterForm.setRowStretch(6, 1)
|
||||
@@ -276,6 +275,10 @@ class GuiWritingStats(NToolDialog):
|
||||
self.optsBox.addWidget(self.histMax, 0)
|
||||
|
||||
# Buttons
|
||||
self.btnClose = SHARED.theme.getStandardButton(nwStandardButton.CLOSE, self)
|
||||
self.btnClose.clicked.connect(self._doClose)
|
||||
self.btnClose.setAutoDefault(False)
|
||||
|
||||
self.saveJSON = QAction(self.tr("JSON Data File (.json)"), self)
|
||||
self.saveJSON.triggered.connect(qtLambda(self._saveData, self.FMT_JSON))
|
||||
|
||||
@@ -286,17 +289,13 @@ class GuiWritingStats(NToolDialog):
|
||||
self.saveMenu.addAction(self.saveJSON)
|
||||
self.saveMenu.addAction(self.saveCSV)
|
||||
|
||||
self.buttonBox = QDialogButtonBox(self)
|
||||
self.buttonBox.rejected.connect(self._doClose)
|
||||
self.btnSave = NPushButton(self, self.tr("Save As"), bSz, "btn_save", "blue")
|
||||
self.btnSave.setAutoDefault(False)
|
||||
self.btnSave.setMenu(self.saveMenu)
|
||||
|
||||
self.btnClose = self.buttonBox.addButton(QtDialogClose)
|
||||
if self.btnClose:
|
||||
self.btnClose.setAutoDefault(False)
|
||||
|
||||
self.btnSave = self.buttonBox.addButton(self.tr("Save As"), QtRoleAction)
|
||||
if self.btnSave:
|
||||
self.btnSave.setAutoDefault(False)
|
||||
self.btnSave.setMenu(self.saveMenu)
|
||||
self.btnBox = QDialogButtonBox(self)
|
||||
self.btnBox.addButton(self.btnClose, QDialogButtonBox.ButtonRole.RejectRole)
|
||||
self.btnBox.addButton(self.btnSave, QDialogButtonBox.ButtonRole.ActionRole)
|
||||
|
||||
# Assemble
|
||||
self.outerBox = QGridLayout()
|
||||
@@ -304,7 +303,7 @@ class GuiWritingStats(NToolDialog):
|
||||
self.outerBox.addLayout(self.optsBox, 1, 0, 1, 2)
|
||||
self.outerBox.addWidget(self.infoBox, 2, 0)
|
||||
self.outerBox.addWidget(self.filterBox, 2, 1)
|
||||
self.outerBox.addWidget(self.buttonBox, 3, 0, 1, 2)
|
||||
self.outerBox.addWidget(self.btnBox, 3, 0, 1, 2)
|
||||
self.outerBox.setRowStretch(0, 1)
|
||||
|
||||
self.setLayout(self.outerBox)
|
||||
|
||||
Reference in New Issue
Block a user