diff --git a/nw/core/options.py b/nw/core/options.py index db94ae45..d35a26f5 100644 --- a/nw/core/options.py +++ b/nw/core/options.py @@ -87,7 +87,11 @@ class OptionState(): "winWidth", "winHeight", "replaceColW", - } + }, + "GuiProjectDetails": { + "winWidth", + "winHeight", + }, } return diff --git a/nw/gui/mainmenu.py b/nw/gui/mainmenu.py index 554eca52..44348af6 100644 --- a/nw/gui/mainmenu.py +++ b/nw/gui/mainmenu.py @@ -219,6 +219,13 @@ class GuiMainMenu(QMenuBar): self.aProjectSettings.triggered.connect(lambda: self.theParent.showProjectSettingsDialog()) self.projMenu.addAction(self.aProjectSettings) + # Project > Project Details + self.aProjectDetails = QAction("Project Details", self) + self.aProjectDetails.setStatusTip("Project details") + self.aProjectDetails.setShortcut("Ctrl+Shift+E") + self.aProjectDetails.triggered.connect(lambda: self.theParent.showProjectDetailsDialog()) + self.projMenu.addAction(self.aProjectDetails) + # Project > Separator self.projMenu.addSeparator() diff --git a/nw/gui/projdetails.py b/nw/gui/projdetails.py index 5de7950b..57610284 100644 --- a/nw/gui/projdetails.py +++ b/nw/gui/projdetails.py @@ -28,12 +28,9 @@ import nw import logging -from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import ( - QWidget, QDialogButtonBox, QTreeWidget, QTreeWidgetItem -) +from PyQt5.QtWidgets import QDialogButtonBox -from nw.gui.custom import PagedDialog, QConfigLayout +from nw.gui.custom import PagedDialog logger = logging.getLogger(__name__) @@ -66,7 +63,7 @@ class GuiProjectDetails(PagedDialog): # self.addTab(self.tabMain, "Settings") - self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok) + self.buttonBox = QDialogButtonBox(QDialogButtonBox.Close) self.buttonBox.rejected.connect(self._doClose) self.addControls(self.buttonBox) diff --git a/nw/guimain.py b/nw/guimain.py index 8640aa52..7eee016a 100644 --- a/nw/guimain.py +++ b/nw/guimain.py @@ -43,8 +43,8 @@ from nw.gui import ( GuiAbout, GuiBuildNovel, GuiDocEditor, GuiDocMerge, GuiDocSplit, GuiDocViewDetails, GuiDocViewer, GuiItemDetails, GuiItemEditor, GuiMainMenu, GuiMainStatus, GuiNovelTree, GuiOutline, GuiOutlineDetails, - GuiPreferences, GuiProjectLoad, GuiProjectSettings, GuiProjectTree, - GuiProjectWizard, GuiTheme, GuiWritingStats + GuiPreferences, GuiProjectDetails, GuiProjectLoad, GuiProjectSettings, + GuiProjectTree, GuiProjectWizard, GuiTheme, GuiWritingStats ) from nw.core import NWProject, NWDoc, NWIndex from nw.constants import nwItemType, nwItemClass, nwAlert, nwConst @@ -907,6 +907,19 @@ class GuiMain(QMainWindow): return + def showProjectDetailsDialog(self): + """Open the project details dialog. + """ + if not self.hasProject: + logger.error("No project open") + return + + dlgDetails = GuiProjectDetails(self, self.theProject) + dlgDetails.setModal(False) + dlgDetails.show() + + return + def showBuildProjectDialog(self): """Open the build project dialog. """