]> git.0d.be Git - empathy.git/blobdiff - src/empathy.c
Merge branch 'debugger'
[empathy.git] / src / empathy.c
index f23ce9145eb21a5d3c999989ef7f80f30b0d146a..85124d1e9156056ed813130780a670dd6bd61552 100644 (file)
@@ -48,6 +48,7 @@
 #include <libempathy/empathy-call-factory.h>
 #include <libempathy/empathy-chatroom-manager.h>
 #include <libempathy/empathy-account-manager.h>
+#include <libempathy/empathy-debugger.h>
 #include <libempathy/empathy-dispatcher.h>
 #include <libempathy/empathy-dispatch-operation.h>
 #include <libempathy/empathy-log-manager.h>
@@ -285,13 +286,13 @@ create_salut_account (void)
 
        account = mc_account_create (profile);
        mc_account_set_display_name (account, _("People nearby"));
-       
+
        nickname = e_contact_get (contact, E_CONTACT_NICKNAME);
        first_name = e_contact_get (contact, E_CONTACT_GIVEN_NAME);
        last_name = e_contact_get (contact, E_CONTACT_FAMILY_NAME);
        email = e_contact_get (contact, E_CONTACT_EMAIL_1);
        jid = e_contact_get (contact, E_CONTACT_IM_JABBER_HOME_1);
-       
+
        if (!tp_strdiff (nickname, "nickname")) {
                g_free (nickname);
                nickname = NULL;
@@ -450,6 +451,31 @@ new_call_handler_cb (EmpathyCallFactory *factory, EmpathyCallHandler *handler,
        gtk_widget_show (GTK_WIDGET (window));
 }
 
+#ifdef ENABLE_DEBUG
+static void
+default_log_handler (const gchar *log_domain,
+    GLogLevelFlags log_level,
+    const gchar *message,
+    gpointer user_data)
+{
+       g_log_default_handler (log_domain, log_level, message, NULL);
+
+       /* G_LOG_DOMAIN = "empathy". No need to send empathy messages to the
+        * debugger as they already have in empathy_debug. */
+       if (log_level != G_LOG_LEVEL_DEBUG
+           || tp_strdiff (log_domain, G_LOG_DOMAIN)) {
+               EmpathyDebugger *dbg;
+               GTimeVal now;
+
+               dbg = empathy_debugger_get_singleton ();
+               g_get_current_time (&now);
+
+               empathy_debugger_add_message (dbg, &now, log_domain,
+                                             log_level, message);
+       }
+}
+#endif /* ENABLE_DEBUG */
+
 int
 main (int argc, char *argv[])
 {
@@ -514,6 +540,11 @@ main (int argc, char *argv[])
        gtk_window_set_default_icon_name ("empathy");
        textdomain (GETTEXT_PACKAGE);
 
+#ifdef ENABLE_DEBUG
+       /* Set up debugger */
+       g_log_set_default_handler (default_log_handler, NULL);
+#endif
+
         /* Setting up the bacon connection */
        startup_timestamp = get_startup_timestamp ();
        connection = bacon_message_connection_new ("empathy");
@@ -603,7 +634,7 @@ main (int argc, char *argv[])
                        (idle), TP_CONNECTION_PRESENCE_TYPE_OFFLINE) <= 0) {
                empathy_idle_set_state (idle, MC_PRESENCE_AVAILABLE);
        }
-       
+
        create_salut_account ();
 
        /* Setting up UI */