X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-platform.c;h=e7e3f6770a655a26b342f1b745c8cf6ff231cb1b;hb=24063d3996506d21d604c04a590a89375e129f3c;hp=735a15cde878905ecc38c78fa967eda31e20e174;hpb=1ce157e69d8d25a6a107a221699331a98c3a720f;p=modest diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index 735a15c..e7e3f67 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -938,13 +938,18 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window, ModestWindow *folder_window; ModestHildon2WindowMgr *window_mgr; FolderPickerHelper *helper = NULL; + GtkWidget *top_vbox, *top_align; window_mgr = (ModestHildon2WindowMgr *) modest_runtime_get_window_mgr (); folder_window = modest_hildon2_window_mgr_get_folder_window (window_mgr); g_return_val_if_fail (MODEST_IS_FOLDER_WINDOW (folder_window), GTK_RESPONSE_NONE); - + folder_view = modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (folder_window)); - + + top_vbox = gtk_vbox_new (FALSE, 0); + top_align = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); + gtk_alignment_set_padding (GTK_ALIGNMENT (top_align), 0, 0, MODEST_MARGIN_DOUBLE, 0); + /* Ask the user for the folder name */ dialog = gtk_dialog_new_with_buttons (dialog_title, parent_window, @@ -966,9 +971,9 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window, gtk_misc_set_alignment (GTK_MISC (label_entry), 0.0, 0.5); gtk_size_group_add_widget (sizegroup, label_entry); - + if (suggested_name) - gtk_entry_set_text (GTK_ENTRY (entry), suggested_name); + gtk_entry_set_text (GTK_ENTRY (entry), suggested_name); else gtk_entry_set_text (GTK_ENTRY (entry), _FM("ckdg_va_new_folder_name_stub")); gtk_entry_set_width_chars (GTK_ENTRY (entry), @@ -976,9 +981,9 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window, g_utf8_strlen (_FM("ckdg_va_new_folder_name_stub"), -1))); gtk_entry_select_region (GTK_ENTRY (entry), 0, -1); } - + if (show_parent) { - + label_location = gtk_label_new (_FM("ckdg_fi_new_folder_location")); gtk_misc_set_alignment (GTK_MISC (label_location), 0.0, 0.5); @@ -992,14 +997,14 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window, } g_object_unref (sizegroup); - + /* Connect to the response method to avoid closing the dialog when an invalid name is selected*/ g_signal_connect (dialog, "response", G_CALLBACK (on_response), suggested_parent); - + if (show_name) { /* Track entry changes */ g_signal_connect (entry, @@ -1011,20 +1016,20 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window, G_CALLBACK (entry_changed), dialog); } - - + + /* Some locales like pt_BR need this to get the full window title shown */ gtk_widget_set_size_request (GTK_WIDGET (dialog), 300, -1); - + /* Create the hbox */ if (show_name) { hbox = gtk_hbox_new (FALSE, 12); gtk_box_pack_start (GTK_BOX (hbox), label_entry, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); - + /* Add hbox to dialog */ - gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), + gtk_box_pack_start (GTK_BOX (top_vbox), hbox, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (dialog), COMMON_FOLDER_DIALOG_ENTRY, entry); } @@ -1035,12 +1040,16 @@ modest_platform_run_folder_common_dialog (GtkWindow *parent_window, gtk_box_pack_start (GTK_BOX (hbox), account_picker, TRUE, TRUE, 0); /* Add hbox to dialog */ - gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), + gtk_box_pack_start (GTK_BOX (top_vbox), hbox, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (dialog), COMMON_FOLDER_DIALOG_ACCOUNT_PICKER, account_picker); } modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (dialog), parent_window); + + gtk_container_add (GTK_CONTAINER (top_align), top_vbox); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), top_align, TRUE, TRUE, 0); + gtk_widget_show_all (GTK_WIDGET(dialog)); result = gtk_dialog_run (GTK_DIALOG(dialog)); @@ -2503,14 +2512,13 @@ move_to_dialog_show_accounts (GtkWidget *dialog) back_button = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_BACK_BUTTON)); folder_view = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW)); pannable = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_PANNABLE)); - + gtk_widget_set_sensitive (back_button, FALSE); gtk_label_set_text (GTK_LABEL (selection_label), ""); modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (folder_view), TRUE); modest_folder_view_set_style (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_STYLE_SHOW_ALL); modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS); - modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS); hildon_pannable_area_jump_to (HILDON_PANNABLE_AREA (pannable), 0, 0); g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SHOWING_FOLDERS, GINT_TO_POINTER (FALSE)); @@ -2531,7 +2539,7 @@ move_to_dialog_show_folders (GtkWidget *dialog, TnyFolderStore *folder_store) back_button = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_BACK_BUTTON)); folder_view = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW)); pannable = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_PANNABLE)); - + gtk_widget_set_sensitive (back_button, TRUE); account = TNY_ACCOUNT (folder_store); @@ -2546,15 +2554,21 @@ move_to_dialog_show_folders (GtkWidget *dialog, TnyFolderStore *folder_store) } else { selection_label_text = g_strconcat (tny_account_get_name (account), "/", NULL); } + modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), + MODEST_FOLDER_VIEW_FILTER_HIDE_MCC_FOLDERS); } else if (modest_tny_account_is_memory_card_account (account)) { account_id = tny_account_get_id (account); selection_label_text = g_strconcat (tny_account_get_name (account), "/", NULL); + modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), + MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS); } else { account_id = tny_account_get_id (account); selection_label_text = g_strconcat (tny_account_get_name (account), "/", NULL); - modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), + modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS); + modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), + MODEST_FOLDER_VIEW_FILTER_HIDE_MCC_FOLDERS); } gtk_label_set_text (GTK_LABEL (selection_label), selection_label_text); g_free (selection_label_text); @@ -2575,7 +2589,16 @@ on_move_to_dialog_back_clicked (GtkButton *button, gpointer userdata) { GtkWidget *dialog = (GtkWidget *) userdata; + ModestFolderView *folder_view; + /* Revert the effect of show_folders filters */ + folder_view = MODEST_FOLDER_VIEW (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW)); + modest_folder_view_set_account_id_of_visible_server_account (folder_view, NULL); + modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (folder_view), TRUE); + modest_folder_view_unset_filter (folder_view, MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS); + modest_folder_view_unset_filter (folder_view, MODEST_FOLDER_VIEW_FILTER_HIDE_MCC_FOLDERS); + + /* Back to show accounts */ move_to_dialog_show_accounts (dialog); } @@ -2609,9 +2632,11 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, GtkWidget **folder_view) { GtkWidget *dialog, *folder_view_container; + GtkWidget *align; GtkWidget *buttons_hbox; GtkWidget *back_button, *selection_label; GdkPixbuf *back_pixbuf; + GtkWidget *top_vbox; /* Create dialog. We cannot use a touch selector because we need to use here the folder view widget directly */ @@ -2622,6 +2647,10 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, _HL("wdgt_bd_new"), MODEST_GTK_RESPONSE_NEW_FOLDER, NULL); + align = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); + gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, MODEST_MARGIN_DOUBLE, MODEST_MARGIN_NONE); + top_vbox = gtk_vbox_new (FALSE, MODEST_MARGIN_HALF); + /* Create folder view */ *folder_view = modest_platform_create_folder_view (NULL); @@ -2640,17 +2669,22 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, gtk_box_pack_start (GTK_BOX (buttons_hbox), back_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (buttons_hbox), selection_label, TRUE, TRUE, 0); gtk_widget_set_sensitive (GTK_WIDGET (back_button), FALSE); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), buttons_hbox, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (top_vbox), buttons_hbox, FALSE, FALSE, 0); /* Create pannable and add it to the dialog */ folder_view_container = hildon_pannable_area_new (); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), folder_view_container, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (folder_view_container), *folder_view); + gtk_box_pack_start (GTK_BOX (top_vbox), folder_view_container, TRUE, TRUE, 0); + + gtk_container_add (GTK_CONTAINER (align), top_vbox); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), align, TRUE, TRUE, 0); gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 300); gtk_widget_show (GTK_DIALOG (dialog)->vbox); gtk_widget_show (folder_view_container); + gtk_widget_show (align); + gtk_widget_show (top_vbox); gtk_widget_show (*folder_view); gtk_widget_show_all (back_button); gtk_widget_show (selection_label);