*/
#include "config.h"
-
-#include <string.h>
-
-#include <glib.h>
-#include <glib/gi18n-lib.h>
-#include <gtk/gtk.h>
-
-#include <folks/folks.h>
-#include <folks/folks-telepathy.h>
-#include <telepathy-glib/util.h>
-
-#include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-enum-types.h>
-#include <libempathy/empathy-individual-manager.h>
-
#include "empathy-individual-store-manager.h"
-#include "empathy-ui-utils.h"
-#include "empathy-gtk-enum-types.h"
-
#define DEBUG_FLAG EMPATHY_DEBUG_CONTACT
-#include <libempathy/empathy-debug.h>
+#include "empathy-debug.h"
struct _EmpathyIndividualStoreManagerPriv
{
EmpathyIndividualManager *manager;
+ gboolean setup_idle_id;
};
enum
for (l = removed; l; l = l->next)
{
- DEBUG ("Individual %s %s",
- folks_individual_get_id (l->data), "removed");
+ DEBUG ("Individual %s (%s) %s",
+ folks_individual_get_id (l->data),
+ folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (l->data)),
+ "removed");
individual_store_remove_individual_and_disconnect (store, l->data);
}
for (l = added; l; l = l->next)
{
- DEBUG ("Individual %s %s", folks_individual_get_id (l->data), "added");
+ DEBUG ("Individual %s (%s) %s", folks_individual_get_id (l->data),
+ folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (l->data)),
+ "added");
individual_store_add_individual_and_connect (store, l->data);
}
{
EmpathyIndividualStore *store = EMPATHY_INDIVIDUAL_STORE (self);
- DEBUG ("Updating groups for individual %s",
- folks_individual_get_id (individual));
+ DEBUG ("Updating groups for individual %s (%s)",
+ folks_individual_get_id (individual),
+ folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (individual)));
/* We do this to make sure the groups are correct, if not, we
* would have to check the groups already set up for each
individual_store_manager_manager_setup (gpointer user_data)
{
EmpathyIndividualStoreManager *self = user_data;
- EmpathyIndividualStore *store = user_data;
GList *individuals;
/* Signal connection. */
g_list_free (individuals);
}
- store->setup_idle_id = 0;
+ self->priv->setup_idle_id = 0;
return FALSE;
}
EmpathyIndividualStoreManager *self,
EmpathyIndividualManager *manager)
{
- EmpathyIndividualStore *store = EMPATHY_INDIVIDUAL_STORE (self);
-
g_assert (self->priv->manager == NULL); /* construct only */
self->priv->manager = g_object_ref (manager);
/* Let a chance to have all properties set before populating */
- store->setup_idle_id = g_idle_add (individual_store_manager_manager_setup,
- self);
+ self->priv->setup_idle_id = g_idle_add (
+ individual_store_manager_manager_setup, self);
}
static void
{
EmpathyIndividualStore *store = EMPATHY_INDIVIDUAL_STORE (self);
- DEBUG ("Individual %s renamed to %s",
+ DEBUG ("Individual %s (%s) renamed to %s",
folks_individual_get_id (old_individual),
+ folks_alias_details_get_alias (FOLKS_ALIAS_DETAILS (old_individual)),
folks_individual_get_id (new_individual));
/* remove old contact */
g_clear_object (&self->priv->manager);
}
+ if (self->priv->setup_idle_id != 0)
+ {
+ g_source_remove (self->priv->setup_idle_id);
+ self->priv->setup_idle_id = 0;
+ }
+
G_OBJECT_CLASS (empathy_individual_store_manager_parent_class)->dispose (
object);
}
g_list_free (contacts);
}
+static gboolean
+individual_store_manager_initial_loading (EmpathyIndividualStore *store)
+{
+ EmpathyIndividualStoreManager *self = EMPATHY_INDIVIDUAL_STORE_MANAGER (
+ store);
+
+ return self->priv->setup_idle_id != 0;
+}
+
static void
empathy_individual_store_manager_class_init (
EmpathyIndividualStoreManagerClass *klass)
object_class->set_property = individual_store_manager_set_property;
store_class->reload_individuals = individual_store_manager_reload_individuals;
+ store_class->initial_loading = individual_store_manager_initial_loading;
g_object_class_install_property (object_class,
PROP_INDIVIDUAL_MANAGER,