summaryrefslogtreecommitdiff
path: root/launcher
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2012-08-01 20:12:10 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2012-08-01 20:12:10 +0200
commit1c395ee0da71b1d649e50045061ef912322f5727 (patch)
treee06cd8e92dc37fb85d86d94758ad180fbe5139cf /launcher
parent75d016942b6a0462c0c8864ac10d3b06278d976b (diff)
FavoriteStoreGSettings: remove unneeded methods, use glib::Signal
(bzr r2529.6.2)
Diffstat (limited to 'launcher')
-rw-r--r--launcher/FavoriteStoreGSettings.cpp36
-rw-r--r--launcher/FavoriteStoreGSettings.h10
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_;
};
}