Move asdbus stuff to src/hildon2, as it's hildon/maemo specific.
[modest] / src / hildon2 / modest-easysetup-wizard-dialog.c
index 8132255..30e43e6 100644 (file)
@@ -142,6 +142,7 @@ struct _ModestEasysetupWizardDialogPrivate
 
        GtkWidget *page_complete_customsetup;
 
+       gint last_mcc;
        ModestProtocolType last_plugin_protocol_selected;
        GSList *missing_data_signals;
 };
@@ -456,14 +457,17 @@ on_account_country_selector_changed (HildonTouchSelector *widget, gpointer user_
        g_assert(self);
        ModestEasysetupWizardDialogPrivate *priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE (self);
 
-       priv->dirty = TRUE;
-
        /* Fill the providers picker, based on the selected country: */
        if (priv->presets != NULL) {
                gint mcc = modest_country_picker_get_active_country_mcc (
                        MODEST_COUNTRY_PICKER (priv->account_country_picker));
-               modest_provider_picker_fill (
-                       MODEST_PROVIDER_PICKER (priv->account_serviceprovider_picker), priv->presets, mcc);
+               if (priv->last_mcc != mcc) {
+                       modest_provider_picker_fill (
+                               MODEST_PROVIDER_PICKER (priv->account_serviceprovider_picker), priv->presets, mcc);
+               } else {
+                       modest_provider_picker_refresh (MODEST_PROVIDER_PICKER (priv->account_serviceprovider_picker));
+               }
+               priv->last_mcc = mcc;
        }
 }
 
@@ -502,9 +506,6 @@ on_account_serviceprovider_selector_changed (HildonTouchSelector *widget, gint c
 {
        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);
 }
@@ -523,6 +524,7 @@ create_page_account_details (ModestEasysetupWizardDialog *self)
        GtkWidget *box = gtk_vbox_new (FALSE, MODEST_MARGIN_NONE);
        GtkWidget *label = gtk_label_new(_("mcen_ia_accountdetails"));
        ModestEasysetupWizardDialogPrivate* priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE(self);
+       gchar *tmp_str;
 
        gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
        gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
@@ -580,9 +582,11 @@ create_page_account_details (ModestEasysetupWizardDialog *self)
        g_signal_connect(G_OBJECT(priv->entry_account_title), "changed",
                         G_CALLBACK(on_easysetup_changed), self);
 
+       tmp_str = g_strconcat (_("mcen_fi_account_title"), "*", NULL);
        priv->caption_account_title = create_captioned (self, title_sizegroup, value_sizegroup,
-                                                       _("mcen_fi_account_title"), FALSE,
+                                                       tmp_str, FALSE,
                                                        priv->entry_account_title);
+       g_free (tmp_str);
        gtk_widget_show (priv->entry_account_title);
        gtk_box_pack_start (GTK_BOX (box), priv->caption_account_title, FALSE, FALSE, 0);
        gtk_widget_show (priv->caption_account_title);
@@ -677,6 +681,7 @@ create_page_user_details (ModestEasysetupWizardDialog *self)
        ModestEasysetupWizardDialogPrivate *priv;
        GtkWidget *align;
        const gchar *my_name;
+       gchar *tmp_str;
 
        priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE(self);
 
@@ -727,8 +732,11 @@ create_page_user_details (ModestEasysetupWizardDialog *self)
        /* Auto-capitalization is the default, so let's turn it off: */
        hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->entry_user_username),
                                         HILDON_GTK_INPUT_MODE_FULL);
-       caption = create_captioned (self, title_sizegroup, value_sizegroup, _("mail_fi_username"), FALSE,
+       tmp_str = g_strconcat (_("mail_fi_username"), "*", NULL);
+       caption = create_captioned (self, title_sizegroup, value_sizegroup,
+                                   tmp_str, FALSE,
                                    priv->entry_user_username);
+       g_free (tmp_str);
        gtk_widget_show (priv->entry_user_username);
        gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT(priv->entry_user_username), "changed",
@@ -765,8 +773,10 @@ create_page_user_details (ModestEasysetupWizardDialog *self)
        priv->entry_user_email = GTK_WIDGET (modest_validating_entry_new ());
        /* Auto-capitalization is the default, so let's turn it off: */
        hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->entry_user_email), HILDON_GTK_INPUT_MODE_FULL);
+       tmp_str = g_strconcat (_("mcen_li_emailsetup_email_address"), "*", NULL);
        caption = create_captioned (self, title_sizegroup, value_sizegroup,
-                                   _("mcen_li_emailsetup_email_address"), FALSE, priv->entry_user_email);
+                                   tmp_str, FALSE, priv->entry_user_email);
+       g_free (tmp_str);
        update_user_email_from_provider (self);
        gtk_widget_show (priv->entry_user_email);
        gtk_box_pack_start (GTK_BOX (box), caption, FALSE, FALSE, 0);
