From 35ead0aaa5c7a7d9a17ab3dad65cfb9f0252889b Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 26 Jul 2017 21:42:26 +0200 Subject: Add Config::remove Removes any config value set by Config::set() --- src/config.cc | 4 ++++ src/config.hh | 4 ++++ src/gui_gtk.cc | 3 +++ src/gui_qt.cc | 3 +++ src/monitor-gui.cc | 4 ++++ 5 files changed, 18 insertions(+) diff --git a/src/config.cc b/src/config.cc index db42a7b..90ef95d 100644 --- a/src/config.cc +++ b/src/config.cc @@ -90,6 +90,10 @@ public: } } + void remove(std::string const& key) override { + override_.erase(key); + } + private: bool update(bool good, std::string const& last_error, std::unordered_map& data) { diff --git a/src/config.hh b/src/config.hh index 5262e91..011e890 100644 --- a/src/config.hh +++ b/src/config.hh @@ -24,6 +24,10 @@ public: virtual bool is_set(std::string const& key) = 0; virtual void set(std::string const& key, std::string const& value) = 0; + virtual void set(std::string const& key, bool value) { + set(key, std::string(value ? "true" : "false")); + } + virtual void remove(std::string const& key) = 0; protected: Config() { } diff --git a/src/gui_gtk.cc b/src/gui_gtk.cc index 55ce88a..a326cea 100644 --- a/src/gui_gtk.cc +++ b/src/gui_gtk.cc @@ -555,6 +555,9 @@ public: void set(std::string const& key, std::string const& value) override { g_settings_set_string(settings_.get(), key.c_str(), value.c_str()); } + void remove(std::string const& key) override { + g_settings_reset(settings_.get(), key.c_str()); + } private: shared_gobject settings_; diff --git a/src/gui_qt.cc b/src/gui_qt.cc index 59dc5e1..ec67527 100644 --- a/src/gui_qt.cc +++ b/src/gui_qt.cc @@ -352,6 +352,9 @@ public: settings_->setValue(QString::fromStdString(key), QString::fromStdString(value)); } + void remove(std::string const& key) override { + settings_->remove(QString::fromStdString(key)); + } private: std::unique_ptr settings_; diff --git a/src/monitor-gui.cc b/src/monitor-gui.cc index 8044a02..4f4f2fb 100644 --- a/src/monitor-gui.cc +++ b/src/monitor-gui.cc @@ -260,6 +260,10 @@ public: memory_[key] = value; } + void remove(std::string const& key) override { + memory_.erase(key); + } + private: std::unordered_map memory_; }; -- cgit v1.2.3-70-g09d2