X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fgnome%2Fmodest-account-assistant.c;h=02834ed52b5eb4c3c8c9d6c47e8d6f99115692f2;hb=a8712a6b492bdc754ef169452802773ec89376cd;hp=7283af5435faf5657ee7ebc1c81e49a7b6332156;hpb=7dd43ed0b3b827799299291a53300db93d9b2711;p=modest diff --git a/src/gnome/modest-account-assistant.c b/src/gnome/modest-account-assistant.c index 7283af5..02834ed 100644 --- a/src/gnome/modest-account-assistant.c +++ b/src/gnome/modest-account-assistant.c @@ -64,7 +64,10 @@ struct _ModestAccountAssistantPrivate { GtkWidget *transport_widget; GtkWidget *transport_holder; - GtkWidget *store_holder; + GtkWidget *store_holder; + + ModestPairList *receiving_transport_store_protos; + ModestPairList *sending_transport_store_protos; }; #define MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ @@ -260,7 +263,7 @@ on_receiving_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self { ModestAccountAssistantPrivate *priv; gchar *chosen; - ModestProtocol proto; + ModestTransportStoreProtocol proto; priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self); chosen = gtk_combo_box_get_active_text (GTK_COMBO_BOX(combo)); @@ -268,7 +271,7 @@ on_receiving_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self gtk_container_remove (GTK_CONTAINER(priv->store_holder), priv->store_widget); - proto = modest_protocol_info_get_protocol (chosen); + proto = modest_protocol_info_get_transport_store_protocol (chosen); /* FIXME: we could have these widgets cached instead of creating them every time */ @@ -293,7 +296,6 @@ static void add_receiving_page (ModestAccountAssistant *self) { GtkWidget *page, *box, *combo; - ModestPairList *protos; ModestAccountAssistantPrivate *priv; priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self); @@ -308,9 +310,12 @@ add_receiving_page (ModestAccountAssistant *self) gtk_label_new(_("Server type")), FALSE,FALSE,6); - protos = modest_protocol_info_get_protocol_pair_list (MODEST_PROTOCOL_TYPE_STORE); - combo = modest_combo_box_new (protos, g_str_equal); - modest_pair_list_free (protos); + /* 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_protocol_info_get_transport_store_protocol_pair_list (); + combo = modest_combo_box_new (priv->receiving_transport_store_protos, g_str_equal); g_signal_connect (G_OBJECT(combo), "changed", G_CALLBACK(on_receiving_combo_box_changed), self); @@ -355,7 +360,7 @@ on_sending_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self) gtk_container_remove (GTK_CONTAINER(priv->transport_holder), priv->transport_widget); priv->transport_widget = - modest_transport_widget_new (modest_protocol_info_get_protocol(chosen)); + modest_transport_widget_new (modest_protocol_info_get_transport_store_protocol(chosen)); gtk_container_add (GTK_CONTAINER(priv->transport_holder), priv->transport_widget); @@ -369,7 +374,6 @@ static void add_sending_page (ModestAccountAssistant *self) { GtkWidget *page, *box, *combo; - ModestPairList *protos; ModestAccountAssistantPrivate *priv; priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self); @@ -384,9 +388,11 @@ add_sending_page (ModestAccountAssistant *self) gtk_label_new(_("Server type")), FALSE,FALSE,0); - protos = modest_protocol_info_get_protocol_pair_list (MODEST_PROTOCOL_TYPE_TRANSPORT); - combo = modest_combo_box_new (protos, g_str_equal); - modest_pair_list_free (protos); + /* 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->sending_transport_store_protos = modest_protocol_info_get_transport_store_protocol_pair_list (); + combo = modest_combo_box_new (priv->sending_transport_store_protos, g_str_equal); g_signal_connect (G_OBJECT(combo), "changed", G_CALLBACK(on_sending_combo_box_changed), self); @@ -476,6 +482,10 @@ modest_account_assistant_finalize (GObject *obj) g_object_unref (G_OBJECT(priv->account_mgr)); priv->account_mgr = 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); } @@ -562,7 +572,7 @@ on_close (ModestAccountAssistant *self, gpointer user_data) * somewhere else */ static gchar* -get_account_uri (ModestProtocol proto, const gchar* path) +get_account_uri (ModestTransportStoreProtocol proto, const gchar* path) { CamelURL *url; gchar *uri; @@ -583,7 +593,7 @@ get_account_uri (ModestProtocol proto, const gchar* path) } static gchar* -get_new_server_account_name (ModestAccountMgr* acc_mgr, ModestProtocol proto, +get_new_server_account_name (ModestAccountMgr* acc_mgr, ModestTransportStoreProtocol proto, const gchar* username, const gchar *servername) { gchar *name; @@ -591,7 +601,7 @@ get_new_server_account_name (ModestAccountMgr* acc_mgr, ModestProtocol proto, while (TRUE) { name = g_strdup_printf ("%s:%d", - modest_protocol_info_get_protocol_name(proto), i++); + modest_protocol_info_get_transport_store_protocol_name(proto), i++); if (modest_account_mgr_account_exists (acc_mgr, name, TRUE)) g_free (name); else @@ -605,9 +615,9 @@ static void on_apply (ModestAccountAssistant *self, gpointer user_data) { ModestAccountAssistantPrivate *priv; - ModestProtocol proto = MODEST_PROTOCOL_UNKNOWN; - ModestSecureConnection security = MODEST_PROTOCOL_SECURITY_NONE; - ModestSecureAuthentication auth = MODEST_PROCOTOL_AUTH_NONE; + ModestTransportStoreProtocol proto = MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN; + ModestAuthProtocol security = MODEST_PROTOCOL_CONNECTION_NORMAL; + ModestConnectionProtocol auth = MODEST_PROTOCOL_AUTH_NONE; gchar *store_name, *transport_name; const gchar *account_name, *username, *servername, *path; ModestStoreWidget *store; @@ -631,8 +641,15 @@ on_apply (ModestAccountAssistant *self, gpointer user_data) modest_account_mgr_add_server_account_uri (priv->account_mgr, store_name, proto, uri); g_free (uri); } else - modest_account_mgr_add_server_account (priv->account_mgr, store_name, servername, - username, NULL, proto, security, auth); + modest_account_mgr_add_server_account (priv->account_mgr, + store_name, + servername, + 0, /* FIXME: does this mean default?*/ + username, + NULL, + proto, + security, + auth); /* create server account -> transport */ transport = MODEST_TRANSPORT_WIDGET(priv->transport_widget); @@ -647,9 +664,10 @@ on_apply (ModestAccountAssistant *self, gpointer user_data) transport_name = get_new_server_account_name (priv->account_mgr, proto,username, servername); modest_account_mgr_add_server_account (priv->account_mgr, - transport_name, servername, - username, NULL, - proto, security, auth); + transport_name, servername, + 0, /* FIXME: does this mean default?*/ + username, NULL, + proto, security, auth); /* create account */ account_name = get_account_name (self);