+move_to_dialog_show_accounts (GtkWidget *dialog)
+{
+ GtkWidget *back_button;
+ GtkWidget *folder_view;
+ GtkWidget *pannable;
+ GtkWidget *action_button;
+
+ back_button = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_BACK_BUTTON));
+ action_button = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_ACTION_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_widget_set_sensitive (action_button, FALSE);
+
+ /* Need to set this here, otherwise callbacks called because
+ of filtering won't perform correctly */
+ g_object_set_data (G_OBJECT (dialog), MOVE_TO_DIALOG_SHOWING_FOLDERS, GINT_TO_POINTER (FALSE));
+
+ /* Reset action button */
+ hildon_button_set_title (HILDON_BUTTON (action_button), NULL);
+ hildon_button_set_value (HILDON_BUTTON (action_button), NULL);
+ hildon_button_set_image (HILDON_BUTTON (action_button), NULL);
+
+ modest_folder_view_set_account_id_of_visible_server_account (MODEST_FOLDER_VIEW (folder_view), NULL);
+ 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_MCC_FOLDERS);
+ modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (folder_view),
+ MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS);
+ 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);
+ hildon_pannable_area_jump_to (HILDON_PANNABLE_AREA (pannable), 0, 0);
+}
+
+static void
+move_to_dialog_show_folders (GtkWidget *dialog, TnyFolderStore *folder_store)
+{
+ GtkWidget *back_button;
+ GtkWidget *folder_view;
+ TnyAccount *account;
+ const gchar *account_id;
+ GtkWidget *pannable;
+ GtkWidget *action_button;
+
+ back_button =
+ GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_BACK_BUTTON));
+ action_button =
+ GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), MOVE_TO_DIALOG_ACTION_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);
+ gtk_widget_set_sensitive (action_button, TRUE);
+
+ /* Need to set this here, otherwise callbacks called because
+ of filtering won't perform correctly */
+ g_object_set_data (G_OBJECT (dialog),
+ MOVE_TO_DIALOG_SHOWING_FOLDERS,
+ GINT_TO_POINTER (TRUE));
+
+ account = TNY_ACCOUNT (folder_store);
+ if (modest_tny_account_is_virtual_local_folders (account)) {
+ account_id = tny_account_get_id (account);
+ 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);
+ 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);
+ 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);
+ }
+
+ move_to_dialog_set_selected_folder_store (dialog, folder_store);
+ modest_folder_view_set_account_id_of_visible_server_account (MODEST_FOLDER_VIEW (folder_view),
+ account_id);
+
+ modest_folder_view_show_non_move_folders (MODEST_FOLDER_VIEW (folder_view), FALSE);
+ modest_folder_view_set_style (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_STYLE_SHOW_ONE);
+ modest_folder_view_set_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_ACCOUNTS);
+ modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (folder_view), MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS);
+ hildon_pannable_area_jump_to (HILDON_PANNABLE_AREA (pannable), 0, 0);
+}
+
+static void
+on_move_to_dialog_back_clicked (GtkButton *button,
+ gpointer userdata)
+{
+ GtkWidget *dialog = (GtkWidget *) userdata;
+
+ /* Back to show accounts */
+ move_to_dialog_show_accounts (dialog);
+}
+
+static void
+on_move_to_dialog_row_activated (GtkTreeView *tree_view,