summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modinfo.cpp1
-rw-r--r--src/modlist.cpp10
-rw-r--r--src/organizercore.cpp6
-rw-r--r--src/organizercore.h4
-rw-r--r--src/pluginlist.cpp2
-rw-r--r--src/settings.cpp160
-rw-r--r--src/settings.h70
-rw-r--r--src/settingsdialog.cpp26
-rw-r--r--src/settingsdialog.ui20
-rw-r--r--src/settingsdialogdiagnostics.cpp38
-rw-r--r--src/settingsdialogdiagnostics.h1
-rw-r--r--src/settingsdialoggeneral.cpp64
-rw-r--r--src/usvfsconnector.cpp7
-rw-r--r--src/usvfsconnector.h2
14 files changed, 258 insertions, 153 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index 5a05e7ca..e3daa4fd 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -42,7 +42,6 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <QApplication>
#include <QDirIterator>
#include <QMutexLocker>
-#include <QSettings>
using namespace MOBase;
using namespace MOShared;
diff --git a/src/modlist.cpp b/src/modlist.cpp
index c591c49b..94b4a387 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -416,15 +416,15 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
bool archiveOverwritten = m_ArchiveOverwritten.find(modIndex) != m_ArchiveOverwritten.end();
bool archiveLooseOverwritten = m_ArchiveLooseOverwritten.find(modIndex) != m_ArchiveLooseOverwritten.end();
if (modInfo->getHighlight() & ModInfo::HIGHLIGHT_PLUGIN) {
- return Settings::instance().modlistContainsPluginColor();
+ return Settings::instance().colors().modlistContainsPlugin();
} else if (overwritten || archiveLooseOverwritten) {
- return Settings::instance().modlistOverwritingLooseColor();
+ return Settings::instance().colors().modlistOverwritingLoose();
} else if (overwrite || archiveLooseOverwrite) {
- return Settings::instance().modlistOverwrittenLooseColor();
+ return Settings::instance().colors().modlistOverwrittenLoose();
} else if (archiveOverwritten) {
- return Settings::instance().modlistOverwritingArchiveColor();
+ return Settings::instance().colors().modlistOverwritingArchive();
} else if (archiveOverwrite) {
- return Settings::instance().modlistOverwrittenArchiveColor();
+ return Settings::instance().colors().modlistOverwrittenArchive();
} else if (modInfo->hasFlag(ModInfo::FLAG_SEPARATOR)
&& modInfo->getColor().isValid()
&& ((role != ViewMarkingScrollBar::DEFAULT_ROLE)
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 73d0abac..5a8ee4c2 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -667,7 +667,7 @@ void OrganizerCore::prepareVFS()
}
void OrganizerCore::updateVFSParams(
- log::Levels logLevel, int crashDumpsType, QString executableBlacklist)
+ log::Levels logLevel, CrashDumpsType crashDumpsType, QString executableBlacklist)
{
setGlobalCrashDumpsType(crashDumpsType);
m_USVFS.updateParams(logLevel, crashDumpsType, executableBlacklist);
@@ -692,8 +692,8 @@ bool OrganizerCore::cycleDiagnostics() {
}
//static
-void OrganizerCore::setGlobalCrashDumpsType(int crashDumpsType) {
- m_globalCrashDumpsType = ::crashDumpsType(crashDumpsType);
+void OrganizerCore::setGlobalCrashDumpsType(CrashDumpsType type) {
+ m_globalCrashDumpsType = type;
}
//static
diff --git a/src/organizercore.h b/src/organizercore.h
index 4bcfe745..a14d79a9 100644
--- a/src/organizercore.h
+++ b/src/organizercore.h
@@ -193,7 +193,7 @@ public:
void prepareVFS();
void updateVFSParams(
- MOBase::log::Levels logLevel, int crashDumpsType,
+ MOBase::log::Levels logLevel, CrashDumpsType crashDumpsType,
QString executableBlacklist);
void setLogLevel(MOBase::log::Levels level);
@@ -201,7 +201,7 @@ public:
bool cycleDiagnostics();
static CrashDumpsType getGlobalCrashDumpsType() { return m_globalCrashDumpsType; }
- static void setGlobalCrashDumpsType(int crashDumpsType);
+ static void setGlobalCrashDumpsType(CrashDumpsType crashDumpsType);
static std::wstring crashDumpsPath();
public:
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index 8637f546..ddfe492e 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -931,7 +931,7 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const
} else if (role == Qt::BackgroundRole
|| (role == ViewMarkingScrollBar::DEFAULT_ROLE)) {
if (m_ESPs[index].m_ModSelected) {
- return Settings::instance().pluginListContainedColor();
+ return Settings::instance().colors().pluginListContained();
} else {
return QVariant();
}
diff --git a/src/settings.cpp b/src/settings.cpp
index 844ee81e..2236fc9d 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -24,7 +24,6 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "expanderwidget.h"
#include <utility.h>
#include <iplugingame.h>
-#include <usvfsparameters.h>
using namespace MOBase;
@@ -33,7 +32,13 @@ std::optional<T> getOptional(
const QSettings& s, const QString& name, std::optional<T> def={})
{
if (s.contains(name)) {
- return s.value(name).value<T>();
+ const auto v = s.value(name);
+
+ if constexpr (std::is_enum_v<T>) {
+ return static_cast<T>(v.value<std::underlying_type_t<T>>());
+ } else {
+ return v.value<T>();
+ }
}
return def;
@@ -160,10 +165,12 @@ void warnIfNotCheckable(const QAbstractButton* b)
}
}
+
Settings *Settings::s_Instance = nullptr;
-Settings::Settings(const QString& path)
- : m_Settings(path, QSettings::IniFormat), m_Geometry(m_Settings)
+Settings::Settings(const QString& path) :
+ m_Settings(path, QSettings::IniFormat),
+ m_Geometry(m_Settings), m_Colors(m_Settings)
{
if (s_Instance != nullptr) {
throw std::runtime_error("second instance of \"Settings\" created");
@@ -280,6 +287,11 @@ bool Settings::colorSeparatorScrollbar() const
return m_Settings.value("Settings/colorSeparatorScrollbars", true).toBool();
}
+void Settings::setColorSeparatorScrollbar(bool b)
+{
+ m_Settings.setValue("Settings/colorSeparatorScrollbars", b);
+}
+
void Settings::managedGameChanged(IPluginGame const *gamePlugin)
{
m_GamePlugin = gamePlugin;
@@ -397,6 +409,11 @@ bool Settings::usePrereleases() const
return m_Settings.value("Settings/use_prereleases", false).toBool();
}
+void Settings::setUsePrereleases(bool b)
+{
+ m_Settings.setValue("Settings/use_prereleases", b);
+}
+
void Settings::setDownloadSpeed(const QString &serverName, int bytesPerSecond)
{
m_Settings.beginGroup("Servers");
@@ -615,16 +632,27 @@ bool Settings::getSteamLogin(QString &username, QString &password) const
return !username.isEmpty() && !password.isEmpty();
}
+
bool Settings::compactDownloads() const
{
return m_Settings.value("Settings/compact_downloads", false).toBool();
}
+void Settings::setCompactDownloads(bool b)
+{
+ m_Settings.setValue("Settings/compact_downloads", b);
+}
+
bool Settings::metaDownloads() const
{
return m_Settings.value("Settings/meta_downloads", false).toBool();
}
+void Settings::setMetaDownloads(bool b)
+{
+ m_Settings.setValue("Settings/meta_downloads", b);
+}
+
bool Settings::offlineMode() const
{
return m_Settings.value("Settings/offline_mode", false).toBool();
@@ -640,44 +668,25 @@ void Settings::setLogLevel(log::Levels level)
m_Settings.setValue("Settings/log_level", static_cast<int>(level));
}
-int Settings::crashDumpsType() const
+CrashDumpsType Settings::crashDumpsType() const
{
- return m_Settings.value("Settings/crash_dumps_type", static_cast<int>(CrashDumpsType::Mini)).toInt();
+ const auto v = getOptional<CrashDumpsType>(m_Settings, "Settings/crash_dumps_type");
+ return v.value_or(CrashDumpsType::Mini);
}
-int Settings::crashDumpsMax() const
+void Settings::setCrashDumpsType(CrashDumpsType type)
{
- return m_Settings.value("Settings/crash_dumps_max", 5).toInt();
+ m_Settings.setValue("Settings/crash_dumps_type", static_cast<int>(type));
}
-QColor Settings::modlistOverwrittenLooseColor() const
-{
- return m_Settings.value("Settings/overwrittenLooseFilesColor", QColor(0, 255, 0, 64)).value<QColor>();
-}
-
-QColor Settings::modlistOverwritingLooseColor() const
-{
- return m_Settings.value("Settings/overwritingLooseFilesColor", QColor(255, 0, 0, 64)).value<QColor>();
-}
-
-QColor Settings::modlistOverwrittenArchiveColor() const
-{
- return m_Settings.value("Settings/overwrittenArchiveFilesColor", QColor(0, 255, 255, 64)).value<QColor>();
-}
-
-QColor Settings::modlistOverwritingArchiveColor() const
-{
- return m_Settings.value("Settings/overwritingArchiveFilesColor", QColor(255, 0, 255, 64)).value<QColor>();
-}
-
-QColor Settings::modlistContainsPluginColor() const
+int Settings::crashDumpsMax() const
{
- return m_Settings.value("Settings/containsPluginColor", QColor(0, 0, 255, 64)).value<QColor>();
+ return m_Settings.value("Settings/crash_dumps_max", 5).toInt();
}
-QColor Settings::pluginListContainedColor() const
+void Settings::setCrashDumpsMax(int n)
{
- return m_Settings.value("Settings/containedColor", QColor(0, 0, 255, 64)).value<QColor>();
+ return m_Settings.setValue("Settings/crash_dumps_max", n);
}
QString Settings::executablesBlacklist() const
@@ -850,6 +859,11 @@ QString Settings::language()
return result;
}
+void Settings::setLanguage(const QString& name)
+{
+ m_Settings.setValue("Settings/language", name);
+}
+
void Settings::updateServers(const QList<ServerInfo> &servers)
{
m_Settings.beginGroup("Servers");
@@ -1132,6 +1146,16 @@ const GeometrySettings& Settings::geometry() const
return m_Geometry;
}
+ColorSettings& Settings::colors()
+{
+ return m_Colors;
+}
+
+const ColorSettings& Settings::colors() const
+{
+ return m_Colors;
+}
+
QSettings::Status Settings::sync() const
{
m_Settings.sync();
@@ -1451,6 +1475,78 @@ void GeometrySettings::restoreDocks(QMainWindow* mw) const
}
+ColorSettings::ColorSettings(QSettings& s)
+ : m_Settings(s)
+{
+}
+
+QColor ColorSettings::modlistOverwrittenLoose() const
+{
+ return getOptional<QColor>(m_Settings, "Settings/overwrittenLooseFilesColor")
+ .value_or(QColor(0, 255, 0, 64));
+}
+
+void ColorSettings::setModlistOverwrittenLoose(const QColor& c)
+{
+ m_Settings.setValue("Settings/overwrittenLooseFilesColor", c);
+}
+
+QColor ColorSettings::modlistOverwritingLoose() const
+{
+ return getOptional<QColor>(m_Settings, "Settings/overwritingLooseFilesColor")
+ .value_or(QColor(255, 0, 0, 64));
+}
+
+void ColorSettings::setModlistOverwritingLoose(const QColor& c)
+{
+ m_Settings.setValue("Settings/overwritingLooseFilesColor", c);
+}
+
+QColor ColorSettings::modlistOverwrittenArchive() const
+{
+ return getOptional<QColor>(m_Settings, "Settings/overwrittenArchiveFilesColor")
+ .value_or(QColor(0, 255, 255, 64));
+}
+
+void ColorSettings::setModlistOverwrittenArchive(const QColor& c)
+{
+ m_Settings.setValue("Settings/overwrittenArchiveFilesColor", c);
+}
+
+QColor ColorSettings::modlistOverwritingArchive() const
+{
+ return getOptional<QColor>(m_Settings, "Settings/overwritingArchiveFilesColor")
+ .value_or(QColor(255, 0, 255, 64));
+}
+
+void ColorSettings::setModlistOverwritingArchive(const QColor& c)
+{
+ m_Settings.setValue("Settings/overwritingArchiveFilesColor", c);
+}
+
+QColor ColorSettings::modlistContainsPlugin() const
+{
+ return getOptional<QColor>(m_Settings, "Settings/containsPluginColor")
+ .value_or(QColor(0, 0, 255, 64));
+}
+
+void ColorSettings::setModlistContainsPlugin(const QColor& c)
+{
+ m_Settings.setValue("Settings/containsPluginColor", c);
+}
+
+QColor ColorSettings::pluginListContained() const
+{
+ return getOptional<QColor>(m_Settings, "Settings/containedColor")
+ .value_or(QColor(0, 0, 255, 64));
+}
+
+void ColorSettings::setPluginListContained(const QColor& c)
+{
+ m_Settings.setValue("Settings/containedColor", c);
+}
+
+
GeometrySaver::GeometrySaver(Settings& s, QDialog* dialog)
: m_settings(s), m_dialog(dialog)
{
diff --git a/src/settings.h b/src/settings.h
index b25af15f..5b1d7bfc 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -23,6 +23,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "loadmechanism.h"
#include <questionboxmemory.h>
#include <log.h>
+#include <usvfsparameters.h>
namespace MOBase {
class IPlugin;
@@ -96,6 +97,36 @@ private:
};
+class ColorSettings
+{
+public:
+ ColorSettings(QSettings& s);
+
+ void setCrashDumpsMax(int i) const;
+
+ QColor modlistOverwrittenLoose() const;
+ void setModlistOverwrittenLoose(const QColor& c);
+
+ QColor modlistOverwritingLoose() const;
+ void setModlistOverwritingLoose(const QColor& c);
+
+ QColor modlistOverwrittenArchive() const;
+ void setModlistOverwrittenArchive(const QColor& c);
+
+ QColor modlistOverwritingArchive() const;
+ void setModlistOverwritingArchive(const QColor& c);
+
+ QColor modlistContainsPlugin() const;
+ void setModlistContainsPlugin(const QColor& c);
+
+ QColor pluginListContained() const;
+ void setPluginListContained(const QColor& c) ;
+
+private:
+ QSettings& m_Settings;
+};
+
+
enum class EndorsementState
{
Accepted = 1,
@@ -268,6 +299,10 @@ public:
GeometrySettings& geometry();
const GeometrySettings& geometry() const;
+ ColorSettings& colors();
+ const ColorSettings& colors() const;
+
+
/**
* retrieve the directory where profiles stored (with native separators)
**/
@@ -329,43 +364,22 @@ public:
* @return true if the user chose compact downloads
*/
bool compactDownloads() const;
+ void setCompactDownloads(bool b);
/**
* @return true if the user chose meta downloads
*/
bool metaDownloads() const;
+ void setMetaDownloads(bool b);
- /**
- * @return the configured log level
- */
MOBase::log::Levels logLevel() const;
-
- /**
- * sets the log level setting
- */
void setLogLevel(MOBase::log::Levels level);
- /**
- * @return the configured crash dumps type
- */
- int crashDumpsType() const;
+ CrashDumpsType crashDumpsType() const;
+ void setCrashDumpsType(CrashDumpsType type);
- /**
- * @return the configured crash dumps max
- */
int crashDumpsMax() const;
-
- QColor modlistOverwrittenLooseColor() const;
-
- QColor modlistOverwritingLooseColor() const;
-
- QColor modlistOverwrittenArchiveColor() const;
-
- QColor modlistOverwritingArchiveColor() const;
-
- QColor modlistContainsPluginColor() const;
-
- QColor pluginListContainedColor() const;
+ void setCrashDumpsMax(int n);
QString executablesBlacklist() const;
@@ -473,6 +487,7 @@ public:
* @return short code of the configured language (corresponding to the translation files)
*/
QString language();
+ void setLanguage(const QString& name);
/**
* @brief updates the list of known servers
@@ -499,6 +514,7 @@ public:
std::vector<MOBase::IPlugin*> plugins() const { return m_Plugins; }
bool usePrereleases() const;
+ void setUsePrereleases(bool b);
/**
* @brief register MO as the handler for nxm links
@@ -512,6 +528,7 @@ public:
* @return the state of the setting
*/
bool colorSeparatorScrollbar() const;
+ void setColorSeparatorScrollbar(bool b);
static QColor getIdealTextColor(const QColor& rBackgroundColor);
@@ -540,6 +557,7 @@ private:
MOBase::IPluginGame const *m_GamePlugin;
mutable QSettings m_Settings;
GeometrySettings m_Geometry;
+ ColorSettings m_Colors;
LoadMechanism m_LoadMechanism;
std::vector<MOBase::IPlugin*> m_Plugins;
diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp
index 097dafc8..9d031785 100644
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -51,43 +51,19 @@ int SettingsDialog::exec()
{
GeometrySaver gs(m_settings, this);
- auto& qsettings = m_settings.directInterface();
auto ret = TutorableDialog::exec();
if (ret == QDialog::Accepted) {
-
for (auto&& tab : m_tabs) {
tab->closing();
}
- // remember settings before change
- QMap<QString, QString> before;
- qsettings.beginGroup("Settings");
- for (auto k : qsettings.allKeys())
- before[k] = qsettings.value(k).toString();
- qsettings.endGroup();
-
- // transfer modified settings to configuration file
+ // update settings for each tab
for (std::unique_ptr<SettingsTab> const &tab: m_tabs) {
tab->update();
}
-
- // print "changed" settings
- qsettings.beginGroup("Settings");
- bool first_update = true;
- for (auto k : qsettings.allKeys())
- if (qsettings.value(k).toString() != before[k] && !k.contains("username") && !k.contains("password"))
- {
- if (first_update) {
- log::debug("Changed settings:");
- first_update = false;
- }
- log::debug(" {}={}", k, qsettings.value(k).toString());
- }
- qsettings.endGroup();
}
- // These changes happen regardless of accepted or rejected
bool restartNeeded = false;
if (getApiKeyChanged()) {
restartNeeded = true;
diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui
index e7676387..af230bc0 100644
--- a/src/settingsdialog.ui
+++ b/src/settingsdialog.ui
@@ -1346,26 +1346,6 @@ programs you are intentionally running.</string>
&quot;Full&quot; Even larger dumps with a full memory dump of the process.
</string>
</property>
- <item>
- <property name="text">
- <string>None</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Mini (recommended)</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Data</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Full</string>
- </property>
- </item>
</widget>
</item>
</layout>
diff --git a/src/settingsdialogdiagnostics.cpp b/src/settingsdialogdiagnostics.cpp
index 227d1dfa..278da0bf 100644
--- a/src/settingsdialogdiagnostics.cpp
+++ b/src/settingsdialogdiagnostics.cpp
@@ -10,10 +10,13 @@ DiagnosticsSettingsTab::DiagnosticsSettingsTab(Settings& s, SettingsDialog& d)
: SettingsTab(s, d)
{
setLevelsBox();
- ui->dumpsTypeBox->setCurrentIndex(settings().crashDumpsType());
+ setCrashDumpTypesBox();
+
ui->dumpsMaxEdit->setValue(settings().crashDumpsMax());
+
QString logsPath = qApp->property("dataPath").toString()
+ "/" + QString::fromStdWString(AppConfig::logPath());
+
ui->diagnosticsExplainedLabel->setText(
ui->diagnosticsExplainedLabel->text()
.replace("LOGS_FULL_PATH", logsPath)
@@ -40,9 +43,36 @@ void DiagnosticsSettingsTab::setLevelsBox()
}
}
+void DiagnosticsSettingsTab::setCrashDumpTypesBox()
+{
+ ui->dumpsTypeBox->clear();
+
+ auto add = [&](auto&& text, auto&& type) {
+ ui->dumpsTypeBox->addItem(text, static_cast<int>(type));
+ };
+
+ add(QObject::tr("None"), CrashDumpsType::None);
+ add(QObject::tr("Mini (recommended)"), CrashDumpsType::Mini);
+ add(QObject::tr("Data"), CrashDumpsType::Data);
+ add(QObject::tr("Full"), CrashDumpsType::Full);
+
+ const auto current = static_cast<int>(settings().crashDumpsType());
+
+ for (int i=0; i<ui->dumpsTypeBox->count(); ++i) {
+ if (ui->dumpsTypeBox->itemData(i) == current) {
+ ui->dumpsTypeBox->setCurrentIndex(i);
+ break;
+ }
+ }
+}
+
void DiagnosticsSettingsTab::update()
{
- qsettings().setValue("Settings/log_level", ui->logLevelBox->currentData().toInt());
- qsettings().setValue("Settings/crash_dumps_type", ui->dumpsTypeBox->currentIndex());
- qsettings().setValue("Settings/crash_dumps_max", ui->dumpsMaxEdit->value());
+ settings().setLogLevel(
+ static_cast<log::Levels>(ui->logLevelBox->currentData().toInt()));
+
+ settings().setCrashDumpsType(
+ static_cast<CrashDumpsType>(ui->dumpsTypeBox->currentData().toInt()));
+
+ settings().setCrashDumpsMax(ui->dumpsMaxEdit->value());
}
diff --git a/src/settingsdialogdiagnostics.h b/src/settingsdialogdiagnostics.h
index f20413f8..f0fbf770 100644
--- a/src/settingsdialogdiagnostics.h
+++ b/src/settingsdialogdiagnostics.h
@@ -13,6 +13,7 @@ public:
private:
void setLevelsBox();
+ void setCrashDumpTypesBox();
};
#endif // SETTINGSDIALOGDIAGNOSTICS_H
diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp
index 35012db7..e3d73037 100644
--- a/src/settingsdialoggeneral.cpp
+++ b/src/settingsdialoggeneral.cpp
@@ -26,28 +26,30 @@ GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d)
}
addStyles();
+
{
- int currentID = ui->styleBox->findData(
- qsettings().value("Settings/style", "").toString());
+ const int currentID = ui->styleBox->findData(
+ settings().getStyleName().value_or(""));
+
if (currentID != -1) {
ui->styleBox->setCurrentIndex(currentID);
}
}
//version with stylesheet
- setButtonColor(ui->overwritingBtn, settings().modlistOverwritingLooseColor());
- setButtonColor(ui->overwrittenBtn, settings().modlistOverwrittenLooseColor());
- setButtonColor(ui->overwritingArchiveBtn, settings().modlistOverwritingArchiveColor());
- setButtonColor(ui->overwrittenArchiveBtn, settings().modlistOverwrittenArchiveColor());
- setButtonColor(ui->containsBtn, settings().modlistContainsPluginColor());
- setButtonColor(ui->containedBtn, settings().pluginListContainedColor());
+ setButtonColor(ui->overwritingBtn, settings().colors().modlistOverwritingLoose());
+ setButtonColor(ui->overwrittenBtn, settings().colors().modlistOverwrittenLoose());
+ setButtonColor(ui->overwritingArchiveBtn, settings().colors().modlistOverwritingArchive());
+ setButtonColor(ui->overwrittenArchiveBtn, settings().colors().modlistOverwrittenArchive());
+ setButtonColor(ui->containsBtn, settings().colors().modlistContainsPlugin());
+ setButtonColor(ui->containedBtn, settings().colors().pluginListContained());
- setOverwritingColor(settings().modlistOverwritingLooseColor());
- setOverwrittenColor(settings().modlistOverwrittenLooseColor());
- setOverwritingArchiveColor(settings().modlistOverwritingArchiveColor());
- setOverwrittenArchiveColor(settings().modlistOverwrittenArchiveColor());
- setContainsColor(settings().modlistContainsPluginColor());
- setContainedColor(settings().pluginListContainedColor());
+ setOverwritingColor(settings().colors().modlistOverwritingLoose());
+ setOverwrittenColor(settings().colors().modlistOverwrittenLoose());
+ setOverwritingArchiveColor(settings().colors().modlistOverwritingArchive());
+ setOverwrittenArchiveColor(settings().colors().modlistOverwrittenArchive());
+ setContainsColor(settings().colors().modlistContainsPlugin());
+ setContainedColor(settings().colors().pluginListContained());
ui->compactBox->setChecked(settings().compactDownloads());
ui->showMetaBox->setChecked(settings().metaDownloads());
@@ -67,30 +69,32 @@ GeneralSettingsTab::GeneralSettingsTab(Settings& s, SettingsDialog& d)
void GeneralSettingsTab::update()
{
- QString oldLanguage = settings().language();
- QString newLanguage = ui->languageBox->itemData(ui->languageBox->currentIndex()).toString();
+ const QString oldLanguage = settings().language();
+ const QString newLanguage = ui->languageBox->itemData(ui->languageBox->currentIndex()).toString();
+
if (newLanguage != oldLanguage) {
- qsettings().setValue("Settings/language", newLanguage);
+ settings().setLanguage(newLanguage);
emit settings().languageChanged(newLanguage);
}
- QString oldStyle = qsettings().value("Settings/style", "").toString();
- QString newStyle = ui->styleBox->itemData(ui->styleBox->currentIndex()).toString();
+ const QString oldStyle = settings().getStyleName().value_or("");
+ const QString newStyle = ui->styleBox->itemData(ui->styleBox->currentIndex()).toString();
if (oldStyle != newStyle) {
- qsettings().setValue("Settings/style", newStyle);
+ settings().setStyleName(newStyle);
emit settings().styleChanged(newStyle);
}
- qsettings().setValue("Settings/overwritingLooseFilesColor", getOverwritingColor());
- qsettings().setValue("Settings/overwrittenLooseFilesColor", getOverwrittenColor());
- qsettings().setValue("Settings/overwritingArchiveFilesColor", getOverwritingArchiveColor());
- qsettings().setValue("Settings/overwrittenArchiveFilesColor", getOverwrittenArchiveColor());
- qsettings().setValue("Settings/containsPluginColor", getContainsColor());
- qsettings().setValue("Settings/containedColor", getContainedColor());
- qsettings().setValue("Settings/compact_downloads", ui->compactBox->isChecked());
- qsettings().setValue("Settings/meta_downloads", ui->showMetaBox->isChecked());
- qsettings().setValue("Settings/use_prereleases", ui->usePrereleaseBox->isChecked());
- qsettings().setValue("Settings/colorSeparatorScrollbars", ui->colorSeparatorsBox->isChecked());
+ settings().colors().setModlistOverwritingLoose(getOverwritingColor());
+ settings().colors().setModlistOverwrittenLoose(getOverwrittenColor());
+ settings().colors().setModlistOverwritingArchive(getOverwritingArchiveColor());
+ settings().colors().setModlistOverwrittenArchive(getOverwrittenArchiveColor());
+ settings().colors().setModlistContainsPlugin(getContainsColor());
+ settings().colors().setPluginListContained(getContainedColor());
+
+ settings().setCompactDownloads(ui->compactBox->isChecked());
+ settings().setMetaDownloads(ui->showMetaBox->isChecked());
+ settings().setUsePrereleases(ui->usePrereleaseBox->isChecked());
+ settings().setColorSeparatorScrollbar(ui->colorSeparatorsBox->isChecked());
}
void GeneralSettingsTab::addLanguages()
diff --git a/src/usvfsconnector.cpp b/src/usvfsconnector.cpp
index b5e6edb1..41f58308 100644
--- a/src/usvfsconnector.cpp
+++ b/src/usvfsconnector.cpp
@@ -164,7 +164,7 @@ UsvfsConnector::UsvfsConnector()
{
USVFSParameters params;
LogLevel level = toUsvfsLogLevel(Settings::instance().logLevel());
- CrashDumpsType dumpType = crashDumpsType(Settings::instance().crashDumpsType());
+ CrashDumpsType dumpType = Settings::instance().crashDumpsType();
std::string dumpPath = MOShared::ToString(OrganizerCore::crashDumpsPath(), true);
USVFSInitParameters(&params, SHMID, false, level, dumpType, dumpPath.c_str());
@@ -249,9 +249,10 @@ void UsvfsConnector::updateMapping(const MappingType &mapping)
}
void UsvfsConnector::updateParams(
- MOBase::log::Levels logLevel, int crashDumpsType, QString executableBlacklist)
+ MOBase::log::Levels logLevel, CrashDumpsType crashDumpsType,
+ QString executableBlacklist)
{
- USVFSUpdateParams(toUsvfsLogLevel(logLevel), ::crashDumpsType(crashDumpsType));
+ USVFSUpdateParams(toUsvfsLogLevel(logLevel), crashDumpsType);
ClearExecutableBlacklist();
for (auto exec : executableBlacklist.split(";")) {
std::wstring buf = exec.toStdWString();
diff --git a/src/usvfsconnector.h b/src/usvfsconnector.h
index b0bd320c..cd5d56b2 100644
--- a/src/usvfsconnector.h
+++ b/src/usvfsconnector.h
@@ -87,7 +87,7 @@ public:
void updateMapping(const MappingType &mapping);
void updateParams(
- MOBase::log::Levels logLevel, int crashDumpsType,
+ MOBase::log::Levels logLevel, CrashDumpsType crashDumpsType,
QString executableBlacklist);
void updateForcedLibraries(const QList<MOBase::ExecutableForcedLoadSetting> &forcedLibraries);