[empathy] factor out empathy_get_tp_contact_for_individual
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] factor out empathy_get_tp_contact_for_individual
- Date: Thu, 8 Sep 2011 15:23:58 +0000 (UTC)
commit ad119467cf50c8437a62ba6e6f483eb9032771a9
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Thu Sep 8 17:02:44 2011 +0200
factor out empathy_get_tp_contact_for_individual
libempathy/empathy-utils.c | 38 +++++++++++++++++++++++++++++++
libempathy/empathy-utils.h | 3 ++
src/empathy-invite-participant-dialog.c | 32 ++-----------------------
3 files changed, 44 insertions(+), 29 deletions(-)
---
diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c
index 24fdf97..172e9e1 100644
--- a/libempathy/empathy-utils.c
+++ b/libempathy/empathy-utils.c
@@ -992,3 +992,41 @@ empathy_account_has_uri_scheme_tel (TpAccount *account)
return FALSE;
}
+
+/* Return the TpContact on @conn associated with @individual, if any */
+TpContact *
+empathy_get_tp_contact_for_individual (FolksIndividual *individual,
+ TpConnection *conn)
+{
+ TpContact *contact = NULL;
+ GeeSet *personas;
+ GeeIterator *iter;
+
+ personas = folks_individual_get_personas (individual);
+ iter = gee_iterable_iterator (GEE_ITERABLE (personas));
+ while (contact == NULL && gee_iterator_next (iter))
+ {
+ TpfPersona *persona = gee_iterator_get (iter);
+ TpConnection *contact_conn;
+ TpContact *contact_cur = NULL;
+
+ if (TPF_IS_PERSONA (persona))
+ {
+ contact_cur = tpf_persona_get_contact (persona);
+ if (contact_cur != NULL)
+ {
+ contact_conn = tp_contact_get_connection (contact_cur);
+
+ if (!tp_strdiff (tp_proxy_get_object_path (contact_conn),
+ tp_proxy_get_object_path (conn)))
+ contact = contact_cur;
+ }
+ }
+
+ g_clear_object (&persona);
+ }
+ g_clear_object (&iter);
+
+ return contact;
+}
+
diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h
index fb25d7a..69a7d62 100644
--- a/libempathy/empathy-utils.h
+++ b/libempathy/empathy-utils.h
@@ -108,6 +108,9 @@ gchar *empathy_format_currency (gint amount,
gboolean empathy_account_has_uri_scheme_tel (TpAccount *account);
+TpContact * empathy_get_tp_contact_for_individual (FolksIndividual *individual,
+ TpConnection *conn);
+
/* Copied from wocky/wocky-utils.h */
#define empathy_implement_finish_void(source, tag) \
diff --git a/src/empathy-invite-participant-dialog.c b/src/empathy-invite-participant-dialog.c
index ec5a275..9280dda 100644
--- a/src/empathy-invite-participant-dialog.c
+++ b/src/empathy-invite-participant-dialog.c
@@ -14,6 +14,8 @@
#include "empathy-invite-participant-dialog.h"
+#include <libempathy/empathy-utils.h>
+
#include <libempathy-gtk/empathy-contact-chooser.h>
#include <libempathy-gtk/empathy-individual-view.h>
#include <libempathy-gtk/empathy-ui-utils.h>
@@ -101,39 +103,11 @@ static TpContact *
get_tp_contact_for_chat (EmpathyInviteParticipantDialog *self,
FolksIndividual *individual)
{
- TpContact *contact = NULL;
TpConnection *chat_conn;
- GeeSet *personas;
- GeeIterator *iter;
chat_conn = tp_channel_borrow_connection (TP_CHANNEL (self->priv->tp_chat));
- personas = folks_individual_get_personas (individual);
- iter = gee_iterable_iterator (GEE_ITERABLE (personas));
- while (contact == FALSE && gee_iterator_next (iter))
- {
- TpfPersona *persona = gee_iterator_get (iter);
- TpConnection *contact_conn;
- TpContact *contact_cur = NULL;
-
- if (TPF_IS_PERSONA (persona))
- {
- contact_cur = tpf_persona_get_contact (persona);
- if (contact_cur != NULL)
- {
- contact_conn = tp_contact_get_connection (contact_cur);
-
- if (!tp_strdiff (tp_proxy_get_object_path (contact_conn),
- tp_proxy_get_object_path (chat_conn)))
- contact = contact_cur;
- }
- }
-
- g_clear_object (&persona);
- }
- g_clear_object (&iter);
-
- return contact;
+ return empathy_get_tp_contact_for_individual (individual, chat_conn);
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]