[gedit-plugins] Port bookmarks plugin to use the window construct property.
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit-plugins] Port bookmarks plugin to use the window construct property.
- Date: Thu, 29 Jul 2010 17:24:56 +0000 (UTC)
commit 8a34e23e503717b2f64514e5af99f900ddede0d7
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Thu Jul 29 19:24:26 2010 +0200
Port bookmarks plugin to use the window construct property.
plugins/bookmarks/gedit-bookmarks-plugin.c | 82 +++++++++++++++++++++++-----
1 files changed, 69 insertions(+), 13 deletions(-)
---
diff --git a/plugins/bookmarks/gedit-bookmarks-plugin.c b/plugins/bookmarks/gedit-bookmarks-plugin.c
index d11a24d..85e02ec 100644
--- a/plugins/bookmarks/gedit-bookmarks-plugin.c
+++ b/plugins/bookmarks/gedit-bookmarks-plugin.c
@@ -111,6 +111,12 @@ struct _GeditBookmarksPluginPrivate
guint ui_id;
};
+enum
+{
+ PROP_0,
+ PROP_WINDOW
+};
+
static void
gedit_bookmarks_plugin_init (GeditBookmarksPlugin *plugin)
{
@@ -132,10 +138,56 @@ gedit_bookmarks_plugin_dispose (GObject *object)
plugin->priv->action_group = NULL;
}
+ if (plugin->priv->window != NULL)
+ {
+ g_object_unref (plugin->priv->window);
+ plugin->priv->window = NULL;
+ }
+
G_OBJECT_CLASS (gedit_bookmarks_plugin_parent_class)->dispose (object);
}
static void
+gedit_bookmarks_plugin_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GeditBookmarksPlugin *plugin = GEDIT_BOOKMARKS_PLUGIN (object);
+
+ switch (prop_id)
+ {
+ case PROP_WINDOW:
+ plugin->priv->window = GEDIT_WINDOW (g_value_dup_object (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gedit_bookmarks_plugin_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GeditBookmarksPlugin *plugin = GEDIT_BOOKMARKS_PLUGIN (object);
+
+ switch (prop_id)
+ {
+ case PROP_WINDOW:
+ g_value_set_object (value, plugin->priv->window);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
free_insert_data (InsertData *data)
{
g_slice_free (InsertData, data);
@@ -657,8 +709,7 @@ uninstall_messages (GeditWindow *window)
}
static void
-gedit_bookmarks_plugin_activate (GeditWindowActivatable *activatable,
- GeditWindow *window)
+gedit_bookmarks_plugin_activate (GeditWindowActivatable *activatable)
{
GeditBookmarksPluginPrivate *priv;
GList *views;
@@ -667,9 +718,8 @@ gedit_bookmarks_plugin_activate (GeditWindowActivatable *activatable,
gedit_debug (DEBUG_PLUGINS);
priv = GEDIT_BOOKMARKS_PLUGIN (activatable)->priv;
- priv->window = window;
- views = gedit_window_get_views (window);
+ views = gedit_window_get_views (priv->window);
for (item = views; item != NULL; item = item->next)
{
enable_bookmarks (GEDIT_VIEW (item->data),
@@ -679,14 +729,14 @@ gedit_bookmarks_plugin_activate (GeditWindowActivatable *activatable,
g_list_free (views);
- g_signal_connect (window, "tab-added",
+ g_signal_connect (priv->window, "tab-added",
G_CALLBACK (on_tab_added), activatable);
- g_signal_connect (window, "tab-removed",
+ g_signal_connect (priv->window, "tab-removed",
G_CALLBACK (on_tab_removed), activatable);
install_menu (GEDIT_BOOKMARKS_PLUGIN (activatable));
- install_messages (window);
+ install_messages (priv->window);
}
static void
@@ -738,18 +788,20 @@ save_bookmark_metadata (GeditView *view)
}
static void
-gedit_bookmarks_plugin_deactivate (GeditWindowActivatable *activatable,
- GeditWindow *window)
+gedit_bookmarks_plugin_deactivate (GeditWindowActivatable *activatable)
{
+ GeditBookmarksPluginPrivate *priv;
GList *views;
GList *item;
gedit_debug (DEBUG_PLUGINS);
+ priv = GEDIT_BOOKMARKS_PLUGIN (activatable)->priv;
+
uninstall_menu (GEDIT_BOOKMARKS_PLUGIN (activatable));
- uninstall_messages (window);
+ uninstall_messages (priv->window);
- views = gedit_window_get_views (window);
+ views = gedit_window_get_views (priv->window);
for (item = views; item != NULL; item = item->next)
{
@@ -758,8 +810,8 @@ gedit_bookmarks_plugin_deactivate (GeditWindowActivatable *activatable,
g_list_free (views);
- g_signal_handlers_disconnect_by_func (window, on_tab_added, activatable);
- g_signal_handlers_disconnect_by_func (window, on_tab_removed, activatable);
+ g_signal_handlers_disconnect_by_func (priv->window, on_tab_added, activatable);
+ g_signal_handlers_disconnect_by_func (priv->window, on_tab_removed, activatable);
}
static void
@@ -768,6 +820,10 @@ gedit_bookmarks_plugin_class_init (GeditBookmarksPluginClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = gedit_bookmarks_plugin_dispose;
+ object_class->set_property = gedit_bookmarks_plugin_set_property;
+ object_class->get_property = gedit_bookmarks_plugin_get_property;
+
+ g_object_class_override_property (object_class, PROP_WINDOW, "window");
g_type_class_add_private (klass, sizeof (GeditBookmarksPluginPrivate));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]