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.in15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/settings.h.in b/src/settings.h.in
index a4b5159..88fbcf5 100644
--- a/src/settings.h.in
+++ b/src/settings.h.in
@@ -4,26 +4,29 @@
#include <configuration.h>
#include <fstream>
-inline void init_conf(const std::string &path)
+inline const std::string init_conf(const std::string &path)
{
+ auto value_map = std::make_unique<Configuration, std::initializer_list<std::pair<std::string, conf_value_t>>>({
+ @__DEFAULT_CFG__
+ });
const std::string cfgpath = [&]() {
+ if(path.empty())
+ return value_map->value<std::string>("poi.cfg.path").value();
+
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);
+ fs.open(cfgpath, std::fstream::in);
if(fs.is_open()) {
value_map->read(fs);
fs.close();
}
Configuration::move_global(std::move(value_map));
+ return cfgpath;
}