From 0c7f25a8206c918d4a84405b7d1ab8e994c65d0f Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Fri, 4 Nov 2011 11:35:46 +0100 Subject: individual-store: expose some attributes and methods as 'protected' This will be needed when abstracting EmpathyIndividualStore. https://bugzilla.gnome.org/show_bug.cgi?id=663387 --- libempathy-gtk/empathy-individual-store.c | 58 +++++++++++++++---------------- libempathy-gtk/empathy-individual-store.h | 16 +++++++++ 2 files changed, 44 insertions(+), 30 deletions(-) diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c index da0ee871f..650cfb4e4 100644 --- a/libempathy-gtk/empathy-individual-store.c +++ b/libempathy-gtk/empathy-individual-store.c @@ -64,10 +64,8 @@ struct _EmpathyIndividualStorePriv gboolean show_groups; gboolean is_compact; gboolean show_protocols; - gboolean show_active; EmpathyIndividualStoreSort sort_criterium; guint inhibit_active; - guint setup_idle_id; gboolean dispose_has_run; GHashTable *status_icons; /* List of owned GCancellables for each pending avatar load operation */ @@ -285,8 +283,8 @@ free_iters (GList *iters) g_list_free (iters); } -static void -individual_store_remove_individual (EmpathyIndividualStore *self, +void +empathy_individual_store_remove_individual (EmpathyIndividualStore *self, FolksIndividual *individual) { GtkTreeModel *model; @@ -330,8 +328,8 @@ individual_store_remove_individual (EmpathyIndividualStore *self, g_hash_table_remove (self->priv->folks_individual_cache, individual); } -static void -individual_store_add_individual (EmpathyIndividualStore *self, +void +empathy_individual_store_add_individual (EmpathyIndividualStore *self, FolksIndividual *individual) { GtkTreeIter iter; @@ -533,7 +531,7 @@ individual_store_contact_active_cb (ShowActiveData *data) DEBUG ("Individual'%s' active timeout, removing item", folks_alias_details_get_alias ( FOLKS_ALIAS_DETAILS (data->individual))); - individual_store_remove_individual (data->self, data->individual); + empathy_individual_store_remove_individual (data->self, data->individual); } DEBUG ("Individual'%s' no longer active", @@ -638,9 +636,9 @@ individual_store_contact_update (EmpathyIndividualStore *self, DEBUG ("Individual'%s' in list:NO, should be:YES", folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (individual))); - individual_store_add_individual (self, individual); + empathy_individual_store_add_individual (self, individual); - if (self->priv->show_active) + if (self->show_active) { do_set_active = TRUE; @@ -660,7 +658,7 @@ individual_store_contact_update (EmpathyIndividualStore *self, } /* Is this really an update or an online/offline. */ - if (self->priv->show_active) + if (self->show_active) { if (was_online != now_online) { @@ -737,7 +735,7 @@ individual_store_contact_update (EmpathyIndividualStore *self, -1); } - if (self->priv->show_active && do_set_active) + if (self->show_active && do_set_active) { individual_store_contact_set_active (self, individual, do_set_active, do_set_refresh); @@ -868,8 +866,8 @@ individual_store_favourites_changed_cb (FolksIndividual *individual, folks_favourite_details_get_is_favourite ( FOLKS_FAVOURITE_DETAILS (individual)) ? "now" : "no longer"); - individual_store_remove_individual (self, individual); - individual_store_add_individual (self, individual); + empathy_individual_store_remove_individual (self, individual); + empathy_individual_store_add_individual (self, individual); } void @@ -878,7 +876,7 @@ individual_store_add_individual_and_connect (EmpathyIndividualStore *self, { GeeSet *empty_set = gee_set_empty (G_TYPE_NONE, NULL, NULL); - individual_store_add_individual (self, individual); + empathy_individual_store_add_individual (self, individual); g_signal_connect (individual, "notify::avatar", (GCallback) individual_store_individual_updated_cb, self); @@ -899,8 +897,8 @@ individual_store_add_individual_and_connect (EmpathyIndividualStore *self, g_clear_object (&empty_set); } -static void -individual_store_disconnect_individual (EmpathyIndividualStore *self, +void +empathy_individual_store_disconnect_individual (EmpathyIndividualStore *self, FolksIndividual *individual) { GeeSet *empty_set = gee_set_empty (G_TYPE_NONE, NULL, NULL); @@ -923,8 +921,8 @@ individual_store_remove_individual_and_disconnect ( EmpathyIndividualStore *self, FolksIndividual *individual) { - individual_store_disconnect_individual (self, individual); - individual_store_remove_individual (self, individual); + empathy_individual_store_disconnect_individual (self, individual); + empathy_individual_store_remove_individual (self, individual); } static void @@ -968,11 +966,11 @@ individual_store_groups_changed_cb (EmpathyIndividualManager *manager, * would have to check the groups already set up for each * contact and then see what has been updated. */ - show_active = self->priv->show_active; - self->priv->show_active = FALSE; - individual_store_remove_individual (self, individual); - individual_store_add_individual (self, individual); - self->priv->show_active = show_active; + show_active = self->show_active; + self->show_active = FALSE; + empathy_individual_store_remove_individual (self, individual); + empathy_individual_store_add_individual (self, individual); + self->show_active = show_active; } static gboolean @@ -1003,7 +1001,7 @@ individual_store_manager_setup (gpointer user_data) g_list_free (individuals); } - self->priv->setup_idle_id = 0; + self->setup_idle_id = 0; return FALSE; } @@ -1014,7 +1012,7 @@ individual_store_set_individual_manager (EmpathyIndividualStore *self, self->priv->manager = g_object_ref (manager); /* Let a chance to have all properties set before populating */ - self->priv->setup_idle_id = g_idle_add (individual_store_manager_setup, self); + self->setup_idle_id = g_idle_add (individual_store_manager_setup, self); } static void @@ -1057,7 +1055,7 @@ individual_store_dispose (GObject *object) individuals = empathy_individual_manager_get_members (self->priv->manager); for (l = individuals; l; l = l->next) { - individual_store_disconnect_individual (EMPATHY_INDIVIDUAL_STORE (object), + empathy_individual_store_disconnect_individual (self, FOLKS_INDIVIDUAL (l->data)); } g_list_free (individuals); @@ -1075,9 +1073,9 @@ individual_store_dispose (GObject *object) g_source_remove (self->priv->inhibit_active); } - if (self->priv->setup_idle_id != 0) + if (self->setup_idle_id != 0) { - g_source_remove (self->priv->setup_idle_id); + g_source_remove (self->setup_idle_id); } g_hash_table_unref (self->priv->status_icons); @@ -1506,7 +1504,7 @@ individual_store_setup (EmpathyIndividualStore *self) static gboolean individual_store_inhibit_active_cb (EmpathyIndividualStore *self) { - self->priv->show_active = TRUE; + self->show_active = TRUE; self->priv->inhibit_active = 0; return FALSE; @@ -1669,7 +1667,7 @@ empathy_individual_store_set_show_groups (EmpathyIndividualStore *self, self->priv->show_groups = show_groups; - if (self->priv->setup_idle_id == 0) + if (self->setup_idle_id == 0) { /* Remove all contacts and add them back, not optimized but * that's the easy way :) diff --git a/libempathy-gtk/empathy-individual-store.h b/libempathy-gtk/empathy-individual-store.h index dc0c0d7ea..8e62b19d7 100644 --- a/libempathy-gtk/empathy-individual-store.h +++ b/libempathy-gtk/empathy-individual-store.h @@ -79,6 +79,10 @@ struct _EmpathyIndividualStore { GtkTreeStore parent; EmpathyIndividualStorePriv *priv; + + /* protected */ + gboolean show_active; + guint setup_idle_id; }; struct _EmpathyIndividualStoreClass @@ -147,5 +151,17 @@ void individual_store_remove_individual_and_disconnect ( EmpathyIndividualStore *self, FolksIndividual *individual); +/* protected */ + +void empathy_individual_store_disconnect_individual ( + EmpathyIndividualStore *self, + FolksIndividual *individual); + +void empathy_individual_store_remove_individual (EmpathyIndividualStore *self, + FolksIndividual *individual); + +void empathy_individual_store_add_individual (EmpathyIndividualStore *self, + FolksIndividual *individual); + G_END_DECLS #endif /* __EMPATHY_INDIVIDUAL_STORE_H__ */ -- cgit v1.2.3