Set properly the selected folder using edit mode in move to dialog
authorJose Dapena Paz <jdapena@igalia.com>
Tue, 17 Mar 2009 18:53:40 +0000 (18:53 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Tue, 17 Mar 2009 18:53:40 +0000 (18:53 +0000)
pmo-trunk-r8104

src/hildon2/modest-platform.c

index a684f85..90c66d0 100644 (file)
@@ -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);