[next] telepathy-glib: add tp_account_manager_can_set_default()

Jonny Lamb jonny at kemper.freedesktop.org
Fri Aug 31 03:18:52 PDT 2012


Module: telepathy-glib
Branch: next
Commit: 48cfae7dfe818c39835d609933e9db12a3bdc573
URL:    http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=48cfae7dfe818c39835d609933e9db12a3bdc573

Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date:   Thu Aug  2 15:24:41 2012 +0200

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.

---

 docs/reference/telepathy-glib-sections.txt |    1 +
 telepathy-glib/account-manager.c           |   17 +++++++++++++++++
 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 a41a3be..6fcc3b6 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 6d31a01..8b9516d 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 7c373ed..42b70b4 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);



More information about the telepathy-commits mailing list