2007-06-25 Murray Cumming <murrayc@murrayc.com>
[modest] / src / maemo / easysetup / modest-easysetup-wizard.c
index 3e0741e..40754a6 100644 (file)
@@ -162,20 +162,22 @@ static gint get_serverport_incoming(ModestPresetsServerType servertype_incoming,
 
 static GList* check_for_supported_auth_methods(ModestEasysetupWizardDialog* account_wizard)
 {
-               const ModestTransportStoreProtocol protocol = 
+       GError *error = NULL;
+       const ModestTransportStoreProtocol protocol = 
           easysetup_servertype_combo_box_get_active_servertype (
                                                                 EASYSETUP_SERVERTYPE_COMBO_BOX (account_wizard->combo_incoming_servertype));
     const gchar* hostname = gtk_entry_get_text(GTK_ENTRY(account_wizard->entry_incomingserver));
+    const gchar* username = gtk_entry_get_text(GTK_ENTRY(account_wizard->entry_user_username));
          const ModestConnectionProtocol protocol_security_incoming = 
                                        modest_serversecurity_combo_box_get_active_serversecurity (
                                                                                                                                                                                                                                                                                 MODEST_SERVERSECURITY_COMBO_BOX (
                                                                                                                                                                                                                                                                                                                                                                                                                        account_wizard->combo_incoming_security));
      int port_num = get_serverport_incoming(protocol, protocol_security_incoming); 
-     GList *list_auth_methods = 
+     GList *list_auth_methods =
           modest_maemo_utils_get_supported_secure_authentication_methods (
                                                                       protocol, 
-                                                                      hostname, port_num, GTK_WINDOW (account_wizard));        
-     if (list_auth_methods) {
+                                                                      hostname, port_num, username, GTK_WINDOW (account_wizard), &error);
+       if (list_auth_methods) {
           /* TODO: Select the correct method */
                          GList* list = NULL;
                          GList* method;
@@ -192,7 +194,9 @@ static GList* check_for_supported_auth_methods(ModestEasysetupWizardDialog* acco
                 /* no secure methods supported */
      GtkWidget* error_dialog = gtk_message_dialog_new(GTK_WINDOW(account_wizard),
                                                      GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR,
-                                                     GTK_BUTTONS_OK, _("Server does not support secure authentication!"));
+                                                     GTK_BUTTONS_OK, error != NULL ? error->message : _("Server does not support secure authentication!"));
+     if(error != NULL) g_error_free(error);
+
      gtk_dialog_run(GTK_DIALOG(error_dialog));
      gtk_widget_destroy(error_dialog);
      return NULL;
@@ -1231,11 +1235,12 @@ on_before_next (ModestWizardDialog *dialog, GtkWidget *current_page, GtkWidget *
                        
                if (!modest_text_utils_validate_email_address (email_address)) {
                        /* Warn the user via a dialog: */
-                       show_error (GTK_WINDOW (account_wizard), _("mcen_ib_invalid_email"));
+                       hildon_banner_show_information (NULL, NULL, _("mcen_ib_invalid_email"));
                                              
                        /* Return focus to the email address entry: */
                        gtk_widget_grab_focus (account_wizard->entry_user_email);
-            
+                       gtk_editable_select_region (GTK_EDITABLE (account_wizard->entry_user_email), 0, -1);
+
                        return FALSE;
                }
                
@@ -1594,7 +1599,7 @@ create_account (ModestEasysetupWizardDialog *self, gboolean enabled)
        
        
        /* Create the account, which will contain the two "server accounts": */
-       created = modest_account_mgr_add_account (self->account_manager, display_name, 
+       created = modest_account_mgr_add_account (self->account_manager, account_name, 
                                                  store_name, /* The name of our POP/IMAP server account. */
                                                  transport_name, /* The name of our SMTP server account. */
                                                  enabled);
@@ -1607,20 +1612,13 @@ create_account (ModestEasysetupWizardDialog *self, gboolean enabled)
                return FALSE;   
        }
 
-
        /* Sanity check: */
        /* There must be at least one account now: */
        /* Note, when this fails is is caused by a Maemo gconf bug that has been 
         * fixed in versions after 3.1. */
-       GSList *account_names = modest_account_mgr_account_names (self->account_manager, FALSE);
-       if(!account_names)
-       {
+       if(!modest_account_mgr_has_accounts (self->account_manager, FALSE))
                g_warning ("modest_account_mgr_account_names() returned NULL after adding an account.");
-       }
-       g_slist_free (account_names);
-
-
-       
+               
        /* The user name and email address must be set additionally: */
        const gchar* user_name = gtk_entry_get_text (GTK_ENTRY (self->entry_user_name));
        modest_account_mgr_set_string (self->account_manager, account_name,