aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/empathy-account-assistant.c27
-rw-r--r--src/empathy-accounts-dialog.c35
-rw-r--r--src/empathy.c77
3 files changed, 86 insertions, 53 deletions
diff --git a/src/empathy-account-assistant.c b/src/empathy-account-assistant.c
index d8aa46f1d..c8379ae02 100644
--- a/src/empathy-account-assistant.c
+++ b/src/empathy-account-assistant.c
@@ -97,8 +97,7 @@ account_assistant_build_error_page (EmpathyAccountAssistant *self,
GError *error, gint page_num)
{
GtkWidget *main_vbox, *w, *hbox;
- GString *str;
- char *message;
+ const char *message;
PangoAttrList *list;
EmpathyAccountAssistantPriv *priv = GET_PRIV (self);
@@ -115,24 +114,16 @@ account_assistant_build_error_page (EmpathyAccountAssistant *self,
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
gtk_widget_show (w);
- /* translators: this is followed by the "while ..." strings some lines
- * down this file.
- */
- str = g_string_new (_("There has been an error "));
-
if (page_num == PAGE_IMPORT)
- /* translators: this follows the "There has been an error " string */
- str = g_string_append (str, _("while importing the accounts."));
+ message = _("There has been an error while importing the accounts.");
else if (page_num >= PAGE_ENTER_CREATE &&
priv->first_resp == RESPONSE_ENTER_ACCOUNT)
- /* translators: this follows the "There has been an error " string */
- str = g_string_append (str, _("while parsing the account details."));
+ message = _("There has been an error while parsing the account details.");
else if (page_num >= PAGE_ENTER_CREATE &&
priv->first_resp == RESPONSE_CREATE_ACCOUNT)
- /* translators: this follows the "There has been an error " string */
- str = g_string_append (str, _("while creating the account."));
-
- message = g_string_free (str, FALSE);
+ message = _("There has been an error while creating the account.");
+ else
+ message = _("There has been an error.");
w = gtk_label_new (message);
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
@@ -144,7 +135,6 @@ account_assistant_build_error_page (EmpathyAccountAssistant *self,
gtk_label_set_line_wrap (GTK_LABEL (w), TRUE);
gtk_widget_show (w);
- g_free (message);
pango_attr_list_unref (list);
message = g_markup_printf_escaped
@@ -157,7 +147,7 @@ account_assistant_build_error_page (EmpathyAccountAssistant *self,
gtk_widget_show (w);
w = gtk_label_new (_("You can either go back and try to enter your "
- "accounts' details again or quit this wizard and add accounts "
+ "accounts' details again or quit this assistant and add accounts "
"later from the Edit menu."));
gtk_box_pack_start (GTK_BOX (main_vbox), w, FALSE, FALSE, 6);
gtk_misc_set_alignment (GTK_MISC (w), 0, 0.5);
@@ -334,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 74c9e7bd5..c28dbd30d 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -247,34 +247,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)
@@ -283,7 +255,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",
@@ -1235,7 +1210,7 @@ static void
accounts_dialog_button_help_clicked_cb (GtkWidget *button,
EmpathyAccountsDialog *dialog)
{
- empathy_url_show (button, "ghelp:empathy?empathy-create-account");
+ empathy_url_show (button, "ghelp:empathy?accounts-window");
}
static void
diff --git a/src/empathy.c b/src/empathy.c
index 38fd56c54..84bdfdd9c 100644
--- a/src/empathy.c
+++ b/src/empathy.c
@@ -558,6 +558,75 @@ account_manager_ready_cb (EmpathyAccountManager *manager,
}
}
+static EmpathyDispatcher *
+setup_dispatcher (void)
+{
+ EmpathyDispatcher *d;
+ GPtrArray *filters;
+ struct {
+ const gchar *channeltype;
+ TpHandleType handletype;
+ } types[] = {
+ /* Text channels with handle types none, contact and room */
+ { TP_IFACE_CHANNEL_TYPE_TEXT, TP_HANDLE_TYPE_NONE },
+ { TP_IFACE_CHANNEL_TYPE_TEXT, TP_HANDLE_TYPE_CONTACT },
+ { TP_IFACE_CHANNEL_TYPE_TEXT, TP_HANDLE_TYPE_ROOM },
+ /* file transfer to contacts */
+ { TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER, TP_HANDLE_TYPE_CONTACT },
+ /* stream media to contacts */
+ { TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA, TP_HANDLE_TYPE_CONTACT },
+ /* stream tubes to contacts and rooms */
+ { TP_IFACE_CHANNEL_TYPE_STREAM_TUBE, TP_HANDLE_TYPE_CONTACT },
+ { TP_IFACE_CHANNEL_TYPE_STREAM_TUBE, TP_HANDLE_TYPE_ROOM },
+ /* d-bus tubes to contacts and rooms */
+ { TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, TP_HANDLE_TYPE_CONTACT },
+ { TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, TP_HANDLE_TYPE_ROOM },
+ /* roomlists */
+ { TP_IFACE_CHANNEL_TYPE_ROOM_LIST, TP_HANDLE_TYPE_NONE },
+ };
+ gchar *capabilities[] = {
+ "org.freedesktop.Telepathy.Channel.Interface.MediaSignalling/ice-udp",
+ "org.freedesktop.Telepathy.Channel.Interface.MediaSignalling/gtalk-p2p",
+ NULL };
+ GHashTable *asv;
+ int i;
+
+ /* Setup the basic Client.Handler that matches our client filter */
+ filters = g_ptr_array_new ();
+ asv = tp_asv_new (
+ TP_IFACE_CHANNEL ".ChannelType", G_TYPE_STRING,
+ TP_IFACE_CHANNEL_TYPE_TEXT,
+ TP_IFACE_CHANNEL ".TargetHandleType", G_TYPE_INT,
+ TP_HANDLE_TYPE_CONTACT,
+ NULL);
+ g_ptr_array_add (filters, asv);
+
+ d = empathy_dispatcher_new (PACKAGE_NAME, filters, NULL);
+
+ g_ptr_array_foreach (filters, (GFunc) g_hash_table_destroy, NULL);
+ g_ptr_array_free (filters, TRUE);
+
+ /* Setup the an extended Client.Handler that matches everything we can do */
+ filters = g_ptr_array_new ();
+ for (i = 0 ; i < G_N_ELEMENTS (types); i++)
+ {
+ asv = tp_asv_new (
+ TP_IFACE_CHANNEL ".ChannelType", G_TYPE_STRING, types[i].channeltype,
+ TP_IFACE_CHANNEL ".TargetHandleType", G_TYPE_INT, types[i].handletype,
+ NULL);
+
+ g_ptr_array_add (filters, asv);
+ }
+
+ empathy_dispatcher_add_handler (d, PACKAGE_NAME"MoreThenMeetsTheEye",
+ filters, capabilities);
+
+ g_ptr_array_foreach (filters, (GFunc) g_hash_table_destroy, NULL);
+ g_ptr_array_free (filters, TRUE);
+
+ return d;
+}
+
int
main (int argc, char *argv[])
{
@@ -699,6 +768,10 @@ main (int argc, char *argv[])
g_signal_connect (account_manager, "notify::ready",
G_CALLBACK (account_manager_ready_cb), NULL);
+ /* Handle channels */
+ dispatcher = setup_dispatcher ();
+ g_signal_connect (dispatcher, "dispatch", G_CALLBACK (dispatch_cb), NULL);
+
migrate_config_to_xdg_dir ();
/* Setting up UI */
@@ -708,10 +781,6 @@ main (int argc, char *argv[])
g_signal_connect (unique_app, "message-received",
G_CALLBACK (unique_app_message_cb), window);
- /* Handle channels */
- dispatcher = empathy_dispatcher_dup_singleton ();
- g_signal_connect (dispatcher, "dispatch", G_CALLBACK (dispatch_cb), NULL);
-
/* Logging */
log_manager = empathy_log_manager_dup_singleton ();
empathy_log_manager_observe (log_manager, dispatcher);