~ubuntu-branches/ubuntu/hardy/gnome-commander/hardy

« back to all changes in this revision

Viewing changes to src/gnome-cmd-con.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Vogt
  • Date: 2006-06-13 15:39:48 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20060613153948-gvrt3mb2ddk5u62o
Tags: 1.2.0-3
added --disable-scrollkeeper on build

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
    GNOME Commander - A GNOME based file manager 
 
2
    GNOME Commander - A GNOME based file manager
3
3
    Copyright (C) 2001-2006 Marcus Bjurman
4
4
 
5
5
    This program is free software; you can redistribute it and/or modify
15
15
    You should have received a copy of the GNU General Public License
16
16
    along with this program; if not, write to the Free Software
17
17
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
 
*/ 
 
18
*/
19
19
 
20
20
#include "gnome-cmd-includes.h"
21
21
#include "gnome-cmd-data.h"
25
25
 
26
26
struct _GnomeCmdConPrivate
27
27
{
28
 
        GnomeCmdDir    *cwd;           // current working directory
29
 
        GnomeCmdDir    *root_dir;      // the root dir of this connection
30
 
        GnomeCmdDir    *default_dir;   // the start dir of this connection
31
 
        History        *dir_history;
32
 
        GnomeCmdBookmarkGroup *bookmarks;
33
 
        GnomeCmdDirPool *dir_pool;
34
 
        GList          *all_dirs;
35
 
        GHashTable     *all_dirs_map;
 
28
    GnomeCmdDir    *cwd;           // current working directory
 
29
    GnomeCmdDir    *root_dir;      // the root dir of this connection
 
30
    GnomeCmdDir    *default_dir;   // the start dir of this connection
 
31
    History        *dir_history;
 
32
    GnomeCmdBookmarkGroup *bookmarks;
 
33
    GnomeCmdDirPool *dir_pool;
 
34
    GList          *all_dirs;
 
35
    GHashTable     *all_dirs_map;
36
36
};
37
37
 
38
38
enum {
39
 
        UPDATED,
40
 
        CLOSE,
41
 
        OPEN_DONE,
42
 
        OPEN_FAILED,
43
 
        LAST_SIGNAL
 
39
    UPDATED,
 
40
    CLOSE,
 
41
    OPEN_DONE,
 
42
    OPEN_FAILED,
 
43
    LAST_SIGNAL
44
44
};
45
45
 
46
46
static guint signals[LAST_SIGNAL] = { 0 };
51
51
static void
52
52
on_open_done (GnomeCmdCon *con)
53
53
{
54
 
        gnome_cmd_con_updated (con);
 
54
    gnome_cmd_con_updated (con);
55
55
}
56
56
 
57
57
 
58
58
static void
59
59
on_open_failed (GnomeCmdCon *con, const gchar *msg, GnomeVFSResult result)
60
60
{
61
 
        //gnome_cmd_con_updated (con);
 
61
    //gnome_cmd_con_updated (con);
62
62
}
63
63
 
64
64
 
