aboutsummaryrefslogtreecommitdiff
path: root/lib/configuration/configuration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/configuration/configuration.cpp')
-rw-r--r--lib/configuration/configuration.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/configuration/configuration.cpp b/lib/configuration/configuration.cpp
index 75f863c..6686520 100644
--- a/lib/configuration/configuration.cpp
+++ b/lib/configuration/configuration.cpp
@@ -17,7 +17,7 @@
#include <QStandardPaths>
#endif
-static std::unique_ptr<Configuration> s_conf;
+static Configuration *s_conf = nullptr;
Configuration::Configuration()
: use_global(true)
@@ -131,14 +131,19 @@ void Configuration::read(std::basic_istream<char> &input)
}
}
-void Configuration::move_global(std::unique_ptr<Configuration> &&conf)
+bool Configuration::make_global()
{
- s_conf = std::move(conf);
+ if(use_global || s_conf != nullptr) {
+ return false;
+ }
+
+ s_conf = this;
+ return true;
}
Configuration *Configuration::instance()
{
- return s_conf.get();
+ return s_conf;
}
std::ostream &operator<<(std::ostream &out, const Configuration &obj)