Removed extra references when deleting folders
authorSergio Villar Senin <svillar@igalia.com>
Thu, 20 Aug 2009 10:23:15 +0000 (12:23 +0200)
committerSergio Villar Senin <svillar@igalia.com>
Sat, 22 Aug 2009 11:02:11 +0000 (13:02 +0200)
Do not update the model twice when creating the move to dialog

src/hildon2/modest-platform.c
src/modest-ui-actions.c
src/widgets/modest-folder-view.c

index de5d03f..ea4b9e8 100644 (file)
@@ -998,7 +998,7 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window,
                                          gchar **folder_name,
                                          TnyFolderStore **parent)
 {
                                          gchar **folder_name,
                                          TnyFolderStore **parent)
 {
-       GtkWidget *accept_btn = NULL; 
+       GtkWidget *accept_btn = NULL;
        GtkWidget *dialog, *entry = NULL, *label_entry = NULL,  *label_location = NULL, *hbox;
        GtkWidget *account_picker = NULL;
        GList *buttons = NULL;
        GtkWidget *dialog, *entry = NULL, *label_entry = NULL,  *label_location = NULL, *hbox;
        GtkWidget *account_picker = NULL;
        GList *buttons = NULL;
@@ -2940,6 +2940,7 @@ on_move_to_dialog_row_activated (GtkTreeView       *tree_view,
        } else {
                move_to_dialog_set_selected_folder_store (dialog, selected);
        }
        } else {
                move_to_dialog_set_selected_folder_store (dialog, selected);
        }
+       g_object_unref (selected);
 }
 
 static void
 }
 
 static void
index f43ffbf..61dd61f 100644 (file)
@@ -3822,8 +3822,8 @@ on_delete_folder_cb (gboolean canceled,
 
        modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (folder_view));
 
 
        modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (folder_view));
 
-       g_object_unref (G_OBJECT (mail_op));
-       g_object_unref (G_OBJECT (info->folder));
+       g_object_unref (mail_op);
+       g_object_unref (info->folder);
        g_free (info);
 }
 
        g_free (info);
 }
 
@@ -3873,22 +3873,23 @@ delete_folder (ModestWindow *window, gboolean move_to_trash)
        g_free (message);
 
        if (response == GTK_RESPONSE_OK) {
        g_free (message);
 
        if (response == GTK_RESPONSE_OK) {
-               DeleteFolderInfo *info;
+               TnyAccount *account = NULL;
+               DeleteFolderInfo *info = NULL;
                info = g_new0(DeleteFolderInfo, 1);
                info = g_new0(DeleteFolderInfo, 1);
-               info->folder = folder;
+               info->folder = g_object_ref (folder);
                info->move_to_trash = move_to_trash;
                info->move_to_trash = move_to_trash;
-               g_object_ref (G_OBJECT (info->folder));
-               TnyAccount *account = tny_folder_get_account (TNY_FOLDER (folder));
+
+               account = tny_folder_get_account (TNY_FOLDER (folder));
                modest_platform_connect_if_remote_and_perform (GTK_WINDOW (window),
                                                               TRUE,
                                                               TNY_FOLDER_STORE (account),
                                                               on_delete_folder_cb, info);
                g_object_unref (account);
                modest_platform_connect_if_remote_and_perform (GTK_WINDOW (window),
                                                               TRUE,
                                                               TNY_FOLDER_STORE (account),
                                                               on_delete_folder_cb, info);
                g_object_unref (account);
+               g_object_unref (folder);
                return TRUE;
        } else {
                return FALSE;
        }
                return TRUE;
        } else {
                return FALSE;
        }
-       g_object_unref (G_OBJECT (folder));
 }
 
 void
 }
 
 void
@@ -5067,7 +5068,6 @@ on_move_to_dialog_response (GtkDialog *dialog,
        parent_win = (GtkWidget *) helper->win;
        folder_view = MODEST_FOLDER_VIEW (g_object_get_data (G_OBJECT (dialog),
                                                             MODEST_MOVE_TO_DIALOG_FOLDER_VIEW));
        parent_win = (GtkWidget *) helper->win;
        folder_view = MODEST_FOLDER_VIEW (g_object_get_data (G_OBJECT (dialog),
                                                             MODEST_MOVE_TO_DIALOG_FOLDER_VIEW));
-
        switch (response) {
                TnyFolderStore *dst_folder;
                TnyFolderStore *selected;
        switch (response) {
                TnyFolderStore *dst_folder;
                TnyFolderStore *selected;
@@ -5185,8 +5185,8 @@ create_move_to_dialog (GtkWindow *win,
 
                modest_folder_view_set_style (MODEST_FOLDER_VIEW (tree_view),
                                              MODEST_FOLDER_VIEW_STYLE_SHOW_ALL);
 
                modest_folder_view_set_style (MODEST_FOLDER_VIEW (tree_view),
                                              MODEST_FOLDER_VIEW_STYLE_SHOW_ALL);
-               modest_folder_view_update_model (MODEST_FOLDER_VIEW (tree_view),
-                                                TNY_ACCOUNT_STORE (modest_runtime_get_account_store ()));
+               /* modest_folder_view_update_model (MODEST_FOLDER_VIEW (tree_view), */
+               /*                               TNY_ACCOUNT_STORE (modest_runtime_get_account_store ())); */
 
                active_account_name = modest_window_get_active_account (MODEST_WINDOW (win));
                mgr = modest_runtime_get_account_mgr ();
 
                active_account_name = modest_window_get_active_account (MODEST_WINDOW (win));
                mgr = modest_runtime_get_account_mgr ();
index 04dbedc..770fb2a 100644 (file)
@@ -2374,7 +2374,7 @@ modest_folder_view_update_model (ModestFolderView *self,
                                                self,
                                                NULL);
 
                                                self,
                                                NULL);
 
-       GtkTreeModel *old_tny_model;
+       GtkTreeModel *old_tny_model = NULL;
        if (get_inner_models (self, NULL, NULL, &old_tny_model)) {
                if (priv->signal_handlers > 0) {
                        priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers,
        if (get_inner_models (self, NULL, NULL, &old_tny_model)) {
                if (priv->signal_handlers > 0) {
                        priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers,
@@ -2394,7 +2394,7 @@ modest_folder_view_update_model (ModestFolderView *self,
        priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers,
                                                           G_OBJECT (model),
                                                           "activity-changed",
        priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers,
                                                           G_OBJECT (model),
                                                           "activity-changed",
-                                                          G_CALLBACK (on_activity_changed), 
+                                                          G_CALLBACK (on_activity_changed),
                                                           self);
 #endif
 
                                                           self);
 #endif