[vinagre] Fixed loading/saving of active plugins from/to gconf
- From: Jonh Wendell <jwendell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vinagre] Fixed loading/saving of active plugins from/to gconf
- Date: Sun, 22 Aug 2010 14:16:14 +0000 (UTC)
commit bad2bea3381d32c2f5bcaa707c1a71cc1e845815
Author: Jonh Wendell <jwendell gnome org>
Date: Sun Aug 22 11:14:42 2010 -0300
Fixed loading/saving of active plugins from/to gconf
vinagre/vinagre-plugins-engine.c | 63 +++++++++++++++++++++----------------
1 files changed, 36 insertions(+), 27 deletions(-)
---
diff --git a/vinagre/vinagre-plugins-engine.c b/vinagre/vinagre-plugins-engine.c
index 72c31a5..6188224 100644
--- a/vinagre/vinagre-plugins-engine.c
+++ b/vinagre/vinagre-plugins-engine.c
@@ -24,15 +24,12 @@
#include "vinagre-dirs.h"
#include "vinagre-debug.h"
#include "vinagre-protocol.h"
-
-#define VINAGRE_PLUGINS_ENGINE_BASE_KEY "/apps/vinagre-2/plugins"
-#define VINAGRE_PLUGINS_ENGINE_KEY VINAGRE_PLUGINS_ENGINE_BASE_KEY "/active-plugins"
+#include "vinagre-prefs.h"
G_DEFINE_TYPE (VinagrePluginsEngine, vinagre_plugins_engine, PEAS_TYPE_ENGINE)
struct _VinagrePluginsEnginePrivate
{
- //GSettings *plugin_settings;
gboolean loading_plugin_list : 1;
GHashTable *protocols;
PeasExtensionSet *extensions;
@@ -84,7 +81,6 @@ vinagre_plugins_engine_init (VinagrePluginsEngine *engine)
VINAGRE_TYPE_PLUGINS_ENGINE,
VinagrePluginsEnginePrivate);
- //engine->priv->plugin_settings = g_settings_new ("org.gnome.vinagre.plugins");
engine->priv->loading_plugin_list = FALSE;
engine->priv->protocols = g_hash_table_new (g_str_hash, g_str_equal);
@@ -115,14 +111,19 @@ static void
save_plugin_list (VinagrePluginsEngine *engine)
{
gchar **loaded_plugins;
+ GSList *plugins = NULL;
+ gint i;
loaded_plugins = peas_engine_get_loaded_plugins (PEAS_ENGINE (engine));
-/*
- g_settings_set_strv (engine->priv->plugin_settings,
- VINAGRE_SETTINGS_ACTIVE_PLUGINS,
- (const gchar * const *) loaded_plugins);
-*/
+ for (i = 0; loaded_plugins[i]; i++)
+ plugins = g_slist_prepend (plugins, loaded_plugins[i]);
+
+ g_object_set (vinagre_prefs_get_default (),
+ "active-plugins", plugins,
+ NULL);
+
g_strfreev (loaded_plugins);
+ g_slist_free (plugins);
}
static void
@@ -167,6 +168,30 @@ vinagre_plugins_engine_class_init (VinagrePluginsEngineClass *klass)
g_type_class_add_private (klass, sizeof (VinagrePluginsEnginePrivate));
}
+static void
+vinagre_plugins_engine_active_plugins_changed (VinagrePluginsEngine *engine)
+{
+ GSList *plugins, *l;
+ gchar **loaded_plugins;
+ gint i;
+
+ g_object_get (vinagre_prefs_get_default (),
+ "active-plugins", &plugins,
+ NULL);
+
+ loaded_plugins = g_new0 (gchar *, g_slist_length (plugins) + 1);
+ i = 0;
+ for (l = plugins; l; l = l->next)
+ loaded_plugins[i++] = (l->data);
+
+ engine->priv->loading_plugin_list = TRUE;
+ peas_engine_set_loaded_plugins (PEAS_ENGINE (engine),
+ (const gchar **) loaded_plugins);
+ engine->priv->loading_plugin_list = FALSE;
+ g_strfreev (loaded_plugins);
+ g_slist_free (plugins);
+}
+
VinagrePluginsEngine *
vinagre_plugins_engine_get_default (void)
{
@@ -218,27 +243,11 @@ vinagre_plugins_engine_get_default (void)
g_object_add_weak_pointer (G_OBJECT (default_engine),
(gpointer) &default_engine);
- //vinagre_plugins_engine_active_plugins_changed (default_engine);
+ vinagre_plugins_engine_active_plugins_changed (default_engine);
return default_engine;
}
-/*
-void
-vinagre_plugins_engine_active_plugins_changed (VinagrePluginsEngine *engine)
-{
- gchar **loaded_plugins;
-
- loaded_plugins = g_settings_get_strv (engine->priv->plugin_settings,
- VINAGRE_SETTINGS_ACTIVE_PLUGINS);
-
- engine->priv->loading_plugin_list = TRUE;
- peas_engine_set_loaded_plugins (PEAS_ENGINE (engine),
- (const gchar **) loaded_plugins);
- engine->priv->loading_plugin_list = FALSE;
- g_strfreev (loaded_plugins);
-}
-*/
VinagreProtocolExt *
vinagre_plugins_engine_get_plugin_by_protocol (VinagrePluginsEngine *engine,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]