if (!visible) {
empathy_window_iconify (priv->window, priv->icon);
} else {
- GList *accounts;
- GList *l;
- gboolean one_enabled = FALSE;
-
empathy_window_present (GTK_WINDOW (priv->window), TRUE);
-
- /* Show the accounts dialog if there is no enabled accounts */
- accounts = empathy_account_manager_dup_accounts (priv->account_manager);
- for (l = accounts ; l != NULL ; l = g_list_next (l)) {
- one_enabled = empathy_account_is_enabled (EMPATHY_ACCOUNT (l->data))
- || one_enabled;
- g_object_unref (l->data);
- }
- g_list_free (accounts);
- if (!one_enabled) {
- DEBUG ("No enabled account, Showing account dialog");
- empathy_accounts_dialog_show (GTK_WINDOW (priv->window), NULL);
- }
}
}
}
#endif /* ENABLE_DEBUG */
+static void
+account_manager_ready_cb (EmpathyAccountManager *manager,
+ GParamSpec *spec,
+ gpointer user_data)
+{
+ if (!empathy_account_manager_is_ready (manager))
+ return;
+
+ if (empathy_account_manager_get_count (manager) != 0)
+ {
+ empathy_accounts_dialog_show (GTK_WINDOW (empathy_main_window_get ()),
+ NULL);
+ }
+ create_salut_account ();
+}
+
int
main (int argc, char *argv[])
{
/* account management */
account_manager = empathy_account_manager_dup_singleton ();
-
- create_salut_account ();
+ g_signal_connect (account_manager, "notify::ready",
+ G_CALLBACK (account_manager_ready_cb), NULL);
/* Setting up UI */
window = empathy_main_window_show ();
return EXIT_SUCCESS;
}
-