From f42dcfb53f942ace9efab748723d358498e78344 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Thu, 20 Aug 2009 12:23:15 +0200 Subject: [PATCH] Removed extra references when deleting folders Do not update the model twice when creating the move to dialog --- src/hildon2/modest-platform.c | 3 ++- src/modest-ui-actions.c | 20 ++++++++++---------- src/widgets/modest-folder-view.c | 4 ++-- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index de5d03f..ea4b9e8 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -998,7 +998,7 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window, 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; @@ -2940,6 +2940,7 @@ on_move_to_dialog_row_activated (GtkTreeView *tree_view, } else { move_to_dialog_set_selected_folder_store (dialog, selected); } + g_object_unref (selected); } static void diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index f43ffbf..61dd61f 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -3822,8 +3822,8 @@ on_delete_folder_cb (gboolean canceled, 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); } @@ -3873,22 +3873,23 @@ delete_folder (ModestWindow *window, gboolean move_to_trash) g_free (message); if (response == GTK_RESPONSE_OK) { - DeleteFolderInfo *info; + TnyAccount *account = NULL; + DeleteFolderInfo *info = NULL; info = g_new0(DeleteFolderInfo, 1); - info->folder = folder; + info->folder = g_object_ref (folder); 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); + g_object_unref (folder); return TRUE; } else { return FALSE; } - g_object_unref (G_OBJECT (folder)); } 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)); - 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_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 (); diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index 04dbedc..770fb2a 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -2374,7 +2374,7 @@ modest_folder_view_update_model (ModestFolderView *self, 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, @@ -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", - G_CALLBACK (on_activity_changed), + G_CALLBACK (on_activity_changed), self); #endif -- 1.7.9.5