aboutsummaryrefslogtreecommitdiff
path: root/src/settings.h.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings.h.in')
-rw-r--r--src/settings.h.in29
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));
+}