From 945c8b43ed269cf6f41c629217fc2ce273489683 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Mon, 23 Feb 2009 12:41:31 +0000 Subject: [PATCH] Show accounts in first step of move to dialog pmo-trunk-r7633 --- src/hildon2/modest-platform.c | 30 ++++++++++++++++++++++++++++++ src/widgets/modest-folder-view.c | 5 +++++ src/widgets/modest-folder-view.h | 1 + 3 files changed, 36 insertions(+) diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index bd8bb7a..d15e18f 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -2427,6 +2427,10 @@ _modest_platform_play_email_tone (void) g_free (active_profile); } +#define MOVE_TO_DIALOG_FOLDER_VIEW "folder-view" +#define MOVE_TO_DIALOG_BACK_BUTTON "back-button" +#define MOVE_TO_DIALOG_SELECTION_BUTTON "selection-button" + static void on_move_to_dialog_folder_activated (GtkTreeView *tree_view, GtkTreePath *path, @@ -2436,6 +2440,26 @@ on_move_to_dialog_folder_activated (GtkTreeView *tree_view, gtk_dialog_response (GTK_DIALOG (user_data), GTK_RESPONSE_OK); } +static void +move_to_dialog_show_accounts (GtkWidget *dialog) +{ + GtkWidget *selection_button; + GtkWidget *back_button; + GtkWidget *folder_view; + + selection_button = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SELECTION_BUTTON)); + 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)); + + gtk_widget_hide (selection_button); + gtk_widget_set_sensitive (back_button, FALSE); + + 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_unset_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_ACCOUNTS); + modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS); +} + GtkWidget * modest_platform_create_move_to_dialog (GtkWindow *parent_window, GtkWidget **folder_view) @@ -2493,6 +2517,12 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window, gtk_widget_show_all (back_button); gtk_widget_show (buttons_hbox); + g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_FOLDER_VIEW, *folder_view); + g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_BACK_BUTTON, back_button); + g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SELECTION_BUTTON, selection_button); + + move_to_dialog_show_accounts (dialog); + return dialog; } diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index 5775a80..d4486a6 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -1955,6 +1955,11 @@ filter_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) return FALSE; } + if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS)) { + if (TNY_IS_FOLDER (instance)) + return FALSE; + } + if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_CAN_HAVE_FOLDERS)) { if (TNY_IS_FOLDER (instance)) { /* Check folder rules */ diff --git a/src/widgets/modest-folder-view.h b/src/widgets/modest-folder-view.h index 72d7318..36ecc51 100644 --- a/src/widgets/modest-folder-view.h +++ b/src/widgets/modest-folder-view.h @@ -64,6 +64,7 @@ typedef enum _ModestFolderViewFilter { MODEST_FOLDER_VIEW_FILTER_MOVEABLE = 1 << 3, MODEST_FOLDER_VIEW_FILTER_DELETABLE = 1 << 4, MODEST_FOLDER_VIEW_FILTER_HIDE_ACCOUNTS = 1 << 5, + MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS = 1 << 6, } ModestFolderViewFilter; typedef struct _ModestFolderView ModestFolderView; -- 1.7.9.5