Show accounts in first step of move to dialog
authorJose Dapena Paz <jdapena@igalia.com>
Mon, 23 Feb 2009 12:41:31 +0000 (12:41 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Mon, 23 Feb 2009 12:41:31 +0000 (12:41 +0000)
pmo-trunk-r7633

src/hildon2/modest-platform.c
src/widgets/modest-folder-view.c
src/widgets/modest-folder-view.h

index bd8bb7a..d15e18f 100644 (file)
@@ -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;
 }
 
index 5775a80..d4486a6 100644 (file)
@@ -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 */
index 72d7318..36ecc51 100644 (file)
@@ -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;