X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-store-widget.c;h=f77a087c3aeaba2cd5f4bcab5b3b263a919729bf;hb=87596c5aa5517ac7ba37e50664a969fcaaea72f9;hp=e6d38a89da97084d03e679b9d9d7281a5d82fd65;hpb=8b32e3c6563bf130dfb5f675d227eaade6b98830;p=modest diff --git a/src/maemo/modest-store-widget.c b/src/maemo/modest-store-widget.c index e6d38a8..f77a087 100644 --- a/src/maemo/modest-store-widget.c +++ b/src/maemo/modest-store-widget.c @@ -48,12 +48,17 @@ struct _ModestStoreWidgetPrivate { GtkWidget *servername; GtkWidget *username; + + ModestPairList *security_protos; GtkWidget *security; + + ModestPairList *transport_store_protos; + GtkWidget *auth; GtkWidget *chooser; GtkWidget *remember_pwd; - ModestProtocol proto; + ModestTransportStoreProtocol proto; }; #define MODEST_STORE_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ MODEST_TYPE_STORE_WIDGET, \ @@ -116,7 +121,7 @@ modest_store_widget_init (ModestStoreWidget *obj) ModestStoreWidgetPrivate *priv; priv = MODEST_STORE_WIDGET_GET_PRIVATE(obj); - priv->proto = MODEST_PROTOCOL_UNKNOWN; + priv->proto = MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN; } @@ -196,7 +201,6 @@ on_entry_changed (GtkEntry *entry, gpointer user_data) static GtkWidget* imap_pop_configuration (ModestStoreWidget *self) { - ModestPairList *protos; ModestStoreWidgetPrivate *priv; GtkWidget *label, *box, *hbox; GtkWidget *combo; @@ -228,9 +232,11 @@ imap_pop_configuration (ModestStoreWidget *self) gtk_label_set_markup (GTK_LABEL(label),_("Security")); gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 0); - protos = modest_protocol_info_get_protocol_pair_list (MODEST_PROTOCOL_TYPE_SECURITY); - priv->security = 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->security_protos = modest_protocol_info_get_connection_protocol_pair_list (); + priv->security = modest_combo_box_new (priv->security_protos, g_str_equal); hbox = gtk_hbox_new (FALSE, 6); label = gtk_label_new(NULL); @@ -245,9 +251,11 @@ imap_pop_configuration (ModestStoreWidget *self) gtk_label_set_text (GTK_LABEL(label),_("Authentication:")); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 6); - protos = modest_protocol_info_get_protocol_pair_list (MODEST_PROTOCOL_TYPE_AUTH); - 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->transport_store_protos = modest_protocol_info_get_transport_store_protocol_pair_list (); + combo = modest_combo_box_new (priv->transport_store_protos, g_str_equal); gtk_box_pack_start (GTK_BOX(hbox), combo, FALSE, FALSE, 0); priv->remember_pwd = @@ -268,13 +276,19 @@ imap_pop_configuration (ModestStoreWidget *self) static void modest_store_widget_finalize (GObject *obj) { + ModestStoreWidgetPrivate *priv = MODEST_STORE_WIDGET_GET_PRIVATE(obj); + + /* These had to stay alive for as long as the comboboxes that used them: */ + modest_pair_list_free (priv->security_protos); + modest_pair_list_free (priv->transport_store_protos); + G_OBJECT_CLASS(parent_class)->finalize (obj); } GtkWidget* -modest_store_widget_new (ModestProtocol proto) +modest_store_widget_new (ModestTransportStoreProtocol proto) { GObject *obj; GtkWidget *w; @@ -347,12 +361,12 @@ modest_store_widget_get_servername (ModestStoreWidget *self) } -ModestProtocol +ModestTransportStoreProtocol modest_store_widget_get_proto (ModestStoreWidget *self) { ModestStoreWidgetPrivate *priv; - g_return_val_if_fail (self, MODEST_PROTOCOL_UNKNOWN); + g_return_val_if_fail (self, MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN); priv = MODEST_STORE_WIDGET_GET_PRIVATE(self); return priv->proto; @@ -364,7 +378,7 @@ modest_store_widget_get_path (ModestStoreWidget *self) { ModestStoreWidgetPrivate *priv; - g_return_val_if_fail (self, MODEST_PROTOCOL_UNKNOWN); + g_return_val_if_fail (self, NULL); priv = MODEST_STORE_WIDGET_GET_PRIVATE(self); if (GTK_IS_FILE_CHOOSER(priv->chooser))