* src/widgets/modest-folder-view.c:
[modest] / src / widgets / modest-folder-view.c
index 02bfd2b..a753113 100644 (file)
@@ -1125,8 +1125,14 @@ modest_folder_view_finalize (GObject *obj)
        }
 
        if (priv->cur_folder_store) {
-               if (TNY_IS_FOLDER(priv->cur_folder_store))
-                       tny_folder_sync (TNY_FOLDER(priv->cur_folder_store), FALSE, NULL);
+               if (TNY_IS_FOLDER(priv->cur_folder_store)) {
+                       ModestMailOperation *mail_op;
+
+                       mail_op = modest_mail_operation_new (NULL);
+                       modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
+                                                        mail_op);
+                       modest_mail_operation_sync_folder (mail_op, TNY_FOLDER (priv->cur_folder_store), FALSE);
+               }
 
                g_object_unref (priv->cur_folder_store);
                priv->cur_folder_store = NULL;
@@ -1199,7 +1205,7 @@ on_connection_status_changed (TnyAccount *self,
 
                my_window = gtk_widget_get_ancestor (GTK_WIDGET (user_data), MODEST_TYPE_WINDOW);
                acc_name = modest_tny_account_get_parent_modest_account_name_for_server_account (self);
-               modest_ui_actions_do_send_receive (acc_name, MODEST_WINDOW (my_window));
+               modest_ui_actions_do_send_receive (acc_name, FALSE, MODEST_WINDOW (my_window));
        }
 }
 
@@ -1846,12 +1852,21 @@ cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2,
                                            TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &parent_folder,
                                            -1);
                        if ((parent_type == TNY_FOLDER_TYPE_ROOT) &&
-                           TNY_IS_ACCOUNT (parent_folder) &&
-                           modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (parent_folder))) {
-                               cmp1 = get_cmp_subfolder_type_pos (modest_tny_folder_get_local_or_mmc_folder_type
-                                                                  (TNY_FOLDER (folder1)));
-                               cmp2 = get_cmp_subfolder_type_pos (modest_tny_folder_get_local_or_mmc_folder_type
-                                                                  (TNY_FOLDER (folder2)));
+                           TNY_IS_ACCOUNT (parent_folder)) {
+                               if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (parent_folder))) {
+                                       cmp1 = get_cmp_subfolder_type_pos (modest_tny_folder_get_local_or_mmc_folder_type
+                                                                          (TNY_FOLDER (folder1)));
+                                       cmp2 = get_cmp_subfolder_type_pos (modest_tny_folder_get_local_or_mmc_folder_type
+                                                                          (TNY_FOLDER (folder2)));
+                               } else if (modest_tny_account_is_memory_card_account (TNY_ACCOUNT (parent_folder))) {
+                                       if (modest_local_folder_info_get_type (tny_folder_get_name (TNY_FOLDER (folder1))) == TNY_FOLDER_TYPE_ARCHIVE) {
+                                               cmp1 = 0;
+                                               cmp2 = 1;
+                                               } else if (modest_local_folder_info_get_type (tny_folder_get_name (TNY_FOLDER (folder2))) == TNY_FOLDER_TYPE_ARCHIVE) {
+                                               cmp1 = 1;
+                                               cmp2 = 0;
+                                       }
+                               }
                        }
                        g_object_unref (parent_folder);
                }