* Fixes NB#91157, properly free a GSList with strings
[modest] / src / hildon2 / modest-easysetup-wizard-dialog.c
index 0a5202e..a2dd2ea 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", 
@@ -611,7 +623,6 @@ update_incoming_server_title (ModestEasysetupWizardDialog *self)
                protocol_display_name = modest_protocol_get_display_name (modest_protocol_registry_get_protocol_by_type (protocol_registry, protocol_type));
                
                incomingserver_title = g_strdup_printf(_("mcen_li_emailsetup_servertype"), protocol_display_name);
-               g_object_set (G_OBJECT (priv->caption_incoming), "label", incomingserver_title, NULL);
                g_free(incomingserver_title);
        }
 }
@@ -745,6 +756,7 @@ create_page_custom_incoming (ModestEasysetupWizardDialog *self)
                                                        FALSE, sizegroup);
        gtk_box_pack_start (GTK_BOX (box), priv->incoming_security, 
                            FALSE, FALSE, MODEST_MARGIN_HALF);
+       gtk_widget_show_all (priv->incoming_security);
 
        /* Set default selection */
        modest_servertype_picker_set_active_servertype (
@@ -865,7 +877,6 @@ create_page_custom_outgoing (ModestEasysetupWizardDialog *self)
        priv->button_outgoing_smtp_servers = gtk_button_new_with_label (_("mcen_bd_edit"));
        caption = modest_maemo_utils_create_captioned (sizegroup, _("mcen_fi_advsetup_optional_smtp"), 
                                                       priv->button_outgoing_smtp_servers);
-       hildon_caption_set_child_expand (HILDON_CAPTION (caption), FALSE);
        gtk_widget_show (priv->button_outgoing_smtp_servers);
        gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
        gtk_widget_show (caption);
@@ -939,7 +950,6 @@ create_page_complete_custom (ModestEasysetupWizardDialog *self)
        
        GtkWidget *caption = modest_maemo_utils_create_captioned (NULL, _("mcen_fi_advanced_settings"), 
                                                                  button_edit);
-       hildon_caption_set_child_expand (HILDON_CAPTION (caption), FALSE);
        gtk_widget_show (button_edit);
        gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, MODEST_MARGIN_HALF);
        gtk_widget_show (caption);
@@ -1586,6 +1596,7 @@ on_before_next (ModestWizardDialog *dialog, GtkWidget *current_page, GtkWidget *
                /* Aavoid a clash with an existing display name: */
                const gboolean name_in_use = modest_account_mgr_account_with_display_name_exists (
                        priv->account_manager, account_title);
+               g_free (account_title);
 
                if (name_in_use) {
                        /* Warn the user via a dialog: */
@@ -1871,10 +1882,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);