diff options
| author | Marco Trevisan (TreviƱo) <mail@3v1n0.net> | 2012-08-03 11:16:51 -0400 |
|---|---|---|
| committer | Tarmac <> | 2012-08-03 11:16:51 -0400 |
| commit | 5b4616950c40f7c6f214803cbba177063b771b27 (patch) | |
| tree | 625e51f5f8a072ae43cab4c6f015d2bb6da7bdfe /launcher | |
| parent | 567f2e6a5f6b20fafa580eaa7108cd2f23dd61f6 (diff) | |
| parent | a696b3fbb15b7e58eb145f3d523107bfbd17c21a (diff) | |
FavoriteStoreGSettings: remove unneeded methods, use glib::Signal, refactor tests to use memory backend. Fixes: . Approved by Brandon Schaefer.
(bzr r2539)
Diffstat (limited to 'launcher')
| -rw-r--r-- | launcher/FavoriteStoreGSettings.cpp | 48 | ||||
| -rw-r--r-- | launcher/FavoriteStoreGSettings.h | 10 |
2 files changed, 16 insertions, 42 deletions
diff --git a/launcher/FavoriteStoreGSettings.cpp b/launcher/FavoriteStoreGSettings.cpp index fe900099b..30ba42287 100644 --- a/launcher/FavoriteStoreGSettings.cpp +++ b/launcher/FavoriteStoreGSettings.cpp @@ -42,8 +42,8 @@ namespace { nux::logging::Logger logger("unity.favorites"); - -const char* SETTINGS_NAME = "com.canonical.Unity.Launcher"; +const std::string SETTINGS_NAME = "com.canonical.Unity.Launcher"; +const std::string SETTINGS_KEY = "favorites"; void on_settings_updated(GSettings* settings, const gchar* key, @@ -52,26 +52,17 @@ void on_settings_updated(GSettings* settings, } FavoriteStoreGSettings::FavoriteStoreGSettings() - : settings_(g_settings_new(SETTINGS_NAME)) - , ignore_signals_(false) + : ignore_signals_(false) + , settings_(g_settings_new(SETTINGS_NAME.c_str())) { - Init(); -} - -FavoriteStoreGSettings::FavoriteStoreGSettings(GSettingsBackend* backend) - : settings_(g_settings_new_with_backend(SETTINGS_NAME, backend)) - , ignore_signals_(false) -{ - Init(); -} + favorites_changed_.Connect(settings_, "changed::"+SETTINGS_KEY, [&] (GSettings*, gchar*) + { + Changed(); + }); -void FavoriteStoreGSettings::Init() -{ - g_signal_connect(settings_, "changed", G_CALLBACK(on_settings_updated), this); Refresh(); } - void FavoriteStoreGSettings::Refresh() { FillList(favorites_); @@ -81,7 +72,7 @@ void FavoriteStoreGSettings::FillList(FavoriteList& list) { list.clear(); - gchar** favs = g_settings_get_strv(settings_, "favorites"); + gchar** favs = g_settings_get_strv(settings_, SETTINGS_KEY.c_str()); for (int i = 0; favs[i] != NULL; ++i) { @@ -222,16 +213,16 @@ void FavoriteStoreGSettings::SaveFavorites(FavoriteList const& favorites, bool i } ignore_signals_ = ignore; - if (!g_settings_set_strv(settings_, "favorites", favs)) + if (!g_settings_set_strv(settings_, SETTINGS_KEY.c_str(), favs)) { LOG_WARNING(logger) << "Saving favorites failed."; } ignore_signals_ = false; } -void FavoriteStoreGSettings::Changed(std::string const& key) +void FavoriteStoreGSettings::Changed() { - if (ignore_signals_ or key != "favorites") + if (ignore_signals_) return; FavoriteList old(favorites_); @@ -261,20 +252,5 @@ void FavoriteStoreGSettings::Changed(std::string const& key) } -namespace -{ - -void on_settings_updated(GSettings* settings, - const gchar* key, - FavoriteStoreGSettings* self) -{ - if (settings and key) - { - self->Changed(key); - } -} - -} // anonymous namespace - } // namespace internal } // namespace unity diff --git a/launcher/FavoriteStoreGSettings.h b/launcher/FavoriteStoreGSettings.h index 600b6162c..5fd084b90 100644 --- a/launcher/FavoriteStoreGSettings.h +++ b/launcher/FavoriteStoreGSettings.h @@ -24,6 +24,7 @@ #include "FavoriteStore.h" #include <UnityCore/GLibWrapper.h> +#include <UnityCore/GLibSignal.h> // An abstract object that facilitates getting and modifying the list of favorites // Use GetDefault () to get the correct store for the session @@ -36,7 +37,6 @@ class FavoriteStoreGSettings : public FavoriteStore { public: FavoriteStoreGSettings(); - FavoriteStoreGSettings(GSettingsBackend* backend); virtual FavoriteList const& GetFavorites(); virtual void AddFavorite(std::string const& desktop_path, int position); @@ -45,17 +45,15 @@ public: void SaveFavorites(FavoriteList const& favorites, bool ignore = true); virtual void SetFavorites(FavoriteList const& desktop_paths); - //Methods - void Changed(std::string const& key); - private: - void Init(); void Refresh(); + void Changed(); void FillList(FavoriteList& list); FavoriteList favorites_; - glib::Object<GSettings> settings_; bool ignore_signals_; + glib::Object<GSettings> settings_; + glib::Signal<void, GSettings*, gchar*> favorites_changed_; }; } |