70
70
static void
71
71
destroy (GtkObject *object)
72
72
{
73
 
        GnomeCmdCon *con = GNOME_CMD_CON (object);
74
 
 
75
 
        if (con->base_path)
76
 
                gtk_object_unref (GTK_OBJECT (con->base_path));
77
 
        if (con->alias)
78
 
                g_free (con->alias);
79
 
        if (con->open_text)
80
 
                g_free (con->open_text);
81
 
        if (con->open_tooltip)
82
 
                g_free (con->open_tooltip);
83
 
        if (con->open_pixmap)
84
 
                gnome_cmd_pixmap_free (con->open_pixmap);
85
 
        if (con->close_text)
86
 
                g_free (con->close_text);
87
 
        if (con->close_tooltip)
88
 
                g_free (con->close_tooltip);
89
 
        if (con->close_pixmap)
90
 
                gnome_cmd_pixmap_free (con->close_pixmap);
91
 
        
92
 
        if (con->priv->cwd)
93
 
                gnome_cmd_dir_unref (con->priv->cwd);
94
 
        if (con->priv->default_dir)
95
 
                gnome_cmd_dir_unref (con->priv->default_dir);
96
 
        if (con->priv->root_dir)
97
 
                gnome_cmd_dir_unref (con->priv->root_dir);
98
 
        g_free (con->priv);
99
 
 
100
 
        if (GTK_OBJECT_CLASS (parent_class)->destroy)
101
 
                (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
 
73
    GnomeCmdCon *con = GNOME_CMD_CON (object);
 
74
 
 
75
    if (con->base_path)
 
76
        gtk_object_unref (GTK_OBJECT (con->base_path));
 
77
    if (con->alias)
 
78
        g_free (con->alias);
 
79
    if (con->open_text)
 
80
        g_free (con->open_text);
 
81
    if (con->open_tooltip)
 
82
        g_free (con->open_tooltip);
 
83
    if (con->open_pixmap)
 
84
        gnome_cmd_pixmap_free (con->open_pixmap);
 
85
    if (con->close_text)
 
86
        g_free (con->close_text);
 
87
    if (con->close_tooltip)
 
88
        g_free (con->close_tooltip);
 
89
    if (con->close_pixmap)
 
90
        gnome_cmd_pixmap_free (con->close_pixmap);
 
91
 
 
92
    if (con->priv->cwd)
 
93
        gnome_cmd_dir_unref (con->priv->cwd);
 
94
    if (con->priv->default_dir)
 
95
        gnome_cmd_dir_unref (con->priv->default_dir);
 
96
    if (con->priv->root_dir)
 
97
        gnome_cmd_dir_unref (con->priv->root_dir);
 
98
    g_free (con->priv);
 
99
 
 
100
    if (GTK_OBJECT_CLASS (parent_class)->destroy)
 
101
        (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
102
102
}
103
103
 
104
104
 
105
105
static void
106
106
class_init (GnomeCmdConClass *class)
107
107
{
108
 
        GtkObjectClass *object_class;
109
 
 
110
 
        object_class = GTK_OBJECT_CLASS (class);
111
 
        parent_class = gtk_type_class (gtk_object_get_type ());
112
 
 
113
 
        signals[UPDATED] =
114
 
                gtk_signal_new ("updated",
115
 
                        GTK_RUN_LAST,
116
 
                    G_OBJECT_CLASS_TYPE (object_class),
117
 
                    GTK_SIGNAL_OFFSET (GnomeCmdConClass, updated),
118
 
                    gtk_marshal_NONE__NONE,
119
 
                    GTK_TYPE_NONE,
120
 
                        0);
121
 
 
122
 
        signals[CLOSE] =
123
 
                gtk_signal_new ("close",
124
 
                        GTK_RUN_LAST,
125
 
                    G_OBJECT_CLASS_TYPE (object_class),
126
 
                    GTK_SIGNAL_OFFSET (GnomeCmdConClass, close),
127
 
                    gtk_marshal_NONE__NONE,
128
 
                    GTK_TYPE_NONE,
129
 
                        0);
130
 
 
131
 
        signals[OPEN_DONE] =
132
 
                gtk_signal_new ("open_done",
133
 
                        GTK_RUN_LAST,
134
 
                    G_OBJECT_CLASS_TYPE (object_class),
135
 
                    GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_done),
136
 
                    gtk_marshal_NONE__NONE,
137
 
                    GTK_TYPE_NONE,
138
 
                        0);
139
 
 
140
 
        signals[OPEN_FAILED] =
141
 
                gtk_signal_new ("open_failed",
142
 
                        GTK_RUN_LAST,
143
 
                    G_OBJECT_CLASS_TYPE (object_class),
144
 
                    GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_failed),
145
 
                    gtk_marshal_NONE__POINTER_INT,
146
 
                    GTK_TYPE_NONE,
147
 
                        2, GTK_TYPE_POINTER, GTK_TYPE_INT);
148
 
 
149
 
        object_class->destroy = destroy;
150
 
 
151
 
        class->updated = NULL;
152
 
        class->open_done = on_open_done;
153
 
        class->open_failed = on_open_failed;
154
 
        
155
 
        class->open = NULL;
156
 
        class->close = NULL;
157
 
        class->cancel_open = NULL;
158
 
        class->open_is_needed = NULL;
159
 
        class->create_uri = NULL;
160
 
        class->create_path = NULL;
 
108
    GtkObjectClass *object_class;
 
109
 
 
110
    object_class = GTK_OBJECT_CLASS (class);
 
111
    parent_class = gtk_type_class (gtk_object_get_type ());
 
112
 
 
113
    signals[UPDATED] =
 
114
        gtk_signal_new ("updated",
 
115
            GTK_RUN_LAST,
 
116
            G_OBJECT_CLASS_TYPE (object_class),
 
117
            GTK_SIGNAL_OFFSET (GnomeCmdConClass, updated),
 
118
            gtk_marshal_NONE__NONE,
 
119
            GTK_TYPE_NONE,
 
120
            0);
 
121
 
 
122
    signals[CLOSE] =
 
123
        gtk_signal_new ("close",
 
124
            GTK_RUN_LAST,
 
125
            G_OBJECT_CLASS_TYPE (object_class),
 
126
            GTK_SIGNAL_OFFSET (GnomeCmdConClass, close),
 
127
            gtk_marshal_NONE__NONE,
 
128
            GTK_TYPE_NONE,
 
129
            0);
 
130
 
 
131
    signals[OPEN_DONE] =
 
132
        gtk_signal_new ("open_done",
 
133
            GTK_RUN_LAST,
 
134
            G_OBJECT_CLASS_TYPE (object_class),
 
135
            GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_done),
 
136
            gtk_marshal_NONE__NONE,
 
137
            GTK_TYPE_NONE,
 
138
            0);
 
139
 
 
140
    signals[OPEN_FAILED] =
 
141
        gtk_signal_new ("open_failed",
 
142
            GTK_RUN_LAST,
 
143
            G_OBJECT_CLASS_TYPE (object_class),
 
144
            GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_failed),
 
145
            gtk_marshal_NONE__POINTER_INT,
 
146
            GTK_TYPE_NONE,
 
147
            2, GTK_TYPE_POINTER, GTK_TYPE_INT);
 
148
 
 
149
    object_class->destroy = destroy;
 
150
 
 
151
    class->updated = NULL;
 
152
    class->open_done = on_open_done;
 
153
    class->open_failed = on_open_failed;
 
154
 
 
155
    class->open = NULL;
 
156
    class->close = NULL;
 
157
    class->cancel_open = NULL;
 
158
    class->open_is_needed = NULL;
 
159
    class->create_uri = NULL;
 
160
    class->create_path = NULL;
161
161
}
162
162
 
163
163
 
