diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2012-08-01 20:12:10 +0200 |
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2012-08-01 20:12:10 +0200 |
| commit | 1c395ee0da71b1d649e50045061ef912322f5727 (patch) | |
| tree | e06cd8e92dc37fb85d86d94758ad180fbe5139cf /launcher | |
| parent | 75d016942b6a0462c0c8864ac10d3b06278d976b (diff) | |
FavoriteStoreGSettings: remove unneeded methods, use glib::Signal
(bzr r2529.6.2)
Diffstat (limited to 'launcher')
| -rw-r--r-- | launcher/FavoriteStoreGSettings.cpp | 36 | ||||
| -rw-r--r-- | launcher/FavoriteStoreGSettings.h | 10 |
2 files changed, 10 insertions, 36 deletions
diff --git a/launcher/FavoriteStoreGSettings.cpp b/launcher/FavoriteStoreGSettings.cpp index fe900099b..c6e6e0e52 100644 --- a/launcher/FavoriteStoreGSettings.cpp +++ b/launcher/FavoriteStoreGSettings.cpp @@ -55,23 +55,14 @@ FavoriteStoreGSettings::FavoriteStoreGSettings() : settings_(g_settings_new(SETTINGS_NAME)) , ignore_signals_(false) { - Init(); -} - -FavoriteStoreGSettings::FavoriteStoreGSettings(GSettingsBackend* backend) - : settings_(g_settings_new_with_backend(SETTINGS_NAME, backend)) - , ignore_signals_(false) -{ - Init(); -} + favorites_changed_.Connect(settings_, "changed::favorites", [&] (GSettings*, gchar*) + { + Changed(); + }); -void FavoriteStoreGSettings::Init() -{ - g_signal_connect(settings_, "changed", G_CALLBACK(on_settings_updated), this); Refresh(); } - void FavoriteStoreGSettings::Refresh() { FillList(favorites_); @@ -229,9 +220,9 @@ void FavoriteStoreGSettings::SaveFavorites(FavoriteList const& favorites, bool i 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_; }; } |
