summaryrefslogtreecommitdiff
path: root/launcher
diff options
authorMarco Trevisan (TreviƱo) <mail@3v1n0.net>2012-08-03 11:16:51 -0400
committerTarmac <>2012-08-03 11:16:51 -0400
commit5b4616950c40f7c6f214803cbba177063b771b27 (patch)
tree625e51f5f8a072ae43cab4c6f015d2bb6da7bdfe /launcher
parent567f2e6a5f6b20fafa580eaa7108cd2f23dd61f6 (diff)
parenta696b3fbb15b7e58eb145f3d523107bfbd17c21a (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.cpp48
-rw-r--r--launcher/FavoriteStoreGSettings.h10
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_;
};
}