* restore gnome building (check for easysetup)
[modest] / src / modest-ui-actions.c
index 3315b50..e44c0c6 100644 (file)
 
 #include "modest-account-mgr-helpers.h"
 #include "modest-mail-operation.h"
+
+#ifdef MODEST_HAVE_EASYSETUP
 #include "easysetup/modest-easysetup-wizard.h"
+#endif /*MODEST_HAVE_EASYSETUP*/
+
 #include <modest-widget-memory.h>
 #include <tny-error.h>
 #include <tny-simple-list.h>
@@ -205,13 +209,33 @@ modest_ui_actions_on_add_to_contacts (GtkAction *action, ModestWindow *win)
 void
 modest_ui_actions_on_accounts (GtkAction *action, ModestWindow *win)
 {
-       /* GtkDialog *account_win; */
-/*     account_win = GTK_DIALOG(modest_account_view_window_new ()); */
+       GSList *account_names = modest_account_mgr_account_names (modest_runtime_get_account_mgr());
+                                                    
+       gboolean accounts_exist = account_names != NULL;
+       g_slist_free (account_names);
        
-
-/*     gtk_dialog_run (account_win); */
-       //gtk_widget_destroy (GTK_WIDGET(account_win));
- GtkWidget *dialog, *label;
+       /* This is currently only implemented for Maemo,
+        * because it requires a providers preset file which is not publically available.
+        */
+#ifdef MODEST_PLATFORM_MAEMO /* Defined in config.h */
+       /* To test, while modest_account_mgr_account_names() is broken: accounts_exist = TRUE; */
+       if (!accounts_exist) {
+               /* If there are no accounts yet, just show the easy-setup wizard, as per the UI spec: */
+               ModestEasysetupWizardDialog *wizard = modest_easysetup_wizard_dialog_new ();
+               gtk_window_set_transient_for (GTK_WINDOW (wizard), GTK_WINDOW (win));
+               gtk_dialog_run (GTK_DIALOG (wizard));
+               gtk_widget_destroy (GTK_WIDGET (wizard));
+       }
+       else
+       {
+               /* Show the list of accounts: */
+               GtkDialog *account_win = GTK_DIALOG(modest_account_view_window_new ());
+               gtk_window_set_transient_for (GTK_WINDOW (account_win), GTK_WINDOW(win));
+               gtk_dialog_run (account_win);
+               gtk_widget_destroy (GTK_WIDGET(account_win));
+       }
+#else
+   GtkWidget *dialog, *label;
    
    /* Create the widgets */
    
@@ -234,15 +258,7 @@ modest_ui_actions_on_accounts (GtkAction *action, ModestWindow *win)
    gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox),
                       label);
    gtk_widget_show_all (dialog);
-}
-
-void
-modest_ui_actions_on_new_account (GtkAction *action, ModestWindow *win)
-{      
-       ModestEasysetupWizardDialog *wizard = modest_easysetup_wizard_dialog_new ();
-       gtk_window_set_transient_for (GTK_WINDOW (wizard), GTK_WINDOW (win));
-       gtk_dialog_run (GTK_DIALOG (wizard));
-       gtk_widget_destroy (GTK_WIDGET (wizard));
+#endif /* MODEST_PLATFORM_MAEMO */
 }
 
 void