summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--depends/settings/inisettingsobject.cpp5
-rw-r--r--depends/settings/inisettingsobject.h2
-rw-r--r--depends/settings/settingsobject.cpp9
-rw-r--r--depends/settings/settingsobject.h6
-rw-r--r--logic/BaseInstance.cpp3
5 files changed, 23 insertions, 2 deletions
diff --git a/depends/settings/inisettingsobject.cpp b/depends/settings/inisettingsobject.cpp
index 5e52a56f..2cee8e3c 100644
--- a/depends/settings/inisettingsobject.cpp
+++ b/depends/settings/inisettingsobject.cpp
@@ -28,6 +28,11 @@ void INISettingsObject::setFilePath(const QString &filePath)
m_filePath = filePath;
}
+bool INISettingsObject::reload()
+{
+ return m_ini.loadFile(m_filePath) && SettingsObject::reload();
+}
+
void INISettingsObject::changeSetting(const Setting &setting, QVariant value)
{
if (contains(setting.id()))
diff --git a/depends/settings/inisettingsobject.h b/depends/settings/inisettingsobject.h
index 8badc0c6..12370896 100644
--- a/depends/settings/inisettingsobject.h
+++ b/depends/settings/inisettingsobject.h
@@ -47,6 +47,8 @@ public:
*/
virtual void setFilePath(const QString &filePath);
+ bool reload() override;
+
protected
slots:
virtual void changeSetting(const Setting &setting, QVariant value);
diff --git a/depends/settings/settingsobject.cpp b/depends/settings/settingsobject.cpp
index 43fc989a..0e3030df 100644
--- a/depends/settings/settingsobject.cpp
+++ b/depends/settings/settingsobject.cpp
@@ -126,6 +126,15 @@ bool SettingsObject::contains(const QString &id)
return m_settings.contains(id);
}
+bool SettingsObject::reload()
+{
+ for (auto setting : m_settings.values())
+ {
+ setting->set(setting->get());
+ }
+ return true;
+}
+
void SettingsObject::connectSignals(const Setting &setting)
{
connect(&setting, SIGNAL(settingChanged(const Setting &, QVariant)),
diff --git a/depends/settings/settingsobject.h b/depends/settings/settingsobject.h
index 27746f2d..b1b26b09 100644
--- a/depends/settings/settingsobject.h
+++ b/depends/settings/settingsobject.h
@@ -113,6 +113,12 @@ public:
*/
bool contains(const QString &id);
+ /*!
+ * \brief Reloads the settings and emit signals for changed settings
+ * \return True if reloading was successful
+ */
+ virtual bool reload();
+
signals:
/*!
* \brief Signal emitted when one of this SettingsObject object's settings changes.
diff --git a/logic/BaseInstance.cpp b/logic/BaseInstance.cpp
index aea91ef2..c565ab59 100644
--- a/logic/BaseInstance.cpp
+++ b/logic/BaseInstance.cpp
@@ -171,8 +171,7 @@ bool BaseInstance::canLaunch() const
bool BaseInstance::reload()
{
- // TODO reload the instance settings
- return true;
+ return settings().reload();
}
QString BaseInstance::baseJar() const