71
71
destroy (GtkObject *object)
73
GnomeCmdCon *con = GNOME_CMD_CON (object);
76
gtk_object_unref (GTK_OBJECT (con->base_path));
80
g_free (con->open_text);
81
if (con->open_tooltip)
82
g_free (con->open_tooltip);
84
gnome_cmd_pixmap_free (con->open_pixmap);
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);
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);
100
if (GTK_OBJECT_CLASS (parent_class)->destroy)
101
(*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
73
GnomeCmdCon *con = GNOME_CMD_CON (object);
76
gtk_object_unref (GTK_OBJECT (con->base_path));
80
g_free (con->open_text);
81
if (con->open_tooltip)
82
g_free (con->open_tooltip);
84
gnome_cmd_pixmap_free (con->open_pixmap);
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);
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);
100
if (GTK_OBJECT_CLASS (parent_class)->destroy)
101
(*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
106
106
class_init (GnomeCmdConClass *class)
108
GtkObjectClass *object_class;
110
object_class = GTK_OBJECT_CLASS (class);
111
parent_class = gtk_type_class (gtk_object_get_type ());
114
gtk_signal_new ("updated",
116
G_OBJECT_CLASS_TYPE (object_class),
117
GTK_SIGNAL_OFFSET (GnomeCmdConClass, updated),
118
gtk_marshal_NONE__NONE,
123
gtk_signal_new ("close",
125
G_OBJECT_CLASS_TYPE (object_class),
126
GTK_SIGNAL_OFFSET (GnomeCmdConClass, close),
127
gtk_marshal_NONE__NONE,
132
gtk_signal_new ("open_done",
134
G_OBJECT_CLASS_TYPE (object_class),
135
GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_done),
136
gtk_marshal_NONE__NONE,
140
signals[OPEN_FAILED] =
141
gtk_signal_new ("open_failed",
143
G_OBJECT_CLASS_TYPE (object_class),
144
GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_failed),
145
gtk_marshal_NONE__POINTER_INT,
147
2, GTK_TYPE_POINTER, GTK_TYPE_INT);
149
object_class->destroy = destroy;
151
class->updated = NULL;
152
class->open_done = on_open_done;
153
class->open_failed = on_open_failed;
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;
110
object_class = GTK_OBJECT_CLASS (class);
111
parent_class = gtk_type_class (gtk_object_get_type ());
114
gtk_signal_new ("updated",
116
G_OBJECT_CLASS_TYPE (object_class),
117
GTK_SIGNAL_OFFSET (GnomeCmdConClass, updated),
118
gtk_marshal_NONE__NONE,
123
gtk_signal_new ("close",
125
G_OBJECT_CLASS_TYPE (object_class),
126
GTK_SIGNAL_OFFSET (GnomeCmdConClass, close),
127
gtk_marshal_NONE__NONE,
132
gtk_signal_new ("open_done",
134
G_OBJECT_CLASS_TYPE (object_class),
135
GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_done),
136
gtk_marshal_NONE__NONE,
140
signals[OPEN_FAILED] =
141
gtk_signal_new ("open_failed",
143
G_OBJECT_CLASS_TYPE (object_class),
144
GTK_SIGNAL_OFFSET (GnomeCmdConClass, open_failed),
145
gtk_marshal_NONE__POINTER_INT,
147
2, GTK_TYPE_POINTER, GTK_TYPE_INT);
149
object_class->destroy = destroy;
151
class->updated = NULL;
152
class->open_done = on_open_done;
153
class->open_failed = on_open_failed;
157
class->cancel_open = NULL;
158
class->open_is_needed = NULL;
159
class->create_uri = NULL;
160
class->create_path = NULL;
165
165
init (GnomeCmdCon *con)
167
con->base_path = NULL;
168
con->base_info = 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;
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;
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;
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;
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;
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;
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;
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;
212
212
gnome_cmd_con_get_type (void)
214
static GtkType type = 0;
221
sizeof (GnomeCmdCon),
222
sizeof (GnomeCmdConClass),
223
(GtkClassInitFunc) class_init,
224
(GtkObjectInitFunc) init,
225
/* reserved_1 */ NULL,
226
/* reserved_2 */ NULL,
227
(GtkClassInitFunc) NULL
230
type = gtk_type_unique (gtk_object_get_type (), &info);
214
static GtkType type = 0;
221
sizeof (GnomeCmdCon),
222
sizeof (GnomeCmdConClass),
223
(GtkClassInitFunc) class_init,
224
(GtkObjectInitFunc) init,
225
/* reserved_1 */ NULL,
226
/* reserved_2 */ NULL,
227
(GtkClassInitFunc) NULL
230
type = gtk_type_unique (gtk_object_get_type (), &info);
237
237
check_con_open_progress (GnomeCmdCon *con)
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);
242
if (con->open_result == CON_OPEN_OK) {
245
DEBUG('m', "CON_OPEN_OK detected\n");
247
dir = gnome_cmd_dir_new_with_con (
248
con->base_info, con->base_path, con);
250
gnome_cmd_con_set_default_dir (con, dir);
251
gnome_cmd_con_set_cwd (con, dir);
253
DEBUG ('m', "Emitting open_done signal\n");
254
gtk_signal_emit (GTK_OBJECT (con), signals[OPEN_DONE]);
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);
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);
242
if (con->open_result == CON_OPEN_OK) {
245
DEBUG('m', "CON_OPEN_OK detected\n");
247
dir = gnome_cmd_dir_new_with_con (
248
con->base_info, con->base_path, con);
250
gnome_cmd_con_set_default_dir (con, dir);
251
gnome_cmd_con_set_cwd (con, dir);
253
DEBUG ('m', "Emitting open_done signal\n");
254
gtk_signal_emit (GTK_OBJECT (con), signals[OPEN_DONE]);
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);
263
return con->open_result == CON_OPEN_IN_PROGRESS;
268
268
gnome_cmd_con_open (GnomeCmdCon *con)
270
GnomeCmdConClass *klass;
272
g_return_if_fail (GNOME_CMD_IS_CON (con));
273
DEBUG ('m', "Opening connection\n");
275
klass = GNOME_CMD_CON_GET_CLASS (con);
276
if (con->state != CON_STATE_OPEN)
279
gtk_timeout_add (gnome_cmd_data_get_gui_update_rate (),
280
(GtkFunction)check_con_open_progress,
270
GnomeCmdConClass *klass;
272
g_return_if_fail (GNOME_CMD_IS_CON (con));
273
DEBUG ('m', "Opening connection\n");
275
klass = GNOME_CMD_CON_GET_CLASS (con);
276
if (con->state != CON_STATE_OPEN)
279
gtk_timeout_add (gnome_cmd_data_get_gui_update_rate (),
280
(GtkFunction)check_con_open_progress,
286
286
gnome_cmd_con_is_open (GnomeCmdCon *con)
288
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
290
return con->state == CON_STATE_OPEN;
288
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
290
return con->state == CON_STATE_OPEN;
295
295
gnome_cmd_con_cancel_open (GnomeCmdCon *con)
297
GnomeCmdConClass *klass;
299
g_return_if_fail (GNOME_CMD_IS_CON (con));
301
if (con->state == CON_STATE_OPENING) {
302
klass = GNOME_CMD_CON_GET_CLASS (con);
303
klass->cancel_open (con);
297
GnomeCmdConClass *klass;
299
g_return_if_fail (GNOME_CMD_IS_CON (con));
301
if (con->state == CON_STATE_OPENING) {
302
klass = GNOME_CMD_CON_GET_CLASS (con);
303
klass->cancel_open (con);
309
309
gnome_cmd_con_close (GnomeCmdCon *con)
311
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
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]);
311
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
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]);
323
323
gnome_cmd_con_open_is_needed (GnomeCmdCon *con)
325
GnomeCmdConClass *klass;
327
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
329
klass = GNOME_CMD_CON_GET_CLASS (con);
330
return klass->open_is_needed (con);
325
GnomeCmdConClass *klass;
327
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
329
klass = GNOME_CMD_CON_GET_CLASS (con);
330
return klass->open_is_needed (con);
335
335
gnome_cmd_con_create_uri (GnomeCmdCon *con, GnomeCmdPath *path)
337
GnomeCmdConClass *klass;
339
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
341
klass = GNOME_CMD_CON_GET_CLASS (con);
342
return klass->create_uri (con, path);
337
GnomeCmdConClass *klass;
339
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
341
klass = GNOME_CMD_CON_GET_CLASS (con);
342
return klass->create_uri (con, path);
347
347
gnome_cmd_con_create_path (GnomeCmdCon *con, const gchar *path_str)
349
GnomeCmdConClass *klass;
351
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
353
klass = GNOME_CMD_CON_GET_CLASS (con);
354
return klass->create_path (con, path_str);
349
GnomeCmdConClass *klass;
351
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
353
klass = GNOME_CMD_CON_GET_CLASS (con);
354
return klass->create_path (con, path_str);
359
359
gnome_cmd_con_is_local (GnomeCmdCon *con)
361
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
361
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
363
return con->is_local;
363
return con->is_local;
368
368
gnome_cmd_con_is_closeable (GnomeCmdCon *con)
370
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
370
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
372
return con->is_closeable;
372
return con->is_closeable;
377
377
gnome_cmd_con_get_open_msg (GnomeCmdCon *con)
379
return con->open_msg;
379
return con->open_msg;
384
384
gnome_cmd_con_get_alias (GnomeCmdCon *con)
386
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
386
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
393
393
gnome_cmd_con_set_cwd (GnomeCmdCon *con, GnomeCmdDir *dir)
395
g_return_if_fail (GNOME_CMD_IS_CON (con));
397
if (GNOME_CMD_IS_DIR (dir) &&
398
gnome_cmd_dir_get_connection (dir) != con)
401
if (dir == con->priv->cwd)
405
gnome_cmd_dir_ref (dir);
407
gnome_cmd_dir_unref (con->priv->cwd);
408
con->priv->cwd = dir;
395
g_return_if_fail (GNOME_CMD_IS_CON (con));
397
if (GNOME_CMD_IS_DIR (dir) &&
398
gnome_cmd_dir_get_connection (dir) != con)
401
if (dir == con->priv->cwd)
405
gnome_cmd_dir_ref (dir);
407
gnome_cmd_dir_unref (con->priv->cwd);
408
con->priv->cwd = dir;
413
413
gnome_cmd_con_get_cwd (GnomeCmdCon *con)
415
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
418
if (!con->priv->cwd) {
419
GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
421
gnome_cmd_con_set_cwd (con, dir);
425
return con->priv->cwd;
415
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
418
if (!con->priv->cwd) {
419
GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
421
gnome_cmd_con_set_cwd (con, dir);
425
return con->priv->cwd;
430
430
gnome_cmd_con_set_default_dir (GnomeCmdCon *con, GnomeCmdDir *dir)
432
g_return_if_fail (GNOME_CMD_IS_CON (con));
434
if (dir == con->priv->default_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));
434
if (dir == con->priv->default_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;
446
446
gnome_cmd_con_get_default_dir (GnomeCmdCon *con)
448
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
451
if (!con->priv->default_dir) {
452
GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
454
gnome_cmd_con_set_default_dir (con, dir);
458
return con->priv->default_dir;
448
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
451
if (!con->priv->default_dir) {
452
GnomeCmdDir *dir = gnome_cmd_dir_new (con, con->base_path);
454
gnome_cmd_con_set_default_dir (con, dir);
458
return con->priv->default_dir;
463
463
gnome_cmd_con_set_root_dir (GnomeCmdCon *con, GnomeCmdDir *dir)
465
g_return_if_fail (GNOME_CMD_IS_CON (con));
465
g_return_if_fail (GNOME_CMD_IS_CON (con));
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;
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;
476
476
gnome_cmd_con_get_root_dir (GnomeCmdCon *con)
478
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
478
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
480
return con->priv->root_dir;
480
return con->priv->root_dir;
486
486
gnome_cmd_con_should_remember_dir (GnomeCmdCon *con)
488
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
488
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
490
return con->should_remember_dir;
490
return con->should_remember_dir;
495
495
gnome_cmd_con_needs_open_visprog (GnomeCmdCon *con)
497
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
499
return con->needs_open_visprog;
497
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
499
return con->needs_open_visprog;
504
504
gnome_cmd_con_needs_list_visprog (GnomeCmdCon *con)
506
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
508
return con->needs_list_visprog;
506
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
508
return con->needs_list_visprog;
513
513
gnome_cmd_con_can_show_free_space (GnomeCmdCon *con)
515
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
515
g_return_val_if_fail (GNOME_CMD_IS_CON (con), FALSE);
517
return con->can_show_free_space;
517
return con->can_show_free_space;
522
522
gnome_cmd_con_get_dir_history (GnomeCmdCon *con)
524
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
524
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
526
return con->priv->dir_history;
526
return con->priv->dir_history;
531
531
gnome_cmd_con_get_go_text (GnomeCmdCon *con)
533
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
533
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
540
540
gnome_cmd_con_get_open_text (GnomeCmdCon *con)
542
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
542
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
544
return con->open_text;
544
return con->open_text;
549
549
gnome_cmd_con_get_close_text (GnomeCmdCon *con)
551
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
551
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
553
return con->close_text;
553
return con->close_text;
558
558
gnome_cmd_con_get_go_tooltip (GnomeCmdCon *con)
560
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
560
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
562
return con->go_tooltip;
562
return con->go_tooltip;
567
567
gnome_cmd_con_get_open_tooltip (GnomeCmdCon *con)
569
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
569
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
571
return con->open_tooltip;
571
return con->open_tooltip;
576
576
gnome_cmd_con_get_close_tooltip (GnomeCmdCon *con)
578
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
578
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
580
return con->close_tooltip;
580
return con->close_tooltip;
585
585
gnome_cmd_con_get_go_pixmap (GnomeCmdCon *con)
587
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
587
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
589
return con->go_pixmap;
589
return con->go_pixmap;
594
594
gnome_cmd_con_get_open_pixmap (GnomeCmdCon *con)
596
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
596
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
598
return con->open_pixmap;
598
return con->open_pixmap;
603
603
gnome_cmd_con_get_close_pixmap (GnomeCmdCon *con)
605
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
605
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
607
return con->close_pixmap;
607
return con->close_pixmap;
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)
657
GnomeVFSFileInfo *info;
661
GnomeVFSFileInfoOptions infoOpts = 0;
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);
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);
672
if (res == GNOME_VFS_OK)
675
gnome_vfs_uri_unref (uri);
676
gtk_object_destroy (GTK_OBJECT (path));
677
gnome_vfs_file_info_unref (info);
657
GnomeVFSFileInfo *info;
661
GnomeVFSFileInfoOptions infoOpts = 0;
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);
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);
672
if (res == GNOME_VFS_OK)
675
gnome_vfs_uri_unref (uri);
676
gtk_object_destroy (GTK_OBJECT (path));
677
gnome_vfs_file_info_unref (info);
684
684
gnome_cmd_con_mkdir (GnomeCmdCon *con, const gchar *path_str)
688
GnomeVFSResult result;
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);
693
path = gnome_cmd_con_create_path (con, path_str);
694
uri = gnome_cmd_con_create_uri (con, path);
696
result = gnome_vfs_make_directory_for_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);
702
gnome_vfs_uri_unref (uri);
703
gtk_object_destroy (GTK_OBJECT (path));
688
GnomeVFSResult result;
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);
693
path = gnome_cmd_con_create_path (con, path_str);
694
uri = gnome_cmd_con_create_uri (con, path);
696
result = gnome_vfs_make_directory_for_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);
702
gnome_vfs_uri_unref (uri);
703
gtk_object_destroy (GTK_OBJECT (path));
710
710
gnome_cmd_con_add_to_cache (GnomeCmdCon *con, GnomeCmdDir *dir)
714
g_return_if_fail (GNOME_CMD_IS_CON (con));
715
g_return_if_fail (GNOME_CMD_IS_DIR (dir));
717
uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
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);
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);
714
g_return_if_fail (GNOME_CMD_IS_CON (con));
715
g_return_if_fail (GNOME_CMD_IS_DIR (dir));
717
uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
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);
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);
729
729
gnome_cmd_con_remove_from_cache (GnomeCmdCon *con, GnomeCmdDir *dir)
733
g_return_if_fail (GNOME_CMD_IS_CON (con));
734
g_return_if_fail (GNOME_CMD_IS_DIR (dir));
736
uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
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);
733
g_return_if_fail (GNOME_CMD_IS_CON (con));
734
g_return_if_fail (GNOME_CMD_IS_DIR (dir));
736
uri_str = gnome_cmd_file_get_uri_str (GNOME_CMD_FILE (dir));
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);
745
745
gnome_cmd_con_cache_lookup (GnomeCmdCon *con, const gchar *uri_str)
747
GnomeCmdDir *dir = NULL;
749
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
750
g_return_val_if_fail (uri_str != NULL, NULL);
752
if (con->priv->all_dirs_map)
753
dir = g_hash_table_lookup (con->priv->all_dirs_map, uri_str);
756
DEBUG ('p', "FOUND 0x%x %s in the hash-table, reusing it!\n", (guint)dir, uri_str);
760
DEBUG ('p', "FAILED to find %s in the hash-table\n", uri_str);
747
GnomeCmdDir *dir = NULL;
749
g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
750
g_return_val_if_fail (uri_str != NULL, NULL);
752
if (con->priv->all_dirs_map)
753
dir = g_hash_table_lookup (con->priv->all_dirs_map, uri_str);
756
DEBUG ('p', "FOUND 0x%x %s in the hash-table, reusing it!\n", (guint)dir, uri_str);
760
DEBUG ('p', "FAILED to find %s in the hash-table\n", uri_str);