X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=src%2Fempathy-accounts.c;h=9788e11d599847083788f6b2ab4bb0f78c080b1e;hp=3b25201c5abb0839d7365edc4584fab47ea2a327;hb=6598a3c9d90ce78fd2fd641ca552840742756dfb;hpb=6678cb7bc2dbd2b57925bdb70da0cb64bad03e2c diff --git a/src/empathy-accounts.c b/src/empathy-accounts.c index 3b25201c..9788e11d 100644 --- a/src/empathy-accounts.c +++ b/src/empathy-accounts.c @@ -24,37 +24,27 @@ * 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-account-assistant.h" -#include "empathy-auto-salut-account-helper.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; static gchar *selected_account_name = NULL; -static gboolean assistant = FALSE; static void maybe_show_accounts_ui (TpAccountManager *manager, @@ -66,7 +56,7 @@ maybe_show_accounts_ui (TpAccountManager *manager, if (only_if_needed && empathy_accounts_has_non_salut_accounts (manager)) return; - empathy_accounts_show_accounts_ui (manager, NULL, assistant, app); + empathy_accounts_show_accounts_ui (manager, NULL, app); } static TpAccount * @@ -76,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)) @@ -86,7 +76,7 @@ find_account (TpAccountManager *mgr, } } - g_list_free (accounts); + g_list_free_full (accounts, g_object_unref); return found; } @@ -123,7 +113,7 @@ account_manager_ready_for_accounts_cb (GObject *source_object, if (account != NULL) { - empathy_accounts_show_accounts_ui (manager, account, assistant, app); + empathy_accounts_show_accounts_ui (manager, account, app); goto out; } else @@ -146,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 */ @@ -161,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 @@ -173,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; @@ -191,17 +179,14 @@ local_cmdline (GApplication *app, N_("Initially select given account (eg, " "gabble/jabber/foo_40example_2eorg0)"), N_("") }, - { "assistant", 'a', - 0, G_OPTION_ARG_NONE, &assistant, - N_("Show account assistant"), - NULL }, { NULL } }; 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++) @@ -212,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); @@ -229,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);