Add language setting to wizard

This commit is contained in:
Veronica Berglyd Olsen
2023-11-09 18:55:02 +01:00
parent c7bfb1b21e
commit e3997b53aa
4 changed files with 26 additions and 5 deletions
+2
View File
@@ -353,11 +353,13 @@ class ProjectBuilder:
projName = data.get("projName", lblNewProject) projName = data.get("projName", lblNewProject)
projTitle = data.get("projTitle", lblNewProject) projTitle = data.get("projTitle", lblNewProject)
projAuthor = data.get("projAuthor", "") projAuthor = data.get("projAuthor", "")
projLang = data.get("projLang", "en_GB")
project.data.setUuid(None) project.data.setUuid(None)
project.data.setName(projName) project.data.setName(projName)
project.data.setTitle(projTitle) project.data.setTitle(projTitle)
project.data.setAuthor(projAuthor) project.data.setAuthor(projAuthor)
project.data.setLanguage(projLang)
project.setDefaultStatusImport() project.setDefaultStatusImport()
project.session.startSession() project.session.startSession()
+2 -3
View File
@@ -232,9 +232,8 @@ class GuiProjectEditMain(QWidget):
self.projLang = QComboBox(self) self.projLang = QComboBox(self)
self.projLang.setMaximumWidth(xW) self.projLang.setMaximumWidth(xW)
if CONFIG.hasEnchant: for tag, language in CONFIG.listLanguages(CONFIG.LANG_PROJ):
for tag, language in CONFIG.listLanguages(CONFIG.LANG_PROJ): self.projLang.addItem(language, tag)
self.projLang.addItem(language, tag)
self.mainForm.addRow( self.mainForm.addRow(
self.tr("Project language"), self.tr("Project language"),
self.projLang, self.projLang,
+6
View File
@@ -1482,6 +1482,12 @@ class GuiMain(QMainWindow):
projData["numChapters"] = newProj.field("numChapters") projData["numChapters"] = newProj.field("numChapters")
projData["numScenes"] = newProj.field("numScenes") 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 return projData
def _getTagSource(self, tag: str) -> tuple[str | None, str | None]: def _getTagSource(self, tag: str) -> tuple[str | None, str | None]:
+16 -2
View File
@@ -28,8 +28,9 @@ import logging
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QFileDialog, QFormLayout, QGridLayout, QHBoxLayout, QLabel, QLineEdit, QComboBox, QFileDialog, QFormLayout, QGridLayout, QHBoxLayout, QLabel,
QPushButton, QRadioButton, QSpinBox, QVBoxLayout, QWizard, QWizardPage QLineEdit, QPushButton, QRadioButton, QSpinBox, QVBoxLayout, QWizard,
QWizardPage
) )
from novelwriter import CONFIG, SHARED from novelwriter import CONFIG, SHARED
@@ -127,15 +128,28 @@ class ProjWizardIntroPage(QWizardPage):
self.projAuthor.setFixedWidth(xW) self.projAuthor.setFixedWidth(xW)
self.projAuthor.setPlaceholderText(self.tr("Optional")) 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 = QFormLayout()
self.mainForm.addRow(self.tr("Project Name"), self.projName) self.mainForm.addRow(self.tr("Project Name"), self.projName)
self.mainForm.addRow(self.tr("Novel Title"), self.projTitle) self.mainForm.addRow(self.tr("Novel Title"), self.projTitle)
self.mainForm.addRow(self.tr("Author(s)"), self.projAuthor) self.mainForm.addRow(self.tr("Author(s)"), self.projAuthor)
self.mainForm.addRow(self.tr("Language"), self.projLang)
self.mainForm.setVerticalSpacing(fS) self.mainForm.setVerticalSpacing(fS)
self.registerField("projName*", self.projName) self.registerField("projName*", self.projName)
self.registerField("projTitle", self.projTitle) self.registerField("projTitle", self.projTitle)
self.registerField("projAuthor", self.projAuthor) self.registerField("projAuthor", self.projAuthor)
self.registerField("projLang", self.projLang)
# Assemble # Assemble
self.outerBox = QVBoxLayout() self.outerBox = QVBoxLayout()