diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-08-02 15:24:41 +0200 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-08-02 16:30:16 +0200 |
commit | 48cfae7dfe818c39835d609933e9db12a3bdc573 (patch) | |
tree | 6b4a130b939b11610f074d92ef48d462868a33e5 | |
parent | ae5de32be39b2dbb6df88033e74ac792ad4ace84 (diff) |
add tp_account_manager_can_set_default()
When creating/editing an account, the Ubuntu Online Accounts panel loads the
relevant plugin dynamically. In order to work properly, this plugin has to
define the default AM with some features. But
tp_account_manager_set_default() can only be called once, later calls
resulting in critical warnings. By using tp_account_manager_can_set_default()
the plugin can check if the default AM has already be defined or not.
-rw-r--r-- | docs/reference/telepathy-glib-sections.txt | 1 | ||||
-rw-r--r-- | telepathy-glib/account-manager.c | 17 | ||||
-rw-r--r-- | telepathy-glib/account-manager.h | 4 |
3 files changed, 22 insertions, 0 deletions
diff --git a/docs/reference/telepathy-glib-sections.txt b/docs/reference/telepathy-glib-sections.txt index a41a3be1e..6fcc3b653 100644 --- a/docs/reference/telepathy-glib-sections.txt +++ b/docs/reference/telepathy-glib-sections.txt @@ -5310,6 +5310,7 @@ tp_account_manager_new tp_account_manager_new_with_factory tp_account_manager_init_known_interfaces tp_account_manager_set_default +tp_account_manager_can_set_default tp_account_manager_dup tp_account_manager_create_account_async tp_account_manager_create_account_finish diff --git a/telepathy-glib/account-manager.c b/telepathy-glib/account-manager.c index 6d31a01da..8b9516de0 100644 --- a/telepathy-glib/account-manager.c +++ b/telepathy-glib/account-manager.c @@ -838,6 +838,23 @@ tp_account_manager_set_default (TpAccountManager *manager) } /** + * tp_account_manager_can_set_default: + * + * Check if tp_account_manager_set_default() has already successfully been + * called. + * + * Returns: %TRUE if tp_account_manager_set_default() has already successfully + * been called in this process, %FALSE otherwise. + * + * Since: UNRELEASED + */ +gboolean +tp_account_manager_can_set_default (void) +{ + return starter_account_manager_proxy == NULL; +} + +/** * tp_account_manager_dup: * * Returns an account manager proxy on the D-Bus daemon on which this diff --git a/telepathy-glib/account-manager.h b/telepathy-glib/account-manager.h index 7c373ed8b..42b70b4be 100644 --- a/telepathy-glib/account-manager.h +++ b/telepathy-glib/account-manager.h @@ -82,6 +82,10 @@ TpAccountManager *tp_account_manager_new_with_factory ( _TP_AVAILABLE_IN_0_16 void tp_account_manager_set_default (TpAccountManager *manager); + +_TP_AVAILABLE_IN_UNRELEASED +gboolean tp_account_manager_can_set_default (void); + TpAccountManager *tp_account_manager_dup (void) G_GNUC_WARN_UNUSED_RESULT; void tp_account_manager_init_known_interfaces (void); |