diff options
Diffstat (limited to 'src/empathy.c')
-rw-r--r-- | src/empathy.c | 56 |
1 files changed, 53 insertions, 3 deletions
diff --git a/src/empathy.c b/src/empathy.c index d5be4df8d..85124d1e9 100644 --- a/src/empathy.c +++ b/src/empathy.c @@ -38,6 +38,7 @@ #include <libebook/e-book.h> #include <libnotify/notify.h> +#include <telepathy-glib/dbus.h> #include <telepathy-glib/util.h> #include <libmissioncontrol/mc-account.h> #include <libmissioncontrol/mission-control.h> @@ -47,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> @@ -284,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; @@ -449,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[]) { @@ -470,6 +497,7 @@ main (int argc, char *argv[]) gboolean hide_contact_list = FALSE; gboolean accounts_dialog = FALSE; GError *error = NULL; + TpDBusDaemon *dbus_daemon; GOptionEntry options[] = { { "no-connect", 'n', 0, G_OPTION_ARG_NONE, &no_connect, @@ -512,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"); @@ -547,6 +580,23 @@ main (int argc, char *argv[]) g_warning ("Cannot create the 'empathy' bacon connection."); } + /* Take well-known name */ + dbus_daemon = tp_dbus_daemon_dup (&error); + if (error == NULL) { + if (!tp_dbus_daemon_request_name (dbus_daemon, + "org.gnome.Empathy", + TRUE, &error)) { + DEBUG ("Failed to request well-known name: %s", + error ? error->message : "no message"); + g_clear_error (&error); + } + g_object_unref (dbus_daemon); + } else { + DEBUG ("Failed to dup dbus daemon: %s", + error ? error->message : "no message"); + g_clear_error (&error); + } + /* Setting up MC */ mc = empathy_mission_control_dup_singleton (); g_signal_connect (mc, "ServiceEnded", @@ -584,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 */ |