From 5759e547382a972e851c63de2f6b40ba0106115f Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Tue, 17 Mar 2009 18:53:40 +0000 Subject: [PATCH] Set properly the selected folder using edit mode in move to dialog pmo-trunk-r8104 --- src/hildon2/modest-platform.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index a684f85..90c66d0 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -2655,9 +2655,7 @@ on_move_to_dialog_folder_activated (GtkTreeView *tree_view, dialog = (GtkWidget *) user_data; showing_folders = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SHOWING_FOLDERS)); - if (showing_folders) { - move_to_dialog_set_selected_folder (dialog, selected); - } else { + if (!showing_folders) { folder_view = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW)); selected = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view)); @@ -2667,6 +2665,26 @@ on_move_to_dialog_folder_activated (GtkTreeView *tree_view, } } +static void +on_move_to_dialog_selection_changed (GtkTreeSelection *selection, + gpointer user_data) +{ + TnyFolderStore *selected; + GtkWidget *dialog; + GtkWidget *folder_view; + gboolean showing_folders; + + dialog = (GtkWidget *) user_data; + showing_folders = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SHOWING_FOLDERS)); + if (showing_folders) { + folder_view = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW)); + selected = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view)); + + if (selected) + move_to_dialog_set_selected_folder (dialog, selected); + } +} + GtkWidget * modest_platform_create_move_to_dialog (GtkWindow *parent_window, GtkWidget **folder_view) @@ -2678,6 +2696,7 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, GdkPixbuf *back_pixbuf; GtkWidget *top_vbox; GtkWidget *action_button; + GtkTreeSelection *selection; /* Create dialog. We cannot use a touch selector because we need to use here the folder view widget directly */ @@ -2753,6 +2772,11 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, G_CALLBACK (on_move_to_dialog_folder_activated), dialog); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (*folder_view)); + g_signal_connect (selection, "changed", + G_CALLBACK (on_move_to_dialog_selection_changed), + dialog); + g_signal_connect (back_button, "clicked", G_CALLBACK (on_move_to_dialog_back_clicked), dialog); -- 1.7.9.5