164
164
static void
165
165
init (GnomeCmdCon *con)
166
166
{
167
 
        con->base_path = NULL;
168
 
        con->base_info = NULL;
169
 
        con->alias = NULL;
170
 
        con->open_msg = NULL;
171
 
        con->should_remember_dir = FALSE;
172
 
        con->needs_open_visprog = FALSE;
173
 
        con->needs_list_visprog = FALSE;
174
 
        con->can_show_free_space = FALSE;
175
 
        con->is_local = FALSE;
176
 
        con->is_closeable = FALSE;
177
 
        con->go_text = NULL;
178
 
        con->go_tooltip = NULL;
179
 
        con->go_pixmap = NULL;
180
 
        con->open_text = NULL;
181
 
        con->open_tooltip = NULL;
182
 
        con->open_pixmap = NULL;
183
 
        con->close_text = NULL;
184
 
        con->close_tooltip = NULL;
185
 
        con->close_pixmap = NULL;
186
 
 
187
 
        con->state = CON_STATE_CLOSED;
188
 
        con->open_result = CON_OPEN_NOT_STARTED;
189
 
        con->open_failed_reason = GNOME_VFS_OK;
190
 
        con->open_failed_msg = NULL;
191
 
        
192
 
        con->priv = g_new (GnomeCmdConPrivate, 1);
193
 
        con->priv->cwd = NULL;
194
 
        con->priv->default_dir = NULL;
195
 
        con->priv->dir_history = history_new (20);
196
 
        con->priv->dir_pool = gnome_cmd_dir_pool_new ();
197
 
        con->priv->bookmarks = g_new (GnomeCmdBookmarkGroup, 1);
198
 
        con->priv->bookmarks->bookmarks = NULL;
199
 
        con->priv->bookmarks->con = con;
200
 
        con->priv->bookmarks->data = NULL;
201
 
        con->priv->all_dirs = NULL;
202
 
        con->priv->all_dirs_map = NULL;
 
167
    con->base_path = NULL;
 
168
    con->base_info = NULL;
 
169
    con->alias = NULL;
 
170
    con->open_msg = NULL;
 
171
    con->should_remember_dir = FALSE;
 
172
    con->needs_open_visprog = FALSE;
 
173
    con->needs_list_visprog = FALSE;
 
174
    con->can_show_free_space = FALSE;
 
175
    con->is_local = FALSE;
 
176
    con->is_closeable = FALSE;
 
177
    con->go_text = NULL;
 
178
    con->go_tooltip = NULL;
 
179
    con->go_pixmap = NULL;
 
180
    con->open_text = NULL;
 
181
    con->open_tooltip = NULL;
 
182
    con->open_pixmap = NULL;
 
183
    con->close_text = NULL;
 
184
    con->close_tooltip = NULL;
 
185
    con->close_pixmap = NULL;
 
186
 
 
187
    con->state = CON_STATE_CLOSED;
 
188
    con->open_result = CON_OPEN_NOT_STARTED;
 
189
    con->open_failed_reason = GNOME_VFS_OK;
 
190
    con->open_failed_msg = NULL;
 
191
 
 
192
    con->priv = g_new (GnomeCmdConPrivate, 1);
 
193
    con->priv->cwd = NULL;
 
194
    con->priv->default_dir = NULL;
 
195
    con->priv->dir_history = history_new (20);
 
196
    con->priv->dir_pool = gnome_cmd_dir_pool_new ();
 
197
    con->priv->bookmarks = g_new (GnomeCmdBookmarkGroup, 1);
 
198
    con->priv->bookmarks->bookmarks = NULL;
 
199
    con->priv->bookmarks->con = con;
 
200
    con->priv->bookmarks->data = NULL;
 
201
    con->priv->all_dirs = NULL;
 
202
    con->priv->all_dirs_map = NULL;
203
203
}
204
204
 
205
205
 
211
211
GtkType
212
212
gnome_cmd_con_get_type         (void)
213
213
{
214
 
        static GtkType type = 0;
215
 
 
216
 
        if (type == 0)
217
 
        {
218
 
                GtkTypeInfo info =
219
 
                {
220
 
                        "GnomeCmdCon",
221
 
                        sizeof (GnomeCmdCon),
222
 
                        sizeof (GnomeCmdConClass),
223
 
                        (GtkClassInitFunc) class_init,
224
 
                        (GtkObjectInitFunc) init,
225
 
                        /* reserved_1 */ NULL,
226
 
                        /* reserved_2 */ NULL,
227
 
                        (GtkClassInitFunc) NULL
228
 
                };
229
 
 
230
 
                type = gtk_type_unique (gtk_object_get_type (), &info);
231
 
        }
232
 
        return type;
 
214
    static GtkType type = 0;
 
215
 
 
216
    if (type == 0)
 
217
    {
 
218
        GtkTypeInfo info =
 
219
        {
 
220
            "GnomeCmdCon",
 
221
            sizeof (GnomeCmdCon),
 
222
            sizeof (GnomeCmdConClass),
 
223
            (GtkClassInitFunc) class_init,
 
224
            (GtkObjectInitFunc) init,
 
225
            /* reserved_1 */ NULL,
 
226
            /* reserved_2 */ NULL,
 
227
            (GtkClassInitFunc) NULL
 
228
        };
 
229
 
 
230
        type = gtk_type_unique (gtk_object_get_type (), &info);
 
231
    }
 
232
    return type;
233
233
}
234
234
 
235
235
 
