From e3997b53aa6687d809557202e9b8a6b3576b33e5 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Thu, 9 Nov 2023 18:55:02 +0100 Subject: [PATCH] Add language setting to wizard --- novelwriter/core/coretools.py | 2 ++ novelwriter/dialogs/projsettings.py | 5 ++--- novelwriter/guimain.py | 6 ++++++ novelwriter/tools/projwizard.py | 18 ++++++++++++++++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/novelwriter/core/coretools.py b/novelwriter/core/coretools.py index 017ea082..81803576 100644 --- a/novelwriter/core/coretools.py +++ b/novelwriter/core/coretools.py @@ -353,11 +353,13 @@ class ProjectBuilder: projName = data.get("projName", lblNewProject) projTitle = data.get("projTitle", lblNewProject) projAuthor = data.get("projAuthor", "") + projLang = data.get("projLang", "en_GB") project.data.setUuid(None) project.data.setName(projName) project.data.setTitle(projTitle) project.data.setAuthor(projAuthor) + project.data.setLanguage(projLang) project.setDefaultStatusImport() project.session.startSession() diff --git a/novelwriter/dialogs/projsettings.py b/novelwriter/dialogs/projsettings.py index 4accfed0..20b11c53 100644 --- a/novelwriter/dialogs/projsettings.py +++ b/novelwriter/dialogs/projsettings.py @@ -232,9 +232,8 @@ class GuiProjectEditMain(QWidget): self.projLang = QComboBox(self) self.projLang.setMaximumWidth(xW) - if CONFIG.hasEnchant: - for tag, language in CONFIG.listLanguages(CONFIG.LANG_PROJ): - self.projLang.addItem(language, tag) + for tag, language in CONFIG.listLanguages(CONFIG.LANG_PROJ): + self.projLang.addItem(language, tag) self.mainForm.addRow( self.tr("Project language"), self.projLang, diff --git a/novelwriter/guimain.py b/novelwriter/guimain.py index 41301476..519a40cf 100644 --- a/novelwriter/guimain.py +++ b/novelwriter/guimain.py @@ -1482,6 +1482,12 @@ class GuiMain(QMainWindow): projData["numChapters"] = newProj.field("numChapters") projData["numScenes"] = newProj.field("numScenes") + try: + langIdx = newProj.field("projLang") + projData["projLang"] = CONFIG.listLanguages(CONFIG.LANG_PROJ)[langIdx][0] + except Exception: + projData["projLang"] = "en_GB" + return projData def _getTagSource(self, tag: str) -> tuple[str | None, str | None]: diff --git a/novelwriter/tools/projwizard.py b/novelwriter/tools/projwizard.py index ef715847..b47da1cf 100644 --- a/novelwriter/tools/projwizard.py +++ b/novelwriter/tools/projwizard.py @@ -28,8 +28,9 @@ import logging from PyQt5.QtCore import Qt from PyQt5.QtWidgets import ( - QFileDialog, QFormLayout, QGridLayout, QHBoxLayout, QLabel, QLineEdit, - QPushButton, QRadioButton, QSpinBox, QVBoxLayout, QWizard, QWizardPage + QComboBox, QFileDialog, QFormLayout, QGridLayout, QHBoxLayout, QLabel, + QLineEdit, QPushButton, QRadioButton, QSpinBox, QVBoxLayout, QWizard, + QWizardPage ) from novelwriter import CONFIG, SHARED @@ -127,15 +128,28 @@ class ProjWizardIntroPage(QWizardPage): self.projAuthor.setFixedWidth(xW) self.projAuthor.setPlaceholderText(self.tr("Optional")) + self.projLang = QComboBox(self) + self.projLang.setMaximumWidth(xW) + for tag, language in CONFIG.listLanguages(CONFIG.LANG_PROJ): + self.projLang.addItem(language, tag) + + langIdx = self.projLang.findData(CONFIG.guiLocale) + if langIdx == -1: + langIdx = self.projLang.findData("en_GB") + if langIdx != -1: + self.projLang.setCurrentIndex(langIdx) + self.mainForm = QFormLayout() self.mainForm.addRow(self.tr("Project Name"), self.projName) self.mainForm.addRow(self.tr("Novel Title"), self.projTitle) self.mainForm.addRow(self.tr("Author(s)"), self.projAuthor) + self.mainForm.addRow(self.tr("Language"), self.projLang) self.mainForm.setVerticalSpacing(fS) self.registerField("projName*", self.projName) self.registerField("projTitle", self.projTitle) self.registerField("projAuthor", self.projAuthor) + self.registerField("projLang", self.projLang) # Assemble self.outerBox = QVBoxLayout()