* all:
[modest] / src / gtk / modest-account-assistant.c
index cc4265a..0fbd6d5 100644 (file)
@@ -31,7 +31,8 @@
 #include "modest-account-assistant.h"
 #include "modest-store-widget.h"
 #include "modest-transport-widget.h"
-#include "modest-proto.h"
+#include "modest-text-utils.h"
+#include <modest-protocol-info.h>
 
 #include <string.h>
 
@@ -149,9 +150,11 @@ set_current_page_complete (ModestAccountAssistant *self, gboolean complete)
        gint pageno;
 
        pageno = gtk_assistant_get_current_page (GTK_ASSISTANT(self));
-       page   = gtk_assistant_get_nth_page (GTK_ASSISTANT(self), pageno);
 
-       gtk_assistant_set_page_complete (GTK_ASSISTANT(self), page, complete);
+       if (pageno != -1) {
+               page   = gtk_assistant_get_nth_page (GTK_ASSISTANT(self), pageno);
+               gtk_assistant_set_page_complete (GTK_ASSISTANT(self), page, complete);
+       }
 }
 
 
@@ -172,11 +175,10 @@ identity_page_update_completeness (GtkEditable *editable,
 
        /* FIXME: regexp check for email address */
        txt = gtk_entry_get_text (GTK_ENTRY(priv->email));
-       if (!txt || strlen(txt) == 0) {
+       if (!modest_text_utils_validate_email_address (txt))
                set_current_page_complete (self, FALSE);
-               return;
-       }
-       set_current_page_complete (self, TRUE);
+       else
+               set_current_page_complete (self, TRUE);
 }
 
 
@@ -237,13 +239,13 @@ receiving_page_update_completeness (GtkEditable *editable,
 
        priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
 
-       txt = modest_store_widget_get_username (priv->store_widget);
+       txt = modest_store_widget_get_username (MODEST_STORE_WIDGET (priv->store_widget));
        if (!txt || strlen(txt) == 0) {
                set_current_page_complete (self, FALSE);
                return;
        }
 
-       txt = modest_store_widget_get_servername (priv->store_widget);
+       txt = modest_store_widget_get_servername (MODEST_STORE_WIDGET (priv->store_widget));
        if (!txt || strlen(txt) == 0) {
                set_current_page_complete (self, FALSE);
                return;
@@ -256,21 +258,23 @@ on_receiving_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->store_widget)
                gtk_container_remove (GTK_CONTAINER(priv->store_holder),
                                      priv->store_widget);
+
+       proto = modest_protocol_info_get_protocol (chosen);
        
        /* FIXME: we could have these widgets cached instead of
           creating them every time */
-       priv->store_widget = modest_store_widget_new (priv->factory, chosen);
-       if (!strcmp (chosen, MODEST_PROTO_POP) || !strcmp (chosen, MODEST_PROTO_IMAP)) {
+       priv->store_widget = modest_store_widget_new (priv->factory, proto);
+       if (proto == MODEST_PROTOCOL_STORE_POP || proto == MODEST_PROTOCOL_STORE_IMAP) {
                g_signal_connect (priv->store_widget, 
                                  "data_changed", 
-                                 receiving_page_update_completeness, 
+                                 G_CALLBACK (receiving_page_update_completeness), 
                                  self);
                set_current_page_complete (self, FALSE);
        } else
@@ -317,7 +321,7 @@ add_receiving_page (ModestAccountAssistant *self)
                            TRUE, TRUE, 0);
 
        /* Force the selection */
-       on_receiving_combo_box_changed (combo, self);
+       on_receiving_combo_box_changed (GTK_COMBO_BOX (combo), self);
        
        gtk_assistant_append_page (GTK_ASSISTANT(self), page);
                
@@ -348,7 +352,7 @@ on_sending_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self)
                                      priv->transport_widget);
        
        priv->transport_widget = modest_transport_widget_new (priv->factory,
-                                                             chosen);
+                                                             modest_protocol_info_get_protocol(chosen));
 
        gtk_container_add (GTK_CONTAINER(priv->transport_holder),
                           priv->transport_widget);
@@ -392,7 +396,7 @@ add_sending_page (ModestAccountAssistant *self)
                            FALSE, FALSE, 0);
 
        /* Force the selection */
-       on_sending_combo_box_changed (combo, self);
+       on_sending_combo_box_changed (GTK_COMBO_BOX (combo), self);
 
        gtk_assistant_append_page (GTK_ASSISTANT(self), page);
                
@@ -559,8 +563,9 @@ static void
 on_apply (ModestAccountAssistant *self, gpointer user_data)
 {
        ModestAccountAssistantPrivate *priv;
+       ModestProtocol proto;
        gchar *store_name, *transport_name;
-       const gchar *account_name, *username, *servername, *proto;
+       const gchar *account_name, *username, *servername;
        ModestStoreWidget *store;
        ModestTransportWidget *transport;
 
@@ -568,19 +573,20 @@ on_apply (ModestAccountAssistant *self, gpointer user_data)
 
        /* create server account -> store */
        store = MODEST_STORE_WIDGET(priv->store_widget);
-       proto = modest_store_widget_get_proto (store);
+       proto    = modest_store_widget_get_proto (store);
        username = modest_store_widget_get_username (store);
        servername = modest_store_widget_get_servername (store);
-       store_name = g_strdup_printf ("%s:%s@%s", proto, username, servername);
+       store_name = g_strdup_printf ("%s:%s@%s", modest_protocol_info_get_protocol_name(proto),
+                                     username, servername);
        
        modest_account_mgr_add_server_account (priv->account_mgr, store_name, servername,
-                                               username, NULL, proto);
+                                              username, NULL, proto);
 
        /* create server account -> transport */
        transport = MODEST_TRANSPORT_WIDGET(priv->transport_widget);
        proto = modest_transport_widget_get_proto (transport);
-
-       if (!strcmp (proto, MODEST_PROTO_SMTP)) {
+       
+       if (proto == MODEST_PROTOCOL_TRANSPORT_SMTP) {
                servername = modest_transport_widget_get_servername (transport);
                if (modest_transport_widget_get_requires_auth (transport))
                        username = modest_transport_widget_get_username (transport);
@@ -591,8 +597,9 @@ on_apply (ModestAccountAssistant *self, gpointer user_data)
                servername = "localhost";
 
        }
-       transport_name = g_strdup_printf ("%s:%s@%s", proto, username, servername);
-       
+       transport_name = g_strdup_printf ("%s:%s@%s",
+                                         modest_protocol_info_get_protocol_name(proto),
+                                         username, servername);
        modest_account_mgr_add_server_account (priv->account_mgr,
                                                transport_name,
                                                servername,