236
236
static gboolean
237
237
check_con_open_progress (GnomeCmdCon *con)
238
238
{
239
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
240
 
        g_return_val_if_fail (con->open_result != CON_OPEN_NOT_STARTED, FALSE);
241
 
        
242
 
        if (con->open_result == CON_OPEN_OK) {
243
 
                GnomeCmdDir *dir;
244
 
                
245
 
                DEBUG('m', "CON_OPEN_OK detected\n");
246
 
 
247
 
                dir = gnome_cmd_dir_new_with_con (
248
 
                        con->base_info, con->base_path, con);
249
 
 
250
 
                gnome_cmd_con_set_default_dir (con, dir);
251
 
                gnome_cmd_con_set_cwd (con, dir);
252
 
                
253
 
                DEBUG ('m', "Emitting open_done signal\n");
254
 
                gtk_signal_emit (GTK_OBJECT (con), signals[OPEN_DONE]);
255
 
        }
256
 
        else if (con->open_result == CON_OPEN_FAILED) {
257
 
                DEBUG ('m', "CON_OPEN_FAILED detected\n");
258
 
                DEBUG ('m', "Emitting open_failed signal\n");
259
 
                gtk_signal_emit (GTK_OBJECT (con), signals[OPEN_FAILED],
260
 
                                                 con->open_failed_msg, con->open_failed_reason);
261
 
        }
262
 
        
263
 
        return con->open_result == CON_OPEN_IN_PROGRESS;
 
239
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
240
    g_return_val_if_fail (con->open_result != CON_OPEN_NOT_STARTED, FALSE);
 
241
 
 
242
    if (con->open_result == CON_OPEN_OK) {
 
243
        GnomeCmdDir *dir;
 
244
 
 
245
        DEBUG('m', "CON_OPEN_OK detected\n");
 
246
 
 
247
        dir = gnome_cmd_dir_new_with_con (
 
248
            con->base_info, con->base_path, con);
 
249
 
 
250
        gnome_cmd_con_set_default_dir (con, dir);
 
251
        gnome_cmd_con_set_cwd (con, dir);
 
252
 
 
253
        DEBUG ('m', "Emitting open_done signal\n");
 
254
        gtk_signal_emit (GTK_OBJECT (con), signals[OPEN_DONE]);
 
255
    }
 
256
    else if (con->open_result == CON_OPEN_FAILED) {
 
257
        DEBUG ('m', "CON_OPEN_FAILED detected\n");
 
258
        DEBUG ('m', "Emitting open_failed signal\n");
 
259
        gtk_signal_emit (GTK_OBJECT (con), signals[OPEN_FAILED],
 
260
                         con->open_failed_msg, con->open_failed_reason);
 
261
    }
 
262
 
 
263
    return con->open_result == CON_OPEN_IN_PROGRESS;
264
264
}
265
265
 
266
266
 
267
267
void
268
268
gnome_cmd_con_open (GnomeCmdCon *con)
269
269
{
270
 
        GnomeCmdConClass *klass;
271
 
 
272
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
273
 
        DEBUG ('m', "Opening connection\n");
274
 
 
275
 
        klass = GNOME_CMD_CON_GET_CLASS (con);
276
 
        if (con->state != CON_STATE_OPEN)
277
 
                klass->open (con);
278
 
 
279
 
        gtk_timeout_add (gnome_cmd_data_get_gui_update_rate (),
280
 
                                         (GtkFunction)check_con_open_progress,
281
 
                                         con);
 
270
    GnomeCmdConClass *klass;
 
271
 
 
272
    g_return_if_fail (GNOME_CMD_IS_CON (con));
 
273
    DEBUG ('m', "Opening connection\n");
 
274
 
 
275
    klass = GNOME_CMD_CON_GET_CLASS (con);
 
276
    if (con->state != CON_STATE_OPEN)
 
277
        klass->open (con);
 
278
 
 
279
    gtk_timeout_add (gnome_cmd_data_get_gui_update_rate (),
 
280
                     (GtkFunction)check_con_open_progress,
 
281
                     con);
282
282
}
283
283
 
284
284
 
285
285
gboolean
286
286
gnome_cmd_con_is_open (GnomeCmdCon *con)
287
287
{
288
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
289
 
        
290
 
        return con->state == CON_STATE_OPEN;
 
288
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
289
 
 
290
    return con->state == CON_STATE_OPEN;
291
291
}
292
292
 
293
293
 
294
294
void
295
295
gnome_cmd_con_cancel_open (GnomeCmdCon *con)
296
296
{
297
 
        GnomeCmdConClass *klass;
298
 
 
299
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
300
 
 
301
 
        if (con->state == CON_STATE_OPENING) {
302
 
                klass = GNOME_CMD_CON_GET_CLASS (con);
303
 
                klass->cancel_open (con);
304
 
        }
 
297
    GnomeCmdConClass *klass;
 
298
 
 
299
    g_return_if_fail (GNOME_CMD_IS_CON (con));
 
300
 
 
301
    if (con->state == CON_STATE_OPENING) {
 
302
        klass = GNOME_CMD_CON_GET_CLASS (con);
 
303
        klass->cancel_open (con);
 
304
    }
305
305
}
306
306
 
307
307
 
308
308
gboolean
309
309
gnome_cmd_con_close (GnomeCmdCon *con)
310
310
{
311
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
312
 
 
313
 
        if (gnome_cmd_con_is_closeable (con)) {
314
 
                gtk_signal_emit (GTK_OBJECT (con), signals[CLOSE]);
315
 
                gtk_signal_emit (GTK_OBJECT (con), signals[UPDATED]);
316
 
        }
317
 
        
318
 
        return TRUE;    
 
311
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
312
 
 
313
    if (gnome_cmd_con_is_closeable (con)) {
 
314
        gtk_signal_emit (GTK_OBJECT (con), signals[CLOSE]);
 
315
        gtk_signal_emit (GTK_OBJECT (con), signals[UPDATED]);
 
316
    }
 
317
 
 
318
    return TRUE;
319
319
}
320
320
 
321
321
 
322
322
gboolean
323
323
gnome_cmd_con_open_is_needed (GnomeCmdCon *con)
324
324
{
325
 
        GnomeCmdConClass *klass;
326
 
 
327
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
328
 
 
329
 
        klass = GNOME_CMD_CON_GET_CLASS (con);
330
 
        return klass->open_is_needed (con);
 
325
    GnomeCmdConClass *klass;
 
326
 
 
327
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
328
 
 
329
    klass = GNOME_CMD_CON_GET_CLASS (con);
 
330
    return klass->open_is_needed (con);
331
331
}
332
332
 
