X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-utils.c;h=bb66e34cba105eb8cb1f347de9caa152ce798149;hp=75e056cd48dd0589e6d38f7fab27482a86df675f;hb=506d8ddd3ac4f45ad5fffb7d2ec83d306fc6f19b;hpb=5055d6eed23a268be06796ee438e3fdf946c84f8 diff --git a/src/modest-utils.c b/src/modest-utils.c index 75e056c..bb66e34 100644 --- a/src/modest-utils.c +++ b/src/modest-utils.c @@ -51,6 +51,9 @@ #include "widgets/modest-main-window.h" #include "modest-widget-memory.h" #include "widgets/modest-sort-criterium-view.h" +#ifdef MODEST_TOOLKIT_HILDON2 +#include "modest-header-window.h" +#endif GQuark modest_utils_get_supported_secure_authentication_error_quark (void) @@ -58,24 +61,33 @@ modest_utils_get_supported_secure_authentication_error_quark (void) return g_quark_from_static_string("modest-utils-get-supported-secure-authentication-error-quark"); } -gboolean +gboolean modest_utils_folder_writable (const gchar *filename) { g_return_val_if_fail (filename, FALSE); if (!filename) return FALSE; - + if (g_strncasecmp (filename, "obex", 4) != 0) { - GnomeVFSFileInfo *folder_info; - gchar *folder; - GnomeVFSResult result; + GnomeVFSFileInfo *folder_info = NULL; + GnomeVFSResult result = GNOME_VFS_OK; + GnomeVFSURI *uri = NULL; + GnomeVFSURI *folder_uri = NULL; + + uri = gnome_vfs_uri_new (filename); + folder_uri = gnome_vfs_uri_get_parent (uri); + + if (folder_uri != NULL) { + folder_info = gnome_vfs_file_info_new (); + result = gnome_vfs_get_file_info_uri (folder_uri, folder_info, + GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS); + gnome_vfs_uri_unref (folder_uri); + } + gnome_vfs_uri_unref (uri); - folder = g_path_get_dirname (filename); - folder_info = gnome_vfs_file_info_new (); - result = gnome_vfs_get_file_info (folder, folder_info, - GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS); - g_free (folder); + if (folder_uri == NULL) + return FALSE; if ((result != GNOME_VFS_OK) || (!((folder_info->permissions & GNOME_VFS_PERM_ACCESS_WRITABLE) || @@ -89,14 +101,14 @@ modest_utils_folder_writable (const gchar *filename) return TRUE; } -gboolean +gboolean modest_utils_file_exists (const gchar *filename) { GnomeVFSURI *uri = NULL; gboolean result = FALSE; g_return_val_if_fail (filename, FALSE); - + uri = gnome_vfs_uri_new (filename); if (uri) { result = gnome_vfs_uri_exists (uri); @@ -587,6 +599,11 @@ launch_sort_headers_dialog (GtkWindow *parent_window, if (MODEST_IS_MAIN_WINDOW (parent_window)) { header_view = MODEST_HEADER_VIEW(modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(parent_window), MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW)); +#ifdef MODEST_TOOLKIT_HILDON2 + } else if (MODEST_IS_HEADER_WINDOW (parent_window)) { + header_view = MODEST_HEADER_VIEW (modest_header_window_get_header_view (MODEST_HEADER_WINDOW (parent_window))); +#endif + } if (!header_view) return;