diff options
Diffstat (limited to 'src/settings.h.in')
-rw-r--r-- | src/settings.h.in | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/settings.h.in b/src/settings.h.in new file mode 100644 index 0000000..a4b5159 --- /dev/null +++ b/src/settings.h.in @@ -0,0 +1,29 @@ +#pragma once + +#include <QStandardPaths> +#include <configuration.h> +#include <fstream> + +inline void init_conf(const std::string &path) +{ + + const std::string cfgpath = [&]() { + auto p = path; + if(p.front() == '~') + p.replace(0, 1, QStandardPaths::writableLocation(QStandardPaths::HomeLocation).toStdString()); + return p; + }(); + + auto value_map = std::make_unique<Configuration, std::initializer_list<std::pair<std::string, conf_value_t>>>({ + @__DEFAULT_CFG__ + }); + + std::fstream fs; + fs.open(path, std::fstream::in); + if(fs.is_open()) { + value_map->read(fs); + fs.close(); + } + + Configuration::move_global(std::move(value_map)); +} |