333
333
 
334
334
GnomeVFSURI *
335
335
gnome_cmd_con_create_uri (GnomeCmdCon *con, GnomeCmdPath *path)
336
336
{
337
 
        GnomeCmdConClass *klass;
338
 
 
339
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
340
 
 
341
 
        klass = GNOME_CMD_CON_GET_CLASS (con);
342
 
        return klass->create_uri (con, path);
 
337
    GnomeCmdConClass *klass;
 
338
 
 
339
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
340
 
 
341
    klass = GNOME_CMD_CON_GET_CLASS (con);
 
342
    return klass->create_uri (con, path);
343
343
}
344
344
 
345
345
 
346
346
GnomeCmdPath *
347
347
gnome_cmd_con_create_path (GnomeCmdCon *con, const gchar *path_str)
348
348
{
349
 
        GnomeCmdConClass *klass;
350
 
 
351
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
352
 
 
353
 
        klass = GNOME_CMD_CON_GET_CLASS (con);
354
 
        return klass->create_path (con, path_str);
 
349
    GnomeCmdConClass *klass;
 
350
 
 
351
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
352
 
 
353
    klass = GNOME_CMD_CON_GET_CLASS (con);
 
354
    return klass->create_path (con, path_str);
355
355
}
356
356
 
357
357
 
358
358
gboolean
359
359
gnome_cmd_con_is_local (GnomeCmdCon *con)
360
360
{
361
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
361
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
362
362
 
363
 
        return con->is_local;
 
363
    return con->is_local;
364
364
}
365
365
 
366
366
 
367
367
gboolean
368
368
gnome_cmd_con_is_closeable (GnomeCmdCon *con)
369
369
{
370
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
370
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
371
371
 
372
 
        return con->is_closeable;
 
372
    return con->is_closeable;
373
373
}
374
374
 
375
375
 
376
376
const gchar *
377
377
gnome_cmd_con_get_open_msg (GnomeCmdCon *con)
378
378
{
379
 
        return con->open_msg;
 
379
    return con->open_msg;
380
380
}
381
381
 
382
382
 
383
383
const gchar *
384
384
gnome_cmd_con_get_alias (GnomeCmdCon *con)
385
385
{
386
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
386
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
387
387
 
388
 
        return con->alias;
 
388
    return con->alias;
389
389
}
390
390
 
391
391
 
392
392
void
393
393
gnome_cmd_con_set_cwd (GnomeCmdCon *con, GnomeCmdDir *dir)
394
394
{
395
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
396
 
 
397
 
        if (GNOME_CMD_IS_DIR (dir) &&
398
 
                gnome_cmd_dir_get_connection (dir) != con)
399
 
                return;
400
 
 
401
 
        if (dir == con->priv->cwd)
402
 
                return;
403
 
 
404
 
        if (dir)
405
 
                gnome_cmd_dir_ref (dir);
406
 
        if (con->priv->cwd)
407
 
                gnome_cmd_dir_unref (con->priv->cwd);
408
 
        con->priv->cwd = dir;
 
395
    g_return_if_fail (GNOME_CMD_IS_CON (con));
 
396
 
 
397
    if (GNOME_CMD_IS_DIR (dir) &&
 
398
        gnome_cmd_dir_get_connection (dir) != con)
 
399
        return;
 
400
 
 
401
    if (dir == con->priv->cwd)
 
402
        return;
 
403
 
 
404
    if (dir)
 
405
        gnome_cmd_dir_ref (dir);
 
406
    if (con->priv->cwd)
 
407
        gnome_cmd_dir_unref (con->priv->cwd);
 
408
    con->priv->cwd = dir;
409
409
}
410
410
 
411
411
 
412
412
GnomeCmdDir *
413
413
gnome_cmd_con_get_cwd (GnomeCmdCon *con)
414
414
{
415
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
416
 
 
417
 
        /*
418
 
        if (!con->priv->cwd) {
419
 
                GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
420
 
                if (dir)
421
 
                        gnome_cmd_con_set_cwd (con, dir);
422
 
        }
423
 
        */
424
 
 
425
 
        return con->priv->cwd;
 
415
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
416
 
 
417
    /*
 
418
    if (!con->priv->cwd) {
 
419
        GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
 
420
        if (dir)
 
421
            gnome_cmd_con_set_cwd (con, dir);
 
422
    }
 
423
    */
 
424
 
 
425
    return con->priv->cwd;
426
426
}
427
427
 
428
428
 
429
429
void
430
430
gnome_cmd_con_set_default_dir (GnomeCmdCon *con, GnomeCmdDir *dir)
431
431
{
432
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
433
 
 
434
 
        if (dir == con->priv->default_dir)
435
 
                return;
436
 
        
437
 
        if (dir)
438
 
                gnome_cmd_dir_ref (dir);
439
 
        if (con->priv->default_dir)
440
 
                gnome_cmd_dir_unref (con->priv->default_dir);
441
 
        con->priv->default_dir = dir;
 
432
    g_return_if_fail (GNOME_CMD_IS_CON (con));
 
433
 
 
434
    if (dir == con->priv->default_dir)
 
435
        return;
 
436
 
 
437
    if (dir)
 
438
        gnome_cmd_dir_ref (dir);
 
439
    if (con->priv->default_dir)
 
440
        gnome_cmd_dir_unref (con->priv->default_dir);
 
441
    con->priv->default_dir = dir;
442
442
}
443
443
 
