[empathy] Implement TpContact selection in EmpathyInviteParticipantDialog
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] Implement TpContact selection in EmpathyInviteParticipantDialog
- Date: Fri, 5 Aug 2011 13:05:20 +0000 (UTC)
commit 508d001793fdcb91dc6305c547a9b2f205acdad1
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Fri Aug 5 12:00:31 2011 +0200
Implement TpContact selection in EmpathyInviteParticipantDialog
https://bugzilla.gnome.org/show_bug.cgi?id=656020
libempathy-gtk/empathy-contact-chooser.c | 57 ++----------------------------
libempathy-gtk/empathy-contact-chooser.h | 2 +-
src/empathy-invite-participant-dialog.c | 12 ++++++-
3 files changed, 15 insertions(+), 56 deletions(-)
---
diff --git a/libempathy-gtk/empathy-contact-chooser.c b/libempathy-gtk/empathy-contact-chooser.c
index 9605855..f6fa59d 100644
--- a/libempathy-gtk/empathy-contact-chooser.c
+++ b/libempathy-gtk/empathy-contact-chooser.c
@@ -192,47 +192,6 @@ view_selection_changed_cb (GtkWidget *treeview,
tp_clear_object (&individual);
}
-/* Return the TpContact of @individual which is on the same connection as the
- * EmpathyTpChat */
-static TpContact *
-get_tp_contact_for_chat (EmpathyContactChooser *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;
-}
-
static gboolean
filter_func (GtkTreeModel *model,
GtkTreeIter *iter,
@@ -446,20 +405,10 @@ empathy_contact_chooser_new (EmpathyTpChat *tp_chat)
NULL);
}
-TpContact *
-empathy_contact_chooser_get_selected (EmpathyContactChooser *self)
+FolksIndividual *
+empathy_contact_chooser_dup_selected (EmpathyContactChooser *self)
{
- FolksIndividual *individual;
- TpContact *contact;
-
- individual = empathy_individual_view_dup_selected (self->priv->view);
- if (individual == NULL)
- return NULL;
-
- contact = get_tp_contact_for_chat (self, individual);
-
- g_object_unref (individual);
- return contact;
+ return empathy_individual_view_dup_selected (self->priv->view);
}
void
diff --git a/libempathy-gtk/empathy-contact-chooser.h b/libempathy-gtk/empathy-contact-chooser.h
index 142660a..b6e45c2 100644
--- a/libempathy-gtk/empathy-contact-chooser.h
+++ b/libempathy-gtk/empathy-contact-chooser.h
@@ -54,7 +54,7 @@ GType empathy_contact_chooser_get_type (void);
GtkWidget * empathy_contact_chooser_new (EmpathyTpChat *tp_chat);
-TpContact * empathy_contact_chooser_get_selected (
+FolksIndividual * empathy_contact_chooser_dup_selected (
EmpathyContactChooser *self);
void empathy_contact_chooser_set_filter_func (EmpathyContactChooser *self,
diff --git a/src/empathy-invite-participant-dialog.c b/src/empathy-invite-participant-dialog.c
index eedc6af..4023eba 100644
--- a/src/empathy-invite-participant-dialog.c
+++ b/src/empathy-invite-participant-dialog.c
@@ -284,6 +284,16 @@ TpContact *
empathy_invite_participant_dialog_get_selected (
EmpathyInviteParticipantDialog *self)
{
- return empathy_contact_chooser_get_selected (
+ FolksIndividual *individual;
+ TpContact *contact;
+
+ individual = empathy_contact_chooser_dup_selected (
EMPATHY_CONTACT_CHOOSER (self->priv->chooser));
+ if (individual == NULL)
+ return NULL;
+
+ contact = get_tp_contact_for_chat (self, individual);
+
+ g_object_unref (individual);
+ return contact;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]