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