444
444
 
445
445
GnomeCmdDir *
446
446
gnome_cmd_con_get_default_dir (GnomeCmdCon *con)
447
447
{
448
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
449
 
 
450
 
        /*
451
 
        if (!con->priv->default_dir) {
452
 
                GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
453
 
                if (dir)
454
 
                        gnome_cmd_con_set_default_dir (con, dir);
455
 
        }
456
 
        */
457
 
 
458
 
        return con->priv->default_dir;
 
448
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
449
 
 
450
    /*
 
451
    if (!con->priv->default_dir) {
 
452
        GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
 
453
        if (dir)
 
454
            gnome_cmd_con_set_default_dir (con, dir);
 
455
    }
 
456
    */
 
457
 
 
458
    return con->priv->default_dir;
459
459
}
460
460
 
461
461
 
462
462
void
463
463
gnome_cmd_con_set_root_dir (GnomeCmdCon *con, GnomeCmdDir *dir)
464
464
{
465
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
 
465
    g_return_if_fail (GNOME_CMD_IS_CON (con));
466
466
 
467
 
        if (dir)
468
 
                gnome_cmd_dir_ref (dir);
469
 
        if (con->priv->root_dir)
470
 
                gnome_cmd_dir_unref (con->priv->root_dir);
471
 
        con->priv->root_dir = dir;
 
467
    if (dir)
 
468
        gnome_cmd_dir_ref (dir);
 
469
    if (con->priv->root_dir)
 
470
        gnome_cmd_dir_unref (con->priv->root_dir);
 
471
    con->priv->root_dir = dir;
472
472
}
473
473
 
474
474
 
475
475
GnomeCmdDir *
476
476
gnome_cmd_con_get_root_dir (GnomeCmdCon *con)
477
477
{
478
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
478
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
479
479
 
480
 
        return con->priv->root_dir;
 
480
    return con->priv->root_dir;
481
481
}
482
482
 
483
483
 
485
485
gboolean
486
486
gnome_cmd_con_should_remember_dir (GnomeCmdCon *con)
487
487
{
488
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
488
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
489
489
 
490
 
        return con->should_remember_dir;
 
490
    return con->should_remember_dir;
491
491
}
492
492
 
493
493
 
494
494
gboolean
495
495
gnome_cmd_con_needs_open_visprog (GnomeCmdCon *con)
496
496
{
497
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
498
 
        
499
 
        return con->needs_open_visprog;
 
497
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
498
 
 
499
    return con->needs_open_visprog;
500
500
}
501
501
 
502
502
 
503
503
gboolean
504
504
gnome_cmd_con_needs_list_visprog (GnomeCmdCon *con)
505
505
{
506
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
507
 
        
508
 
        return con->needs_list_visprog;
 
506
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
507
 
 
508
    return con->needs_list_visprog;
509
509
}
510
510
 
511
511
 
512
512
gboolean
513
513
gnome_cmd_con_can_show_free_space (GnomeCmdCon *con)
514
514
{
515
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
 
515
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
516
516
 
517
 
        return con->can_show_free_space;
 
517
    return con->can_show_free_space;
518
518
}
519
519
 
520
520
 
521
521
History *
522
522
gnome_cmd_con_get_dir_history (GnomeCmdCon *con)
523
523
{
524
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
524
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
525
525
 
526
 
        return con->priv->dir_history;
 
526
    return con->priv->dir_history;
527
527
}
528
528
 
529
 
        
 
529
 
530
530
const gchar *
531
531
gnome_cmd_con_get_go_text (GnomeCmdCon *con)
532
532
{
533
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
533
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
534
534
 
535
 
        return con->go_text;
 
535
    return con->go_text;
536
536
}
537
537
 
538
538
 
539
539
const gchar *
540
540
gnome_cmd_con_get_open_text (GnomeCmdCon *con)
541
541
{
542
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
542
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
543
543
 
544
 
        return con->open_text;
 
544
    return con->open_text;
545
545
}
546
546
 
547
547
 
548
548
const gchar *
549
549
gnome_cmd_con_get_close_text (GnomeCmdCon *con)
550
550
{
551
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
551
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
552
552
 
553
 
        return con->close_text;
 
553
    return con->close_text;
554
554
}
555
555
 
556
556
 
557
557
const gchar *
558
558
gnome_cmd_con_get_go_tooltip (GnomeCmdCon *con)
559
559
{
560
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
560
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
561
561
 
562
 
        return con->go_tooltip;
 
562
    return con->go_tooltip;
563
563
}
564
564
 
565
565
 
566
566
const gchar *
567
567
gnome_cmd_con_get_open_tooltip (GnomeCmdCon *con)
568
568
{
569
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
569
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
570
570
 
571
 
        return con->open_tooltip;
 
571
    return con->open_tooltip;
572
572
}
573
573
 
574
574
 
575
575
const gchar *
576
576
gnome_cmd_con_get_close_tooltip (GnomeCmdCon *con)
577
577
{
578
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
578
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
579
579
 
580
 
        return con->close_tooltip;
 
580
    return con->close_tooltip;
581
581
}
582
582
 
583
583
 
584
584
GnomeCmdPixmap *
585
585
gnome_cmd_con_get_go_pixmap (GnomeCmdCon *con)
586
586
{
587
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
587
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
588
588
 
589
 
        return con->go_pixmap;
 
589
    return con->go_pixmap;
590
590
}
591
591
 
592
592
 
593
593
GnomeCmdPixmap *
594
594
gnome_cmd_con_get_open_pixmap (GnomeCmdCon *con)
595
595
{
596
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
596
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
597
597
 
598
 
        return con->open_pixmap;
 
598
    return con->open_pixmap;
599
599
}
600
600
 
