aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>2009-08-27 23:56:42 +0800
committerSjoerd Simons <sjoerd.simons@collabora.co.uk>2009-08-28 23:57:46 +0800
commit91c325aabdb286f44729cb5ee7f69afd717dcca6 (patch)
treebb0f38beb5e70279efa7377ee232a210873fa9cd /src
parent04434d6dd476e0613685adecfbad9b03eb4c2e4e (diff)
downloadgsoc2013-empathy-91c325aabdb286f44729cb5ee7f69afd717dcca6.tar
gsoc2013-empathy-91c325aabdb286f44729cb5ee7f69afd717dcca6.tar.gz
gsoc2013-empathy-91c325aabdb286f44729cb5ee7f69afd717dcca6.tar.bz2
gsoc2013-empathy-91c325aabdb286f44729cb5ee7f69afd717dcca6.tar.lz
gsoc2013-empathy-91c325aabdb286f44729cb5ee7f69afd717dcca6.tar.xz
gsoc2013-empathy-91c325aabdb286f44729cb5ee7f69afd717dcca6.tar.zst
gsoc2013-empathy-91c325aabdb286f44729cb5ee7f69afd717dcca6.zip
Base the selected widget both on the CM and the protocol
Previously Empathy would select the custom account widget purely based on the protocol, the problem here is that these widgets assume one specific connection manager and its set of parameters. Which triggered bugs if the intended cm for a protocol isn't installed, but haze is and provides the protocol.
Diffstat (limited to 'src')
-rw-r--r--src/empathy-account-assistant.c3
-rw-r--r--src/empathy-accounts-dialog.c33
2 files changed, 5 insertions, 31 deletions
diff --git a/src/empathy-account-assistant.c b/src/empathy-account-assistant.c
index 54fe684a8..c8379ae02 100644
--- a/src/empathy-account-assistant.c
+++ b/src/empathy-account-assistant.c
@@ -324,8 +324,7 @@ account_assistant_protocol_changed_cb (GtkComboBox *chooser,
if (priv->first_resp == RESPONSE_CREATE_ACCOUNT)
empathy_account_settings_set_boolean (settings, "register", TRUE);
- widget_object = empathy_account_widget_new_for_protocol (proto->name,
- settings, TRUE);
+ widget_object = empathy_account_widget_new_for_protocol (settings, TRUE);
account_widget = empathy_account_widget_get_widget (widget_object);
if (priv->current_account_widget != NULL)
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 1cb903ec0..0daeb47cf 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -245,34 +245,6 @@ empathy_account_dialog_account_created_cb (EmpathyAccountWidget *widget_object,
g_object_unref (settings);
}
-static GtkWidget *
-get_account_setup_widget (EmpathyAccountSettings *settings,
- EmpathyAccountWidget **widget_object)
-{
- const gchar *proto = empathy_account_settings_get_protocol (settings);
- EmpathyConnectionManagers *cm =
- empathy_connection_managers_dup_singleton ();
- GList *cms = empathy_connection_managers_get_cms (cm);
- GList *l;
-
- for (l = cms; l; l = l->next)
- {
- TpConnectionManager *tp_cm = l->data;
- if (tp_connection_manager_has_protocol (tp_cm, proto))
- {
- g_object_unref (cm);
- *widget_object = empathy_account_widget_new_for_protocol (proto,
- settings, FALSE);
- return empathy_account_widget_get_widget (*widget_object);
- }
- }
-
- g_object_unref (cm);
- *widget_object = empathy_account_widget_new_for_protocol ("generic", settings,
- FALSE);
- return empathy_account_widget_get_widget (*widget_object);
-}
-
static void
account_dialog_create_settings_widget (EmpathyAccountsDialog *dialog,
EmpathyAccountSettings *settings)
@@ -281,7 +253,10 @@ account_dialog_create_settings_widget (EmpathyAccountsDialog *dialog,
EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
gchar *icon_name;
- priv->settings_widget = get_account_setup_widget (settings, &widget_object);
+ widget_object = empathy_account_widget_new_for_protocol (settings, FALSE);
+
+ priv->settings_widget = empathy_account_widget_get_widget (widget_object);
+
g_signal_connect (widget_object, "account-created",
G_CALLBACK (empathy_account_dialog_account_created_cb), dialog);
g_signal_connect (widget_object, "cancelled",