[devhelp/wip/swilmet/misc-improvements] book-tree: use g_signal_connect_object()



commit be1e1da5a56c09db2c1a65825cf406889a93280f
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun May 24 15:22:31 2015 +0200

    book-tree: use g_signal_connect_object()
    
    It simplifies the code.

 src/dh-book-tree.c |   87 +++++++++++++++++----------------------------------
 1 files changed, 29 insertions(+), 58 deletions(-)
---
diff --git a/src/dh-book-tree.c b/src/dh-book-tree.c
index 4423396..61aad09 100644
--- a/src/dh-book-tree.c
+++ b/src/dh-book-tree.c
@@ -34,13 +34,6 @@ typedef struct {
         GtkTreeStore  *store;
         DhBookManager *book_manager;
         DhLink        *selected_link;
-
-        /* Signals */
-        guint book_created_id;
-        guint book_deleted_id;
-        guint book_enabled_id;
-        guint book_disabled_id;
-        guint group_by_language_id;
 } DhBookTreePrivate;
 
 static void dh_book_tree_class_init        (DhBookTreeClass  *klass);
@@ -82,37 +75,6 @@ dh_book_tree_dispose (GObject *object)
 {
         DhBookTreePrivate *priv = dh_book_tree_get_instance_private (DH_BOOK_TREE (object));
 
-        /* Disconnect signals */
-        if (priv->book_created_id != 0 &&
-            g_signal_handler_is_connected (priv->book_manager, priv->book_created_id)) {
-                g_signal_handler_disconnect (priv->book_manager, priv->book_created_id);
-                priv->book_created_id = 0;
-        }
-
-        if (priv->book_deleted_id &&
-            g_signal_handler_is_connected (priv->book_manager, priv->book_deleted_id)) {
-                g_signal_handler_disconnect (priv->book_manager, priv->book_deleted_id);
-                priv->book_deleted_id = 0;
-        }
-
-        if (priv->book_enabled_id != 0 &&
-            g_signal_handler_is_connected (priv->book_manager, priv->book_enabled_id)) {
-                g_signal_handler_disconnect (priv->book_manager, priv->book_enabled_id);
-                priv->book_enabled_id = 0;
-        }
-
-        if (priv->book_disabled_id != 0 &&
-            g_signal_handler_is_connected (priv->book_manager, priv->book_disabled_id)) {
-                g_signal_handler_disconnect (priv->book_manager, priv->book_disabled_id);
-                priv->book_disabled_id = 0;
-        }
-
-        if (priv->group_by_language_id != 0 &&
-            g_signal_handler_is_connected (priv->book_manager, priv->group_by_language_id)) {
-                g_signal_handler_disconnect (priv->book_manager, priv->group_by_language_id);
-                priv->group_by_language_id = 0;
-        }
-
         g_clear_object (&priv->store);
         g_clear_object (&priv->book_manager);
 
@@ -720,26 +682,35 @@ dh_book_tree_constructed (GObject *object)
         DhBookTree *tree = DH_BOOK_TREE (object);
         DhBookTreePrivate *priv = dh_book_tree_get_instance_private (tree);
 
-        priv->book_created_id = g_signal_connect (priv->book_manager,
-                                                  "book-created",
-                                                  G_CALLBACK (book_tree_book_created_or_enabled_cb),
-                                                  tree);
-        priv->book_deleted_id = g_signal_connect (priv->book_manager,
-                                                  "book-deleted",
-                                                  G_CALLBACK (book_tree_book_deleted_or_disabled_cb),
-                                                  tree);
-        priv->book_enabled_id = g_signal_connect (priv->book_manager,
-                                                  "book-enabled",
-                                                  G_CALLBACK (book_tree_book_created_or_enabled_cb),
-                                                  tree);
-        priv->book_disabled_id = g_signal_connect (priv->book_manager,
-                                                   "book-disabled",
-                                                   G_CALLBACK (book_tree_book_deleted_or_disabled_cb),
-                                                   tree);
-        priv->group_by_language_id = g_signal_connect (priv->book_manager,
-                                                       "notify::group-by-language",
-                                                       G_CALLBACK (book_tree_group_by_language_cb),
-                                                       tree);
+        g_signal_connect_object (priv->book_manager,
+                                 "book-created",
+                                 G_CALLBACK (book_tree_book_created_or_enabled_cb),
+                                 tree,
+                                 0);
+
+        g_signal_connect_object (priv->book_manager,
+                                 "book-deleted",
+                                 G_CALLBACK (book_tree_book_deleted_or_disabled_cb),
+                                 tree,
+                                 0);
+
+        g_signal_connect_object (priv->book_manager,
+                                 "book-enabled",
+                                 G_CALLBACK (book_tree_book_created_or_enabled_cb),
+                                 tree,
+                                 0);
+
+        g_signal_connect_object (priv->book_manager,
+                                 "book-disabled",
+                                 G_CALLBACK (book_tree_book_deleted_or_disabled_cb),
+                                 tree,
+                                 0);
+
+        g_signal_connect_object (priv->book_manager,
+                                 "notify::group-by-language",
+                                 G_CALLBACK (book_tree_group_by_language_cb),
+                                 tree,
+                                 0);
 
         book_tree_populate_tree (tree);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]