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());