*/
#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"
typedef struct _ModestAccountAssistantPrivate ModestAccountAssistantPrivate;
struct _ModestAccountAssistantPrivate {
- ModestWidgetFactory *factory;
ModestAccountMgr *account_mgr;
GtkWidget *account_name;
/* FIXME: we could have these widgets cached instead of
creating them every time */
- priv->store_widget = modest_store_widget_new (priv->factory, proto);
+ priv->store_widget = modest_store_widget_new (proto);
if (proto == MODEST_PROTOCOL_STORE_POP || proto == MODEST_PROTOCOL_STORE_IMAP) {
g_signal_connect (priv->store_widget,
"data_changed",
add_receiving_page (ModestAccountAssistant *self)
{
GtkWidget *page, *box, *combo;
-
+ ModestPairList *protos;
ModestAccountAssistantPrivate *priv;
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
gtk_label_new(_("Server type")),
FALSE,FALSE,6);
- combo = modest_widget_factory_get_combo_box (priv->factory,
- MODEST_COMBO_BOX_TYPE_STORE_PROTOS);
+ 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);
+
g_signal_connect (G_OBJECT(combo), "changed",
G_CALLBACK(on_receiving_combo_box_changed), self);
if (priv->transport_widget)
gtk_container_remove (GTK_CONTAINER(priv->transport_holder),
priv->transport_widget);
-
- priv->transport_widget = modest_transport_widget_new (priv->factory,
- modest_protocol_info_get_protocol(chosen));
+ priv->transport_widget =
+ modest_transport_widget_new (modest_protocol_info_get_protocol(chosen));
gtk_container_add (GTK_CONTAINER(priv->transport_holder),
priv->transport_widget);
add_sending_page (ModestAccountAssistant *self)
{
GtkWidget *page, *box, *combo;
-
+ ModestPairList *protos;
ModestAccountAssistantPrivate *priv;
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
gtk_box_pack_start (GTK_BOX(box),
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);
- combo = modest_widget_factory_get_combo_box (priv->factory,
- MODEST_COMBO_BOX_TYPE_TRANSPORT_PROTOS);
g_signal_connect (G_OBJECT(combo), "changed",
G_CALLBACK(on_sending_combo_box_changed), self);
static void
modest_account_assistant_init (ModestAccountAssistant *obj)
{
- ModestAccountAssistantPrivate *priv;
-
+ ModestAccountAssistantPrivate *priv;
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(obj);
- priv->factory = NULL;
+
priv->account_mgr = NULL;
priv->store_widget = NULL;
ModestAccountAssistantPrivate *priv;
priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(obj);
-
- if (priv->factory) {
- g_object_unref (G_OBJECT(priv->factory));
- priv->factory = NULL;
- }
if (priv->account_mgr) {
g_object_unref (G_OBJECT(priv->account_mgr));
priv->account_mgr = NULL;
}
-
-
G_OBJECT_CLASS(parent_class)->finalize (obj);
}
gint i = 0;
while (TRUE) {
- name = g_strdup_printf ("%s:%s@%s:%d",
- modest_protocol_info_get_protocol_name(proto),
- username ? username : "<none>",
- servername ? servername : "<none>",
- i++);
- if (modest_account_mgr_account_exists (acc_mgr, name, TRUE, NULL))
+ name = g_strdup_printf ("%s:%d",
+ modest_protocol_info_get_protocol_name(proto), i++);
+ if (modest_account_mgr_account_exists (acc_mgr, name, TRUE))
g_free (name);
else
break;
on_apply (ModestAccountAssistant *self, gpointer user_data)
{
ModestAccountAssistantPrivate *priv;
- ModestProtocol proto;
+ ModestProtocol proto, security, auth;
gchar *store_name, *transport_name;
const gchar *account_name, *username, *servername, *path;
ModestStoreWidget *store;
username = modest_store_widget_get_username (store);
servername = modest_store_widget_get_servername (store);
path = modest_store_widget_get_path (store);
+ security = modest_store_widget_get_security (store);
+ auth = modest_store_widget_get_auth (store);
store_name = get_new_server_account_name (priv->account_mgr, proto,username, servername);
if (proto == MODEST_PROTOCOL_STORE_MAILDIR ||
g_free (uri);
} else
modest_account_mgr_add_server_account (priv->account_mgr, store_name, servername,
- username, NULL, proto);
+ username, NULL, proto, security, auth);
/* create server account -> transport */
transport = MODEST_TRANSPORT_WIDGET(priv->transport_widget);
modest_account_mgr_add_server_account (priv->account_mgr,
transport_name, servername,
username, NULL,
- proto);
+ proto, security, auth);
/* create account */
account_name = get_account_name (self);
modest_account_mgr_add_account (priv->account_mgr,
account_name,
store_name,
- NULL, NULL);
+ transport_name);
modest_account_mgr_set_string (priv->account_mgr,
account_name,
MODEST_ACCOUNT_FULLNAME,
- get_fullname(self), FALSE, NULL);
+ get_fullname(self), FALSE);
modest_account_mgr_set_string (priv->account_mgr,
account_name,
MODEST_ACCOUNT_EMAIL,
- get_email(self), FALSE, NULL);
+ get_email(self), FALSE);
/* Frees */
g_free (store_name);
GtkWidget*
-modest_account_assistant_new (ModestAccountMgr *account_mgr, ModestWidgetFactory *factory)
+modest_account_assistant_new (ModestAccountMgr *account_mgr)
{
GObject *obj;
ModestAccountAssistant *self;
ModestAccountAssistantPrivate *priv;
-
- g_return_val_if_fail (factory, NULL);
+
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 (factory);
- priv->factory = factory;
-
+
g_object_ref (account_mgr);
priv->account_mgr = account_mgr;