-/* modest-transport-widget.c */
-
-/* insert (c)/licensing information) */
+/* 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 <widgets/modest-combo-box.h>
-#include <modest-protocol-info.h>
#include "modest-transport-widget.h"
#include <string.h>
typedef struct _ModestTransportWidgetPrivate ModestTransportWidgetPrivate;
struct _ModestTransportWidgetPrivate {
- ModestProtocol proto;
+ ModestProtocolType proto;
GtkWidget *servername;
GtkWidget *username;
GtkWidget *auth;
GtkWidget *remember_pwd;
+
+ ModestPairList *transport_store_protos;
+ ModestPairList *auth_protos;
};
#define MODEST_TRANSPORT_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
MODEST_TYPE_TRANSPORT_WIDGET, \
ModestTransportWidgetPrivate *priv;
priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(obj);
- priv->proto = MODEST_PROTOCOL_UNKNOWN;
+ priv->proto = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
}
static void
modest_transport_widget_finalize (GObject *obj)
{
+ ModestTransportWidgetPrivate *priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(obj);
+
+ /* These had to stay alive for as long as the comboboxes that used them: */
+ modest_pair_list_free (priv->transport_store_protos);
+
G_OBJECT_CLASS(parent_class)->finalize (obj);
}
{
ModestTransportWidgetPrivate *priv;
GtkWidget *label, *box, *hbox, *combo;
- ModestPairList *protos;
+ const gchar *tag = MODEST_PROTOCOL_REGISTRY_TRANSPORT_PROTOCOLS;
priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
box = gtk_vbox_new (FALSE, 6);
gtk_label_set_text (GTK_LABEL(label),_("Connection type:"));
gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
- 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_gnome_utils_get_protocols_pair_list (tag);
+ combo = modest_combo_box_new (priv->transport_store_protos, g_str_equal);
gtk_box_pack_start (GTK_BOX(hbox), combo, FALSE, FALSE,0);
gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);
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. */
+ tag = MODEST_PROTOCOL_REGISTRY_AUTH_PROTOCOLS;
+ priv->auth_protos = modest_gnome_utils_get_protocols_pair_list (tag);
+ combo = modest_combo_box_new (priv->auth_protos, g_str_equal);
gtk_box_pack_start (GTK_BOX(hbox), combo, FALSE, FALSE, 0);
priv->remember_pwd =
GtkWidget*
-modest_transport_widget_new (ModestProtocol proto)
+modest_transport_widget_new (ModestProtocolType proto)
{
GObject *obj;
GtkWidget *w;
priv->proto = proto;
- if (proto == MODEST_PROTOCOL_TRANSPORT_SMTP)
+ if (proto == MODEST_PROTOCOLS_TRANSPORT_SMTP)
w = smtp_configuration (self);
else
w = gtk_label_new ("");
}
-ModestProtocol
+ModestProtocolType
modest_transport_widget_get_proto (ModestTransportWidget *self)
{
ModestTransportWidgetPrivate *priv;
- g_return_val_if_fail (self, MODEST_PROTOCOL_UNKNOWN);
+ g_return_val_if_fail (self, MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
return priv->proto;