* Fixes NB#89256, do not set the alternate port as default
[modest] / src / hildon2 / modest-easysetup-wizard-dialog.c
index 638e5e1..80288d1 100644 (file)
@@ -58,7 +58,7 @@
 #include "modest-utils.h"
 #include "modest-hildon-includes.h"
 #include "modest-maemo-security-options-view.h"
-#include <modest-account-protocol.h>
+#include "modest-account-protocol.h"
 
 /* Include config.h so that _() works: */
 #ifdef HAVE_CONFIG_H
@@ -318,19 +318,19 @@ on_account_country_selector_changed (HildonTouchSelector *widget, gint column, g
 }
 
 static void
-on_account_serviceprovider_selector_changed (HildonTouchSelector *widget, gint column, gpointer user_data)
+update_user_email_from_provider (ModestEasysetupWizardDialog *self)
 {
-       ModestEasysetupWizardDialog *self = MODEST_EASYSETUP_WIZARD_DIALOG (user_data);
+       ModestEasysetupWizardDialogPrivate *priv; 
+       gchar* provider_id;
+       gchar* domain_name = NULL;
+
        g_assert(self);
-       ModestEasysetupWizardDialogPrivate *priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE (self);
-       
-       priv->dirty = TRUE;
-       
+       priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE (self);
+
        /* Fill the providers combo, based on the selected country: */
-       gchar* provider_id = modest_provider_picker_get_active_provider_id (
+       provider_id = modest_provider_picker_get_active_provider_id (
                MODEST_PROVIDER_PICKER (priv->account_serviceprovider_picker));
        
-       gchar* domain_name = NULL;
        if(provider_id)
                domain_name = modest_presets_get_domain (priv->presets, provider_id);
        
@@ -346,6 +346,18 @@ on_account_serviceprovider_selector_changed (HildonTouchSelector *widget, gint c
 }
 
 static void
+on_account_serviceprovider_selector_changed (HildonTouchSelector *widget, gint column, gpointer user_data)
+{
+       ModestEasysetupWizardDialog *self = MODEST_EASYSETUP_WIZARD_DIALOG (user_data);
+       g_assert(self);
+       ModestEasysetupWizardDialogPrivate *priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE (self);
+       
+       priv->dirty = TRUE;
+
+       update_user_email_from_provider (self);
+}
+
+static void
 on_entry_max (ModestValidatingEntry *self, gpointer user_data)
 {
        modest_platform_information_banner (GTK_WIDGET (self), NULL,
@@ -541,7 +553,7 @@ create_page_user_details (ModestEasysetupWizardDialog *self)
        hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->entry_user_email), HILDON_GTK_INPUT_MODE_FULL);
        caption = create_captioned (self, sizegroup, 
                                    _("mcen_li_emailsetup_email_address"), priv->entry_user_email);
-       gtk_entry_set_text (GTK_ENTRY (priv->entry_user_email), MODEST_EXAMPLE_EMAIL_ADDRESS); /* Default text. */
+       update_user_email_from_provider (self);
        gtk_widget_show (priv->entry_user_email);
        gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
        g_signal_connect(G_OBJECT(priv->entry_user_email), "changed", 
@@ -1872,10 +1884,15 @@ save_to_settings (ModestEasysetupWizardDialog *self)
 
                /* we check if there is a *special* port */
                special_port = modest_presets_get_port (priv->presets, provider_id, TRUE /* incoming */);
-               if (special_port != 0)
+               if (special_port != 0) {
                        store_port = special_port;
-               else 
-                       store_port = get_port_from_protocol(store_provider_server_type, store_security);
+               } else {
+                       gboolean use_alternate_port = FALSE;
+                       if (modest_protocol_registry_protocol_type_is_secure (modest_runtime_get_protocol_registry (),
+                                                                             store_security))
+                               use_alternate_port = TRUE;
+                       store_port = get_port_from_protocol(store_provider_server_type, use_alternate_port);
+               }
 
                modest_server_account_settings_set_security_protocol (store_settings, 
                                                                      store_security);