* Fixes NB#85378, fixes a crash when setting up an account with connection specific...
[modest] / src / maemo / easysetup / modest-easysetup-wizard-dialog.c
index 36f9e9d..36871f3 100644 (file)
@@ -128,8 +128,6 @@ struct _ModestEasysetupWizardDialogPrivate
        GtkWidget *button_outgoing_smtp_servers;
        
        GtkWidget *page_complete_customsetup;
-       
-       GtkWidget *specific_window;
 };
 
 static void save_to_settings (ModestEasysetupWizardDialog *self);
@@ -206,9 +204,6 @@ modest_easysetup_wizard_dialog_finalize (GObject *object)
                
        if (priv->presets)
                modest_presets_destroy (priv->presets);
-               
-       if (priv->specific_window)
-               gtk_widget_destroy (priv->specific_window);
 
        if (priv->settings)
                g_object_unref (priv->settings);
@@ -464,21 +459,6 @@ on_entry_max (ModestValidatingEntry *self, gpointer user_data)
        show_error (GTK_WIDGET (self), _CS("ckdg_ib_maximum_characters_reached"));
 }
 
-static void
-on_entry_invalid_character (ModestValidatingEntry *self, const gchar* character, gpointer user_data)
-{
-       const gchar *show_char = NULL;
-       if (character)
-         show_char = character;
-       else {
-         show_char = "' '";
-       }
-       
-       /* TODO: Should this show just this one bad character or all the not-allowed characters? */
-       gchar *message = g_strdup_printf (_CS("ckdg_ib_illegal_characters_entered"), show_char);
-       show_error (GTK_WIDGET (self), message);
-}
-
 static gint
 get_default_country_code(void)
 {
@@ -609,7 +589,7 @@ create_page_account_details (ModestEasysetupWizardDialog *self)
        g_list_free (list_prevent);
        list_prevent = NULL;
        modest_validating_entry_set_func(MODEST_VALIDATING_ENTRY(priv->entry_account_title),
-                                                                                                                                        on_entry_invalid_character, self);
+                                                                                                                                        modest_maemo_utils_on_entry_invalid_character, self);
        
        /* Set max length as in the UI spec:
         * The UI spec seems to want us to show a dialog if we hit the maximum. */
@@ -663,7 +643,7 @@ create_page_user_details (ModestEasysetupWizardDialog *self)
        modest_validating_entry_set_unallowed_characters (
                MODEST_VALIDATING_ENTRY (priv->entry_user_name), list_prevent);
        modest_validating_entry_set_func(MODEST_VALIDATING_ENTRY(priv->entry_user_name),
-               on_entry_invalid_character, self);
+               modest_maemo_utils_on_entry_invalid_character, self);
        g_list_free (list_prevent);
        
        /* The username widgets: */     
@@ -683,7 +663,7 @@ create_page_user_details (ModestEasysetupWizardDialog *self)
        modest_validating_entry_set_unallowed_characters_whitespace (
                MODEST_VALIDATING_ENTRY (priv->entry_user_username));
        modest_validating_entry_set_func(MODEST_VALIDATING_ENTRY(priv->entry_user_username),
-               on_entry_invalid_character, self);
+               modest_maemo_utils_on_entry_invalid_character, self);
        
        /* Set max length as in the UI spec:
         * The UI spec seems to want us to show a dialog if we hit the maximum. */
@@ -772,9 +752,6 @@ update_incoming_server_title (ModestEasysetupWizardDialog *self)
                 _("mail_fi_emailtype_imap") );
                        
                
-       /* Note that this produces a compiler warning, 
-        * because the compiler does not know that the translated string will have a %s in it.
-        * I do not see a way to avoid the warning while still using these Logical IDs. murrayc. */
        gchar* incomingserver_title = g_strdup_printf(_("mcen_li_emailsetup_servertype"), type);
        g_object_set (G_OBJECT (priv->caption_incoming), "label", incomingserver_title, NULL);
        g_free(incomingserver_title);
@@ -937,22 +914,19 @@ on_button_outgoing_smtp_servers (GtkButton *button, gpointer user_data)
 {
        ModestEasysetupWizardDialog * self = MODEST_EASYSETUP_WIZARD_DIALOG (user_data);
        ModestEasysetupWizardDialogPrivate* priv = MODEST_EASYSETUP_WIZARD_DIALOG_GET_PRIVATE(self);
+       GtkWidget *specific_window;
        
        /* We set dirty here because setting it depending on the connection specific dialog
        seems overkill */
        priv->dirty = TRUE;
        
        /* Create the window, if necessary: */
-       if (!(priv->specific_window)) {
-               priv->specific_window = GTK_WIDGET (modest_connection_specific_smtp_window_new ());
-               modest_connection_specific_smtp_window_fill_with_connections (
-                       MODEST_CONNECTION_SPECIFIC_SMTP_WINDOW (priv->specific_window), priv->account_manager);
-       }
+       specific_window = (GtkWidget *) modest_connection_specific_smtp_window_new ();
+       modest_connection_specific_smtp_window_fill_with_connections (MODEST_CONNECTION_SPECIFIC_SMTP_WINDOW (specific_window), priv->account_manager);
 
-       /* Show the window: */
-       gtk_window_set_transient_for (GTK_WINDOW (priv->specific_window), GTK_WINDOW (self));
-       gtk_window_set_modal (GTK_WINDOW (priv->specific_window), TRUE);
-       gtk_widget_show (priv->specific_window);
+       /* Show the window */
+       modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (specific_window));
+       gtk_widget_show (specific_window);
 }
 
 static void 
@@ -1281,7 +1255,6 @@ modest_easysetup_wizard_dialog_init (ModestEasysetupWizardDialog *self)
        priv->checkbox_outgoing_smtp_specific = NULL;
        priv->button_outgoing_smtp_servers = NULL;
        priv->page_complete_customsetup = NULL;
-       priv->specific_window = NULL;
 
        /* Add the common pages: */
        gtk_notebook_append_page (notebook, priv->page_welcome, 
@@ -1985,9 +1958,5 @@ save_to_settings (ModestEasysetupWizardDialog *self)
        display_name = get_entered_account_title (self);
        modest_account_settings_set_display_name (priv->settings, display_name);
        g_free (display_name);
-
-       if (priv->specific_window)
-               modest_connection_specific_smtp_window_save_server_accounts (
-                       MODEST_CONNECTION_SPECIFIC_SMTP_WINDOW (priv->specific_window));
 }