[maemo-commits] [maemo-commits] r13867 - projects/haf/trunk/hildon-fm/hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Sep 17 19:20:52 EEST 2007
- Previous message: [maemo-commits] r13866 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r13868 - in projects/haf/tags/hildon-desktop: . 0.0.36-2/debian 0.0.36-2/debian/config
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2007-09-17 19:20:50 +0300 (Mon, 17 Sep 2007) New Revision: 13867 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_add_node): Call hildon_file_system_special_location_rewrite_path to allow special locations to rewrite the paths of its children. 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-09-17 16:19:14 UTC (rev 13866) +++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-system-model.c 2007-09-17 16:20:50 UTC (rev 13867) @@ -1724,10 +1724,11 @@ { GNode *node; HildonFileSystemModelPrivate *priv; - HildonFileSystemModelNode *model_node; + HildonFileSystemModelNode *parent_model_node, *model_node; GtkFileInfo *file_info = NULL; GtkTreePath *tree_path; GtkTreeIter iter; + GtkFilePath *real_path; /* Path can be NULL for removable devices that are not present */ g_return_val_if_fail(HILDON_IS_FILE_SYSTEM_MODEL(model), NULL); @@ -1736,12 +1737,26 @@ priv = CAST_GET_PRIVATE(model); - ULOG_INFO("Adding %s", (const char *) path); + parent_model_node = parent_node->data; + if (parent_model_node->location) + real_path = + hildon_file_system_special_location_rewrite_path (parent_model_node->location, + priv->filesystem, + path); + else + real_path = gtk_file_path_copy (path); + + DBG ("Adding %s (%s)\n", (const char *)path, (const char *) real_path); + if (parent_folder) { GError *error = NULL; /* This can cause main loop execution on vfs backend */ + /* We need to use PATH instead of REAL_PATH here since + PARENT_FOLDER only knows about the original paths. + */ + /* If we have received the path that we are adding by some other means than listing the folder (like via some API function), then the backend will send us "files-added" signal immediately @@ -1761,6 +1776,7 @@ DBG ("ADD ERR %s\n", error->message); ULOG_ERR(error->message); g_error_free(error); + gtk_file_path_free (real_path); return NULL; } @@ -1771,7 +1787,7 @@ { node = hildon_file_system_model_search_path_internal (parent_node, - path, FALSE); + real_path, FALSE); if (node) { HildonFileSystemModelNode *model_node = node->data; @@ -1780,6 +1796,7 @@ if (model_node->info) gtk_file_info_free (model_node->info); model_node->info = file_info; + gtk_file_path_free (real_path); return node; } } @@ -1789,19 +1806,17 @@ model_node->model = HILDON_FILE_SYSTEM_MODEL(model); model_node->present_flag = TRUE; model_node->available = TRUE; - model_node->path = gtk_file_path_copy(path); + model_node->path = real_path; node = g_node_new(model_node); g_node_append(parent_node, node); - /* FIXME: explicit "obex:///" string there. This is because of the - * symlinks in the OBEX module nowadays (the BT device file is not - * a folder but a symlink). */ - if (!parent_folder || (file_info && gtk_file_info_get_is_folder(file_info)) - || g_str_has_prefix((gchar*)path, "obex:///")) + if (!parent_folder + || (file_info && gtk_file_info_get_is_folder(file_info)) + || g_str_has_prefix (gtk_file_path_get_string (path), "obex:///")) { model_node->location = _hildon_file_system_get_special_location( - priv->filesystem, path); + priv->filesystem, real_path); setup_node_for_location(node); } @@ -1813,7 +1828,7 @@ if (!model_node->location) { gchar *local_path = gtk_file_system_path_to_filename(priv->filesystem, - path); + real_path); if (local_path) {
- Previous message: [maemo-commits] r13866 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r13868 - in projects/haf/tags/hildon-desktop: . 0.0.36-2/debian 0.0.36-2/debian/config
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]