]> git.0d.be Git - empathy.git/blobdiff - src/empathy.c
Make use of tp-glib debug system.
[empathy.git] / src / empathy.c
index 11eb3c5d7ab2a64d21121e9b34d10d2572c294f2..f28eae9599d7497141962ea735eeecdb758e79eb 100644 (file)
 #include <libebook/e-book.h>
 
 #include <telepathy-glib/util.h>
-#include <telepathy-glib/channel.h>
-#include <telepathy-glib/connection.h>
 #include <libmissioncontrol/mc-account.h>
 #include <libmissioncontrol/mission-control.h>
 
 #include <libempathy/empathy-idle.h>
-#include <libempathy/empathy-tp-chat.h>
-#include <libempathy/empathy-chandler.h>
 #include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-debug.h>
 
 #include <libempathy-gtk/empathy-conf.h>
-#include <libempathy-gtk/empathy-chat.h>
 
 #include "empathy-main-window.h"
 #include "empathy-status-icon.h"
-#include "empathy-chat-window.h"
 #include "bacon-message-connection.h"
 
-#define DEBUG_DOMAIN "EmpathyMain"
-#define BUS_NAME "org.gnome.Empathy.ChatChandler"
-#define OBJECT_PATH "/org/gnome/Empathy/ChatChandler"
+#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
+#include <libempathy/empathy-debug.h>
 
 static BaconMessageConnection *connection = NULL;
 
-static void
-new_text_channel_cb (EmpathyChandler *chandler,
-                    TpChannel       *channel,
-                    MissionControl  *mc)
-{
-       EmpathyTpChat *tp_chat;
-       TpConnection  *connection;
-       guint          handle_type;
-       guint          handle;
-       gchar        **names;
-       McAccount     *account;
-       EmpathyChat   *chat;
-       gchar         *id;
-       GArray        *handles;
-
-       g_object_get (channel,
-                     "connection", &connection,
-                     "handle-type", &handle_type,
-                     "handle", &handle,
-                     NULL);
-       handles = g_array_new (FALSE, FALSE, sizeof (guint));
-       g_array_append_val (handles, handle);
-       tp_cli_connection_run_inspect_handles (connection, -1,
-                                              handle_type, handles,
-                                              &names,
-                                              NULL, NULL);
-       id = *names;
-       g_free (names);
-       g_object_unref (connection);
-       g_array_free (handles, TRUE);
-
-       account = empathy_channel_get_account (channel);
-       chat = empathy_chat_window_find_chat (account, id);
-       g_free (id);
-
-       if (chat) {
-               /* The chat already exists */
-               if (!empathy_chat_get_tp_chat (chat)) {
-                       /* The chat died, give him the new text channel */
-                       tp_chat = empathy_tp_chat_new (channel, TRUE);
-                       empathy_run_until_ready (tp_chat);
-                       empathy_chat_set_tp_chat (chat, tp_chat);
-                       g_object_unref (tp_chat);
-               }
-               empathy_chat_window_present_chat (chat);
-
-               g_object_unref (account);
-               return;
-       }
-
-       tp_chat = empathy_tp_chat_new (channel, TRUE);
-       empathy_run_until_ready (tp_chat);
-
-       chat = empathy_chat_new (tp_chat);
-       empathy_chat_window_present_chat (chat);
-
-       g_object_unref (account);
-       g_object_unref (tp_chat);
-}
-
 static void
 service_ended_cb (MissionControl *mc,
                  gpointer        user_data)
 {
-       empathy_debug (DEBUG_DOMAIN, "Mission Control stopped");
+       DEBUG ("Mission Control stopped");
 }
 
 static void
@@ -177,8 +109,7 @@ operation_error_cb (MissionControl *mc,
                message = _("Unknown error code");
        }
 
-       empathy_debug (DEBUG_DOMAIN, "Error during operation %d: %s",
-                      operation_id, message);
+       DEBUG ("Error during operation %d: %s", operation_id, message);
 }
 
 static void
@@ -209,6 +140,7 @@ create_salut_account (void)
        gchar      *last_name = NULL;
        gchar      *email = NULL;
        gchar      *jid = NULL;
+       GError     *error = NULL;
 
        /* Check if we already created a salut account */
        empathy_conf_get_bool (empathy_conf_get(),
@@ -218,21 +150,23 @@ create_salut_account (void)
                return;
        }
 
-       empathy_debug (DEBUG_DOMAIN, "Try to add a salut account...");
+       DEBUG ("Try to add a salut account...");
 
        /* Check if the salut CM is installed */
        profile = mc_profile_lookup ("salut");
        protocol = mc_profile_get_protocol (profile);
        if (!protocol) {
-               empathy_debug (DEBUG_DOMAIN, "Salut not installed");
+               DEBUG ("Salut not installed");
                g_object_unref (profile);
                return;
        }
        g_object_unref (protocol);
 
        /* Get self EContact from EDS */
