From da534c85f4dd4bb83a7f364a3b93a2ba156c7bcb Mon Sep 17 00:00:00 2001 From: Marcus Fritzsch Date: Tue, 1 Aug 2017 17:15:19 +0200 Subject: [PATCH] app: use config to determine json config file names Signed-off-by: Marcus Fritzsch --- src/app.cpp | 33 ++++++++++++++++++++------------- src/app.hpp | 3 +++ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/app.cpp b/src/app.cpp index 93877ba..aa3f644 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -114,27 +114,34 @@ App::App(wl::display *d) display{d}, controller{}, outputs(), + config(), layouts(), layers() { assert(g_app == nullptr); g_app = this; - { - auto l = load_layer_map("../ids.json"); - if (l.is_ok()) { - this->layers = l.unwrap(); - } else { - logerror("%s", l.err().value()); + try { + { + auto l = load_layer_map( + this->config.get_string("layers.json").value().c_str()); + if (l.is_ok()) { + this->layers = l.unwrap(); + } else { + logerror("%s", l.err().value()); + } } - } - { - auto l = load_layout("../layout.json"); - if (l.is_ok()) { - this->layouts = l.unwrap(); - } else { - logerror("%s", l.err().value()); + { + auto l = load_layout( + this->config.get_string("layout.json").value().c_str()); + if (l.is_ok()) { + this->layouts = l.unwrap(); + } else { + logerror("%s", l.err().value()); + } } + } catch (std::exception &e) { + logerror("Loading of configuration failed: %s", e.what()); } } diff --git a/src/app.hpp b/src/app.hpp index 7b9164f..5bbd2db 100644 --- a/src/app.hpp +++ b/src/app.hpp @@ -14,6 +14,7 @@ #include "layout.hpp" #include "result.hpp" #include "wayland.hpp" +#include "config.hpp" namespace wl { struct display; @@ -35,6 +36,8 @@ struct App { std::unique_ptr controller; std::vector> outputs; + struct config config; + layouts_type layouts; layer_map layers; -- 2.16.6