diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2011-01-30 00:16:29 +0800 |
---|---|---|
committer | Philip Withnall <philip.withnall@collabora.co.uk> | 2011-02-18 08:04:45 +0800 |
commit | 7365b5426c1e281f49bd67506c09ce76ffb67e2c (patch) | |
tree | fc7ab108424e93aad9463308ed79b3caf5482427 /libempathy-gtk | |
parent | 6103b13b462a07a8b508ee2223ef1e5acfc8dd47 (diff) | |
download | gsoc2013-empathy-7365b5426c1e281f49bd67506c09ce76ffb67e2c.tar gsoc2013-empathy-7365b5426c1e281f49bd67506c09ce76ffb67e2c.tar.gz gsoc2013-empathy-7365b5426c1e281f49bd67506c09ce76ffb67e2c.tar.bz2 gsoc2013-empathy-7365b5426c1e281f49bd67506c09ce76ffb67e2c.tar.lz gsoc2013-empathy-7365b5426c1e281f49bd67506c09ce76ffb67e2c.tar.xz gsoc2013-empathy-7365b5426c1e281f49bd67506c09ce76ffb67e2c.tar.zst gsoc2013-empathy-7365b5426c1e281f49bd67506c09ce76ffb67e2c.zip |
Bug 637151 — Hide the user Individual from the contact list
Generalise the mechanism used to determine whether a persona is to be
displayed by Empathy to also take into account whether the persona is the
user and, if so, whether they're in the contact list.
This bumps the libfolks dependency to 0.3.5.
Closes: bgo#637151
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-individual-dialogs.c | 2 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-information-dialog.c | 2 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-menu.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-store.c | 4 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-view.c | 19 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-widget.c | 20 | ||||
-rw-r--r-- | libempathy-gtk/empathy-linking-dialog.c | 2 |
7 files changed, 35 insertions, 22 deletions
diff --git a/libempathy-gtk/empathy-individual-dialogs.c b/libempathy-gtk/empathy-individual-dialogs.c index 22af8d567..07fe24a53 100644 --- a/libempathy-gtk/empathy-individual-dialogs.c +++ b/libempathy-gtk/empathy-individual-dialogs.c @@ -193,7 +193,7 @@ empathy_block_individual_dialog_show (GtkWindow *parent, TpContact *contact; EmpathyIndividualManagerFlags flags; - if (!TPF_IS_PERSONA (persona)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (persona))) continue; contact = tpf_persona_get_contact (persona); diff --git a/libempathy-gtk/empathy-individual-information-dialog.c b/libempathy-gtk/empathy-individual-information-dialog.c index 7659c8ba6..fcbec1228 100644 --- a/libempathy-gtk/empathy-individual-information-dialog.c +++ b/libempathy-gtk/empathy-individual-information-dialog.c @@ -139,7 +139,7 @@ set_label_visibility (EmpathyIndividualInformationDialog *dialog) personas = folks_individual_get_personas (priv->individual); for (l = personas; l != NULL; l = l->next) { - if (TPF_IS_PERSONA (l->data)) + if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) num_personas++; } } diff --git a/libempathy-gtk/empathy-individual-menu.c b/libempathy-gtk/empathy-individual-menu.c index 757bbe54a..7cab792a2 100644 --- a/libempathy-gtk/empathy-individual-menu.c +++ b/libempathy-gtk/empathy-individual-menu.c @@ -87,7 +87,7 @@ individual_menu_add_personas (GtkMenuShell *menu, * functionality */ for (l = personas; l != NULL; l = l->next) { - if (!TPF_IS_PERSONA (l->data)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) continue; persona_count++; @@ -116,7 +116,7 @@ individual_menu_add_personas (GtkMenuShell *menu, const gchar *account; GtkWidget *action; - if (!TPF_IS_PERSONA (persona)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) continue; tp_contact = tpf_persona_get_contact (persona); @@ -940,7 +940,7 @@ room_sub_menu_activate_cb (GtkWidget *item, TpContact *tp_contact; GList *rooms; - if (!TPF_IS_PERSONA (persona)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) continue; tp_contact = tpf_persona_get_contact (persona); @@ -1040,7 +1040,7 @@ empathy_individual_invite_menu_item_new (FolksIndividual *individual, TpContact *tp_contact; EmpathyContact *contact_cur; - if (!TPF_IS_PERSONA (persona)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) continue; tp_contact = tpf_persona_get_contact (persona); diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c index 4146407e4..5035b77d3 100644 --- a/libempathy-gtk/empathy-individual-store.c +++ b/libempathy-gtk/empathy-individual-store.c @@ -132,7 +132,7 @@ individual_can_audio_video_call (FolksIndividual *individual, TpContact *tp_contact; EmpathyContact *contact; - if (!TPF_IS_PERSONA (l->data)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) continue; tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data)); @@ -1912,7 +1912,7 @@ individual_store_get_individual_status_icon_with_icon_name ( personas = folks_individual_get_personas (individual); for (l = personas, contact_count = 0; l; l = l->next) { - if (TPF_IS_PERSONA (l->data)) + if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) contact_count++; if (contact_count > 1) diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c index eb2bb4003..29bf2e645 100644 --- a/libempathy-gtk/empathy-individual-view.c +++ b/libempathy-gtk/empathy-individual-view.c @@ -1614,7 +1614,7 @@ individual_view_is_visible_individual (EmpathyIndividualView *self, EmpathyLiveSearch *live = EMPATHY_LIVE_SEARCH (priv->search_widget); const gchar *str; GList *personas, *l; - gboolean is_favorite; + gboolean is_favorite, contains_interesting_persona = FALSE; /* We're only giving the visibility wrt filtering here, not things like * presence. */ @@ -1624,6 +1624,20 @@ individual_view_is_visible_individual (EmpathyIndividualView *self, return FALSE; } + /* Hide all individuals which consist entirely of uninteresting personas */ + personas = folks_individual_get_personas (individual); + for (l = personas; l; l = l->next) + { + if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) + { + contains_interesting_persona = TRUE; + break; + } + } + + if (contains_interesting_persona == FALSE) + return FALSE; + is_favorite = folks_favouritable_get_is_favourite ( FOLKS_FAVOURITABLE (individual)); if (is_searching == FALSE) @@ -1636,14 +1650,13 @@ individual_view_is_visible_individual (EmpathyIndividualView *self, return TRUE; /* check contact id, remove the @server.com part */ - personas = folks_individual_get_personas (individual); for (l = personas; l; l = l->next) { const gchar *p; gchar *dup_str = NULL; gboolean visible; - if (!TPF_IS_PERSONA (l->data)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) continue; str = folks_persona_get_display_id (l->data); diff --git a/libempathy-gtk/empathy-individual-widget.c b/libempathy-gtk/empathy-individual-widget.c index dd894646c..19d0f81a7 100644 --- a/libempathy-gtk/empathy-individual-widget.c +++ b/libempathy-gtk/empathy-individual-widget.c @@ -400,7 +400,7 @@ details_update (EmpathyIndividualWidget *self) personas = folks_individual_get_personas (priv->individual); for (l = personas; l != NULL; l = l->next) { - if (TPF_IS_PERSONA (l->data)) + if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) { tp_contact = tpf_persona_get_contact (TPF_PERSONA (l->data)); if (tp_contact != NULL) @@ -548,7 +548,7 @@ location_update (EmpathyIndividualWidget *self) { FolksPersona *persona = FOLKS_PERSONA (l->data); - if (TPF_IS_PERSONA (persona)) + if (empathy_folks_persona_is_interesting (persona)) { TpContact *tp_contact; @@ -721,7 +721,7 @@ location_update (EmpathyIndividualWidget *self) { FolksPersona *persona = FOLKS_PERSONA (l->data); - if (TPF_IS_PERSONA (persona)) + if (empathy_folks_persona_is_interesting (persona)) { gdouble lat = 0.0, lon = 0.0; ClutterActor *marker; @@ -793,7 +793,7 @@ persona_dup_avatar (FolksPersona *persona) EmpathyContact *contact; EmpathyAvatar *avatar; - if (!TPF_IS_PERSONA (persona)) + if (!empathy_folks_persona_is_interesting (persona)) return NULL; tp_contact = tpf_persona_get_contact (TPF_PERSONA (persona)); @@ -996,7 +996,7 @@ individual_is_user (FolksIndividual *individual) { FolksPersona *persona = FOLKS_PERSONA (l->data); - if (TPF_IS_PERSONA (persona)) + if (empathy_folks_persona_is_interesting (persona)) { TpContact *tp_contact; EmpathyContact *contact; @@ -1391,7 +1391,7 @@ add_persona (EmpathyIndividualWidget *self, GtkWidget *label, *account_label, *account_image, *separator; guint current_row = 0; - if (!TPF_IS_PERSONA (persona)) + if (!empathy_folks_persona_is_interesting (persona)) return; if (priv->flags & EMPATHY_INDIVIDUAL_WIDGET_EDIT_FAVOURITE) @@ -1494,7 +1494,7 @@ remove_persona (EmpathyIndividualWidget *self, GtkWidget *separator; GtkTable *table; - if (!TPF_IS_PERSONA (persona)) + if (!empathy_folks_persona_is_interesting (persona)) return; table = g_hash_table_lookup (priv->persona_tables, persona); @@ -1566,7 +1566,7 @@ individual_table_set_up (EmpathyIndividualWidget *self) personas = folks_individual_get_personas (priv->individual); for (l = personas; l != NULL; l = l->next) { - if (TPF_IS_PERSONA (l->data)) + if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) num_personas++; } @@ -1629,7 +1629,7 @@ personas_changed_cb (FolksIndividual *individual, for (l = personas; l != NULL; l = l->next) { - if (TPF_IS_PERSONA (l->data)) + if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) new_num_personas++; } @@ -1811,7 +1811,7 @@ individual_update (EmpathyIndividualWidget *self) personas = folks_individual_get_personas (priv->individual); for (l = personas; l != NULL; l = l->next) { - if (!TPF_IS_PERSONA (l->data)) + if (!empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) continue; update_persona (self, FOLKS_PERSONA (l->data)); diff --git a/libempathy-gtk/empathy-linking-dialog.c b/libempathy-gtk/empathy-linking-dialog.c index 323ec4e03..b71b3660c 100644 --- a/libempathy-gtk/empathy-linking-dialog.c +++ b/libempathy-gtk/empathy-linking-dialog.c @@ -248,7 +248,7 @@ empathy_linking_dialog_show (FolksIndividual *individual, personas = folks_individual_get_personas (individual); for (l = personas; l != NULL; l = l->next) { - if (TPF_IS_PERSONA (l->data)) + if (empathy_folks_persona_is_interesting (FOLKS_PERSONA (l->data))) num_personas++; } |