[vinagre/no-separate-plugins: 4/11] Remove libpeas support
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vinagre/no-separate-plugins: 4/11] Remove libpeas support
- Date: Sat, 11 Jun 2011 08:29:34 +0000 (UTC)
commit e43d2c348025ee0c305206e8f880f7637f88984b
Author: David King <amigadave amigadave com>
Date: Fri Jun 10 19:18:31 2011 +0200
Remove libpeas support
Makefile.am | 8 +-
README | 1 -
configure.ac | 4 +-
data/vinagre-ui.xml | 1 -
vinagre/vinagre-commands.c | 2 +-
vinagre/vinagre-plugins-engine.c | 199 ++++++-------------------------------
vinagre/vinagre-plugins-engine.h | 10 +-
vinagre/vinagre-protocol.h | 1 -
vinagre/vinagre-ui.h | 3 -
vinagre/vinagre-window-private.h | 4 -
vinagre/vinagre-window.c | 46 ---------
11 files changed, 43 insertions(+), 236 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 91a76f1..883af26 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -51,7 +51,6 @@ noinst_vinagreh_headers = \
vinagre/view/autoDrawer.h \
vinagre/view/drawer.h \
vinagre/view/ovBox.h \
- vinagre/vinagre-plugin-dialog.h \
vinagre/vinagre-window-private.h \
vinagre/pty_open.h \
vinagre/vinagre-options.h
@@ -82,9 +81,7 @@ vinagreh_HEADERS = \
INTROSPECTION_GIR_INCLUDES = \
Gtk-3.0 \
- libxml2-2.0 \
- Peas-1.0 \
- PeasGtk-1.0
+ libxml2-2.0
# The main library
noinst_LTLIBRARIES = libvinagre.la
@@ -105,7 +102,6 @@ handwritten_sources = \
vinagre/vinagre-dirs.c \
vinagre/vinagre-fav.c \
vinagre/vinagre-notebook.c \
- vinagre/vinagre-plugin-dialog.c \
vinagre/vinagre-prefs.c \
vinagre/vinagre-static-extension.c \
vinagre/vinagre-tab.c \
@@ -152,7 +148,7 @@ INTROSPECTION_GIRS = Vinagre-3.0.gir
Vinagre-3.0.gir: libvinagre.la
INTROSPECTION_SCANNER_ARGS = $(common_cppflags) $(VINAGRE_CFLAGS) -I$(top_srcdir) --warn-all
Vinagre_3_0_gir_LIBS = libvinagre.la
-Vinagre_3_0_gir_FILES = $(vinagreh_HEADERS) $(filter-out pty_open.h vinagre-plugin-dialog.h, $(noinst_vinagreh_headers)) $(handwritten_sources)
+Vinagre_3_0_gir_FILES = $(vinagreh_HEADERS) $(filter-out pty_open.h, $(noinst_vinagreh_headers)) $(handwritten_sources)
Vinagre_3_0_gir_INCLUDES = $(INTROSPECTION_GIR_INCLUDES)
girdir = $(pkgdatadir)/gir-1.0
diff --git a/README b/README
index a59657e..8c7923b 100644
--- a/README
+++ b/README
@@ -18,7 +18,6 @@ You need the development packages of the following libraries:
* gnome-keyring
* gtk-vnc (http://live.gnome.org/gtk-vnc)
* libxml-2.0
-* libpeas-1.0
For version information, see configure.ac.
diff --git a/configure.ac b/configure.ac
index 8f838ea..e906525 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,6 @@ AC_PROG_SED
AC_SUBST([VINAGRE_ABI_VERSION], [3.0])
AC_DEFINE_UNQUOTED([VINAGRE_ABI_VERSION], ["$VINAGRE_ABI_VERSION"], [Vinagre ABI version])
-AC_SUBST([PLUGIN_LIBTOOL_FLAGS], ["-module -avoid-version"])
AC_SUBST([VINAGRE_PLUGINS_DATA_DIR], ["$datadir/vinagre-$VINAGRE_ABI_VERSION/plugins"])
AC_SUBST([VINAGRE_PLUGINS_LIBS_DIR], ["$libdir/vinagre-$VINAGRE_ABI_VERSION/plugins"])
@@ -35,7 +34,6 @@ GTHREAD_DEPS="gthread-2.0 >= 2.0.0"
GTK_DEPS="gtk+-3.0 >= 3.0.3"
GTK_VNC_DEPS="gtk-vnc-2.0 >= 0.4.3"
XML2_DEPS="libxml-2.0 >= 2.6.31"
-PEAS_DEPS="libpeas-1.0 >= 0.7.2 libpeas-gtk-1.0 >= 0.7.2"
# Whether to enable support for SSH.
SSH_DEPS="vte-2.90 >= 0.20 $XML2_DEPS"
@@ -165,7 +163,7 @@ AS_IF([test "x$have_telepathy" = "xyes"],
AM_CONDITIONAL([VINAGRE_HAVE_TELEPATHY_GLIB], [test "x$have_telepathy" = "xyes"])
# Check required libraries
-PKG_CHECK_MODULES([VINAGRE], [$GLIB_DEPS $GTHREAD_DEPS $GTK_DEPS gnome-keyring-1 $XML2_DEPS $PEAS_DEPS $AVAHI_DEPS $TELEPATHY_GLIB_DEPS $SSH_DEPS])
+PKG_CHECK_MODULES([VINAGRE], [$GLIB_DEPS $GTHREAD_DEPS $GTK_DEPS gnome-keyring-1 $XML2_DEPS $AVAHI_DEPS $TELEPATHY_GLIB_DEPS $SSH_DEPS])
PKG_CHECK_MODULES([VNC], [$GTK_VNC_DEPS $GTK_DEPS $XML2_DEPS])
diff --git a/data/vinagre-ui.xml b/data/vinagre-ui.xml
index ed137dd..d41c5b1 100644
--- a/data/vinagre-ui.xml
+++ b/data/vinagre-ui.xml
@@ -38,7 +38,6 @@
<menu name="EditMenu" action="Edit">
<menuitem name="EditPreferencesMenu" action="EditPreferences"/>
- <menuitem name="EditPluginsMenu" action="EditPlugins"/>
</menu>
<menu name="ViewMenu" action="View">
diff --git a/vinagre/vinagre-commands.c b/vinagre/vinagre-commands.c
index f89e90d..da366c2 100644
--- a/vinagre/vinagre-commands.c
+++ b/vinagre/vinagre-commands.c
@@ -240,7 +240,7 @@ vinagre_cmd_edit_plugins (GtkAction *action,
{
g_return_if_fail (VINAGRE_IS_WINDOW (window));
- vinagre_plugin_dialog_show (GTK_WINDOW (window));
+ g_warn_if_reached ();
}
/* View Menu */
diff --git a/vinagre/vinagre-plugins-engine.c b/vinagre/vinagre-plugins-engine.c
index 0f87112..fefa35e 100644
--- a/vinagre/vinagre-plugins-engine.c
+++ b/vinagre/vinagre-plugins-engine.c
@@ -18,21 +18,19 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <girepository.h>
-
#include "vinagre-plugins-engine.h"
#include "vinagre-dirs.h"
#include "vinagre-debug.h"
#include "vinagre-protocol.h"
#include "vinagre-prefs.h"
+#include "vinagre-static-extension.h"
-G_DEFINE_TYPE (VinagrePluginsEngine, vinagre_plugins_engine, PEAS_TYPE_ENGINE)
+G_DEFINE_TYPE (VinagrePluginsEngine, vinagre_plugins_engine, G_TYPE_OBJECT)
struct _VinagrePluginsEnginePrivate
{
gboolean loading_plugin_list : 1;
GHashTable *protocols;
- PeasExtensionSet *extensions;
};
enum
@@ -46,103 +44,36 @@ static guint signals[LAST_SIGNAL] = { 0 };
VinagrePluginsEngine *default_engine = NULL;
static void
-vinagre_plugins_engine_load_extensions (VinagrePluginsEngine *engine)
-{
- GStrv plugins;
-
- g_object_get (vinagre_prefs_get_default (),
- "active-plugins", &plugins,
- NULL);
-
- engine->priv->loading_plugin_list = TRUE;
- peas_engine_set_loaded_plugins (PEAS_ENGINE (engine), (const gchar **)plugins);
- engine->priv->loading_plugin_list = FALSE;
- g_strfreev (plugins);
-}
-
-static void
-vinagre_plugins_engine_extension_added (PeasExtensionSet *extensions,
- PeasPluginInfo *info,
- PeasExtension *exten,
- VinagrePluginsEngine *engine)
-{
- PeasExtension *previous_ext;
- const gchar *protocol = NULL;
-
- peas_extension_call (exten, "get_protocol", &protocol);
-
- if (!protocol)
- {
- g_warning ("Unable to determine a protocol for the plugin %s",
- peas_plugin_info_get_name (info));
- return;
- }
-
- previous_ext = g_hash_table_lookup (engine->priv->protocols, protocol);
-
- if (previous_ext)
- {
- g_warning ("The protocol %s was already registered by the plugin %s",
- protocol,
- peas_plugin_info_get_name (info));
- return;
- }
-
- g_hash_table_insert (engine->priv->protocols, (gpointer)protocol, exten);
- g_signal_emit (engine, signals[PROTOCOL_ADDED], 0, exten);
-}
-
-static void
-vinagre_plugins_engine_extension_removed (PeasExtensionSet *extensions,
- PeasPluginInfo *info,
- PeasExtension *exten,
- VinagrePluginsEngine *engine)
+vinagre_plugins_engine_add_protocol (VinagrePluginsEngine *engine,
+ const gchar *name, GObject *protocol)
{
- const gchar *protocol = NULL;
-
- peas_extension_call (exten, "get_protocol", &protocol);
+ GObject *previous_ext = g_hash_table_lookup (engine->priv->protocols, name);
- if (!protocol)
+ if (previous_ext)
{
- g_warning ("Unable to determine a protocol for the plugin %s",
- peas_plugin_info_get_name (info));
- return;
+ g_warning ("The protocol %s was already registered", name);
+ return;
}
- g_hash_table_remove (engine->priv->protocols, (gpointer)protocol);
- g_signal_emit (engine, signals[PROTOCOL_REMOVED], 0, exten);
+ g_hash_table_insert (engine->priv->protocols, (gpointer)name, protocol);
+ g_signal_emit (engine, signals[PROTOCOL_ADDED], 0, protocol);
}
-static void
-vinagre_plugins_engine_constructed (GObject *object)
+gboolean
+vinagre_plugins_engine_load_extension (VinagrePluginsEngine *engine,
+ const gchar *name)
{
- VinagrePluginsEngine *engine;
-
- if (G_OBJECT_CLASS (vinagre_plugins_engine_parent_class)->constructed)
- G_OBJECT_CLASS (vinagre_plugins_engine_parent_class)->constructed (object);
-
- engine = VINAGRE_PLUGINS_ENGINE (object);
- engine->priv->extensions = peas_extension_set_new (PEAS_ENGINE (engine),
- VINAGRE_TYPE_PROTOCOL,
- NULL);
- g_signal_connect (engine->priv->extensions,
- "extension-added",
- G_CALLBACK (vinagre_plugins_engine_extension_added),
- engine);
- g_signal_connect (engine->priv->extensions,
- "extension-removed",
- G_CALLBACK (vinagre_plugins_engine_extension_removed),
- engine);
-
- vinagre_plugins_engine_load_extensions (engine);
+ g_warn_if_reached ();
+ return FALSE;
}
static void
vinagre_plugins_engine_init (VinagrePluginsEngine *engine)
{
- gchar *tmp, *typelib_dir;
- GError *error = NULL;
- PeasEngine *p_engine = PEAS_ENGINE (engine);
+ guint n_children;
+ GType child, *children;
+ GObject *object;
+ const gchar *protocol;
engine->priv = G_TYPE_INSTANCE_GET_PRIVATE (engine,
VINAGRE_TYPE_PLUGINS_ENGINE,
@@ -151,34 +82,17 @@ vinagre_plugins_engine_init (VinagrePluginsEngine *engine)
engine->priv->loading_plugin_list = FALSE;
engine->priv->protocols = g_hash_table_new (g_str_hash, g_str_equal);
- /* This should be moved to libpeas */
- g_irepository_require (g_irepository_get_default (),
- "Peas", "1.0", 0, NULL);
- g_irepository_require (g_irepository_get_default (),
- "PeasUI", "1.0", 0, NULL);
-
- /* Require vinagre's typelib. */
- tmp = vinagre_dirs_get_vinagre_lib_dir ();
- typelib_dir = g_build_filename (tmp,
- "girepository-1.0",
- NULL);
- g_irepository_require_private (g_irepository_get_default (),
- typelib_dir, "Vinagre", "3.0", 0, &error);
- g_free (typelib_dir);
- g_free (tmp);
- if (error)
- {
- g_print ("error registering vinagre typelib: %s\n", error->message);
- g_error_free (error);
- }
-
- tmp = vinagre_dirs_get_user_plugins_dir ();
- peas_engine_add_search_path (p_engine, tmp, tmp);
- g_free (tmp);
-
- tmp = vinagre_dirs_get_vinagre_plugins_dir ();
- peas_engine_add_search_path (p_engine, tmp, tmp);
- g_free (tmp);
+ children = g_type_children (VINAGRE_TYPE_STATIC_EXTENSION, &n_children);
+ while (n_children > 0 )
+ {
+ n_children--;
+ child = children[n_children];
+ object = g_object_new (child, NULL);
+ protocol = vinagre_protocol_get_protocol (VINAGRE_PROTOCOL (object));
+ vinagre_plugins_engine_add_protocol (engine, protocol, object);
+ }
+
+ g_free (children);
}
static void
@@ -192,58 +106,11 @@ vinagre_plugins_engine_finalize (GObject *object)
}
static void
-save_plugin_list (VinagrePluginsEngine *engine)
-{
- gchar **loaded_plugins;
-
- loaded_plugins = peas_engine_get_loaded_plugins (PEAS_ENGINE (engine));
-
- g_object_set (vinagre_prefs_get_default (),
- "active-plugins", loaded_plugins,
- NULL);
-
- g_strfreev (loaded_plugins);
-}
-
-static void
-vinagre_plugins_engine_load_plugin (PeasEngine *engine,
- PeasPluginInfo *info)
-{
- VinagrePluginsEngine *vengine = VINAGRE_PLUGINS_ENGINE (engine);
-
- PEAS_ENGINE_CLASS (vinagre_plugins_engine_parent_class)->load_plugin (engine, info);
-
- /* We won't save the plugin list if we are currently loading the
- * plugins from the saved list */
- if (!vengine->priv->loading_plugin_list && peas_plugin_info_is_loaded (info))
- save_plugin_list (vengine);
-}
-
-static void
-vinagre_plugins_engine_unload_plugin (PeasEngine *engine,
- PeasPluginInfo *info)
-{
- VinagrePluginsEngine *vengine = VINAGRE_PLUGINS_ENGINE (engine);
-
- PEAS_ENGINE_CLASS (vinagre_plugins_engine_parent_class)->unload_plugin (engine, info);
-
- /* We won't save the plugin list if we are currently unloading the
- * plugins from the saved list */
- if (!vengine->priv->loading_plugin_list && !peas_plugin_info_is_loaded (info))
- save_plugin_list (vengine);
-}
-
-static void
vinagre_plugins_engine_class_init (VinagrePluginsEngineClass *klass)
{
- PeasEngineClass *engine_class = PEAS_ENGINE_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = vinagre_plugins_engine_finalize;
- object_class->constructed = vinagre_plugins_engine_constructed;
-
- engine_class->load_plugin = vinagre_plugins_engine_load_plugin;
- engine_class->unload_plugin = vinagre_plugins_engine_unload_plugin;
signals[PROTOCOL_ADDED] =
g_signal_new ("protocol-added",
@@ -254,7 +121,7 @@ vinagre_plugins_engine_class_init (VinagrePluginsEngineClass *klass)
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE,
1,
- PEAS_TYPE_EXTENSION);
+ VINAGRE_TYPE_PROTOCOL);
signals[PROTOCOL_REMOVED] =
g_signal_new ("protocol-removed",
@@ -265,7 +132,7 @@ vinagre_plugins_engine_class_init (VinagrePluginsEngineClass *klass)
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE,
1,
- PEAS_TYPE_EXTENSION);
+ VINAGRE_TYPE_PROTOCOL);
g_type_class_add_private (klass, sizeof (VinagrePluginsEnginePrivate));
}
@@ -305,7 +172,7 @@ vinagre_plugins_engine_get_plugin_by_protocol (VinagrePluginsEngine *engine,
/**
* vinagre_plugins_engine_get_plugins_by_protocol:
*
- * Return value: (element-type utf8 PeasExtension) (transfer none):
+ * Return value: (element-type utf8 GObject) (transfer none):
*/
GHashTable *
vinagre_plugins_engine_get_plugins_by_protocol (VinagrePluginsEngine *engine)
diff --git a/vinagre/vinagre-plugins-engine.h b/vinagre/vinagre-plugins-engine.h
index 812f5f9..b962a04 100644
--- a/vinagre/vinagre-plugins-engine.h
+++ b/vinagre/vinagre-plugins-engine.h
@@ -21,8 +21,8 @@
#ifndef __VINAGRE_PLUGINS_ENGINE_H__
#define __VINAGRE_PLUGINS_ENGINE_H__
-#include <glib.h>
-#include <libpeas/peas.h>
+#include <glib-object.h>
+
#include "vinagre-protocol.h"
G_BEGIN_DECLS
@@ -40,13 +40,13 @@ typedef struct _VinagrePluginsEngineClass VinagrePluginsEngineClass;
struct _VinagrePluginsEngine
{
- PeasEngine parent;
+ GObject parent;
VinagrePluginsEnginePrivate *priv;
};
struct _VinagrePluginsEngineClass
{
- PeasEngineClass parent_class;
+ GObjectClass parent_class;
};
GType vinagre_plugins_engine_get_type (void) G_GNUC_CONST;
@@ -55,6 +55,8 @@ VinagrePluginsEngine *vinagre_plugins_engine_get_default (void);
VinagreProtocol *vinagre_plugins_engine_get_plugin_by_protocol (VinagrePluginsEngine *engine,
const gchar *protocol);
GHashTable *vinagre_plugins_engine_get_plugins_by_protocol (VinagrePluginsEngine *engine);
+gboolean vinagre_plugins_engine_load_extension (VinagrePluginsEngine *engine,
+ const gchar *name);
G_END_DECLS
#endif /* __VINAGRE_PLUGINS_ENGINE_H__ */
diff --git a/vinagre/vinagre-protocol.h b/vinagre/vinagre-protocol.h
index 1c62aed..cdf2eb4 100644
--- a/vinagre/vinagre-protocol.h
+++ b/vinagre/vinagre-protocol.h
@@ -22,7 +22,6 @@
#define __VINAGRE_PROTOCOL_H__
#include <glib-object.h>
-#include <libpeas/peas.h>
#include "vinagre-window.h"
diff --git a/vinagre/vinagre-ui.h b/vinagre/vinagre-ui.h
index 7496fa0..5308100 100644
--- a/vinagre/vinagre-ui.h
+++ b/vinagre/vinagre-ui.h
@@ -47,9 +47,6 @@ static const GtkActionEntry vinagre_always_sensitive_entries[] =
/* Edit menu */
{ "EditPreferences", GTK_STOCK_PREFERENCES, NULL, NULL,
N_("Edit the application preferences"), G_CALLBACK (vinagre_cmd_edit_preferences) },
- /* TODO: Use a more appropriate icon. Libpeas uses "libpeas-plugin". */
- { "EditPlugins", GTK_STOCK_EXECUTE, N_("_Plugins"), NULL,
- N_("Select active plugins"), G_CALLBACK (vinagre_cmd_edit_plugins) },
/* Help menu */
{"HelpContents", GTK_STOCK_HELP, N_("_Contents"), "F1",
diff --git a/vinagre/vinagre-window-private.h b/vinagre/vinagre-window-private.h
index 98c6201..fe610f8 100644
--- a/vinagre/vinagre-window-private.h
+++ b/vinagre/vinagre-window-private.h
@@ -21,8 +21,6 @@
#ifndef __VINAGRE_WINDOW_PRIVATE_H__
#define __VINAGRE_WINDOW_PRIVATE_H__
-#include <libpeas/peas-extension-set.h>
-
#include "vinagre-window.h"
#include "vinagre-notebook.h"
@@ -57,8 +55,6 @@ struct _VinagreWindowPrivate
GtkWidget *toolbar;
GtkWidget *menubar;
- PeasExtensionSet *extensions;
-
gint width;
gint height;
GdkWindowState window_state;
diff --git a/vinagre/vinagre-window.c b/vinagre/vinagre-window.c
index 0e9ba89..1dd8b64 100644
--- a/vinagre/vinagre-window.c
+++ b/vinagre/vinagre-window.c
@@ -69,19 +69,6 @@ vinagre_window_dispose (GObject *object)
{
VinagreWindow *window = VINAGRE_WINDOW (object);
- peas_engine_garbage_collect (PEAS_ENGINE (vinagre_plugins_engine_get_default ()));
-
- if (!window->priv->dispose_has_run)
- {
- peas_extension_set_call (window->priv->extensions,
- "deactivate",
- window);
-
- g_object_unref (window->priv->extensions);
- peas_engine_garbage_collect (PEAS_ENGINE (vinagre_plugins_engine_get_default ()));
- window->priv->dispose_has_run = TRUE;
- }
-
if (window->priv->manager)
{
g_object_unref (window->priv->manager);
@@ -97,8 +84,6 @@ vinagre_window_dispose (GObject *object)
window->priv->update_recents_menu_ui_id = 0;
}
- peas_engine_garbage_collect (PEAS_ENGINE (vinagre_plugins_engine_get_default ()));
-
G_OBJECT_CLASS (vinagre_window_parent_class)->dispose (object);
}
@@ -801,24 +786,6 @@ vinagre_window_check_first_run (VinagreWindow *window)
}
static void
-extension_added (PeasExtensionSet *extensions,
- PeasPluginInfo *info,
- PeasExtension *exten,
- gpointer user_data)
-{
- peas_extension_call (exten, "activate");
-}
-
-static void
-extension_removed (PeasExtensionSet *extensions,
- PeasPluginInfo *info,
- PeasExtension *exten,
- gpointer user_data)
-{
- peas_extension_call (exten, "deactivate");
-}
-
-static void
protocol_added_removed_cb (VinagrePluginsEngine *engine,
VinagreProtocol *protocol,
VinagreWindow *window)
@@ -880,19 +847,6 @@ vinagre_window_init (VinagreWindow *window)
#endif
engine = vinagre_plugins_engine_get_default ();
- window->priv->extensions = peas_extension_set_new (PEAS_ENGINE (engine),
- PEAS_TYPE_ACTIVATABLE,
- "object", window,
- NULL);
- g_signal_connect (window->priv->extensions,
- "extension-added",
- G_CALLBACK (extension_added),
- window);
- g_signal_connect (window->priv->extensions,
- "extension-removed",
- G_CALLBACK (extension_removed),
- window);
- peas_extension_set_call (window->priv->extensions, "activate");
g_signal_connect_after (engine,
"protocol-added",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]