diff --git a/src/Config.cpp b/src/Config.cpp index 43ea8d99..c38bd1ad 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -36,7 +36,12 @@ with this program. If not, see #define QT_TO_UTF8(str) str.toUtf8().constData() -Config* Config::_instance = new Config(); +ConfigPtr Config::_instance = ConfigPtr(new Config()); + +ConfigPtr Config::Current() +{ + return _instance; +} Config::Config() : ServerEnabled(true), @@ -179,8 +184,3 @@ bool Config::CheckAuth(QString response) return authSuccess; } - -Config* Config::Current() -{ - return _instance; -} diff --git a/src/Config.h b/src/Config.h index 80f3c0cd..8966f2d0 100644 --- a/src/Config.h +++ b/src/Config.h @@ -20,9 +20,15 @@ with this program. If not, see #define CONFIG_H #include +#include + +class Config; +typedef QSharedPointer ConfigPtr; class Config { public: + static ConfigPtr Current(); + Config(); ~Config(); void Load(); @@ -46,10 +52,8 @@ class Config { QString SessionChallenge; bool SettingsLoaded; - static Config* Current(); - private: - static Config* _instance; + static ConfigPtr _instance; }; #endif // CONFIG_H diff --git a/src/forms/settings-dialog.cpp b/src/forms/settings-dialog.cpp index b0c78116..5778aa4e 100644 --- a/src/forms/settings-dialog.cpp +++ b/src/forms/settings-dialog.cpp @@ -41,7 +41,7 @@ SettingsDialog::SettingsDialog(QWidget* parent) : } void SettingsDialog::showEvent(QShowEvent* event) { - Config* conf = Config::Current(); + auto conf = Config::Current(); ui->serverEnabled->setChecked(conf->ServerEnabled); ui->serverPort->setValue(conf->ServerPort); @@ -68,7 +68,7 @@ void SettingsDialog::AuthCheckboxChanged() { } void SettingsDialog::FormAccepted() { - Config* conf = Config::Current(); + auto conf = Config::Current(); conf->ServerEnabled = ui->serverEnabled->isChecked(); conf->ServerPort = ui->serverPort->value(); diff --git a/src/obs-websocket.cpp b/src/obs-websocket.cpp index 69bfc2c7..e04f0809 100644 --- a/src/obs-websocket.cpp +++ b/src/obs-websocket.cpp @@ -45,7 +45,7 @@ bool obs_module_load(void) { QT_VERSION_STR, qVersion()); // Core setup - Config* config = Config::Current(); + auto config = Config::Current(); config->Load(); WSEvents::Instance = new WSEvents(WSServer::Current());