1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
--- a/thunar/thunar-shortcuts-model.c
+++ b/thunar/thunar-shortcuts-model.c
@@ -1,25 +1,23 @@
-/* vi:set et ai sw=2 sts=2 ts=2: */
+/* $Id$ */
/*-
* Copyright (c) 2005-2006 Benedikt Meurer <benny@xfce.org>
- * Copyright (c) 2009-2011 Jannis Pohlmann <jannis@xfce.org>
+ * Copyright (c) 2009 Jannis Pohlmann <jannis@xfce.org>
*
- * 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 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.
+ * 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, write to the Free
- * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA 02111-1307 USA
*/
-
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -219,84 +217,6 @@ thunar_shortcuts_model_drag_source_init (GtkTreeDragSourceIface *iface)
-static gboolean
-thunar_shortcuts_model_add_network_idle (gpointer user_data)
-{
- ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (user_data);
- ThunarShortcut *shortcut = NULL;
- GtkTreePath *path;
- GtkTreeIter iter;
- ThunarFile *file = NULL;
- GVolume *volume = NULL;
- gboolean have_iter = FALSE;
- gboolean is_separator = FALSE;
- gboolean position_found = FALSE;
- GFile *location = NULL;
-
- /* append the network icon if browsing the network is supported */
- if (thunar_g_vfs_is_uri_scheme_supported ("network"))
- {
- /* load the network root file */
- location = g_file_new_for_uri ("network://");
- file = thunar_file_get (location, NULL);
- g_object_unref (location);
-
- /* create the shortcut */
- shortcut = g_slice_new0 (ThunarShortcut);
- shortcut->type = THUNAR_SHORTCUT_SYSTEM_DEFINED;
- shortcut->file = file;
-
- /* iterate over all rows in the model in order to find the
- * first one with a volume or a separator */
- have_iter = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter);
- while (have_iter && !position_found)
- {
- /* read volume and separator flag from the current row */
- gtk_tree_model_get (GTK_TREE_MODEL (model), &iter,
- THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME, &volume,
- THUNAR_SHORTCUTS_MODEL_COLUMN_SEPARATOR, &is_separator,
- -1);
-
- /* check if a volume row was found */
- if (volume != NULL)
- {
- /* stop searching */
- position_found = TRUE;
-
- /* release the volume */
- g_object_unref (volume);
- }
- else if (is_separator)
- {
- /* stop searching */
- position_found = TRUE;
- }
- else
- {
- /* advance to the next row */
- have_iter = gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter);
- }
- }
-
- /* we always have a volume or separator row */
- g_assert (position_found);
-
- /* get the path of the iter */
- path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter);
-
- /* append the shortcut to the list */
- thunar_shortcuts_model_add_shortcut (model, shortcut, path);
-
- /* release the path */
- gtk_tree_path_free (path);
- }
-
- /* remove this idle handler */
- return FALSE;
-}
-
-
-
static void
thunar_shortcuts_model_init (ThunarShortcutsModel *model)
{
@@ -339,6 +259,10 @@ thunar_shortcuts_model_init (ThunarShortcutsModel *model)
/* append the root file system */
system_paths = g_list_append (system_paths, thunar_g_file_new_for_root ());
+ /* append the network icon if browsing the network is supported */
+ if (thunar_g_vfs_is_uri_scheme_supported ("network"))
+ system_paths = g_list_append (system_paths, g_file_new_for_uri ("network://"));
+
/* will be used to append the shortcuts to the list */
path = gtk_tree_path_new_from_indices (0, -1);
@@ -416,9 +340,6 @@ thunar_shortcuts_model_init (ThunarShortcutsModel *model)
g_object_unref (bookmarks);
g_object_unref (home);
gtk_tree_path_free (path);
-
- /* add the network item (and other slow items) in an idle handler */
- g_idle_add_full (G_PRIORITY_LOW, thunar_shortcuts_model_add_network_idle, model, NULL);
}
|