Removed gnome/ directory
[modest] / src / gnome / modest-account-assistant.c
diff --git a/src/gnome/modest-account-assistant.c b/src/gnome/modest-account-assistant.c
deleted file mode 100644 (file)
index 197fd05..0000000
+++ /dev/null
@@ -1,1085 +0,0 @@
-/* Copyright (c) 2006, Nokia Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * * Neither the name of the Nokia Corporation nor the names of its
- *   contributors may be used to endorse or promote products derived from
- *   this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <camel/camel-url.h>
-#include <widgets/modest-combo-box.h>
-#include "modest-account-assistant.h"
-#include "modest-store-widget.h"
-#include "modest-transport-widget.h"
-#include "modest-text-utils.h"
-#include "modest-runtime.h"
-#include "modest-utils.h"
-#include "modest-protocol-registry.h"
-#include "modest-platform.h"
-#include "gnome/modest-gnome-utils.h"
-
-#include <string.h>
-
-/* 'private'/'protected' functions */
-static void       modest_account_assistant_class_init    (ModestAccountAssistantClass *klass);
-static void       modest_account_assistant_init          (ModestAccountAssistant *obj);
-static void       modest_account_assistant_finalize      (GObject *obj);
-static gboolean   on_before_next (ModestWizardDialog *dialog, GtkWidget *current_page, GtkWidget *next_page);
-static void       on_response (ModestWizardDialog *wizard_dialog,
-                              gint response_id,
-                              gpointer user_data);
-static void       on_response_before (ModestWizardDialog *wizard_dialog,
-                                     gint response_id,
-                                     gpointer user_data);
-
-/* list my signals */
-enum {
-       /* MY_SIGNAL_1, */
-       /* MY_SIGNAL_2, */
-       LAST_SIGNAL
-};
-
-typedef struct _ModestAccountAssistantPrivate ModestAccountAssistantPrivate;
-struct _ModestAccountAssistantPrivate {
-
-       ModestAccountMgr *account_mgr;
-       ModestAccountSettings *settings;
-       gboolean   dirty;
-
-       GtkWidget *notebook;
-
-       GtkWidget *account_name;
-       GtkWidget *fullname;
-       GtkWidget *email;
-       
-       GtkWidget *username;
-       GtkWidget *password;
-       GtkWidget *store_server_widget;
-       GtkWidget *store_protocol_combo;
-       GtkWidget *store_security_combo;
-       GtkWidget *store_secure_auth;
-       GtkWidget *transport_server_widget;
-       GtkWidget *transport_security_combo;
-       GtkWidget *transport_secure_auth_combo;
-       
-       GtkWidget *transport_widget;
-
-       GtkWidget *transport_holder;
-
-       ModestPairList *receiving_transport_store_protos;
-       ModestPairList *sending_transport_store_protos;
-       ModestPairList *security_protos;
-       ModestPairList *transport_security_protos;
-       ModestPairList *transport_auth_protos;
-};
-
-#define MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
-                                                      MODEST_TYPE_ACCOUNT_ASSISTANT, \
-                                                      ModestAccountAssistantPrivate))
-/* globals */
-static GtkAssistantClass *parent_class = NULL;
-
-/* uncomment the following if you have defined any signals */
-/* static guint signals[LAST_SIGNAL] = {0}; */
-
-static void save_to_settings (ModestAccountAssistant *self);
-
-GType
-modest_account_assistant_get_type (void)
-{
-       static GType my_type = 0;
-       if (!my_type) {
-               static const GTypeInfo my_info = {
-                       sizeof(ModestAccountAssistantClass),
-                       NULL,           /* base init */
-                       NULL,           /* base finalize */
-                       (GClassInitFunc) modest_account_assistant_class_init,
-                       NULL,           /* class finalize */
-                       NULL,           /* class data */
-                       sizeof(ModestAccountAssistant),
-                       1,              /* n_preallocs */
-                       (GInstanceInitFunc) modest_account_assistant_init,
-                       NULL
-               };
-               my_type = g_type_register_static (MODEST_TYPE_WIZARD_DIALOG,
-                                                 "ModestAccountAssistant",
-                                                 &my_info, 0);
-       }
-       return my_type;
-}
-
-static void
-modest_account_assistant_class_init (ModestAccountAssistantClass *klass)
-{
-       GObjectClass *gobject_class;
-       gobject_class = (GObjectClass*) klass;
-
-       parent_class            = g_type_class_peek_parent (klass);
-       gobject_class->finalize = modest_account_assistant_finalize;
-
-       g_type_class_add_private (gobject_class, sizeof(ModestAccountAssistantPrivate));
-
-       ModestWizardDialogClass *base_klass = (ModestWizardDialogClass*)(klass);
-       base_klass->before_next = on_before_next;
-}
-
-static gboolean
-on_delete_event (GtkWidget *widget,
-                GdkEvent *event,
-                ModestAccountAssistant *assistant)
-{
-       gtk_dialog_response (GTK_DIALOG (assistant), GTK_RESPONSE_CANCEL);
-       return TRUE;
-}
-
-static void
-on_assistant_changed(GtkWidget* widget, ModestAccountAssistant* assistant)
-{
-       ModestAccountAssistantPrivate* priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(assistant);
-       g_return_if_fail (priv != NULL);
-       priv->dirty = TRUE;
-}
-
-static void
-on_incoming_security_changed(GtkWidget* widget, ModestAccountAssistant* assistant)
-{
-       ModestAccountAssistantPrivate* priv;
-       ModestProtocolType protocol_id;
-       ModestProtocol *protocol_security_incoming;
-       const gchar *name;
-       ModestProtocolRegistry *registry;
-       gboolean is_secure;
-
-       g_return_if_fail (MODEST_IS_ACCOUNT_ASSISTANT (assistant));
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(assistant);
-       registry = modest_runtime_get_protocol_registry ();
-       name = (const gchar *) modest_combo_box_get_active_id  (MODEST_COMBO_BOX (priv->store_security_combo));
-       protocol_security_incoming = modest_protocol_registry_get_protocol_by_name (registry, 
-                                                                                   MODEST_PROTOCOL_REGISTRY_SECURE_PROTOCOLS,
-                                                                                   name);
-       protocol_id = modest_protocol_get_type_id (protocol_security_incoming);
-       is_secure = modest_protocol_registry_protocol_type_is_secure (registry, protocol_id);
-
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->store_secure_auth), is_secure);
-       gtk_widget_set_sensitive (priv->store_secure_auth, !is_secure);
-       
-       on_assistant_changed (widget, assistant);
-}
-
-static void
-invoke_enable_buttons_vfunc (ModestAccountAssistant *assistant)
-{
-       ModestWizardDialogClass *klass = MODEST_WIZARD_DIALOG_GET_CLASS (assistant);
-       
-       /* Call the vfunc, which may be overridden by derived classes: */
-       if (klass->enable_buttons) {
-               GtkNotebook *notebook = NULL;
-               g_object_get (assistant, "wizard-notebook", &notebook, NULL);
-               
-               const gint current_page_num = gtk_notebook_get_current_page (notebook);
-               if (current_page_num == -1)
-                       return;
-                       
-               GtkWidget* current_page_widget = gtk_notebook_get_nth_page (notebook, current_page_num);
-               (*(klass->enable_buttons))(MODEST_WIZARD_DIALOG (assistant), current_page_widget);
-       }
-}
-
-static void
-on_entry_changed (GtkEditable *editable, gpointer userdata)
-{
-       on_assistant_changed (NULL, MODEST_ACCOUNT_ASSISTANT (userdata));
-       invoke_enable_buttons_vfunc(MODEST_ACCOUNT_ASSISTANT (userdata));
-}
-
-static void
-on_combo_changed (GtkComboBox *combo, gpointer userdata)
-{
-       on_assistant_changed (NULL, MODEST_ACCOUNT_ASSISTANT (userdata));
-       invoke_enable_buttons_vfunc(MODEST_ACCOUNT_ASSISTANT (userdata));
-}
-
-static void
-add_intro_page (ModestAccountAssistant *assistant)
-{
-       GtkWidget *page, *label;
-       ModestAccountAssistantPrivate *priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE (assistant);
-       
-       page = gtk_vbox_new (FALSE, 12);
-       
-       label = gtk_label_new (_("mcen_ia_emailsetup_intro"));
-       gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5);
-       gtk_misc_set_padding (GTK_MISC (label), 12, 12);
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_box_pack_start (GTK_BOX(page), label, FALSE, FALSE, 0);
-       gtk_widget_set_size_request (label, 400, -1);
-       gtk_widget_show_all (page);
-       
-       gtk_notebook_append_page (GTK_NOTEBOOK(priv->notebook), page, NULL);
-               
-       gtk_notebook_set_tab_label_text (GTK_NOTEBOOK(priv->notebook), page,
-                                     _("mcen_ti_emailsetup_welcome"));
-       /* gtk_notebook_set_page_type (GTK_NOTEBOOK(assistant), page, */
-       /*                           GTK_ASSISTANT_PAGE_INTRO); */
-       /* gtk_notebook_set_page_complete (GTK_ASSISTANT(assistant), */
-       /*                               page, TRUE); */
-}
-
-
-static void
-set_current_page_complete (ModestAccountAssistant *self, gboolean complete)
-{
-       GtkWidget *page;
-       gint pageno;
-       ModestAccountAssistantPrivate *priv;
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE (self);
-
-       pageno = gtk_notebook_get_current_page (GTK_NOTEBOOK(priv->notebook));
-
-       if (pageno != -1) {
-               page   = gtk_notebook_get_nth_page (GTK_NOTEBOOK(priv->notebook), pageno);
-               /* gtk_assistant_set_page_complete (GTK_NOTEBOOK(priv->notebook), page, complete); */
-       }
-}
-
-
-static GtkWidget *
-field_name_label (const gchar *text)
-{
-       GtkWidget *label;
-       gchar *fixed_text;
-
-       fixed_text = g_strconcat (text, ":", NULL);
-       label = gtk_label_new (fixed_text);
-       g_free (fixed_text);
-       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-
-       return label;
-}
-
-static void
-add_identity_page (ModestAccountAssistant *self)
-{
-       GtkWidget *page, *label, *table, *frame;
-       GtkWidget *alignment;
-       ModestAccountAssistantPrivate *priv;
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-
-       priv->account_name = gtk_entry_new ();
-       gtk_entry_set_max_length (GTK_ENTRY (priv->account_name), 40);
-       g_signal_connect (G_OBJECT (priv->account_name), "changed", G_CALLBACK (on_entry_changed), self);
-       priv->fullname = gtk_entry_new ();
-       gtk_entry_set_max_length (GTK_ENTRY (priv->fullname), 40);
-       g_signal_connect (G_OBJECT (priv->fullname), "changed", G_CALLBACK (on_entry_changed), self);
-       priv->email    = gtk_entry_new ();
-       gtk_entry_set_width_chars (GTK_ENTRY (priv->email), 40);
-       g_signal_connect (G_OBJECT (priv->email), "changed", G_CALLBACK (on_entry_changed), self);
-       priv->username = gtk_entry_new ();
-       gtk_entry_set_width_chars (GTK_ENTRY (priv->username), 40);
-       g_signal_connect (G_OBJECT (priv->username), "changed", G_CALLBACK (on_entry_changed), self);
-       priv->password = gtk_entry_new ();
-       gtk_entry_set_width_chars (GTK_ENTRY (priv->password), 40);
-       gtk_entry_set_visibility (GTK_ENTRY (priv->password), FALSE);
-       
-       page = gtk_vbox_new (FALSE, 24);
-
-       label = gtk_label_new (
-               _("Please enter below the name for the account you're creating."));
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
-       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 0, 12, 12);
-       gtk_container_add (GTK_CONTAINER (alignment), label);
-       gtk_box_pack_start (GTK_BOX(page), alignment, FALSE, FALSE, 0);
-       
-       table = gtk_table_new (1,2, FALSE);
-       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-       gtk_table_set_row_spacings (GTK_TABLE (table), 1);
-       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Account name")),
-                                  0,1,0,1);
-       gtk_table_attach_defaults (GTK_TABLE(table),priv->account_name,
-                                  1,2,0,1);
-       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
-       gtk_container_add (GTK_CONTAINER (alignment), table);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 0, 12, 0);
-       gtk_box_pack_start (GTK_BOX(page), alignment, FALSE, FALSE, 0);
-
-       frame = gtk_frame_new (NULL);
-       label = gtk_label_new (NULL);
-       gtk_label_set_markup (GTK_LABEL (label), _("<b>Public information </b>"));
-       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
-       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
-       table = gtk_table_new (2,2, FALSE);
-       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
-       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Full name")),
-                                  0,1,0,1);
-       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Email address")),
-                                  0,1,1,2);
-       gtk_table_attach_defaults (GTK_TABLE(table),priv->fullname,
-                                  1,2,0,1);
-       gtk_table_attach_defaults (GTK_TABLE(table),priv->email,
-                                  1,2,1,2);
-       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
-       gtk_container_add (GTK_CONTAINER (alignment), table);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-       gtk_container_add (GTK_CONTAINER (frame), alignment);
-       gtk_box_pack_start (GTK_BOX(page), frame, FALSE, FALSE, 0);
-
-
-       frame = gtk_frame_new (NULL);
-       label = gtk_label_new (NULL);
-       gtk_label_set_markup (GTK_LABEL (label), _("<b>Server account </b>"));
-       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
-       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
-       table = gtk_table_new (2,2, FALSE);
-       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
-       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("User name")),
-                                  0,1,0,1);
-       gtk_table_attach_defaults (GTK_TABLE(table),field_name_label (_("Password")),
-                                  0,1,1,2);
-       gtk_table_attach_defaults (GTK_TABLE(table),priv->username,
-                                  1,2,0,1);
-       gtk_table_attach_defaults (GTK_TABLE(table),priv->password,
-                                  1,2,1,2);
-       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
-       gtk_container_add (GTK_CONTAINER (alignment), table);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-       gtk_container_add (GTK_CONTAINER (frame), alignment);
-       gtk_box_pack_start (GTK_BOX(page), frame, FALSE, FALSE, 0);
-       
-       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
-       gtk_container_add (GTK_CONTAINER (alignment), page);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 12, 12, 12);
-       gtk_widget_show_all (alignment);
-       gtk_notebook_append_page (GTK_NOTEBOOK(priv->notebook), alignment, NULL);
-       
-       gtk_notebook_set_tab_label_text (GTK_NOTEBOOK(priv->notebook), alignment,
-                                     _("Identity"));
-       /* gtk_assistant_set_page_type (GTK_ASSISTANT(self), alignment, */
-       /*                           GTK_ASSISTANT_PAGE_CONTENT); */
-       /* gtk_assistant_set_page_complete (GTK_ASSISTANT(self), */
-       /*                               alignment, FALSE); */
-}      
-
-
-static void
-receiving_page_update_completeness (GtkEditable *editable,
-                                   ModestAccountAssistant *self)
-{
-       ModestAccountAssistantPrivate *priv;
-       const gchar *txt;
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-
-       txt = gtk_entry_get_text (GTK_ENTRY (priv->store_server_widget));
-       if (!txt || strlen(txt) == 0) {
-               set_current_page_complete (self, FALSE);
-               return;
-       }
-       set_current_page_complete (self, TRUE);
-}
-
-static void
-add_receiving_page (ModestAccountAssistant *self)
-{
-       GtkWidget *page, *vbox;
-       GtkWidget *table, *frame;
-       GtkWidget *alignment;
-       ModestAccountAssistantPrivate *priv;
-       GtkWidget *label;
-       const gchar *tag = MODEST_PROTOCOL_REGISTRY_STORE_PROTOCOLS;
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-       page = gtk_alignment_new (0.5, 0.0, 1.0, 0.0);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (page), 12, 12, 12, 12);
-       vbox = gtk_vbox_new (FALSE, 24);
-       gtk_container_add (GTK_CONTAINER (page), vbox);
-
-       /* Warning label on top */
-       label = gtk_label_new (_("Setting details for the incoming mail server."));
-       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_box_pack_start (GTK_BOX(vbox),
-                           label,
-                           FALSE, FALSE, 0);
-
-       /* Note: This ModestPairList* must exist for as long as the combo
-        * that uses it, because the ModestComboBox uses the ID opaquely, 
-        * so it can't know how to manage its memory. */
-       priv->receiving_transport_store_protos = modest_gnome_utils_get_protocols_pair_list (tag);
-       priv->store_protocol_combo = modest_combo_box_new (priv->receiving_transport_store_protos, g_str_equal);
-       priv->store_server_widget = gtk_entry_new ();
-
-       /* Setup incoming server frame */
-       frame = gtk_frame_new (NULL);
-       label = gtk_label_new (NULL);
-       gtk_label_set_markup (GTK_LABEL (label), _("<b>Incoming server</b>"));
-       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
-       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
-       table = gtk_table_new (2, 2, FALSE);
-       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
-       gtk_table_attach (GTK_TABLE (table), field_name_label (_("Account type")),
-                         0, 1, 0, 1,
-                         GTK_FILL, 0, 0, 0);
-       alignment = gtk_alignment_new (0.0, 0.5, 1.0, 1.0);
-       gtk_container_add (GTK_CONTAINER (alignment), priv->store_protocol_combo);
-       gtk_table_attach (GTK_TABLE (table), alignment,
-                         1, 2, 0, 1,
-                         GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 0, 0);
-       gtk_table_attach (GTK_TABLE (table), field_name_label (_("Incoming server")),
-                         0, 1, 1, 2,
-                         GTK_FILL, GTK_FILL, 0, 0);
-       gtk_table_attach (GTK_TABLE (table), priv->store_server_widget,
-                         1, 2, 1, 2,
-                         GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-       alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
-       gtk_container_add (GTK_CONTAINER (alignment), table);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-       gtk_container_add (GTK_CONTAINER (frame), alignment);
-       gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
-
-       /* Setup security information widgets */
-       tag = MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS;
-       priv->security_protos = modest_gnome_utils_get_protocols_pair_list (tag);
-       priv->store_security_combo = modest_combo_box_new (priv->security_protos, g_str_equal);
-       priv->store_secure_auth = gtk_check_button_new ();
-
-       /* Setup security frame */
-       frame = gtk_frame_new (NULL);
-       label = gtk_label_new (NULL);
-       gtk_label_set_markup (GTK_LABEL (label), _("<b>Security options</b>"));
-       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
-       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
-       table = gtk_table_new (2, 2, FALSE);
-       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
-       gtk_table_attach (GTK_TABLE (table), field_name_label (_("Secure connection")),
-                         0, 1, 0, 1,
-                         GTK_FILL, 0, 0, 0);
-       gtk_table_attach (GTK_TABLE (table), priv->store_security_combo,
-                         1, 2, 0, 1,
-                         GTK_FILL | GTK_EXPAND, 0, 0, 0);
-       gtk_table_attach (GTK_TABLE (table), field_name_label (_("Use secure authentication")),
-                         0, 1, 1, 2,
-                         GTK_FILL, GTK_FILL, 0, 0);
-       gtk_table_attach_defaults (GTK_TABLE (table), priv->store_secure_auth,
-                                  1, 2, 1, 2);
-       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
-       gtk_container_add (GTK_CONTAINER (alignment), table);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-       gtk_container_add (GTK_CONTAINER (frame), alignment);
-       gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, FALSE, 0);
-       
-       /* Setup assistant page */
-       gtk_notebook_append_page (GTK_NOTEBOOK(priv->notebook), page, NULL);
-               
-       gtk_notebook_set_tab_label_text (GTK_NOTEBOOK(priv->notebook), page,
-                                        _("Incoming details"));
-       gtk_widget_show_all (page);
-}
-
-
-
-
-static void
-on_sending_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self)
-{
-       ModestAccountAssistantPrivate *priv;
-       gchar *chosen;
-       ModestProtocol *proto;
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-
-       chosen = gtk_combo_box_get_active_text (GTK_COMBO_BOX(combo));
-
-       if (priv->transport_widget)
-               gtk_container_remove (GTK_CONTAINER(priv->transport_holder),
-                                     priv->transport_widget);
-
-       proto = modest_protocol_registry_get_protocol_by_name (modest_runtime_get_protocol_registry (),
-                                                              MODEST_PROTOCOL_REGISTRY_TRANSPORT_PROTOCOLS,
-                                                              chosen);
-       priv->transport_widget = modest_transport_widget_new (modest_protocol_get_type_id (proto));
-
-       gtk_container_add (GTK_CONTAINER(priv->transport_holder),
-                          priv->transport_widget);
-
-       gtk_widget_show_all (priv->transport_holder);
-       on_assistant_changed (NULL, MODEST_ACCOUNT_ASSISTANT (self));
-}
-
-
-
-static void
-add_sending_page (ModestAccountAssistant *self)
-{
-       GtkWidget *page, *vbox;
-       GtkWidget *table, *frame;
-       GtkWidget *alignment;
-       ModestAccountAssistantPrivate *priv;
-       GtkWidget *label;
-       const gchar *tag = MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS;
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-       page = gtk_alignment_new (0.5, 0.0, 1.0, 0.0);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (page), 12, 12, 12, 12);
-       vbox = gtk_vbox_new (FALSE, 24);
-       gtk_container_add (GTK_CONTAINER (page), vbox);
-
-       /* Warning label on top */
-       label = gtk_label_new (_("Settings for the outgoing mail server"));
-       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_box_pack_start (GTK_BOX(vbox),
-                           label,
-                           FALSE, FALSE, 0);
-
-       priv->transport_server_widget = gtk_entry_new ();
-       /* Setup incoming server frame */
-       frame = gtk_frame_new (NULL);
-       label = gtk_label_new (NULL);
-       gtk_label_set_markup (GTK_LABEL (label), _("<b>Outgoing server</b>"));
-       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
-       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
-       table = gtk_table_new (2, 2, FALSE);
-       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
-       gtk_table_attach (GTK_TABLE (table), field_name_label (_("Outgoing server (SMTP)")),
-                         0, 1, 0, 1,
-                         GTK_FILL, GTK_FILL, 0, 0);
-       gtk_table_attach (GTK_TABLE (table), priv->transport_server_widget,
-                         1, 2, 0, 1,
-                         GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-       alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
-       gtk_container_add (GTK_CONTAINER (alignment), table);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-       gtk_container_add (GTK_CONTAINER (frame), alignment);
-       gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
-
-       /* Setup security information widgets */
-       priv->transport_security_protos = modest_gnome_utils_get_protocols_pair_list (tag);
-       priv->transport_security_combo = modest_combo_box_new (priv->security_protos, g_str_equal);
-       tag = MODEST_PROTOCOL_REGISTRY_AUTH_PROTOCOLS;
-       priv->transport_auth_protos = modest_gnome_utils_get_protocols_pair_list (tag);
-       priv->transport_secure_auth_combo = GTK_WIDGET (modest_combo_box_new (priv->transport_auth_protos, g_str_equal));
-
-       /* Setup security frame */
-       frame = gtk_frame_new (NULL);
-       label = gtk_label_new (NULL);
-       gtk_label_set_markup (GTK_LABEL (label), _("<b>Security options</b>"));
-       gtk_frame_set_label_widget (GTK_FRAME (frame), label);
-       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
-       table = gtk_table_new (2, 2, FALSE);
-       gtk_table_set_col_spacings (GTK_TABLE (table), 6);
-       gtk_table_set_row_spacings (GTK_TABLE (table), 3);
-       gtk_table_attach (GTK_TABLE (table), field_name_label (_("Secure connection")),
-                         0, 1, 0, 1,
-                         GTK_FILL, 0, 0, 0);
-       gtk_table_attach (GTK_TABLE (table), priv->transport_security_combo,
-                         1, 2, 0, 1,
-                         GTK_FILL | GTK_EXPAND, 0, 0, 0);
-       gtk_table_attach (GTK_TABLE (table), field_name_label (_("Secure authentication")),
-                         0, 1, 1, 2,
-                         GTK_FILL, GTK_FILL, 0, 0);
-       gtk_table_attach_defaults (GTK_TABLE (table), priv->transport_secure_auth_combo,
-                                  1, 2, 1, 2);
-       alignment = gtk_alignment_new (0.0, 0.0, 1.0, 0.0);
-       gtk_container_add (GTK_CONTAINER (alignment), table);
-       gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-       gtk_container_add (GTK_CONTAINER (frame), alignment);
-       gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, FALSE, 0);
-       
-       /* Setup assistant page */
-       gtk_notebook_append_page (GTK_NOTEBOOK(priv->notebook), page, NULL);
-               
-       gtk_notebook_set_tab_label_text (GTK_NOTEBOOK(priv->notebook), page,
-                                        _("Outgoing details"));
-       gtk_widget_show_all (page);
-
-}
-
-static void
-modest_account_assistant_init (ModestAccountAssistant *obj)
-{      
-       ModestAccountAssistantPrivate *priv;    
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(obj);       
-
-       priv->account_mgr       = NULL;
-
-       priv->store_server_widget       = NULL;
-       priv->transport_widget  = NULL;
-       priv->settings = modest_account_settings_new ();
-       priv->dirty = FALSE;
-
-       priv->notebook = gtk_notebook_new ();
-       gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE);
-
-       g_object_set (obj, "wizard-notebook", priv->notebook, NULL);
-       g_object_set (obj, "wizard-name", _("Account wizard"), NULL);
-
-       add_intro_page (obj);
-       add_identity_page (obj); 
-       add_receiving_page (obj); 
-       add_sending_page (obj);
-
-       gtk_notebook_set_current_page (GTK_NOTEBOOK(priv->notebook), 0);
-       gtk_window_set_resizable (GTK_WINDOW(obj), TRUE);       
-       gtk_window_set_default_size (GTK_WINDOW(obj), 400, 400);
-       
-       gtk_window_set_modal (GTK_WINDOW(obj), TRUE);
-
-       g_signal_connect_after (G_OBJECT (obj), "response",
-                               G_CALLBACK (on_response), obj);
-
-       /* This is to show a confirmation dialog when the user hits cancel */
-       g_signal_connect (G_OBJECT (obj), "response",
-                         G_CALLBACK (on_response_before), obj);
-
-       g_signal_connect (G_OBJECT (obj), "delete-event",
-                         G_CALLBACK (on_delete_event), obj);
-}
-
-static void
-modest_account_assistant_finalize (GObject *obj)
-{
-       ModestAccountAssistantPrivate *priv;
-               
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(obj);
-       
-       if (priv->account_mgr) {
-               g_object_unref (G_OBJECT(priv->account_mgr));
-               priv->account_mgr = NULL;
-       }
-
-       if (priv->settings) {
-               g_object_unref (G_OBJECT (priv->settings));
-               priv->settings = NULL;
-       }
-       
-       /* These had to stay alive for as long as the comboboxes that used them: */
-       modest_pair_list_free (priv->receiving_transport_store_protos);
-       modest_pair_list_free (priv->sending_transport_store_protos);
-
-       G_OBJECT_CLASS(parent_class)->finalize (obj);
-}
-
-static const gchar*
-get_account_name (ModestAccountAssistant *self)
-{
-       ModestAccountAssistantPrivate *priv;
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-
-       return gtk_entry_get_text (GTK_ENTRY(priv->account_name));
-}
-
-static const gchar*
-get_fullname (ModestAccountAssistant *self)
-{
-       ModestAccountAssistantPrivate *priv;
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-
-       return gtk_entry_get_text (GTK_ENTRY(priv->fullname));
-}
-
-
-
-static const gchar*
-get_email (ModestAccountAssistant *self)
-{
-       ModestAccountAssistantPrivate *priv;
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-
-       return gtk_entry_get_text (GTK_ENTRY(priv->email));
-}
-
-
-
-/*
- * FIXME: hmmmm this a Camel internal thing, should move this
- * somewhere else
- */
-static gchar*
-get_account_uri (ModestProtocolType proto, const gchar* path)
-{
-       CamelURL *url;
-       gchar *uri;
-       
-       if (proto == modest_protocol_registry_get_mbox_type_id ()) {
-               url = camel_url_new ("mbox:", NULL);
-       } else {
-               if (proto == modest_protocol_registry_get_maildir_type_id ())
-                       url = camel_url_new ("maildir:", NULL);
-               else
-                       g_return_val_if_reached (NULL);
-       }
-
-       camel_url_set_path (url, path);
-       uri = camel_url_to_string (url, 0);
-       camel_url_free (url);
-
-       return uri;     
-}
-
-static gchar*
-get_new_server_account_name (ModestAccountMgr* acc_mgr, 
-                            ModestProtocolType proto_id,
-                            const gchar *username, 
-                            const gchar *servername)
-{
-       gchar *name;
-       const gchar *proto_name;
-       gint  i = 0;
-       ModestProtocolRegistry *registry;
-       ModestProtocol *proto;
-
-       registry = modest_runtime_get_protocol_registry ();
-       proto = modest_protocol_registry_get_protocol_by_type (registry, proto_id);
-       proto_name = modest_protocol_get_name (proto);
-
-       while (TRUE) {
-               name = g_strdup_printf ("%s:%d", proto_name, i++);
-
-               if (modest_account_mgr_account_exists (acc_mgr, name, TRUE))
-                       g_free (name);
-               else
-                       break;
-       }
-       return name;
-}
-
-
-
-GtkWidget*
-modest_account_assistant_new (ModestAccountMgr *account_mgr)
-{
-       GObject *obj;
-       ModestAccountAssistant *self;
-       ModestAccountAssistantPrivate *priv;
-
-       g_return_val_if_fail (account_mgr, NULL);
-       
-       obj  = g_object_new(MODEST_TYPE_ACCOUNT_ASSISTANT, NULL);
-       self = MODEST_ACCOUNT_ASSISTANT(obj);
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-
-       g_object_ref (account_mgr);
-       priv->account_mgr = account_mgr;
-
-       return GTK_WIDGET(self);
-}
-
-static gchar*
-get_entered_account_title (ModestAccountAssistant *self)
-{
-       ModestAccountAssistantPrivate *priv;
-       const gchar* account_title;
-
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
-       account_title = gtk_entry_get_text (GTK_ENTRY (priv->account_name));
-
-       if (!account_title || (strlen (account_title) == 0)) {
-               return NULL;
-       } else {
-               /* Strip it of whitespace at the start and end: */
-               gchar *result = g_strdup (account_title);
-               result = g_strstrip (result);
-               
-               if (!result)
-                       return NULL;
-                       
-               if (strlen (result) == 0) {
-                       g_free (result);
-                       return NULL;    
-               }
-               
-               return result;
-       }
-}
-
-static gboolean
-on_before_next (ModestWizardDialog *dialog, GtkWidget *current_page, GtkWidget *next_page)
-{
-       ModestAccountAssistant *self = MODEST_ACCOUNT_ASSISTANT (dialog);
-       ModestAccountAssistantPrivate *priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE (self);
-
-       /* Do extra validation that couldn't be done for every key press,
-        * either because it was too slow,
-        * or because it requires interaction:
-        */
-       if(!next_page) /* This is NULL when this is a click on Finish. */
-       {
-               save_to_settings (self);
-               modest_account_mgr_add_account_from_settings (modest_runtime_get_account_mgr (), priv->settings);
-       }
-       
-       
-       return TRUE;
-}
-
-static gint 
-get_serverport_incoming(ModestProtocolType protocol,
-                       ModestProtocolType security)
-{
-       int serverport_incoming = 0;
-
-       /* We don't check for SMTP here as that is impossible for an incoming server. */
-       if ((security == modest_protocol_registry_get_none_connection_type_id ()) ||
-           (security == modest_protocol_registry_get_tls_connection_type_id ()) ||
-           (security == modest_protocol_registry_get_tlsop_connection_type_id ())) {
-
-               if (protocol == MODEST_PROTOCOLS_STORE_IMAP) {
-                       serverport_incoming = 143;
-               } else if (protocol == MODEST_PROTOCOLS_STORE_POP) {
-                       serverport_incoming = 110;
-               }
-       } else if (security == modest_protocol_registry_get_ssl_connection_type_id ()) {
-               if (protocol == MODEST_PROTOCOLS_STORE_IMAP) {
-                       serverport_incoming = 993;
-               } else if  (protocol == MODEST_PROTOCOLS_STORE_POP) {
-                       serverport_incoming = 995;
-               }
-       }
-
-       return serverport_incoming;
-}
-
-static GList* 
-check_for_supported_auth_methods (ModestAccountAssistant* self)
-{
-       GError *error = NULL;
-       ModestProtocolType protocol;
-       const gchar* hostname;
-       const gchar* username;
-       gchar *store_protocol_name, *store_security_name;
-       ModestProtocolType security_protocol;
-       int port_num; 
-       GList *list_auth_methods;
-       ModestAccountAssistantPrivate *priv;
-       ModestProtocolRegistry *registry;
-       ModestProtocol *proto;
-       
-       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE (self);
-       hostname = gtk_entry_get_text(GTK_ENTRY(priv->store_server_widget));
-       username = gtk_entry_get_text(GTK_ENTRY(priv->username));
-       store_protocol_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->store_protocol_combo));
-       registry = modest_runtime_get_protocol_registry ();
-       proto = modest_protocol_registry_get_protocol_by_name (registry,
-                                                              MODEST_PROTOCOL_REGISTRY_STORE_PROTOCOLS,
-                                                              store_protocol_name);
-       protocol = modest_protocol_get_type_id (proto);
-
-       g_free (store_protocol_name);
-       store_security_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->store_security_combo));
-
-       proto = modest_protocol_registry_get_protocol_by_name (registry,
-                                                              MODEST_PROTOCOL_REGISTRY_CONNECTION_PROTOCOLS,
-                                                              store_security_name);
-       security_protocol = modest_protocol_get_type_id (proto);
-       g_free (store_security_name);
-       port_num = get_serverport_incoming(protocol, security_protocol); 
-       list_auth_methods = modest_utils_get_supported_secure_authentication_methods (protocol, hostname, port_num, 
-                                                                                     username, GTK_WINDOW (self), &error);
-
-       if (list_auth_methods) {
-               /* TODO: Select the correct method */
-               GList* list = NULL;
-               GList* method;
-               for (method = list_auth_methods; method != NULL; method = g_list_next(method)) {
-                       ModestProtocolType auth = (ModestProtocolType) (GPOINTER_TO_INT(method->data));
-                       if (modest_protocol_registry_protocol_type_is_secure (registry, auth)) {
-                               list = g_list_append(list, GINT_TO_POINTER(auth));
-                       }
-               }
-
-               g_list_free(list_auth_methods);
-
-               if (list)
-                       return list;
-       }
-
-       if(error != NULL)
-               g_error_free(error);
-
-       return NULL;
-}
-
-static ModestProtocolType check_first_supported_auth_method(ModestAccountAssistant* self)
-{
-       ModestProtocolType result = MODEST_PROTOCOLS_AUTH_PASSWORD;
-
-       GList* methods = check_for_supported_auth_methods(self);
-       if (methods)
-       {
-               /* Use the first one: */
-               result = (ModestProtocolType) (GPOINTER_TO_INT(methods->data));
-               g_list_free(methods);
-       }
-
-       return result;
-}
-
-/**
- * save_to_settings:
- * @self: a #ModestEasysetupWizardDialog
- *
- * takes information from all the wizard and stores it in settings
- */
-static void
-save_to_settings (ModestAccountAssistant *self)
-{
-       ModestAccountAssistantPrivate *priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE (self);
-       gchar* display_name;
-       const gchar *username, *password;
-       gchar *store_hostname, *transport_hostname;
-       guint store_port, transport_port;
-       ModestProtocolType store_protocol, transport_protocol;
-       ModestProtocolType store_security, transport_security;
-       ModestProtocolType store_auth_protocol, transport_auth_protocol;
-       ModestServerAccountSettings *store_settings, *transport_settings;
-       const gchar *fullname, *email_address;
-
-       /* username and password (for both incoming and outgoing): */
-       username = gtk_entry_get_text (GTK_ENTRY (priv->username));
-       password = gtk_entry_get_text (GTK_ENTRY (priv->password));
-
-       /* Incoming server: */
-       /* Note: We need something as default for the ModestTransportStoreProtocol* values, 
-        * or modest_account_mgr_add_server_account will fail. */
-       store_port = 0;
-       store_protocol = MODEST_PROTOCOLS_STORE_POP;
-       store_security = MODEST_PROTOCOLS_CONNECTION_NONE;
-       store_auth_protocol = MODEST_PROTOCOLS_AUTH_NONE;
-
-       /* Use custom pages because no preset was specified: */
-       store_hostname = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->store_server_widget) ));                
-       store_protocol = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_protocol_combo));
-       store_security = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->store_security_combo));
-
-       /* The UI spec says: 
-        * If secure authentication is unchecked, allow sending username and password also as plain text.
-        * If secure authentication is checked, require one of the secure methods during 
-        * connection: SSL, TLS, CRAM-MD5 etc. */
-       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->store_secure_auth)) &&
-           !modest_protocol_registry_protocol_type_is_secure(modest_runtime_get_protocol_registry (),
-                                                             store_security)) {
-               store_auth_protocol = check_first_supported_auth_method (self);
-       } else {
-               store_auth_protocol = MODEST_PROTOCOLS_AUTH_PASSWORD;
-       }
-
-       /* now we store the store account settings */
-       store_settings = modest_account_settings_get_store_settings (priv->settings);
-       modest_server_account_settings_set_hostname (store_settings, store_hostname);
-       modest_server_account_settings_set_username (store_settings, username);
-       modest_server_account_settings_set_password (store_settings, password);
-       modest_server_account_settings_set_protocol (store_settings, store_protocol);
-       modest_server_account_settings_set_security_protocol (store_settings, store_security);
-       modest_server_account_settings_set_auth_protocol (store_settings, store_auth_protocol);
-       if (store_port != 0)
-               modest_server_account_settings_set_port (store_settings, store_port);
-
-       g_object_unref (store_settings);
-       g_free (store_hostname);
-       
-       /* Outgoing server: */
-       transport_hostname = NULL;
-       transport_protocol = MODEST_PROTOCOLS_STORE_POP;
-       transport_security = MODEST_PROTOCOLS_CONNECTION_NONE;
-       transport_auth_protocol = MODEST_PROTOCOLS_AUTH_NONE;
-       transport_port = 0;
-       
-       transport_hostname = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->transport_server_widget) ));
-       transport_protocol = MODEST_PROTOCOLS_TRANSPORT_SMTP; /* It's always SMTP for outgoing. */
-       transport_security = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_security_combo));
-       transport_auth_protocol = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->transport_secure_auth_combo));
-           
-       /* now we transport the transport account settings */
-       transport_settings = modest_account_settings_get_transport_settings (priv->settings);
-       modest_server_account_settings_set_hostname (transport_settings, transport_hostname);
-       modest_server_account_settings_set_username (transport_settings, username);
-       modest_server_account_settings_set_password (transport_settings, password);
-       modest_server_account_settings_set_protocol (transport_settings, transport_protocol);
-       modest_server_account_settings_set_security_protocol (transport_settings, transport_security);
-       modest_server_account_settings_set_auth_protocol (transport_settings, transport_auth_protocol);
-       if (transport_port != 0)
-               modest_server_account_settings_set_port (transport_settings, transport_port);
-
-       g_object_unref (transport_settings);
-       g_free (transport_hostname);
-       
-       fullname = gtk_entry_get_text (GTK_ENTRY (priv->fullname));
-       email_address = gtk_entry_get_text (GTK_ENTRY (priv->email));
-       modest_account_settings_set_fullname (priv->settings, fullname);
-       modest_account_settings_set_email_address (priv->settings, email_address);
-       /* we don't set retrieve type to preserve advanced settings if any. By default account settings
-          are set to headers only */
-       
-       display_name = get_entered_account_title (self);
-       modest_account_settings_set_display_name (priv->settings, display_name);
-       g_free (display_name);
-
-}
-
-static void 
-on_response (ModestWizardDialog *wizard_dialog,
-            gint response_id,
-            gpointer user_data)
-{
-       ModestAccountAssistant *self = MODEST_ACCOUNT_ASSISTANT (wizard_dialog);
-
-       invoke_enable_buttons_vfunc (self);
-}
-
-static void 
-on_response_before (ModestWizardDialog *wizard_dialog,
-                    gint response_id,
-                    gpointer user_data)
-{
-       ModestAccountAssistant *self = MODEST_ACCOUNT_ASSISTANT (wizard_dialog);
-       ModestAccountAssistantPrivate *priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(wizard_dialog);
-
-       if (response_id == GTK_RESPONSE_CANCEL) {
-               /* This is mostly copied from
-                * src/maemo/modest-account-settings-dialog.c */
-               if (priv->dirty) {
-                       gint dialog_response = modest_platform_run_confirmation_dialog (GTK_WINDOW (self), 
-                                                                                       _("imum_nc_wizard_confirm_lose_changes"));
-
-                       if (dialog_response != GTK_RESPONSE_OK) {
-                               /* Don't let the dialog close */
-                               g_signal_stop_emission_by_name (wizard_dialog, "response");
-                       }
-               }
-       }
-}
-