* Fixes NB#99400, do not dimm Send&Receive if there is 1 account
[modest] / src / modest-utils.c
index 415ca73..bb66e34 100644 (file)
@@ -61,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) ||
@@ -92,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);