diff options
Diffstat (limited to 'lib/configuration/configuration.cpp')
-rw-r--r-- | lib/configuration/configuration.cpp | 13 |
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) |