aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-individual-dialogs.c2
-rw-r--r--libempathy-gtk/empathy-individual-information-dialog.c2
-rw-r--r--libempathy-gtk/empathy-individual-menu.c8
-rw-r--r--libempathy-gtk/empathy-individual-store.c4
-rw-r--r--libempathy-gtk/empathy-individual-view.c19
-rw-r--r--libempathy-gtk/empathy-individual-widget.c20
-rw-r--r--libempathy-gtk/empathy-linking-dialog.c2
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++;
}