diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-08-26 04:52:15 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-08-26 04:52:15 -0400 |
| commit | 8708265f69491b807b1dc56d0804230b80ffbdb8 (patch) | |
| tree | 20abdf8bfd7202b53ed9b370f1a8e7470237030b /src/settings.cpp | |
| parent | 2eee72da6815f9d5c643b58c95f633e69da5150a (diff) | |
moved setting paths to Settings
Diffstat (limited to 'src/settings.cpp')
| -rw-r--r-- | src/settings.cpp | 97 |
1 files changed, 80 insertions, 17 deletions
diff --git a/src/settings.cpp b/src/settings.cpp index 406544f7..34b1b4ac 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -492,34 +492,108 @@ QString Settings::getConfigurablePath(const QString &key, const QString &def, bool resolve) const { + const QString settingName = "Settings/" + key; + QString result = QDir::fromNativeSeparators( - m_Settings.value(QString("settings/") + key, QString("%BASE_DIR%/") + def) - .toString()); + m_Settings.value(settingName, QString("%BASE_DIR%/") + def).toString()); + if (resolve) { result.replace("%BASE_DIR%", getBaseDirectory()); } + return result; } +void Settings::setConfigurablePath(const QString &key, const QString& path) +{ + const QString settingName = "Settings/" + key; + + if (path.isEmpty()) { + m_Settings.remove(settingName); + } else { + m_Settings.setValue(settingName, path); + } +} + QString Settings::getBaseDirectory() const { return QDir::fromNativeSeparators(m_Settings.value( - "settings/base_directory", qApp->property("dataPath").toString()).toString()); + "settings/base_directory", + qApp->property("dataPath").toString()).toString()); } QString Settings::getDownloadDirectory(bool resolve) const { - return getConfigurablePath("download_directory", ToQString(AppConfig::downloadPath()), resolve); + return getConfigurablePath( + "download_directory", + ToQString(AppConfig::downloadPath()), + resolve); } QString Settings::getCacheDirectory(bool resolve) const { - return getConfigurablePath("cache_directory", ToQString(AppConfig::cachePath()), resolve); + return getConfigurablePath( + "cache_directory", + ToQString(AppConfig::cachePath()), + resolve); } QString Settings::getModDirectory(bool resolve) const { - return getConfigurablePath("mod_directory", ToQString(AppConfig::modsPath()), resolve); + return getConfigurablePath( + "mod_directory", + ToQString(AppConfig::modsPath()), + resolve); +} + +QString Settings::getProfileDirectory(bool resolve) const +{ + return getConfigurablePath( + "profiles_directory", + ToQString(AppConfig::profilesPath()), + resolve); +} + +QString Settings::getOverwriteDirectory(bool resolve) const +{ + return getConfigurablePath( + "overwrite_directory", + ToQString(AppConfig::overwritePath()), + resolve); +} + +void Settings::setBaseDirectory(const QString& path) +{ + if (path.isEmpty()) { + m_Settings.remove("Settings/base_directory"); + } else { + m_Settings.setValue("Settings/base_directory", path); + } +} + +void Settings::setDownloadDirectory(const QString& path) +{ + setConfigurablePath("download_directory", path); +} + +void Settings::setModDirectory(const QString& path) +{ + setConfigurablePath("mod_directory", path); +} + +void Settings::setCacheDirectory(const QString& path) +{ + setConfigurablePath("cache_directory", path); +} + +void Settings::setProfileDirectory(const QString& path) +{ + setConfigurablePath("profiles_directory", path); +} + +void Settings::setOverwriteDirectory(const QString& path) +{ + setConfigurablePath("overwrite_directory", path); } std::optional<QString> Settings::getManagedGameDirectory() const @@ -629,17 +703,6 @@ void Settings::removePreviousSeparatorColor() m_Settings.remove("previousSeparatorColor"); } -QString Settings::getProfileDirectory(bool resolve) const -{ - return getConfigurablePath("profiles_directory", ToQString(AppConfig::profilesPath()), resolve); -} - -QString Settings::getOverwriteDirectory(bool resolve) const -{ - return getConfigurablePath("overwrite_directory", - ToQString(AppConfig::overwritePath()), resolve); -} - bool Settings::getNexusApiKey(QString &apiKey) const { QString tempKey = deObfuscate("APIKEY"); |
