diff --git a/CHANGELOG.md b/CHANGELOG.md index 61d88ce35c..baf6b8062b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -197,6 +197,7 @@ Bug #8171: Items with more than 100% health can be repaired Bug #8172: Openmw-cs crashes when viewing `Dantooine, Sea` Bug #8187: Intervention effects should use Chebyshev distance to determine the closest marker + Bug #8189: The import tab in the launcher doesn't remember the checkbox selection Bug #8191: NiRollController does not work for sheath meshes Bug #8206: Moving away from storm wind origin should make you faster Bug #8207: Using hand-to-hand while sneaking plays the critical hit sound when the target is not getting hurt diff --git a/apps/launcher/importpage.cpp b/apps/launcher/importpage.cpp index 47075db1bc..3ad6e538da 100644 --- a/apps/launcher/importpage.cpp +++ b/apps/launcher/importpage.cpp @@ -220,9 +220,15 @@ void Launcher::ImportPage::resetProgressBar() progressBar->reset(); } -void Launcher::ImportPage::saveSettings() {} +void Launcher::ImportPage::saveSettings() +{ + mLauncherSettings.setImportContentSetup(addonsCheckBox->isChecked()); + mLauncherSettings.setImportFontSetup(fontsCheckBox->isChecked()); +} bool Launcher::ImportPage::loadSettings() { + addonsCheckBox->setChecked(mLauncherSettings.getImportContentSetup()); + fontsCheckBox->setChecked(mLauncherSettings.getImportFontSetup()); return true; } diff --git a/components/config/launchersettings.cpp b/components/config/launchersettings.cpp index 30398038aa..5d1d058406 100644 --- a/components/config/launchersettings.cpp +++ b/components/config/launchersettings.cpp @@ -20,12 +20,15 @@ namespace Config constexpr char sSettingsSection[] = "Settings"; constexpr char sGeneralSection[] = "General"; constexpr char sProfilesSection[] = "Profiles"; + constexpr char sImporterSection[] = "Importer"; constexpr char sLanguageKey[] = "language"; constexpr char sCurrentProfileKey[] = "currentprofile"; constexpr char sDataKey[] = "data"; constexpr char sArchiveKey[] = "fallback-archive"; constexpr char sContentKey[] = "content"; constexpr char sFirstRunKey[] = "firstrun"; + constexpr char sImportContentSetupKey[] = "importcontentsetup"; + constexpr char sImportFontSetupKey[] = "importfontsetup"; constexpr char sMainWindowWidthKey[] = "MainWindow/width"; constexpr char sMainWindowHeightKey[] = "MainWindow/height"; constexpr char sMainWindowPosXKey[] = "MainWindow/posx"; @@ -143,6 +146,16 @@ namespace Config return false; } + bool parseImporterSection(const QString& key, const QString& value, LauncherSettings::Importer& importer) + { + if (key == sImportContentSetupKey) + return parseBool(value, importer.mImportContentSetup); + if (key == sImportFontSetupKey) + return parseBool(value, importer.mImportFontSetup); + + return false; + } + template void writeSectionHeader(const char (&name)[size], QTextStream& stream) { @@ -202,6 +215,13 @@ namespace Config writeKeyValue(sMainWindowPosXKey, value.mMainWindow.mPosX, stream); writeKeyValue(sMainWindowHeightKey, value.mMainWindow.mHeight, stream); } + + void writeImporter(const LauncherSettings::Importer& value, QTextStream& stream) + { + writeSectionHeader(sImporterSection, stream); + writeKeyValue(sImportContentSetupKey, value.mImportContentSetup, stream); + writeKeyValue(sImportFontSetupKey, value.mImportFontSetup, stream); + } } } @@ -210,6 +230,7 @@ void Config::LauncherSettings::writeFile(QTextStream& stream) const writeSettings(mSettings, stream); writeProfiles(mProfiles, stream); writeGeneral(mGeneral, stream); + writeImporter(mImporter, stream); } QStringList Config::LauncherSettings::getContentLists() @@ -335,6 +356,8 @@ bool Config::LauncherSettings::setValue(const QString& sectionPrefix, const QStr return parseProfilesSection(key, value, mProfiles); if (sectionPrefix == sGeneralSection) return parseGeneralSection(key, value, mGeneral); + if (sectionPrefix == sImporterSection) + return parseImporterSection(key, value, mImporter); return false; } @@ -390,4 +413,5 @@ void Config::LauncherSettings::clear() mSettings = Settings{}; mGeneral = General{}; mProfiles = Profiles{}; + mImporter = Importer{}; } diff --git a/components/config/launchersettings.hpp b/components/config/launchersettings.hpp index 09f2218549..acc83bff85 100644 --- a/components/config/launchersettings.hpp +++ b/components/config/launchersettings.hpp @@ -49,6 +49,12 @@ namespace Config std::map mValues; }; + struct Importer + { + bool mImportContentSetup = true; + bool mImportFontSetup = true; + }; + void readFile(QTextStream& stream); void clear(); @@ -87,10 +93,19 @@ namespace Config void setMainWindow(const MainWindow& value) { mGeneral.mMainWindow = value; } + bool getImportContentSetup() const { return mImporter.mImportContentSetup; } + + void setImportContentSetup(bool value) { mImporter.mImportContentSetup = value; } + + bool getImportFontSetup() const { return mImporter.mImportFontSetup; } + + void setImportFontSetup(bool value) { mImporter.mImportFontSetup = value; } + private: Settings mSettings; Profiles mProfiles; General mGeneral; + Importer mImporter; bool setValue(const QString& sectionPrefix, const QString& key, const QString& value);