601
601
 
602
602
GnomeCmdPixmap *
603
603
gnome_cmd_con_get_close_pixmap (GnomeCmdCon *con)
604
604
{
605
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
605
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
606
606
 
607
 
        return con->close_pixmap;
 
607
    return con->close_pixmap;
608
608
}
609
609
 
610
610
 
612
612
GnomeCmdBookmarkGroup *
613
613
gnome_cmd_con_get_bookmarks (GnomeCmdCon *con)
614
614
{
615
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
615
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
616
616
 
617
 
        return con->priv->bookmarks;
 
617
    return con->priv->bookmarks;
618
618
}
619
619
 
620
620
 
621
621
void
622
622
gnome_cmd_con_set_bookmarks (GnomeCmdCon *con, GnomeCmdBookmarkGroup *bookmarks)
623
623
{
624
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
 
624
    g_return_if_fail (GNOME_CMD_IS_CON (con));
625
625
 
626
 
        con->priv->bookmarks = bookmarks;
 
626
    con->priv->bookmarks = bookmarks;
627
627
}
628
628
 
629
629
 
630
630
GnomeCmdDirPool *
631
631
gnome_cmd_con_get_dir_pool (GnomeCmdCon *con)
632
632
{
633
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
634
 
        
635
 
        return con->priv->dir_pool;
 
633
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
634
 
 
635
    return con->priv->dir_pool;
636
636
}
637
637
 
638
638
 
639
639
void
640
640
gnome_cmd_con_updated (GnomeCmdCon *con)
641
641
{
642
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
 
642
    g_return_if_fail (GNOME_CMD_IS_CON (con));
643
643
 
644
 
        gtk_signal_emit (GTK_OBJECT (con), signals[UPDATED]);
 
644
    gtk_signal_emit (GTK_OBJECT (con), signals[UPDATED]);
645
645
}
646
646
 
647
647
 
651
651
 */
652
652
GnomeVFSResult
653
653
gnome_cmd_con_get_path_target_type (GnomeCmdCon *con,
654
 
                                                                        const gchar *path_str,
655
 
                                                                        GnomeVFSFileType *type)
 
654
                                    const gchar *path_str,
 
655
                                    GnomeVFSFileType *type)
656
656
{
657
 
        GnomeVFSFileInfo *info;
658
 
        GnomeVFSURI *uri;
659
 
        GnomeCmdPath *path;
660
 
        GnomeVFSResult res;
661
 
        GnomeVFSFileInfoOptions infoOpts = 0;
662
 
        
663
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), GNOME_VFS_ERROR_BAD_PARAMETERS);
664
 
        g_return_val_if_fail (path_str != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
665
 
 
666
 
        path = gnome_cmd_con_create_path (con, path_str);
667
 
        uri = gnome_cmd_con_create_uri (con, path);
668
 
        info = gnome_vfs_file_info_new ();
669
 
        res = gnome_vfs_get_file_info_uri (
670
 
                uri, info, infoOpts);
671
 
 
672
 
        if (res == GNOME_VFS_OK)
673
 
                *type = info->type;
674
 
        
675
 
        gnome_vfs_uri_unref (uri);
676
 
        gtk_object_destroy (GTK_OBJECT (path));
677
 
        gnome_vfs_file_info_unref (info);
678
 
 
679
 
        return res;
 
657
    GnomeVFSFileInfo *info;
 
658
    GnomeVFSURI *uri;
 
659
    GnomeCmdPath *path;
 
660
    GnomeVFSResult res;
 
661
    GnomeVFSFileInfoOptions infoOpts = 0;
 
662
 
 
663
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), GNOME_VFS_ERROR_BAD_PARAMETERS);
 
664
    g_return_val_if_fail (path_str != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
 
665
 
 
666
    path = gnome_cmd_con_create_path (con, path_str);
 
667
    uri = gnome_cmd_con_create_uri (con, path);
 
668
    info = gnome_vfs_file_info_new ();
 
669
    res = gnome_vfs_get_file_info_uri (
 
670
        uri, info, infoOpts);
 
671
 
 
672
    if (res == GNOME_VFS_OK)
 
673
        *type = info->type;
 
674
 
 
675
    gnome_vfs_uri_unref (uri);
 
676
    gtk_object_destroy (GTK_OBJECT (path));
 
677
    gnome_vfs_file_info_unref (info);
 
678
 
 
679
    return res;
680
680
}
681
681
 
682
682
 
683
683
GnomeVFSResult
684
684
gnome_cmd_con_mkdir (GnomeCmdCon *con, const gchar *path_str)
685
685
{
686
 
        GnomeCmdPath *path;
687
 
        GnomeVFSURI *uri;
688
 
        GnomeVFSResult result;
689
 
        
690
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), GNOME_VFS_ERROR_BAD_PARAMETERS);
691
 
        g_return_val_if_fail (path_str != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
692
 
 
693
 
        path = gnome_cmd_con_create_path (con, path_str);
694
 
        uri = gnome_cmd_con_create_uri (con, path);
695
 
        
696
 
        result = gnome_vfs_make_directory_for_uri (
697
 
                uri,
698
 
                GNOME_VFS_PERM_USER_READ|GNOME_VFS_PERM_USER_WRITE|GNOME_VFS_PERM_USER_EXEC|
699
 
                GNOME_VFS_PERM_GROUP_READ|GNOME_VFS_PERM_GROUP_EXEC|
700
 
                GNOME_VFS_PERM_OTHER_READ|GNOME_VFS_PERM_OTHER_EXEC);
701
 
 
702
 
        gnome_vfs_uri_unref (uri);
703
 
        gtk_object_destroy (GTK_OBJECT (path));
704
 
 
705
 
        return result;
 
686
    GnomeCmdPath *path;
 
687
    GnomeVFSURI *uri;
 
688
    GnomeVFSResult result;
 
689
 
 
690
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), GNOME_VFS_ERROR_BAD_PARAMETERS);
 
