X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=src%2Fempathy.c;h=a4a90e2c5e962de9efea19f4b20cd208c178a34e;hp=e23795f72f6c8c83c4035eed7032fd4a3e5d2e5b;hb=e325836b78e658b2c8a5038384b6c53acdb57f98;hpb=a3afea28b497781197b2dc7f22ec361f9a17b6d6 diff --git a/src/empathy.c b/src/empathy.c index e23795f7..a4a90e2c 100644 --- a/src/empathy.c +++ b/src/empathy.c @@ -31,32 +31,22 @@ #include #include -#include -#include +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include #include -#include +#include +#include + +#include #include #include #include -#include -#include #define DEBUG_DOMAIN "EmpathyMain" -#define BUS_NAME "org.gnome.Empathy.Chat" -#define OBJECT_PATH "/org/freedesktop/Telepathy/ChannelHandler" - static void service_ended_cb (MissionControl *mc, gpointer user_data) @@ -99,56 +89,6 @@ account_enabled_cb (McAccountMonitor *monitor, start_mission_control (idle); } -static void -new_channel_cb (EmpathyChandler *chandler, - TpConn *tp_conn, - TpChan *tp_chan, - MissionControl *mc) -{ - McAccount *account; - EmpathyChat *chat; - gchar *id; - - account = mission_control_get_account_for_connection (mc, tp_conn, NULL); - id = empathy_inspect_channel (account, tp_chan); - chat = empathy_chat_window_find_chat (account, id); - g_free (id); - - if (chat) { - /* The chat already exists */ - if (!empathy_chat_is_connected (chat)) { - EmpathyTpChat *tp_chat; - - /* The chat died, give him the new text channel */ - if (empathy_chat_is_group_chat (chat)) { - tp_chat = EMPATHY_TP_CHAT (empathy_tp_chatroom_new (account, tp_chan)); - } else { - tp_chat = empathy_tp_chat_new (account, tp_chan); - } - empathy_chat_set_tp_chat (chat, tp_chat); - g_object_unref (tp_chat); - } - empathy_chat_present (chat); - - g_object_unref (account); - return; - } - - if (tp_chan->handle_type == TP_HANDLE_TYPE_CONTACT) { - /* We have a new private chat channel */ - chat = EMPATHY_CHAT (empathy_private_chat_new (account, tp_chan)); - } - else if (tp_chan->handle_type == TP_HANDLE_TYPE_ROOM) { - /* We have a new group chat channel */ - chat = EMPATHY_CHAT (empathy_group_chat_new (account, tp_chan)); - } - - empathy_chat_present (EMPATHY_CHAT (chat)); - - g_object_unref (chat); - g_object_unref (account); -} - static void create_salut_account (void) { @@ -218,7 +158,7 @@ create_salut_account (void) email = e_contact_get (contact, E_CONTACT_EMAIL_1); jid = e_contact_get (contact, E_CONTACT_IM_JABBER_HOME_1); - if (G_STR_EMPTY (nickname) || !empathy_strdiff (nickname, "nickname")) { + if (G_STR_EMPTY (nickname) || !tp_strdiff (nickname, "nickname")) { g_free (nickname); nickname = g_strdup (g_get_user_name ()); } @@ -263,16 +203,8 @@ main (int argc, char *argv[]) MissionControl *mc; McAccountMonitor *monitor; EmpathyIdle *idle; - EmpathyChandler *chandler; - gboolean no_connect = FALSE; + gboolean autoconnect = TRUE; GError *error = NULL; - GOptionEntry options[] = { - { "no-connect", 'n', - 0, G_OPTION_ARG_NONE, &no_connect, - N_("Don't connect on startup"), - NULL }, - { NULL } - }; empathy_debug_set_log_file_from_env (); @@ -282,7 +214,7 @@ main (int argc, char *argv[]) if (!gtk_init_with_args (&argc, &argv, _("- Empathy Instant Messenger"), - options, GETTEXT_PACKAGE, &error)) { + NULL, GETTEXT_PACKAGE, &error)) { empathy_debug (DEBUG_DOMAIN, error->message); return EXIT_FAILURE; } @@ -308,7 +240,11 @@ main (int argc, char *argv[]) G_CALLBACK (operation_error_cb), NULL); - if (!no_connect) { + empathy_conf_get_bool (empathy_conf_get(), + EMPATHY_PREFS_AUTOCONNECT, + &autoconnect); + + if (autoconnect) { start_mission_control (idle); } @@ -318,17 +254,10 @@ main (int argc, char *argv[]) window = empathy_main_window_show (); icon = empathy_status_icon_new (GTK_WINDOW (window)); - /* Setting up channel handler */ - chandler = empathy_chandler_new (BUS_NAME, OBJECT_PATH); - g_signal_connect (chandler, "new-channel", - G_CALLBACK (new_channel_cb), - mc); - gtk_main (); empathy_idle_set_state (idle, MC_PRESENCE_OFFLINE); - g_object_unref (chandler); g_object_unref (monitor); g_object_unref (mc); g_object_unref (idle);