134
gboolean is_gtalk, is_facebook;
135
136
gtk_tree_model_get (model, iter_a,
136
COL_IS_GTALK, &is_gtalk,
137
COL_IS_FACEBOOK, &is_facebook,
137
COL_SERVICE, &service,
224
226
g_strdup (proto->name), g_strdup (cm->name));
226
228
icon_name = empathy_protocol_icon_name (proto->name);
227
230
display_name = empathy_protocol_name_to_display_name (proto->name);
229
if (display_name == NULL)
230
display_name = proto->name;
232
232
gtk_list_store_insert_with_values (priv->store,
234
234
COL_ICON, icon_name,
235
235
COL_LABEL, display_name,
237
237
COL_PROTOCOL_NAME, proto->name,
239
COL_IS_FACEBOOK, FALSE,
242
240
if (!tp_strdiff (proto->name, "jabber") &&
243
241
!tp_strdiff (cm->name, "gabble"))
245
display_name = empathy_protocol_name_to_display_name ("gtalk");
243
display_name = empathy_service_name_to_display_name ("google-talk");
246
244
gtk_list_store_insert_with_values (priv->store,
248
246
COL_ICON, "im-google-talk",
249
247
COL_LABEL, display_name,
251
249
COL_PROTOCOL_NAME, proto->name,
253
COL_IS_FACEBOOK, FALSE,
250
COL_SERVICE, "google-talk",
256
display_name = empathy_protocol_name_to_display_name ("facebook");
253
display_name = empathy_service_name_to_display_name ("facebook");
257
254
gtk_list_store_insert_with_values (priv->store,
259
256
COL_ICON, "im-facebook",
260
257
COL_LABEL, display_name,
262
259
COL_PROTOCOL_NAME, proto->name,
264
COL_IS_FACEBOOK, TRUE,
260
COL_SERVICE, "facebook",
312
308
G_TYPE_STRING, /* Label */
313
309
G_TYPE_OBJECT, /* CM */
314
310
G_TYPE_STRING, /* protocol name */
315
G_TYPE_BOOLEAN, /* is gtalk */
316
G_TYPE_BOOLEAN); /* is facebook */
311
G_TYPE_STRING); /* service */
318
313
/* Set the protocol sort function */
319
314
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (priv->store),
426
421
TpConnectionManager *cm = NULL;
427
422
gchar *protocol_name = NULL;
428
423
gboolean visible = FALSE;
429
gboolean is_gtalk, is_facebook;
431
426
gtk_tree_model_get (model, iter,
433
428
COL_PROTOCOL_NAME, &protocol_name,
434
COL_IS_GTALK, &is_gtalk,
435
COL_IS_FACEBOOK, &is_facebook,
429
COL_SERVICE, &service,
438
432
if (cm != NULL && protocol_name != NULL)
445
439
if (protocol != NULL)
447
visible = priv->filter_func (cm, protocol, is_gtalk, is_facebook,
441
visible = priv->filter_func (cm, protocol, service,
448
442
priv->filter_user_data);
470
465
empathy_protocol_chooser_dup_selected (
471
466
EmpathyProtocolChooser *protocol_chooser,
472
467
TpConnectionManagerProtocol **protocol,
474
gboolean *is_facebook)
476
470
GtkTreeIter iter;
477
471
TpConnectionManager *cm = NULL;
515
if (is_gtalk != NULL)
517
gtk_tree_model_get (GTK_TREE_MODEL (cur_model), &iter,
518
COL_IS_GTALK, is_gtalk,
522
if (is_facebook != NULL)
524
gtk_tree_model_get (GTK_TREE_MODEL (cur_model), &iter,
525
COL_IS_FACEBOOK, is_facebook,
511
gtk_tree_model_get (GTK_TREE_MODEL (cur_model), &iter,
512
COL_SERVICE, service,
572
559
gtk_combo_box_set_active (GTK_COMBO_BOX (protocol_chooser), 0);
562
EmpathyAccountSettings *
563
empathy_protocol_chooser_create_account_settings (EmpathyProtocolChooser *self)
565
EmpathyAccountSettings *settings = NULL;
567
const gchar *display_name;
568
TpConnectionManager *cm;
569
TpConnectionManagerProtocol *proto;
570
gchar *service = NULL;
572
cm = empathy_protocol_chooser_dup_selected (self, &proto, &service);
573
if (cm == NULL || proto == NULL)
577
display_name = empathy_service_name_to_display_name (service);
579
display_name = empathy_protocol_name_to_display_name (proto->name);
582
/* To translator: %s is the name of the protocol, such as "Google Talk" or
585
str = g_strdup_printf (_("New %s account"), display_name);
586
settings = empathy_account_settings_new (cm->name, proto->name, service, str);
590
if (!tp_strdiff (service, "google-talk"))
592
gchar *fallback_servers[] = {
593
"talkx.l.google.com",
594
"talkx.l.google.com:443,oldssl",
595
"talkx.l.google.com:80",
598
gchar *extra_certificate_identities[] = {
602
empathy_account_settings_set_icon_name_async (settings, "im-google-talk",
605
empathy_account_settings_set_strv (settings, "fallback-servers",
608
if (empathy_account_settings_have_tp_param (settings,
609
"extra-certificate-identities"))
611
empathy_account_settings_set_strv (settings,
612
"extra-certificate-identities", extra_certificate_identities);
615
else if (!tp_strdiff (service, "facebook"))
617
empathy_account_settings_set_icon_name_async (settings, "im-facebook",
620
empathy_account_settings_set_string (settings, "server",
621
"chat.facebook.com");
625
tp_clear_object (&cm);