* Fixes NB#63571, connection dialog is offered if we try to create a folder in...
authorSergio Villar Senin <svillar@igalia.com>
Thu, 20 Dec 2007 16:21:17 +0000 (16:21 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Thu, 20 Dec 2007 16:21:17 +0000 (16:21 +0000)
pmo-trunk-r3949

src/dbus_api/modest-dbus-callbacks.c
src/modest-ui-actions.c
src/widgets/modest-folder-view.c

index b80d9c2..a30fdfa 100644 (file)
@@ -398,8 +398,9 @@ on_open_message_performer (gboolean canceled,
        info = (OpenMsgPerformerInfo *) user_data;
        uri = info->uri;
 
-       if (err)
+       if (canceled || err) {
                goto frees;
+       }
 
        /* Get message */
        folder = tny_store_account_find_folder (TNY_STORE_ACCOUNT (account), uri, NULL);
index aae822b..ef183ec 100644 (file)
@@ -1059,7 +1059,6 @@ open_msgs_performer(gboolean canceled,
 
        status = tny_account_get_connection_status (account);
        if (err || canceled) {
-               /* TODO: Show an error ? */
                goto clean;
        }
 
@@ -1698,7 +1697,6 @@ do_send_receive_performer (gboolean canceled,
        info = (SendReceiveInfo *) user_data;
 
        if (err || canceled) {
-
                goto clean;
        }
 
@@ -2655,6 +2653,25 @@ do_create_folder (GtkWindow *parent_window,
        }
 }
 
+static void
+create_folder_performer (gboolean canceled, 
+                        GError *err,
+                        GtkWindow *parent_window, 
+                        TnyAccount *account, 
+                        gpointer user_data)
+{
+       TnyFolderStore *parent_folder = TNY_FOLDER_STORE (user_data);
+
+       if (canceled || err) {
+               goto frees;
+       }
+
+       /* Run the new folder dialog */
+       do_create_folder (GTK_WINDOW (parent_window), parent_folder, NULL);
+
+ frees:
+       g_object_unref (parent_folder);
+}
 
 static void
 modest_ui_actions_create_folder(GtkWidget *parent_window,
@@ -2665,11 +2682,11 @@ modest_ui_actions_create_folder(GtkWidget *parent_window,
        parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
        
        if (parent_folder) {
-       
-               /* Run the new folder dialog */
-               do_create_folder (GTK_WINDOW (parent_window), parent_folder, NULL);
-       
-               g_object_unref (parent_folder);
+               /* The parent folder will be freed in the callback */
+               modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window), 
+                                                              parent_folder,
+                                                              create_folder_performer, 
+                                                              parent_folder);
        }
 }
 
@@ -4849,7 +4866,6 @@ retrieve_msg_contents_performer (gboolean canceled,
        TnyList *headers = TNY_LIST (user_data);
 
        if (err || canceled) {
-               /* Show an error ? */
                goto out;
        }
 
index 07e1f81..08da13b 100644 (file)
@@ -2177,9 +2177,9 @@ drag_and_drop_from_folder_view_dst_folder_performer (gboolean canceled,
 
        /* Connect to source folder and perform the copy/move */
        modest_platform_connect_if_remote_and_perform (NULL, 
-                                                                   info->src_folder,
-                                                                   drag_and_drop_from_folder_view_src_folder_performer,
-                                                                   info);
+                                                      info->src_folder,
+                                                      drag_and_drop_from_folder_view_src_folder_performer,
+                                                      info);
 }
 
 /*
@@ -2261,9 +2261,9 @@ drag_and_drop_from_folder_view (GtkTreeModel     *source_model,
 
        /* Connect to the destination folder and perform the copy/move */
        modest_platform_connect_if_remote_and_perform (GTK_WINDOW (win), 
-                                                                   dest_folder,
-                                                                   drag_and_drop_from_folder_view_dst_folder_performer,
-                                                                   info);
+                                                      dest_folder,
+                                                      drag_and_drop_from_folder_view_dst_folder_performer,
+                                                      info);
        
        /* Frees */
        g_object_unref (dest_folder);