[maemo-commits] [maemo-commits] r9238 - projects/haf/trunk/hildon-fm/hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Jan 22 20:29:09 EET 2007
- Previous message: [maemo-commits] r9237 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r9239 - projects/haf/trunk/hildon-fm/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll
Date: 2007-01-22 20:29:08 +0200 (Mon, 22 Jan 2007)
New Revision: 9238
Modified:
projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-model.c
Log:
* hildon-fm/hildon-file-system-model.c
(hildon_file_system_model_delayed_add_children): Handle a NULL
model_node->folder gracefully.
(get_folder_callback): Rearranged code gratuitously.
* hildon-fm/hildon-file-chooser-dialog.c,
hildon-fm/hildon-file-selection.c,
hildon-fm/hildon-file-system-model.c: Removed WITH_GTK_2_10
conditionals, keep the 2.10 stuff and the 2.6 stuff that now also
works with maemo-gtk 2.10.
Modified: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-model.c
===================================================================
--- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-model.c 2007-01-22 18:25:09 UTC (rev 9237)
+++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-model.c 2007-01-22 18:29:08 UTC (rev 9238)
@@ -325,17 +325,13 @@
/* We failed to connect to device before the call expired.
We want disconnect the whole device in question, not
- just to kick of the individual node that caused problems */
+ just to kick of the individual node that caused problems
+
+ XXX - Gtk+ 2.10 doesn't have ERROR_TIMEOUT anymore. Is
+ ERROR_FAILED equivalent?
+ */
if (g_error_matches (model_node->error, GTK_FILE_SYSTEM_ERROR,
-#if WITH_GTK_2_10
- /* XXX - Gtk+ 2.10 doesn't have ERROR_TIMEOUT.
- Is ERROR_FAILED quivalent?
- */
- GTK_FILE_SYSTEM_ERROR_FAILED
-#else
- GTK_FILE_SYSTEM_ERROR_TIMEOUT
-#endif
- ))
+ GTK_FILE_SYSTEM_ERROR_FAILED))
{
GNode *device_node = get_device_for_node(node);
if (device_node)
@@ -606,16 +602,27 @@
ULOG_INFO("Delayed add for path %s", (char *) model_node->path);
- /* Unix backend sends finished loading even before returning children.
- This causes our internal bookkeeping fail. */
- g_signal_handlers_block_by_func(model_node->folder,
- hildon_file_system_model_folder_finished_loading, model);
+ if (model_node->folder)
+ {
+ /* Unix backend sends finished loading even before returning
+ children. This causes our internal bookkeeping fail. */
+ g_signal_handlers_block_by_func
+ (model_node->folder,
+ hildon_file_system_model_folder_finished_loading, model);
- result = gtk_file_folder_list_children(model_node->folder,
- &children, &model_node->error);
+ result = gtk_file_folder_list_children
+ (model_node->folder, &children, &(model_node->error));
- g_signal_handlers_unblock_by_func(model_node->folder,
- hildon_file_system_model_folder_finished_loading, model);
+ g_signal_handlers_unblock_by_func
+ (model_node->folder,
+ hildon_file_system_model_folder_finished_loading, model);
+ }
+ else
+ {
+ result = TRUE;
+ children = NULL;
+ model_node->error = NULL;
+ }
/* Patched GnomeVFS now also reports errors. */
if (result)
@@ -1566,39 +1573,42 @@
model_node->get_folder_handle = NULL;
model_node->folder = folder;
- model_node->error = g_error_copy (error);
+ model_node->error = error? g_error_copy (error) : NULL;
- if (folder)
+ if (folder == NULL)
{
- g_signal_connect_object
- (model_node->folder, "deleted",
- G_CALLBACK(hildon_file_system_model_dir_removed),
- model, 0);
- g_signal_connect_object
- (model_node->folder, "files-added",
- G_CALLBACK(hildon_file_system_model_files_added),
- model, 0);
- g_signal_connect_object
- (model_node->folder, "files-removed",
- G_CALLBACK
- (hildon_file_system_model_files_removed), model, 0);
- g_signal_connect_object
- (model_node->folder, "files-changed",
- G_CALLBACK
- (hildon_file_system_model_files_changed), model, 0);
- g_signal_connect_object
- (model_node->folder, "finished-loading",
- G_CALLBACK (hildon_file_system_model_folder_finished_loading), model,
- 0);
+ ULOG_ERR_F("Failed to create monitor for path %s",
+ gtk_file_path_get_string (model_node->path));
+ return;
+ }
- g_object_set_qdata (G_OBJECT(model_node->folder),
- hildon_file_system_model_quark, node);
+ g_signal_connect_object
+ (model_node->folder, "deleted",
+ G_CALLBACK(hildon_file_system_model_dir_removed),
+ model, 0);
- if (error)
- handle_load_error (node);
- }
- else
- ULOG_ERR_F("Failed to create monitor for path %s", (char *) path);
+ g_object_set_qdata (G_OBJECT(model_node->folder),
+ hildon_file_system_model_quark, node);
+
+ g_signal_connect_object
+ (model_node->folder, "files-added",
+ G_CALLBACK(hildon_file_system_model_files_added),
+ model, 0);
+ g_signal_connect_object
+ (model_node->folder, "files-removed",
+ G_CALLBACK
+ (hildon_file_system_model_files_removed), model, 0);
+ g_signal_connect_object
+ (model_node->folder, "files-changed",
+ G_CALLBACK
+ (hildon_file_system_model_files_changed), model, 0);
+ g_signal_connect_object
+ (model_node->folder, "finished-loading",
+ G_CALLBACK (hildon_file_system_model_folder_finished_loading), model,
+ 0);
+
+ if (error)
+ handle_load_error (node);
}
static gboolean
- Previous message: [maemo-commits] r9237 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r9239 - projects/haf/trunk/hildon-fm/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