-       if (!e_book_get_self (&contact, &book, NULL)) {
-               empathy_debug (DEBUG_DOMAIN, "Failed to get self econtact");
+       if (!e_book_get_self (&contact, &book, &error)) {
+               DEBUG ("Failed to get self econtact: %s",
+                       error ? error->message : "No error given");
+               g_clear_error (&error);
                g_object_unref (profile);
                return;
        }
@@ -244,7 +178,7 @@ create_salut_account (void)
        /* Check if there is already a salut account */
        accounts = mc_accounts_list_by_profile (profile);
        if (accounts) {
-               empathy_debug (DEBUG_DOMAIN, "There is already a salut account");
+               DEBUG ("There is already a salut account");
                mc_accounts_list_free (accounts);
                g_object_unref (profile);
                return;
@@ -264,13 +198,9 @@ create_salut_account (void)
                nickname = NULL;
        }
 
-       empathy_debug (DEBUG_DOMAIN, "Salut account created:\n"
-                                    "  nickname=%s\n"
-                                    "  first-name=%s\n"
-                                    "  last-name=%s\n"
-                                    "  email=%s\n"
-                                    "  jid=%s\n",
-                      nickname, first_name, last_name, email, jid);
+       DEBUG ("Salut account created:\nnickname=%s\nfirst-name=%s\n"
+               "last-name=%s\nemail=%s\njid=%s\n",
+               nickname, first_name, last_name, email, jid);
 
        mc_account_set_param_string (account, "nickname", nickname ? nickname : "");
        mc_account_set_param_string (account, "first-name", first_name ? first_name : "");
@@ -303,9 +233,8 @@ on_bacon_message_received (const char *message,
 
        g_return_if_fail (message != NULL);
 
-       empathy_debug (DEBUG_DOMAIN,
-                      "Other instance launched, presenting the main window "
-                      "(message is '%s')", message);
+       DEBUG ("Other instance launched, presenting the main window. message='%s'",
+               message);
 
        startup_timestamp = atoi (message);
 
@@ -316,7 +245,7 @@ on_bacon_message_received (const char *message,
         * has been realized otherwise it will not work. lame. */
        if (startup_timestamp == 0) {
                /* Work if launched from the terminal */
-               empathy_debug (DEBUG_DOMAIN, "Using X server timestamp as a fallback");
+               DEBUG ("Using X server timestamp as a fallback");
 
                if (!GTK_WIDGET_REALIZED (window)) {
                        gtk_widget_realize (GTK_WIDGET (window));
@@ -374,7 +303,6 @@ main (int argc, char *argv[])
        GtkWidget         *window;
        MissionControl    *mc;
        EmpathyIdle       *idle;
-       EmpathyChandler   *chandler;
        gboolean           autoconnect = TRUE;
        gboolean           no_connect = FALSE; 
        GError            *error = NULL;
@@ -395,11 +323,15 @@ main (int argc, char *argv[])
        if (!gtk_init_with_args (&argc, &argv,
                                 _("- Empathy Instant Messenger"),
                                 options, GETTEXT_PACKAGE, &error)) {
-               empathy_debug (DEBUG_DOMAIN, error->message);
+               g_warning ("Error in gtk init: %s", error->message);
                return EXIT_FAILURE;
        }
 
-       empathy_debug_set_log_file_from_env ();
+       if (g_getenv ("EMPATHY_TIMING") != NULL) {
+               g_log_set_default_handler (tp_debug_timestamped_log_handler, NULL);
+       }
+       empathy_debug_set_flags (g_getenv ("EMPATHY_DEBUG"));
+       tp_debug_divert_messages (g_getenv ("EMPATHY_LOGFILE"));
 
        g_set_application_name (PACKAGE_NAME);
 
@@ -413,7 +345,7 @@ main (int argc, char *argv[])
                if (!bacon_message_connection_get_is_server (connection)) {
                        gchar *message;
 
-                       empathy_debug (DEBUG_DOMAIN, "Activating existing instance");
+                       DEBUG ("Activating existing instance");
 
                        message = g_strdup_printf ("%" G_GUINT32_FORMAT,
                                                   startup_timestamp);
@@ -470,18 +402,10 @@ main (int argc, char *argv[])
                                                       window);
        }
 
-       /* Handle text channels */
-       chandler = empathy_chandler_new (BUS_NAME, OBJECT_PATH);
-       g_signal_connect (chandler, "new-channel",
-                         G_CALLBACK (new_text_channel_cb),
-                         mc);
-       empathy_debug (DEBUG_DOMAIN, "Ready to handle new text channels");
-
        gtk_main ();
 
        empathy_idle_set_state (idle, MC_PRESENCE_OFFLINE);
 
-       g_object_unref (chandler);
        g_object_unref (mc);
        g_object_unref (idle);
        g_object_unref (icon);