summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-07-24 09:25:02 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2020-11-03 11:39:04 -0500
commit2cb5c21b8e15b02a09144ff6c1ab11e87879a420 (patch)
tree1831209831543f7092f71e84dd5438ed0653c2a1 /src/settings.cpp
parentebbc8ed60c606b1b76fcea36eb2bd5db6373f7f0 (diff)
fixed settings doing weird stuff with multiple instances
sort games by name added intro and confirmation pages
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp40
1 files changed, 20 insertions, 20 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 43e7a4fa..8db9c623 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -61,33 +61,31 @@ QString toString(EndorsementState s)
Settings *Settings::s_Instance = nullptr;
-Settings::Settings(const QString& path) :
+Settings::Settings(const QString& path, bool globalInstance) :
m_Settings(path, QSettings::IniFormat),
- m_Game(m_Settings), m_Geometry(m_Settings), m_Widgets(m_Settings),
- m_Colors(m_Settings), m_Plugins(m_Settings), m_Paths(m_Settings),
- m_Network(m_Settings), m_Nexus(*this, m_Settings), m_Steam(*this, m_Settings),
+ m_Game(m_Settings), m_Geometry(m_Settings),
+ m_Widgets(m_Settings, globalInstance), m_Colors(m_Settings),
+ m_Plugins(m_Settings), m_Paths(m_Settings), m_Network(m_Settings),
+ m_Nexus(*this, m_Settings), m_Steam(*this, m_Settings),
m_Interface(m_Settings), m_Diagnostics(m_Settings)
{
+ if (globalInstance) {
+ if (s_Instance != nullptr) {
+ throw std::runtime_error("second instance of \"Settings\" created");
+ } else {
+ s_Instance = this;
+ }
+ }
}
Settings::~Settings()
{
- MOBase::QuestionBoxMemory::setCallbacks({}, {}, {});
-
if (s_Instance == this) {
+ MOBase::QuestionBoxMemory::setCallbacks({}, {}, {});
s_Instance = nullptr;
}
}
-void Settings::setGlobalInstance()
-{
- if (s_Instance != nullptr) {
- throw std::runtime_error("second instance of \"Settings\" created");
- } else {
- s_Instance = this;
- }
-}
-
Settings &Settings::instance()
{
if (s_Instance == nullptr) {
@@ -1011,13 +1009,15 @@ void GeometrySettings::restoreDocks(QMainWindow* mw) const
}
-WidgetSettings::WidgetSettings(QSettings& s)
+WidgetSettings::WidgetSettings(QSettings& s, bool globalInstance)
: m_Settings(s)
{
- MOBase::QuestionBoxMemory::setCallbacks(
- [this](auto&& w, auto&& f){ return questionButton(w, f); },
- [this](auto&& w, auto&& b){ setQuestionWindowButton(w, b); },
- [this](auto&& w, auto&& f, auto&& b){ setQuestionFileButton(w, f, b); });
+ if (globalInstance) {
+ MOBase::QuestionBoxMemory::setCallbacks(
+ [this](auto&& w, auto&& f){ return questionButton(w, f); },
+ [this](auto&& w, auto&& b){ setQuestionWindowButton(w, b); },
+ [this](auto&& w, auto&& f, auto&& b){ setQuestionFileButton(w, f, b); });
+ }
}
std::optional<int> WidgetSettings::index(const QComboBox* cb) const