diff options
Diffstat (limited to 'src/ui/data_struct')
-rw-r--r-- | src/ui/data_struct/SettingsObject.cpp (renamed from src/ui/data_struct/SettingsObj.cpp) | 18 | ||||
-rw-r--r-- | src/ui/data_struct/SettingsObject.h (renamed from src/ui/data_struct/SettingsObj.h) | 19 |
2 files changed, 20 insertions, 17 deletions
diff --git a/src/ui/data_struct/SettingsObj.cpp b/src/ui/data_struct/SettingsObject.cpp index d069dfe7..d8d1b76c 100644 --- a/src/ui/data_struct/SettingsObj.cpp +++ b/src/ui/data_struct/SettingsObject.cpp @@ -22,22 +22,22 @@ * */ -#include "SettingsObj.h" +#include "SettingsObject.h" -nlohmann::json& GpgFrontend::UI::SettingsObj::Check( +nlohmann::json& GpgFrontend::UI::SettingsObject::Check( const std::string& key, nlohmann::json default_value) { if (!nlohmann::json::contains(key)) nlohmann::json::operator[](key) = std::move(default_value); return nlohmann::json::operator[](key); } -GpgFrontend::UI::SettingsObj GpgFrontend::UI::SettingsObj::Check( +GpgFrontend::UI::SettingsObject GpgFrontend::UI::SettingsObject::Check( const std::string& key) { if (!nlohmann::json::contains(key)) nlohmann::json::operator[](key) = {}; - return SettingsObj{nlohmann::json::operator[](key), false}; + return SettingsObject{nlohmann::json::operator[](key), false}; } -GpgFrontend::UI::SettingsObj::SettingsObj(std::string settings_name) +GpgFrontend::UI::SettingsObject::SettingsObject(std::string settings_name) : settings_name_(std::move(settings_name)) { try { auto _json_optional = @@ -51,5 +51,11 @@ GpgFrontend::UI::SettingsObj::SettingsObj(std::string settings_name) } } -GpgFrontend::UI::SettingsObj::SettingsObj(nlohmann::json _sub_json, bool) +GpgFrontend::UI::SettingsObject::SettingsObject(nlohmann::json _sub_json, bool) : nlohmann::json(std::move(_sub_json)), settings_name_({}) {} + +GpgFrontend::UI::SettingsObject::~SettingsObject() { + if (!settings_name_.empty()) + GpgFrontend::UI::GlobalSettingStation::GetInstance().SaveDataObj( + settings_name_, *this); +} diff --git a/src/ui/data_struct/SettingsObj.h b/src/ui/data_struct/SettingsObject.h index ee3da705..af63b74f 100644 --- a/src/ui/data_struct/SettingsObj.h +++ b/src/ui/data_struct/SettingsObject.h @@ -22,8 +22,8 @@ * */ -#ifndef GPGFRONTEND_SETTINGSOBJ_H -#define GPGFRONTEND_SETTINGSOBJ_H +#ifndef GPGFRONTEND_SETTINGSOBJECT_H +#define GPGFRONTEND_SETTINGSOBJECT_H #include <utility> @@ -31,24 +31,21 @@ namespace GpgFrontend::UI { -class SettingsObj : public nlohmann::json { +class SettingsObject : public nlohmann::json { public: - explicit SettingsObj(std::string settings_name); + explicit SettingsObject(std::string settings_name); - explicit SettingsObj(nlohmann::json _sub_json, bool); + explicit SettingsObject(nlohmann::json _sub_json, bool); - ~SettingsObj() { - GpgFrontend::UI::GlobalSettingStation::GetInstance().SaveDataObj( - settings_name_, *this); - } + ~SettingsObject(); nlohmann::json& Check(const std::string& key, nlohmann::json default_value); - SettingsObj Check(const std::string& key); + SettingsObject Check(const std::string& key); private: std::string settings_name_; }; } // namespace GpgFrontend::UI -#endif // GPGFRONTEND_SETTINGSOBJ_H +#endif // GPGFRONTEND_SETTINGSOBJECT_H |