From d5c50301939772d752c7f8789a9b5ae81334fab3 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Thu, 11 Feb 2010 12:34:09 +0000 Subject: add is_facebook arg to empathy_protocol_chooser_dup_selected So the assistant and accounts dialog can special case facebook accounts. --- libempathy-gtk/empathy-protocol-chooser.c | 10 +++++++++- libempathy-gtk/empathy-protocol-chooser.h | 3 ++- src/empathy-account-assistant.c | 18 ++++++++++++++---- src/empathy-accounts-dialog.c | 19 ++++++++++++++----- 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/libempathy-gtk/empathy-protocol-chooser.c b/libempathy-gtk/empathy-protocol-chooser.c index e67faf860..65f70ee97 100644 --- a/libempathy-gtk/empathy-protocol-chooser.c +++ b/libempathy-gtk/empathy-protocol-chooser.c @@ -464,7 +464,8 @@ TpConnectionManager * empathy_protocol_chooser_dup_selected ( EmpathyProtocolChooser *protocol_chooser, TpConnectionManagerProtocol **protocol, - gboolean *is_gtalk) + gboolean *is_gtalk, + gboolean *is_facebook) { GtkTreeIter iter; TpConnectionManager *cm = NULL; @@ -503,6 +504,13 @@ empathy_protocol_chooser_dup_selected ( COL_IS_GTALK, is_gtalk, -1); } + + if (is_facebook != NULL) + { + gtk_tree_model_get (GTK_TREE_MODEL (cur_model), &iter, + COL_IS_FACEBOOK, is_facebook, + -1); + } } return cm; diff --git a/libempathy-gtk/empathy-protocol-chooser.h b/libempathy-gtk/empathy-protocol-chooser.h index 088d1b664..b4ffeb33c 100644 --- a/libempathy-gtk/empathy-protocol-chooser.h +++ b/libempathy-gtk/empathy-protocol-chooser.h @@ -68,7 +68,8 @@ GtkWidget * empathy_protocol_chooser_new (void); TpConnectionManager *empathy_protocol_chooser_dup_selected ( EmpathyProtocolChooser *protocol_chooser, TpConnectionManagerProtocol **protocol, - gboolean *is_gtalk); + gboolean *is_gtalk, + gboolean *is_facebook); void empathy_protocol_chooser_set_visible ( EmpathyProtocolChooser *protocol_chooser, diff --git a/src/empathy-account-assistant.c b/src/empathy-account-assistant.c index 58ff1aa2c..99c505b36 100644 --- a/src/empathy-account-assistant.c +++ b/src/empathy-account-assistant.c @@ -390,28 +390,38 @@ account_assistant_protocol_changed_cb (GtkComboBox *chooser, char *str; GtkWidget *account_widget; EmpathyAccountWidget *widget_object = NULL; - gboolean is_gtalk; + gboolean is_gtalk, is_facebook; + const gchar *name; priv = GET_PRIV (self); cm = empathy_protocol_chooser_dup_selected ( - EMPATHY_PROTOCOL_CHOOSER (chooser), &proto, &is_gtalk); + EMPATHY_PROTOCOL_CHOOSER (chooser), &proto, &is_gtalk, &is_facebook); if (cm == NULL || proto == NULL) /* we are not ready yet */ return; /* Create account */ + if (is_gtalk) + name = "gtalk"; + else if (is_facebook) + name = "facebook"; + else + name = proto->name; + /* To translator: %s is the protocol name */ str = g_strdup_printf (_("New %s account"), - empathy_protocol_name_to_display_name ( - is_gtalk ? "gtalk" : proto->name)); + empathy_protocol_name_to_display_name (name)); settings = empathy_account_settings_new (cm->name, proto->name, str); if (is_gtalk) empathy_account_settings_set_icon_name_async (settings, "im-google-talk", NULL, NULL); + else if (is_facebook) + empathy_account_settings_set_icon_name_async (settings, "im-facebook", + NULL, NULL); if (priv->first_resp == RESPONSE_CREATE_ACCOUNT) empathy_account_settings_set_boolean (settings, "register", TRUE); diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c index 4c8ed1346..39e20d860 100644 --- a/src/empathy-accounts-dialog.c +++ b/src/empathy-accounts-dialog.c @@ -530,19 +530,25 @@ accounts_dialog_setup_ui_to_add_account (EmpathyAccountsDialog *dialog) EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog); EmpathyAccountSettings *settings; gchar *str; - const gchar *display_name; + const gchar *name, *display_name; TpConnectionManager *cm; TpConnectionManagerProtocol *proto; - gboolean is_gtalk; + gboolean is_gtalk, is_facebook; cm = empathy_protocol_chooser_dup_selected ( - EMPATHY_PROTOCOL_CHOOSER (priv->combobox_protocol), &proto, &is_gtalk); + EMPATHY_PROTOCOL_CHOOSER (priv->combobox_protocol), &proto, &is_gtalk, + &is_facebook); if (cm == NULL) return; - display_name = empathy_protocol_name_to_display_name ( - is_gtalk ? "gtalk" : proto->name); + if (is_gtalk) + name = "gtalk"; + else if (is_facebook) + name ="facebook"; + else + name = proto->name; + display_name = empathy_protocol_name_to_display_name (name); if (display_name == NULL) display_name = proto->name; @@ -558,6 +564,9 @@ accounts_dialog_setup_ui_to_add_account (EmpathyAccountsDialog *dialog) if (is_gtalk) empathy_account_settings_set_icon_name_async (settings, "im-google-talk", NULL, NULL); + else if (is_facebook) + empathy_account_settings_set_icon_name_async (settings, "im-facebook", + NULL, NULL); accounts_dialog_add (dialog, settings); accounts_dialog_model_set_selected (dialog, settings); -- cgit v1.2.3