Fix a few issues with the build settings dialog
This commit is contained in:
@@ -43,9 +43,9 @@ from PyQt5.QtWidgets import (
|
|||||||
from novelwriter import CONFIG
|
from novelwriter import CONFIG
|
||||||
from novelwriter.constants import nwConst, nwHeadingFormats
|
from novelwriter.constants import nwConst, nwHeadingFormats
|
||||||
from novelwriter.core.buildsettings import BuildSettings, FilterMode
|
from novelwriter.core.buildsettings import BuildSettings, FilterMode
|
||||||
from novelwriter.extensions.configlayout import NConfigLayout, NSimpleLayout
|
|
||||||
from novelwriter.extensions.switch import NSwitch
|
from novelwriter.extensions.switch import NSwitch
|
||||||
from novelwriter.extensions.switchbox import NSwitchBox
|
from novelwriter.extensions.switchbox import NSwitchBox
|
||||||
|
from novelwriter.extensions.configlayout import NConfigLayout, NSimpleLayout
|
||||||
from novelwriter.extensions.pagedsidebar import NPagedSideBar
|
from novelwriter.extensions.pagedsidebar import NPagedSideBar
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@@ -211,7 +211,8 @@ class GuiBuildSettings(QDialog):
|
|||||||
if role == QDialogButtonBox.AcceptRole:
|
if role == QDialogButtonBox.AcceptRole:
|
||||||
self.accept()
|
self.accept()
|
||||||
elif role == QDialogButtonBox.RejectRole:
|
elif role == QDialogButtonBox.RejectRole:
|
||||||
self.reject()
|
if self._checkOkClose():
|
||||||
|
self.reject()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -222,14 +223,26 @@ class GuiBuildSettings(QDialog):
|
|||||||
def closeEvent(self, event: QEvent):
|
def closeEvent(self, event: QEvent):
|
||||||
"""Capture the user closing the window so we can save settings.
|
"""Capture the user closing the window so we can save settings.
|
||||||
"""
|
"""
|
||||||
self._saveSettings()
|
if self._checkOkClose():
|
||||||
event.accept()
|
self._saveSettings()
|
||||||
|
event.accept()
|
||||||
return
|
return
|
||||||
|
|
||||||
##
|
##
|
||||||
# Internal Functions
|
# Internal Functions
|
||||||
##
|
##
|
||||||
|
|
||||||
|
def _checkOkClose(self) -> bool:
|
||||||
|
"""Check if there are unsaved changes, and if there are, ask if
|
||||||
|
it';'s ok to reject them.
|
||||||
|
"""
|
||||||
|
if self._build.changed:
|
||||||
|
return self.mainGui.askQuestion(
|
||||||
|
self.tr("Close"),
|
||||||
|
self.tr("There are unsaved changes. Close anyway?")
|
||||||
|
)
|
||||||
|
return True
|
||||||
|
|
||||||
def _saveSettings(self):
|
def _saveSettings(self):
|
||||||
"""Save the various user settings.
|
"""Save the various user settings.
|
||||||
"""
|
"""
|
||||||
@@ -330,7 +343,7 @@ class GuiBuildFilterTab(QWidget):
|
|||||||
self.excludedButton.clicked.connect(lambda: self._setSelectedMode(self.F_EXCLUDED))
|
self.excludedButton.clicked.connect(lambda: self._setSelectedMode(self.F_EXCLUDED))
|
||||||
|
|
||||||
self.modeBox = QHBoxLayout()
|
self.modeBox = QHBoxLayout()
|
||||||
self.modeBox.addWidget(QLabel(self.tr("Mark items as")))
|
self.modeBox.addWidget(QLabel(self.tr("Mark selection as")))
|
||||||
self.modeBox.addStretch(1)
|
self.modeBox.addStretch(1)
|
||||||
self.modeBox.addWidget(self.filteredButton)
|
self.modeBox.addWidget(self.filteredButton)
|
||||||
self.modeBox.addWidget(self.includedButton)
|
self.modeBox.addWidget(self.includedButton)
|
||||||
@@ -359,6 +372,8 @@ class GuiBuildFilterTab(QWidget):
|
|||||||
self.mainSplit = QSplitter()
|
self.mainSplit = QSplitter()
|
||||||
self.mainSplit.addWidget(self.selectionWidget)
|
self.mainSplit.addWidget(self.selectionWidget)
|
||||||
self.mainSplit.addWidget(self.filterOpt)
|
self.mainSplit.addWidget(self.filterOpt)
|
||||||
|
self.mainSplit.setCollapsible(0, False)
|
||||||
|
self.mainSplit.setCollapsible(1, False)
|
||||||
if wTree > 0:
|
if wTree > 0:
|
||||||
self.mainSplit.setSizes([wTree, fTree])
|
self.mainSplit.setSizes([wTree, fTree])
|
||||||
|
|
||||||
@@ -495,7 +510,10 @@ class GuiBuildFilterTab(QWidget):
|
|||||||
itemIcon = self.mainTheme.getItemIcon(
|
itemIcon = self.mainTheme.getItemIcon(
|
||||||
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout
|
nwItem.itemType, nwItem.itemClass, nwItem.itemLayout
|
||||||
)
|
)
|
||||||
self.filterOpt.addItem(itemIcon, nwItem.itemName, f"root:{tHandle}", default=True)
|
self.filterOpt.addItem(
|
||||||
|
itemIcon, nwItem.itemName, f"root:{tHandle}",
|
||||||
|
default=self._build.isRootAllowed(tHandle)
|
||||||
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user