]> git.0d.be Git - empathy.git/blobdiff - src/empathy.c
Merge branch 'gnome-3-8'
[empathy.git] / src / empathy.c
index 4db2cbb6218b1ba510810251bef92b776c20ecf3..a8f23e82c3aa0cecd35c50cdd65e8cef29184694 100644 (file)
  * Authors: Xavier Claessens <xclaesse@gmail.com>
  */
 
-#include <config.h>
+#include "config.h"
 
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-
-#include <glib.h>
 #include <glib/gstdio.h>
 #include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
+#include <libnotify/notify.h>
 
 #ifdef HAVE_LIBCHAMPLAIN
 #include <clutter-gtk/clutter-gtk.h>
 #endif
 
-#include <libnotify/notify.h>
-
-#include <telepathy-glib/account-manager.h>
-#include <telepathy-glib/dbus.h>
-#include <telepathy-glib/debug-sender.h>
-#include <telepathy-glib/util.h>
-#include <telepathy-glib/connection-manager.h>
-#include <telepathy-glib/interfaces.h>
-
-#include <telepathy-logger/telepathy-logger.h>
-
-#include <libempathy/empathy-client-factory.h>
-#include <libempathy/empathy-connection-aggregator.h>
-#include <libempathy/empathy-presence-manager.h>
-#include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-chatroom-manager.h>
-#include <libempathy/empathy-account-settings.h>
-#include <libempathy/empathy-connection-managers.h>
-#include <libempathy/empathy-request-util.h>
-#include <libempathy/empathy-ft-factory.h>
-#include <libempathy/empathy-gsettings.h>
-#include <libempathy/empathy-tp-chat.h>
-
-#include <libempathy-gtk/empathy-ui-utils.h>
-#include <libempathy-gtk/empathy-location-manager.h>
-#include <libempathy-gtk/empathy-notify-manager.h>
-
-#include "empathy-roster-window.h"
 #include "empathy-accounts-common.h"
 #include "empathy-accounts-dialog.h"
-#include "empathy-status-icon.h"
+#include "empathy-chatroom-manager.h"
+#include "empathy-client-factory.h"
+#include "empathy-connection-aggregator.h"
+#include "empathy-ft-factory.h"
 #include "empathy-ft-manager.h"
+#include "empathy-gsettings.h"
+#include "empathy-location-manager.h"
 #include "empathy-notifications-approver.h"
-
-#include "extensions/extensions.h"
+#include "empathy-presence-manager.h"
+#include "empathy-request-util.h"
+#include "empathy-roster-window.h"
+#include "empathy-status-icon.h"
+#include "empathy-ui-utils.h"
+#include "empathy-utils.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_OTHER
-#include <libempathy/empathy-debug.h>
+#include "empathy-debug.h"
 
 #define EMPATHY_DBUS_NAME "org.gnome.Empathy"
 
@@ -350,10 +325,17 @@ empathy_app_command_line (GApplication *app,
       self->activated = TRUE;
 
       /* Setting up UI */
-      self->window = empathy_roster_window_dup ();
+      self->window = empathy_roster_window_new (GTK_APPLICATION (app));
+      gtk_application_set_app_menu (GTK_APPLICATION (self),
+          empathy_roster_window_get_menu_model (
+            EMPATHY_ROSTER_WINDOW (self->window)));
 
       gtk_application_add_window (GTK_APPLICATION (app),
           GTK_WINDOW (self->window));
+      gtk_application_add_accelerator (GTK_APPLICATION (app),
+          "<Primary>h",
+          "win." EMPATHY_PREFS_UI_SHOW_OFFLINE,
+          NULL);
 
       /* check if Shell is running */
       dbus = tp_dbus_daemon_dup (&error);
@@ -439,6 +421,7 @@ empathy_app_local_command_line (GApplication *app,
 
   /* We create a group so that GOptionArgFuncs get the user data */
   group = g_option_group_new ("empathy", NULL, NULL, app, NULL);
+  g_option_group_set_translation_domain (group, GETTEXT_PACKAGE);
   g_option_group_add_entries (group, options);
 
   optcontext = g_option_context_new (N_("- Empathy IM Client"));
@@ -701,7 +684,7 @@ account_manager_chatroom_ready_cb (GObject *source_object,
       return;
     }
 
-  accounts = tp_account_manager_get_valid_accounts (account_manager);
+  accounts = tp_account_manager_dup_valid_accounts (account_manager);
 
   for (l = accounts; l != NULL; l = g_list_next (l))
     {
@@ -714,7 +697,7 @@ account_manager_chatroom_ready_cb (GObject *source_object,
       tp_g_signal_connect_object (account, "notify::connection",
         G_CALLBACK (account_connection_changed_cb), chatroom_manager, 0);
     }
-  g_list_free (accounts);
+  g_list_free_full (accounts, g_object_unref);
 }
 
 static void
@@ -734,10 +717,10 @@ empathy_app_constructed (GObject *object)
   EmpathyApp *self = (EmpathyApp *) object;
   gboolean chatroom_manager_ready;
 
+  textdomain (GETTEXT_PACKAGE);
   g_set_application_name (_(PACKAGE_NAME));
 
   gtk_window_set_default_icon_name ("empathy");
-  textdomain (GETTEXT_PACKAGE);
 
 #ifdef ENABLE_DEBUG
   /* Set up debug sender */
@@ -757,6 +740,8 @@ empathy_app_constructed (GObject *object)
   tp_proxy_prepare_async (self->account_manager, NULL,
       account_manager_ready_cb, self);
 
+  tp_account_manager_enable_restart (self->account_manager);
+
   migrate_config_to_xdg_dir ();
 
   /* Logging */