691
    g_return_val_if_fail (path_str != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
 
692
 
 
693
    path = gnome_cmd_con_create_path (con, path_str);
 
694
    uri = gnome_cmd_con_create_uri (con, path);
 
695
 
 
696
    result = gnome_vfs_make_directory_for_uri (
 
697
        uri,
 
698
        GNOME_VFS_PERM_USER_READ|GNOME_VFS_PERM_USER_WRITE|GNOME_VFS_PERM_USER_EXEC|
 
699
        GNOME_VFS_PERM_GROUP_READ|GNOME_VFS_PERM_GROUP_EXEC|
 
700
        GNOME_VFS_PERM_OTHER_READ|GNOME_VFS_PERM_OTHER_EXEC);
 
701
 
 
702
    gnome_vfs_uri_unref (uri);
 
703
    gtk_object_destroy (GTK_OBJECT (path));
 
704
 
 
705
    return result;
706
706
}
707
707
 
708
708
 
709
709
void
710
710
gnome_cmd_con_add_to_cache (GnomeCmdCon *con, GnomeCmdDir *dir)
711
711
{
712
 
        gchar *uri_str;
713
 
 
714
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
715
 
        g_return_if_fail (GNOME_CMD_IS_DIR (dir));
716
 
        
717
 
        uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
718
 
        
719
 
        if (!con->priv->all_dirs_map)
720
 
                con->priv->all_dirs_map = g_hash_table_new_full (
721
 
                        g_str_hash, g_str_equal, g_free, NULL);
722
 
 
723
 
        DEBUG ('p', "ADDING 0x%x %s to the cache\n", (guint)dir, uri_str);
724
 
        g_hash_table_insert (con->priv->all_dirs_map, uri_str, dir);
 
712
    gchar *uri_str;
 
713
 
 
714
    g_return_if_fail (GNOME_CMD_IS_CON (con));
 
715
    g_return_if_fail (GNOME_CMD_IS_DIR (dir));
 
716
 
 
717
    uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
 
718
 
 
719
    if (!con->priv->all_dirs_map)
 
720
        con->priv->all_dirs_map = g_hash_table_new_full (
 
721
            g_str_hash, g_str_equal, g_free, NULL);
 
722
 
 
723
    DEBUG ('p', "ADDING 0x%x %s to the cache\n", (guint)dir, uri_str);
 
724
    g_hash_table_insert (con->priv->all_dirs_map, uri_str, dir);
725
725
}
726
726
 
727
727
 
728
728
void
729
729
gnome_cmd_con_remove_from_cache (GnomeCmdCon *con, GnomeCmdDir *dir)
730
730
{
731
 
        gchar *uri_str;
732
 
        
733
 
        g_return_if_fail (GNOME_CMD_IS_CON (con));
734
 
        g_return_if_fail (GNOME_CMD_IS_DIR (dir));
735
 
        
736
 
        uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
737
 
        
738
 
        DEBUG ('p', "REMOVING 0x%x %s from the cache\n", (guint)dir, uri_str);
739
 
        g_hash_table_remove (con->priv->all_dirs_map, uri_str);
740
 
        g_free (uri_str);
 
731
    gchar *uri_str;
 
732
 
 
733
    g_return_if_fail (GNOME_CMD_IS_CON (con));
 
734
    g_return_if_fail (GNOME_CMD_IS_DIR (dir));
 
735
 
 
736
    uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
 
737
 
 
738
    DEBUG ('p', "REMOVING 0x%x %s from the cache\n", (guint)dir, uri_str);
 
739
    g_hash_table_remove (con->priv->all_dirs_map, uri_str);
 
740
    g_free (uri_str);
741
741
}
742
742
 
743
743
 
744
744
GnomeCmdDir *
745
745
gnome_cmd_con_cache_lookup (GnomeCmdCon *con, const gchar *uri_str)
746
746
{
747
 
        GnomeCmdDir *dir = NULL;
748
 
        
749
 
        g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
750
 
        g_return_val_if_fail (uri_str != NULL, NULL);
751
 
        
752
 
        if (con->priv->all_dirs_map)
753
 
                dir = g_hash_table_lookup (con->priv->all_dirs_map, uri_str);
754
 
        
755
 
        if (dir) {
756
 
                DEBUG ('p', "FOUND 0x%x %s in the hash-table, reusing it!\n", (guint)dir, uri_str);
757
 
                return dir;
758
 
        }
759
 
        
760
 
        DEBUG ('p', "FAILED to find %s in the hash-table\n", uri_str);
761
 
        return NULL;
 
747
    GnomeCmdDir *dir = NULL;
 
748
 
 
749
    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
 
750
    g_return_val_if_fail (uri_str != NULL, NULL);
 
751
 
 
752
    if (con->priv->all_dirs_map)
 
753
        dir = g_hash_table_lookup (con->priv->all_dirs_map, uri_str);
 
754
 
 
755
    if (dir) {
 
756
        DEBUG ('p', "FOUND 0x%x %s in the hash-table, reusing it!\n", (guint)dir, uri_str);
 
757
        return dir;
 
758
    }
 
759
 
 
760
    DEBUG ('p', "FAILED to find %s in the hash-table\n", uri_str);
 
761
    return NULL;
762
762
}
763
763