X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=src%2Fempathy-accounts.c;h=9788e11d599847083788f6b2ab4bb0f78c080b1e;hp=6b51820f7e3d53f88b63179319ca8790a16a0ebc;hb=6598a3c9d90ce78fd2fd641ca552840742756dfb;hpb=894b1f315b62499a5d305aff6b937093a20df1a4 diff --git a/src/empathy-accounts.c b/src/empathy-accounts.c index 6b51820f..9788e11d 100644 --- a/src/empathy-accounts.c +++ b/src/empathy-accounts.c @@ -24,30 +24,23 @@ * Travis Reitter */ -#include - -#include -#include +#include "config.h" +#include "empathy-accounts.h" -#include #include +#include -#include -#include -#include +#ifdef HAVE_CHEESE +#include +#endif -#include -#include -#include - -#include "empathy-accounts.h" #include "empathy-accounts-common.h" -#include "empathy-accounts-dialog.h" +#include "empathy-bus-names.h" +#include "empathy-ui-utils.h" +#include "empathy-utils.h" #define DEBUG_FLAG EMPATHY_DEBUG_ACCOUNT -#include - -#define EMPATHY_ACCOUNTS_DBUS_NAME "org.gnome.EmpathyAccounts" +#include "empathy-debug.h" static gboolean only_if_needed = FALSE; static gboolean hidden = FALSE; @@ -73,7 +66,7 @@ find_account (TpAccountManager *mgr, GList *accounts, *l; TpAccount *found = NULL; - accounts = tp_account_manager_get_valid_accounts (mgr); + accounts = tp_account_manager_dup_valid_accounts (mgr); for (l = accounts; l != NULL; l = g_list_next (l)) { if (!tp_strdiff (tp_proxy_get_object_path (l->data), path)) @@ -83,7 +76,7 @@ find_account (TpAccountManager *mgr, } } - g_list_free (accounts); + g_list_free_full (accounts, g_object_unref); return found; } @@ -143,12 +136,12 @@ out: g_application_release (app); } -static int -app_command_line_cb (GApplication *app, - GApplicationCommandLine *cmdline) +static void +app_activate (GApplication *app) { TpAccountManager *account_manager; + empathy_gtk_init (); account_manager = tp_account_manager_dup (); /* Hold the application while preparing the AM */ @@ -158,8 +151,6 @@ app_command_line_cb (GApplication *app, account_manager_ready_for_accounts_cb, app); g_object_unref (account_manager); - - return 0; } static gboolean @@ -170,7 +161,7 @@ local_cmdline (GApplication *app, gint i; gchar **argv; gint argc = 0; - gboolean retval = FALSE; + gboolean retval = TRUE; GError *error = NULL; GOptionContext *optcontext; @@ -193,8 +184,9 @@ local_cmdline (GApplication *app, }; optcontext = g_option_context_new (N_("- Empathy Accounts")); - g_option_context_add_group (optcontext, gtk_get_option_group (TRUE)); + g_option_context_add_group (optcontext, gtk_get_option_group (FALSE)); g_option_context_add_main_entries (optcontext, options, GETTEXT_PACKAGE); + g_option_context_set_translation_domain (optcontext, GETTEXT_PACKAGE); argv = *arguments; for (i = 0; argv[i] != NULL; i++) @@ -205,9 +197,22 @@ local_cmdline (GApplication *app, g_print ("%s\nRun '%s --help' to see a full list of available command line options.\n", error->message, argv[0]); g_warning ("Error in empathy init: %s", error->message); + g_clear_error (&error); *exit_status = EXIT_FAILURE; - retval = TRUE; + } + else + { + if (g_application_register (app, NULL, &error)) + { + g_application_activate (app); + } + else + { + g_warning ("Impossible to register empathy-application: %s", error->message); + g_clear_error (&error); + *exit_status = EXIT_FAILURE; + } } g_option_context_free (optcontext); @@ -222,26 +227,26 @@ main (int argc, char *argv[]) GObjectClass *app_class; gint retval; - g_thread_init (NULL); - empathy_init (); + g_type_init (); - gtk_init (&argc, &argv); - empathy_gtk_init (); +#ifdef HAVE_CHEESE + /* Used by the avatar chooser */ + g_return_val_if_fail (cheese_gtk_init (&argc, &argv), 1); +#endif + + empathy_init (); + textdomain (GETTEXT_PACKAGE); g_set_application_name (_("Empathy Accounts")); /* Make empathy and empathy-accounts appear as the same app in gnome-shell */ gdk_set_program_class ("Empathy"); gtk_window_set_default_icon_name ("empathy"); - textdomain (GETTEXT_PACKAGE); - app = gtk_application_new (EMPATHY_ACCOUNTS_DBUS_NAME, - G_APPLICATION_HANDLES_COMMAND_LINE); + app = gtk_application_new (EMPATHY_ACCOUNTS_BUS_NAME, G_APPLICATION_FLAGS_NONE); app_class = G_OBJECT_GET_CLASS (app); G_APPLICATION_CLASS (app_class)->local_command_line = local_cmdline; - - g_signal_connect (app, "command-line", G_CALLBACK (app_command_line_cb), - NULL); + G_APPLICATION_CLASS (app_class)->activate = app_activate; retval = g_application_run (G_APPLICATION (app), argc, argv);