summaryrefslogtreecommitdiff
path: root/nautilus-desktop/nautilus-desktop-link.c
diff options
context:
space:
mode:
authorCarlos Soriano <csoriano@gnome.org>2016-08-29 18:24:05 +0200
committerCarlos Soriano <csoriano@gnome.org>2016-08-29 18:25:29 +0200
commitbc88db402e424f34fd7a8fa583217c984df7f4b4 (patch)
tree040dc9433d4ad9cc38482fc7f83f560d58fdf803 /nautilus-desktop/nautilus-desktop-link.c
parente19470ae3c0bd16fde484d0640f0c48a4f6ba4d0 (diff)
downloadnautilus-bc88db402e424f34fd7a8fa583217c984df7f4b4.tar.gz
general: run uncrustifywip/csoriano/uncrustify
And make the style of Nautilus the same for all files. Hopefully we can fix all the style issues we can find in the next days, so expect a little of movement on this.
Diffstat (limited to 'nautilus-desktop/nautilus-desktop-link.c')
-rw-r--r--nautilus-desktop/nautilus-desktop-link.c615
1 files changed, 329 insertions, 286 deletions
diff --git a/nautilus-desktop/nautilus-desktop-link.c b/nautilus-desktop/nautilus-desktop-link.c
index 87ba9081c..603c248d8 100644
--- a/nautilus-desktop/nautilus-desktop-link.c
+++ b/nautilus-desktop/nautilus-desktop-link.c
@@ -1,23 +1,23 @@
/*
- nautilus-desktop-link.c: Class that handles the links on the desktop
-
- Copyright (C) 2003 Red Hat, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with this program; if not, see <http://www.gnu.org/licenses/>.
-
- Author: Alexander Larsson <alexl@redhat.com>
-*/
+ * nautilus-desktop-link.c: Class that handles the links on the desktop
+ *
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Alexander Larsson <alexl@redhat.com>
+ */
#include <config.h>
@@ -37,400 +37,443 @@
#include <string.h>
-struct NautilusDesktopLinkDetails {
- NautilusDesktopLinkType type;
- char *filename;
- char *display_name;
- GFile *activation_location;
- GIcon *icon;
+struct NautilusDesktopLinkDetails
+{
+ NautilusDesktopLinkType type;
+ char *filename;
+ char *display_name;
+ GFile *activation_location;
+ GIcon *icon;
- NautilusDesktopIconFile *icon_file;
+ NautilusDesktopIconFile *icon_file;
- /* Just for mount icons: */
- GMount *mount;
+ /* Just for mount icons: */
+ GMount *mount;
};
-G_DEFINE_TYPE(NautilusDesktopLink, nautilus_desktop_link, G_TYPE_OBJECT)
+G_DEFINE_TYPE (NautilusDesktopLink, nautilus_desktop_link, G_TYPE_OBJECT)
static void
create_icon_file (NautilusDesktopLink *link)
{
- link->details->icon_file = nautilus_desktop_icon_file_new (link);
+ link->details->icon_file = nautilus_desktop_icon_file_new (link);
}
static void
nautilus_desktop_link_changed (NautilusDesktopLink *link)
{
- if (link->details->icon_file != NULL) {
- nautilus_desktop_icon_file_update (link->details->icon_file);
- }
+ if (link->details->icon_file != NULL)
+ {
+ nautilus_desktop_icon_file_update (link->details->icon_file);
+ }
}
static void
-mount_changed_callback (GMount *mount, NautilusDesktopLink *link)
+mount_changed_callback (GMount *mount,
+ NautilusDesktopLink *link)
{
- g_free (link->details->display_name);
- if (link->details->activation_location) {
- g_object_unref (link->details->activation_location);
- }
- if (link->details->icon) {
- g_object_unref (link->details->icon);
- }
-
- link->details->display_name = g_mount_get_name (mount);
- link->details->activation_location = g_mount_get_default_location (mount);
- link->details->icon = g_mount_get_icon (mount);
-
- nautilus_desktop_link_changed (link);
+ g_free (link->details->display_name);
+ if (link->details->activation_location)
+ {
+ g_object_unref (link->details->activation_location);
+ }
+ if (link->details->icon)
+ {
+ g_object_unref (link->details->icon);
+ }
+
+ link->details->display_name = g_mount_get_name (mount);
+ link->details->activation_location = g_mount_get_default_location (mount);
+ link->details->icon = g_mount_get_icon (mount);
+
+ nautilus_desktop_link_changed (link);
}
static GIcon *
get_desktop_trash_icon (void)
{
- const gchar *icon_name;
-
- if (nautilus_trash_monitor_is_empty ()) {
- icon_name = NAUTILUS_DESKTOP_ICON_TRASH;
- } else {
- icon_name = NAUTILUS_DESKTOP_ICON_TRASH_FULL;
- }
-
- return g_themed_icon_new (icon_name);
+ const gchar *icon_name;
+
+ if (nautilus_trash_monitor_is_empty ())
+ {
+ icon_name = NAUTILUS_DESKTOP_ICON_TRASH;
+ }
+ else
+ {
+ icon_name = NAUTILUS_DESKTOP_ICON_TRASH_FULL;
+ }
+
+ return g_themed_icon_new (icon_name);
}
static void
trash_state_changed_callback (NautilusTrashMonitor *trash_monitor,
- gboolean state,
- gpointer callback_data)
+ gboolean state,
+ gpointer callback_data)
{
- NautilusDesktopLink *link;
+ NautilusDesktopLink *link;
- link = NAUTILUS_DESKTOP_LINK (callback_data);
- g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH);
+ link = NAUTILUS_DESKTOP_LINK (callback_data);
+ g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH);
- if (link->details->icon) {
- g_object_unref (link->details->icon);
- }
- link->details->icon = get_desktop_trash_icon ();
+ if (link->details->icon)
+ {
+ g_object_unref (link->details->icon);
+ }
+ link->details->icon = get_desktop_trash_icon ();
- nautilus_desktop_link_changed (link);
+ nautilus_desktop_link_changed (link);
}
static void
home_name_changed (gpointer callback_data)
{
- NautilusDesktopLink *link;
+ NautilusDesktopLink *link;
- link = NAUTILUS_DESKTOP_LINK (callback_data);
- g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_HOME);
+ link = NAUTILUS_DESKTOP_LINK (callback_data);
+ g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_HOME);
- g_free (link->details->display_name);
- link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
- if (link->details->display_name[0] == 0) {
- g_free (link->details->display_name);
- link->details->display_name = g_strdup (_("Home"));
- }
+ g_free (link->details->display_name);
+ link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
+ if (link->details->display_name[0] == 0)
+ {
+ g_free (link->details->display_name);
+ link->details->display_name = g_strdup (_("Home"));
+ }
- nautilus_desktop_link_changed (link);
+ nautilus_desktop_link_changed (link);
}
static void
trash_name_changed (gpointer callback_data)
{
- NautilusDesktopLink *link;
+ NautilusDesktopLink *link;
- link = NAUTILUS_DESKTOP_LINK (callback_data);
- g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH);
+ link = NAUTILUS_DESKTOP_LINK (callback_data);
+ g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH);
- g_free (link->details->display_name);
- link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
- nautilus_desktop_link_changed (link);
+ g_free (link->details->display_name);
+ link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
+ nautilus_desktop_link_changed (link);
}
static void
network_name_changed (gpointer callback_data)
{
- NautilusDesktopLink *link;
+ NautilusDesktopLink *link;
- link = NAUTILUS_DESKTOP_LINK (callback_data);
- g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK);
+ link = NAUTILUS_DESKTOP_LINK (callback_data);
+ g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK);
- g_free (link->details->display_name);
- link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
- nautilus_desktop_link_changed (link);
+ g_free (link->details->display_name);
+ link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
+ nautilus_desktop_link_changed (link);
}
NautilusDesktopLink *
nautilus_desktop_link_new (NautilusDesktopLinkType type)
{
- NautilusDesktopLink *link;
-
- link = NAUTILUS_DESKTOP_LINK (g_object_new (NAUTILUS_TYPE_DESKTOP_LINK, NULL));
-
- link->details->type = type;
- switch (type) {
- case NAUTILUS_DESKTOP_LINK_HOME:
- link->details->filename = g_strdup ("home");
- link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
- link->details->activation_location = g_file_new_for_path (g_get_home_dir ());
- link->details->icon = g_themed_icon_new (NAUTILUS_DESKTOP_ICON_HOME);
-
- g_signal_connect_swapped (nautilus_desktop_preferences,
- "changed::" NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
- G_CALLBACK (home_name_changed),
- link);
- break;
-
- case NAUTILUS_DESKTOP_LINK_TRASH:
- link->details->filename = g_strdup ("trash");
- link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
- link->details->activation_location = g_file_new_for_uri (EEL_TRASH_URI);
- link->details->icon = get_desktop_trash_icon ();
-
- g_signal_connect_swapped (nautilus_desktop_preferences,
- "changed::" NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
- G_CALLBACK (trash_name_changed),
- link);
- 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:
- link->details->filename = g_strdup ("network");
- link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
- link->details->activation_location = g_file_new_for_uri ("network:///");
- link->details->icon = g_themed_icon_new (NAUTILUS_DESKTOP_ICON_NETWORK);
-
- g_signal_connect_swapped (nautilus_desktop_preferences,
- "changed::" NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
- G_CALLBACK (network_name_changed),
- link);
- break;
-
- default:
- case NAUTILUS_DESKTOP_LINK_MOUNT:
- g_assert_not_reached();
- }
-
- create_icon_file (link);
-
- return link;
+ NautilusDesktopLink *link;
+
+ link = NAUTILUS_DESKTOP_LINK (g_object_new (NAUTILUS_TYPE_DESKTOP_LINK, NULL));
+
+ link->details->type = type;
+ switch (type)
+ {
+ case NAUTILUS_DESKTOP_LINK_HOME:
+ {
+ link->details->filename = g_strdup ("home");
+ link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
+ link->details->activation_location = g_file_new_for_path (g_get_home_dir ());
+ link->details->icon = g_themed_icon_new (NAUTILUS_DESKTOP_ICON_HOME);
+
+ g_signal_connect_swapped (nautilus_desktop_preferences,
+ "changed::" NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
+ G_CALLBACK (home_name_changed),
+ link);
+ }
+ break;
+
+ case NAUTILUS_DESKTOP_LINK_TRASH:
+ {
+ link->details->filename = g_strdup ("trash");
+ link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
+ link->details->activation_location = g_file_new_for_uri (EEL_TRASH_URI);
+ link->details->icon = get_desktop_trash_icon ();
+
+ g_signal_connect_swapped (nautilus_desktop_preferences,
+ "changed::" NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
+ G_CALLBACK (trash_name_changed),
+ link);
+ 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:
+ {
+ link->details->filename = g_strdup ("network");
+ link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
+ link->details->activation_location = g_file_new_for_uri ("network:///");
+ link->details->icon = g_themed_icon_new (NAUTILUS_DESKTOP_ICON_NETWORK);
+
+ g_signal_connect_swapped (nautilus_desktop_preferences,
+ "changed::" NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
+ G_CALLBACK (network_name_changed),
+ link);
+ }
+ break;
+
+ default:
+ case NAUTILUS_DESKTOP_LINK_MOUNT:
+ g_assert_not_reached ();
+ }
+
+ create_icon_file (link);
+
+ return link;
}
NautilusDesktopLink *
nautilus_desktop_link_new_from_mount (GMount *mount)
{
- NautilusDesktopLink *link;
- GVolume *volume;
- char *name, *filename;
-
- link = NAUTILUS_DESKTOP_LINK (g_object_new (NAUTILUS_TYPE_DESKTOP_LINK, NULL));
-
- link->details->type = NAUTILUS_DESKTOP_LINK_MOUNT;
-
- link->details->mount = g_object_ref (mount);
-
- /* We try to use the drive name to get somewhat stable filenames
- for metadata */
- volume = g_mount_get_volume (mount);
- if (volume != NULL) {
- name = g_volume_get_name (volume);
- g_object_unref (volume);
- } else {
- name = g_mount_get_name (mount);
- }
-
- /* Replace slashes in name */
- filename = g_strconcat (g_strdelimit (name, "/", '-'), ".volume", NULL);
- link->details->filename =
- nautilus_desktop_link_monitor_make_filename_unique (nautilus_desktop_link_monitor_get (),
- filename);
- g_free (filename);
- g_free (name);
-
- link->details->display_name = g_mount_get_name (mount);
-
- link->details->activation_location = g_mount_get_default_location (mount);
- link->details->icon = g_mount_get_icon (mount);
-
- g_signal_connect_object (mount, "changed",
- G_CALLBACK (mount_changed_callback), link, 0);
-
- create_icon_file (link);
-
- return link;
+ NautilusDesktopLink *link;
+ GVolume *volume;
+ char *name, *filename;
+
+ link = NAUTILUS_DESKTOP_LINK (g_object_new (NAUTILUS_TYPE_DESKTOP_LINK, NULL));
+
+ link->details->type = NAUTILUS_DESKTOP_LINK_MOUNT;
+
+ link->details->mount = g_object_ref (mount);
+
+ /* We try to use the drive name to get somewhat stable filenames
+ * for metadata */
+ volume = g_mount_get_volume (mount);
+ if (volume != NULL)
+ {
+ name = g_volume_get_name (volume);
+ g_object_unref (volume);
+ }
+ else
+ {
+ name = g_mount_get_name (mount);
+ }
+
+ /* Replace slashes in name */
+ filename = g_strconcat (g_strdelimit (name, "/", '-'), ".volume", NULL);
+ link->details->filename =
+ nautilus_desktop_link_monitor_make_filename_unique (nautilus_desktop_link_monitor_get (),
+ filename);
+ g_free (filename);
+ g_free (name);
+
+ link->details->display_name = g_mount_get_name (mount);
+
+ link->details->activation_location = g_mount_get_default_location (mount);
+ link->details->icon = g_mount_get_icon (mount);
+
+ g_signal_connect_object (mount, "changed",
+ G_CALLBACK (mount_changed_callback), link, 0);
+
+ create_icon_file (link);
+
+ return link;
}
GMount *
nautilus_desktop_link_get_mount (NautilusDesktopLink *link)
{
- if (link->details->mount) {
- return g_object_ref (link->details->mount);
- }
- return NULL;
+ if (link->details->mount)
+ {
+ return g_object_ref (link->details->mount);
+ }
+ return NULL;
}
NautilusDesktopLinkType
nautilus_desktop_link_get_link_type (NautilusDesktopLink *link)
{
- return link->details->type;
+ return link->details->type;
}
char *
nautilus_desktop_link_get_file_name (NautilusDesktopLink *link)
{
- return g_strdup (link->details->filename);
+ return g_strdup (link->details->filename);
}
char *
nautilus_desktop_link_get_display_name (NautilusDesktopLink *link)
{
- return g_strdup (link->details->display_name);
+ return g_strdup (link->details->display_name);
}
GIcon *
nautilus_desktop_link_get_icon (NautilusDesktopLink *link)
{
- if (link->details->icon != NULL) {
- return g_object_ref (link->details->icon);
- }
- return NULL;
+ if (link->details->icon != NULL)
+ {
+ return g_object_ref (link->details->icon);
+ }
+ return NULL;
}
GFile *
nautilus_desktop_link_get_activation_location (NautilusDesktopLink *link)
{
- if (link->details->activation_location) {
- return g_object_ref (link->details->activation_location);
- }
- return NULL;
+ if (link->details->activation_location)
+ {
+ return g_object_ref (link->details->activation_location);
+ }
+ return NULL;
}
char *
nautilus_desktop_link_get_activation_uri (NautilusDesktopLink *link)
{
- if (link->details->activation_location) {
- return g_file_get_uri (link->details->activation_location);
- }
- return NULL;
+ if (link->details->activation_location)
+ {
+ return g_file_get_uri (link->details->activation_location);
+ }
+ return NULL;
}
gboolean
nautilus_desktop_link_get_date (NautilusDesktopLink *link,
- NautilusDateType date_type,
- time_t *date)
+ NautilusDateType date_type,
+ time_t *date)
{
- return FALSE;
+ return FALSE;
}
gboolean
-nautilus_desktop_link_can_rename (NautilusDesktopLink *link)
+nautilus_desktop_link_can_rename (NautilusDesktopLink *link)
{
- return (link->details->type == NAUTILUS_DESKTOP_LINK_HOME ||
- link->details->type == NAUTILUS_DESKTOP_LINK_TRASH ||
- link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK);
+ return (link->details->type == NAUTILUS_DESKTOP_LINK_HOME ||
+ link->details->type == NAUTILUS_DESKTOP_LINK_TRASH ||
+ link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK);
}
gboolean
-nautilus_desktop_link_rename (NautilusDesktopLink *link,
- const char *name)
+nautilus_desktop_link_rename (NautilusDesktopLink *link,
+ const char *name)
{
- switch (link->details->type) {
- case NAUTILUS_DESKTOP_LINK_HOME:
- g_settings_set_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
- name);
- break;
- case NAUTILUS_DESKTOP_LINK_TRASH:
- g_settings_set_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
- name);
- break;
- case NAUTILUS_DESKTOP_LINK_NETWORK:
- g_settings_set_string (nautilus_desktop_preferences,
- NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
- name);
- break;
- default:
- g_assert_not_reached ();
- /* FIXME: Do we want volume renaming?
- * We didn't support that before. */
- break;
- }
-
- return TRUE;
+ switch (link->details->type)
+ {
+ case NAUTILUS_DESKTOP_LINK_HOME:
+ {
+ g_settings_set_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
+ name);
+ }
+ break;
+
+ case NAUTILUS_DESKTOP_LINK_TRASH:
+ {
+ g_settings_set_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
+ name);
+ }
+ break;
+
+ case NAUTILUS_DESKTOP_LINK_NETWORK:
+ {
+ g_settings_set_string (nautilus_desktop_preferences,
+ NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
+ name);
+ }
+ break;
+
+ default:
+ {
+ g_assert_not_reached ();
+ /* FIXME: Do we want volume renaming?
+ * We didn't support that before. */
+ }
+ break;
+ }
+
+ return TRUE;
}
static void
nautilus_desktop_link_init (NautilusDesktopLink *link)
{
- link->details = G_TYPE_INSTANCE_GET_PRIVATE (link,
- NAUTILUS_TYPE_DESKTOP_LINK,
- NautilusDesktopLinkDetails);
+ link->details = G_TYPE_INSTANCE_GET_PRIVATE (link,
+ NAUTILUS_TYPE_DESKTOP_LINK,
+ NautilusDesktopLinkDetails);
}
static void
desktop_link_finalize (GObject *object)
{
- NautilusDesktopLink *link;
-
- link = NAUTILUS_DESKTOP_LINK (object);
-
- if (link->details->icon_file != NULL) {
- nautilus_desktop_icon_file_remove (link->details->icon_file);
- nautilus_file_unref (NAUTILUS_FILE (link->details->icon_file));
- link->details->icon_file = NULL;
- }
-
- if (link->details->type == NAUTILUS_DESKTOP_LINK_HOME) {
- g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
- home_name_changed,
- link);
- }
-
- if (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH) {
- g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
- trash_name_changed,
- link);
- }
-
- if (link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK) {
- g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
- network_name_changed,
- link);
- }
-
- if (link->details->type == NAUTILUS_DESKTOP_LINK_MOUNT) {
- g_object_unref (link->details->mount);
- }
-
- g_free (link->details->filename);
- g_free (link->details->display_name);
- if (link->details->activation_location) {
- g_object_unref (link->details->activation_location);
- }
- if (link->details->icon) {
- g_object_unref (link->details->icon);
- }
-
- G_OBJECT_CLASS (nautilus_desktop_link_parent_class)->finalize (object);
+ NautilusDesktopLink *link;
+
+ link = NAUTILUS_DESKTOP_LINK (object);
+
+ if (link->details->icon_file != NULL)
+ {
+ nautilus_desktop_icon_file_remove (link->details->icon_file);
+ nautilus_file_unref (NAUTILUS_FILE (link->details->icon_file));
+ link->details->icon_file = NULL;
+ }
+
+ if (link->details->type == NAUTILUS_DESKTOP_LINK_HOME)
+ {
+ g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+ home_name_changed,
+ link);
+ }
+
+ if (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH)
+ {
+ g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+ trash_name_changed,
+ link);
+ }
+
+ if (link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK)
+ {
+ g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+ network_name_changed,
+ link);
+ }
+
+ if (link->details->type == NAUTILUS_DESKTOP_LINK_MOUNT)
+ {
+ g_object_unref (link->details->mount);
+ }
+
+ g_free (link->details->filename);
+ g_free (link->details->display_name);
+ if (link->details->activation_location)
+ {
+ g_object_unref (link->details->activation_location);
+ }
+ if (link->details->icon)
+ {
+ g_object_unref (link->details->icon);
+ }
+
+ G_OBJECT_CLASS (nautilus_desktop_link_parent_class)->finalize (object);
}
static void
nautilus_desktop_link_class_init (NautilusDesktopLinkClass *klass)
{
- GObjectClass *object_class;
+ GObjectClass *object_class;
- object_class = G_OBJECT_CLASS (klass);
+ object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = desktop_link_finalize;
+ object_class->finalize = desktop_link_finalize;
- g_type_class_add_private (object_class, sizeof(NautilusDesktopLinkDetails));
+ g_type_class_add_private (object_class, sizeof (NautilusDesktopLinkDetails));
}