FolksIndividual * empathy_create_individual_from_tp_contact (TpContact *contact) { GeeSet *personas; TpfPersona *persona; FolksIndividual *individual; persona = tpf_persona_dup_for_contact (contact); if (persona == NULL) { DEBUG ("Failed to get a persona for %s", tp_contact_get_identifier (contact)); return NULL; } personas = GEE_SET ( gee_hash_set_new (FOLKS_TYPE_PERSONA, g_object_ref, g_object_unref, g_direct_hash, g_direct_equal)); gee_collection_add (GEE_COLLECTION (personas), persona); individual = folks_individual_new (personas); g_clear_object (&persona); g_clear_object (&personas); return individual; }
static FolksIndividual * create_individual_from_persona (FolksPersona *persona) { GeeSet *personas; FolksIndividual *individual; personas = GEE_SET ( gee_hash_set_new (FOLKS_TYPE_PERSONA, g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL)); gee_collection_add (GEE_COLLECTION (personas), persona); individual = folks_individual_new (personas); g_clear_object (&personas); return individual; }
/** * empathy_individual_linker_set_start_individual: * @self: an #EmpathyIndividualLinker * @individual: (allow-none): the start individual, or %NULL * * Set the value of #EmpathyIndividualLinker:start-individual to @individual. */ void empathy_individual_linker_set_start_individual (EmpathyIndividualLinker *self, FolksIndividual *individual) { EmpathyIndividualLinkerPriv *priv; g_return_if_fail (EMPATHY_IS_INDIVIDUAL_LINKER (self)); g_return_if_fail (individual == NULL || FOLKS_IS_INDIVIDUAL (individual)); priv = GET_PRIV (self); tp_clear_object (&priv->start_individual); tp_clear_object (&priv->new_individual); g_hash_table_remove_all (priv->changed_individuals); if (individual != NULL) { priv->start_individual = g_object_ref (individual); priv->new_individual = folks_individual_new ( folks_individual_get_personas (individual)); empathy_individual_view_set_store (priv->individual_view, priv->individual_store); } else { priv->start_individual = NULL; priv->new_individual = NULL; /* We only display Individuals in the individual view if we have a * new_individual to link them into */ empathy_individual_view_set_store (priv->individual_view, NULL); } empathy_individual_widget_set_individual ( EMPATHY_INDIVIDUAL_WIDGET (priv->preview_widget), priv->new_individual); empathy_persona_store_set_individual (priv->persona_store, priv->new_individual); g_object_freeze_notify (G_OBJECT (self)); g_object_notify (G_OBJECT (self), "start-individual"); g_object_notify (G_OBJECT (self), "has-changed"); g_object_thaw_notify (G_OBJECT (self)); }