Skip to content

Commit

Permalink
Merge branch 'launcherimportdefaults' into 'master'
Browse files Browse the repository at this point in the history
Save/load INI importer flags in the launcher (#8189)

Closes #8189

See merge request OpenMW/openmw!4429
  • Loading branch information
psi29a committed Oct 28, 2024
2 parents b288448 + eea916a commit 1dc1bfe
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 7 additions & 1 deletion apps/launcher/importpage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
24 changes: 24 additions & 0 deletions components/config/launchersettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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 <std::size_t size>
void writeSectionHeader(const char (&name)[size], QTextStream& stream)
{
Expand Down Expand Up @@ -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);
}
}
}

Expand All @@ -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()
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -390,4 +413,5 @@ void Config::LauncherSettings::clear()
mSettings = Settings{};
mGeneral = General{};
mProfiles = Profiles{};
mImporter = Importer{};
}
15 changes: 15 additions & 0 deletions components/config/launchersettings.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ namespace Config
std::map<QString, Profile> mValues;
};

struct Importer
{
bool mImportContentSetup = true;
bool mImportFontSetup = true;
};

void readFile(QTextStream& stream);

void clear();
Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit 1dc1bfe

Please sign in to comment.