@@ -853,7 +863,7 @@ update_incoming_server_title (ModestEasysetupWizardDialog *self)
                                                                          protocol_type);
                protocol_display_name = modest_protocol_get_display_name (protocol);
 
-               incomingserver_title = g_strconcat (_("mcen_li_emailsetup_servertype"), "\n<small>(",
+               incomingserver_title = g_strconcat (_("mcen_li_emailsetup_servertype"), "*\n<small>(",
                                                    protocol_display_name, ")</small>", NULL);
 
                modest_maemo_utils_captioned_set_label (priv->caption_incoming, incomingserver_title, TRUE);
@@ -1092,7 +1102,7 @@ create_page_custom_outgoing (ModestEasysetupWizardDialog *self)
 
        /* Auto-capitalization is the default, so let's turn it off: */
        hildon_gtk_entry_set_input_mode (GTK_ENTRY (priv->entry_outgoingserver), HILDON_GTK_INPUT_MODE_FULL);
-       smtp_caption_label = g_strconcat (_("mcen_li_emailsetup_smtp"), "\n<small>(SMTP)</small>", NULL);
+       smtp_caption_label = g_strconcat (_("mcen_li_emailsetup_smtp"), "*\n<small>(SMTP)</small>", NULL);
        GtkWidget *caption = create_captioned (self, title_sizegroup, value_sizegroup,
                                               smtp_caption_label, TRUE, priv->entry_outgoingserver);
        g_free (smtp_caption_label);
@@ -1304,9 +1314,15 @@ fill_providers (ModestEasysetupWizardDialog *self)
                        MODEST_COUNTRY_PICKER (priv->account_country_picker));
                mcc = modest_country_picker_get_active_country_mcc (
                        MODEST_COUNTRY_PICKER (priv->account_country_picker));
-               modest_provider_picker_fill (
-                       MODEST_PROVIDER_PICKER (priv->account_serviceprovider_picker),
-                       priv->presets, mcc);
+               if (priv->last_mcc != mcc) {
+                       modest_provider_picker_fill (
+                               MODEST_PROVIDER_PICKER (priv->account_serviceprovider_picker),
+                               priv->presets, mcc);
+               } else {
+                       modest_provider_picker_refresh (
+                               MODEST_PROVIDER_PICKER (priv->account_serviceprovider_picker));
+               }
+               priv->last_mcc = mcc;
                /* connect to providers picker's changed signal, so we can fill the email address: */
                g_signal_connect (G_OBJECT (hildon_picker_button_get_selector
                                            (HILDON_PICKER_BUTTON (priv->account_serviceprovider_picker))),
@@ -1483,6 +1499,7 @@ modest_easysetup_wizard_dialog_init (ModestEasysetupWizardDialog *self)
        priv->page_complete_easysetup = NULL;
        priv->page_complete_customsetup = NULL;
        priv->last_plugin_protocol_selected = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
+       priv->last_mcc = -1;
        priv->missing_data_signals = NULL;
 
        /* Add the common pages */
@@ -2020,6 +2037,7 @@ on_before_next (ModestWizardDialog *dialog, GtkWidget *current_page, GtkWidget *
                }
 
                modest_account_mgr_add_account_from_settings (priv->account_manager, priv->settings);
+               hildon_gtk_window_take_screenshot ((GtkWindow *) dialog, FALSE);
        }
 
 
@@ -2147,7 +2165,7 @@ check_username_for_provider (const gchar *provider_id,
                             const gchar *domain,
                             gchar **username)
 {
-       gchar *providers_to_check[] = { "ovi.com", "yahoomailplus.com" };
+       gchar *providers_to_check[] = { "ovi.com", "yahoomailplus.com", "hotmail.com" };
        gint i;
        gboolean found = FALSE;
        gchar *old;
@@ -2459,6 +2477,7 @@ on_save (ModestWizardDialog *dialog)
 {
        ModestEasysetupWizardDialog *self = MODEST_EASYSETUP_WIZARD_DIALOG (dialog);
        ModestEasysetupWizardDialogPrivate *priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE (self);
+       gboolean result;
 
        save_to_settings (self);
 
@@ -2467,7 +2486,12 @@ on_save (ModestWizardDialog *dialog)
                return FALSE;
        }
 
-       return modest_account_mgr_add_account_from_settings (priv->account_manager, priv->settings);
+       
+       result = modest_account_mgr_add_account_from_settings (priv->account_manager, priv->settings);
+       if (result) {
+               hildon_gtk_window_take_screenshot ((GtkWindow *) dialog, FALSE);
+       }
+       return result;
 
 }