[nautilus] desktop-link: use g_signal_connect_object



commit 89412e0439757547b384c7b802801d1221b28bb8
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Mon Apr 28 20:24:53 2014 -0700

    desktop-link: use g_signal_connect_object
    
    Instead of keeping track of signal connections manually.

 .../nautilus-desktop-link-monitor.c                |   32 ++++---------------
 libnautilus-private/nautilus-desktop-link.c        |   22 +++----------
 2 files changed, 12 insertions(+), 42 deletions(-)
---
diff --git a/libnautilus-private/nautilus-desktop-link-monitor.c 
b/libnautilus-private/nautilus-desktop-link-monitor.c
index 0af855f..20e20f2 100644
--- a/libnautilus-private/nautilus-desktop-link-monitor.c
+++ b/libnautilus-private/nautilus-desktop-link-monitor.c
@@ -45,10 +45,6 @@ struct NautilusDesktopLinkMonitorDetails {
        NautilusDesktopLink *trash_link;
        NautilusDesktopLink *network_link;
 
-       gulong mount_id;
-       gulong unmount_id;
-       gulong changed_id;
-       
        GList *mount_links;
 };
 
@@ -416,16 +412,12 @@ nautilus_desktop_link_monitor_init (NautilusDesktopLinkMonitor *monitor)
                                  G_CALLBACK (desktop_volumes_visible_changed),
                                  monitor);
 
-       monitor->details->mount_id =
-               g_signal_connect_object (monitor->details->volume_monitor, "mount-added",
-                                        G_CALLBACK (mount_added_callback), monitor, 0);
-       monitor->details->unmount_id =
-               g_signal_connect_object (monitor->details->volume_monitor, "mount-removed",
-                                        G_CALLBACK (mount_removed_callback), monitor, 0);
-       monitor->details->changed_id =
-               g_signal_connect_object (monitor->details->volume_monitor, "mount-changed",
-                                        G_CALLBACK (mount_changed_callback), monitor, 0);
-
+       g_signal_connect_object (monitor->details->volume_monitor, "mount-added",
+                                G_CALLBACK (mount_added_callback), monitor, 0);
+       g_signal_connect_object (monitor->details->volume_monitor, "mount-removed",
+                                G_CALLBACK (mount_removed_callback), monitor, 0);
+       g_signal_connect_object (monitor->details->volume_monitor, "mount-changed",
+                                G_CALLBACK (mount_changed_callback), monitor, 0);
 }
 
 static void
@@ -450,8 +442,6 @@ desktop_link_monitor_finalize (GObject *object)
 
        monitor = NAUTILUS_DESKTOP_LINK_MONITOR (object);
 
-       g_object_unref (monitor->details->volume_monitor);
-
        /* Default links */
 
        remove_link_and_preference (&monitor->details->home_link,
@@ -482,15 +472,7 @@ desktop_link_monitor_finalize (GObject *object)
                                              desktop_volumes_visible_changed,
                                              monitor);
 
-       if (monitor->details->mount_id != 0) {
-               g_source_remove (monitor->details->mount_id);
-       }
-       if (monitor->details->unmount_id != 0) {
-               g_source_remove (monitor->details->unmount_id);
-       }
-       if (monitor->details->changed_id != 0) {
-               g_source_remove (monitor->details->changed_id);
-       }
+       g_object_unref (monitor->details->volume_monitor);
 
        G_OBJECT_CLASS (nautilus_desktop_link_monitor_parent_class)->finalize (object);
 }
diff --git a/libnautilus-private/nautilus-desktop-link.c b/libnautilus-private/nautilus-desktop-link.c
index 40d4122..bdef52c 100644
--- a/libnautilus-private/nautilus-desktop-link.c
+++ b/libnautilus-private/nautilus-desktop-link.c
@@ -42,9 +42,6 @@ struct NautilusDesktopLinkDetails {
        GIcon *icon;
 
        NautilusDesktopIconFile *icon_file;
-       
-       GObject *signal_handler_obj;
-       gulong signal_handler;
 
        /* Just for mount icons: */
        GMount *mount;
@@ -196,10 +193,8 @@ nautilus_desktop_link_new (NautilusDesktopLinkType type)
                                          "changed::" NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
                                          G_CALLBACK (trash_name_changed),
                                          link);
-               link->details->signal_handler_obj = G_OBJECT (nautilus_trash_monitor_get ());
-               link->details->signal_handler =
-                       g_signal_connect_object (nautilus_trash_monitor_get (), "trash-state-changed",
-                                                G_CALLBACK (trash_state_changed_callback), link, 0);
+               g_signal_connect_object (nautilus_trash_monitor_get (), "trash-state-changed",
+                                        G_CALLBACK (trash_state_changed_callback), link, 0);
                break;
 
        case NAUTILUS_DESKTOP_LINK_NETWORK:
@@ -261,11 +256,9 @@ nautilus_desktop_link_new_from_mount (GMount *mount)
        link->details->activation_location = g_mount_get_default_location (mount);
        link->details->icon = g_mount_get_icon (mount);
        
-       link->details->signal_handler_obj = G_OBJECT (mount);
-       link->details->signal_handler =
-               g_signal_connect (mount, "changed",
-                                 G_CALLBACK (mount_changed_callback), link);
-       
+       g_signal_connect_object (mount, "changed",
+                                G_CALLBACK (mount_changed_callback), link, 0);
+
        create_icon_file (link);
 
        return link;
@@ -387,11 +380,6 @@ desktop_link_finalize (GObject *object)
 
        link = NAUTILUS_DESKTOP_LINK (object);
 
-       if (link->details->signal_handler != 0) {
-               g_signal_handler_disconnect (link->details->signal_handler_obj,
-                                            link->details->signal_handler);
-       }
-
        if (link->details->icon_file != NULL) {
                nautilus_desktop_icon_file_remove (link->details->icon_file);
                nautilus_file_unref (NAUTILUS_FILE (link->details->icon_file));


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