Rename manuscript build tool file and add build dialog

This commit is contained in:
Veronica Berglyd Olsen
2023-05-24 22:38:47 +02:00
parent a1837d8153
commit ad6b517c1d
6 changed files with 69 additions and 23 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ VALID_MAP = {
"GuiBuildSettings": {
"winWidth", "winHeight", "treeWidth", "filterWidth"
},
"GuiBuildManuscript": {
"GuiManuscript": {
"winWidth", "winHeight", "optsWidth", "viewWidth"
},
}
+2 -1
View File
@@ -4,7 +4,8 @@ novelWriter Text Tokenizer
Split novelWriter plain text into its elements
File History:
Created: 2019-05-05 [0.0.1]
Created: 2019-05-05 [0.0.1] Tokenizer
Created: 2023-05-23 [2.1b1] HeadingFormatter
This file is a part of novelWriter
Copyright 20182023, Veronica Berglyd Olsen
+6 -2
View File
@@ -4,7 +4,10 @@ novelWriter ODT Text Converter
Extends the Tokenizer class to generate ODT and FODT files
File History:
Created: 2021-01-26 [1.2b1]
Created: 2021-01-26 [1.2b1] ToOdt
Created: 2021-01-27 [1.2b1] ODTParagraphStyle
Created: 2021-01-27 [1.2b1] ODTTextStyle
Created: 2021-08-14 [1.5b1] XMLParagraph
This file is a part of novelWriter
Copyright 20182023, Veronica Berglyd Olsen
@@ -1439,7 +1442,8 @@ class XMLParagraph:
def checkError(self):
"""Check that the number of characters written matches the
number of characters received."""
number of characters received.
"""
errMsg = ""
nMissed = len(self._rawTxt) - self._chrPos
if nMissed != 0:
+4 -4
View File
@@ -57,7 +57,7 @@ from novelwriter.dialogs.projdetails import GuiProjectDetails
from novelwriter.dialogs.projsettings import GuiProjectSettings
from novelwriter.tools.build import GuiBuildNovel
from novelwriter.tools.lipsum import GuiLipsum
from novelwriter.tools.manusbuild import GuiBuildManuscript
from novelwriter.tools.manuscript import GuiManuscript
from novelwriter.tools.projwizard import GuiProjectWizard
from novelwriter.tools.writingstats import GuiWritingStats
from novelwriter.core.project import NWProject
@@ -1020,10 +1020,10 @@ class GuiMain(QMainWindow):
logger.error("No project open")
return False
dlgBuild = getGuiItem("GuiBuildManuscript")
dlgBuild = getGuiItem("GuiManuscript")
if dlgBuild is None:
dlgBuild = GuiBuildManuscript(self)
assert isinstance(dlgBuild, GuiBuildManuscript)
dlgBuild = GuiManuscript(self)
assert isinstance(dlgBuild, GuiManuscript)
dlgBuild.setModal(False)
dlgBuild.show()
@@ -4,7 +4,9 @@ novelWriter GUI Build Manuscript
GUI classes for the Manuscript Build Tool
File History:
Created: 2023-05-13 [2.1b1]
Created: 2023-05-13 [2.1b1] GuiManuscript
Created: 2023-05-13 [2.1b1] GuiManuscriptPreview
Created: 2023-05-24 [2.1b1] GuiManuscriptBuild
This file is a part of novelWriter
Copyright 20182023, Veronica Berglyd Olsen
@@ -44,11 +46,14 @@ if TYPE_CHECKING:
logger = logging.getLogger(__name__)
class GuiBuildManuscript(QDialog):
class GuiManuscript(QDialog):
def __init__(self, mainGui: GuiMain):
super().__init__(parent=mainGui)
logger.debug("Initialising GuiManuscript ...")
self.setObjectName("GuiManuscript")
self.mainGui = mainGui
self.mainTheme = mainGui.mainTheme
self.theProject = mainGui.theProject
@@ -65,8 +70,8 @@ class GuiBuildManuscript(QDialog):
pOptions = self.theProject.options
self.resize(
CONFIG.pxInt(pOptions.getInt("GuiBuildManuscript", "winWidth", wWin)),
CONFIG.pxInt(pOptions.getInt("GuiBuildManuscript", "winHeight", hWin))
CONFIG.pxInt(pOptions.getInt("GuiManuscript", "winWidth", wWin)),
CONFIG.pxInt(pOptions.getInt("GuiManuscript", "winHeight", hWin))
)
# Build Controls
@@ -110,6 +115,7 @@ class GuiBuildManuscript(QDialog):
self.btnSave.setMenu(self.menuSave)
self.btnClose = QPushButton(self.tr("Close"))
self.btnClose.clicked.connect(self._doClose)
# Assemble GUI
# ============
@@ -139,8 +145,8 @@ class GuiBuildManuscript(QDialog):
self.mainSplit.addWidget(self.optsWidget)
self.mainSplit.addWidget(self.manPreview)
self.mainSplit.setSizes([
CONFIG.pxInt(pOptions.getInt("GuiBuildManuscript", "optsWidth", wWin//3)),
CONFIG.pxInt(pOptions.getInt("GuiBuildManuscript", "viewWidth", 2*wWin//3)),
CONFIG.pxInt(pOptions.getInt("GuiManuscript", "optsWidth", wWin//3)),
CONFIG.pxInt(pOptions.getInt("GuiManuscript", "viewWidth", 2*wWin//3)),
])
self.outerBox = QVBoxLayout()
@@ -148,10 +154,12 @@ class GuiBuildManuscript(QDialog):
self.setLayout(self.outerBox)
logger.debug("GuiManuscript initialisation complete")
return
def loadContent(self):
"""
"""Load dialog content from project data.
"""
self._builds.loadCollection()
self._updateBuildsList()
@@ -164,7 +172,7 @@ class GuiBuildManuscript(QDialog):
def closeEvent(self, event):
"""Capture the user closing the window so we can save settings.
"""
self._saveSettings()
self._beforeClose()
event.accept()
return
@@ -201,14 +209,36 @@ class GuiBuildManuscript(QDialog):
self._updateBuildItem(build)
return
@pyqtSlot()
def _doClose(self):
"""The close button has been clicked.
"""
self._beforeClose()
self.close()
return
##
# Internal Functions
##
def _saveManuscript(self, outFormat: int):
"""Save the manuscript file or files.
"""
return
def _beforeClose(self):
"""List of things to do before closing.
"""
self._saveSettings()
for qWidget in qApp.topLevelWidgets():
if qWidget.objectName() == "GuiBuildSettings":
qWidget.close()
return
def _saveSettings(self):
"""Save the various user settings.
"""
logger.debug("Saving GuiBuildManuscript settings")
logger.debug("Saving GuiManuscript settings")
winWidth = CONFIG.rpxInt(self.width())
winHeight = CONFIG.rpxInt(self.height())
@@ -218,10 +248,10 @@ class GuiBuildManuscript(QDialog):
viewWidth = mainSplit[1]
pOptions = self.theProject.options
pOptions.setValue("GuiBuildManuscript", "winWidth", winWidth)
pOptions.setValue("GuiBuildManuscript", "winHeight", winHeight)
pOptions.setValue("GuiBuildManuscript", "optsWidth", optsWidth)
pOptions.setValue("GuiBuildManuscript", "viewWidth", viewWidth)
pOptions.setValue("GuiManuscript", "winWidth", winWidth)
pOptions.setValue("GuiManuscript", "winHeight", winHeight)
pOptions.setValue("GuiManuscript", "optsWidth", optsWidth)
pOptions.setValue("GuiManuscript", "viewWidth", viewWidth)
pOptions.saveSettings()
return
@@ -260,7 +290,7 @@ class GuiBuildManuscript(QDialog):
self._updateBuildsList()
return
# END Class GuiBuildManuscript
# END Class GuiManuscript
class GuiManuscriptPreview(QTextBrowser):
@@ -275,3 +305,14 @@ class GuiManuscriptPreview(QTextBrowser):
return
# END Class GuiManuscriptPreview
class GuiManuscriptBuild(QDialog):
def __init__(self, parent):
super().__init__(parent=parent)
self._manusGui = parent
return
# END Class GuiManuscriptBuild
+1 -1
View File
@@ -238,7 +238,7 @@ class GuiBuildSettings(QDialog):
"""
if self._build.changed:
return self.mainGui.askQuestion(
self.tr("Close"),
self.tr("Build Settings"),
self.tr("There are unsaved changes. Close anyway?")
)
return True