172
163
void tpf_persona_store_change_alias_finish (TpfPersonaStore* self, GAsyncResult* _res_);
173
164
void tpf_persona_store_change_is_favourite (TpfPersonaStore* self, FolksPersona* persona, gboolean is_favourite, GAsyncReadyCallback _callback_, gpointer _user_data_);
174
165
void tpf_persona_store_change_is_favourite_finish (TpfPersonaStore* self, GAsyncResult* _res_);
175
static Block2Data* block2_data_ref (Block2Data* _data2_);
176
static void block2_data_unref (Block2Data* _data2_);
177
static void _lambda21_ (const gchar* k, gboolean v, TpfPersona* self);
178
static void __lambda21__gh_func (gconstpointer key, gconstpointer value, gpointer self);
179
static void _lambda22_ (const gchar* k, gboolean v, Block2Data* _data2_);
180
static void __lambda22__gh_func (gconstpointer key, gconstpointer value, gpointer self);
181
166
static void tpf_persona_set_contact (TpfPersona* self, TpContact* value);
182
167
static void tpf_persona_finalize (GObject* obj);
183
168
static void _vala_tpf_persona_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
273
258
g_return_val_if_fail (group != NULL, FALSE);
276
gconstpointer _tmp0_ = NULL;
277
_tmp0_ = g_hash_table_lookup (self->priv->_groups, group);
278
if (GPOINTER_TO_INT (_tmp0_) != TRUE) {
280
_tmp1_ = g_strdup (group);
281
g_hash_table_insert (self->priv->_groups, _tmp1_, GINT_TO_POINTER (TRUE));
262
_tmp0_ = gee_abstract_collection_contains ((GeeAbstractCollection*) self->priv->_groups, group);
264
gee_abstract_collection_add ((GeeAbstractCollection*) self->priv->_groups, group);
286
_tmp2_ = g_hash_table_remove (self->priv->_groups, group);
269
_tmp1_ = gee_abstract_collection_remove ((GeeAbstractCollection*) self->priv->_groups, group);
289
272
if (changed == TRUE) {
290
273
g_signal_emit_by_name ((FolksGroupDetails*) self, "group-changed", group, is_member);
444
FolksLinkedHashSet* _tmp14_ = NULL;
445
FolksLinkedHashSet* im_address_set;
417
GeeHashMultiMap* _tmp14_ = NULL;
446
418
const gchar* _tmp15_ = NULL;
447
419
gchar* _tmp16_ = NULL;
450
GHashTable* _tmp19_ = NULL;
451
const gchar* _tmp20_ = NULL;
453
FolksLinkedHashSet* _tmp22_;
454
GHashTable* _tmp23_ = NULL;
455
FolksPersonaStore* _tmp24_ = NULL;
456
FolksPersonaStore* _tmp25_ = NULL;
421
const gchar* _tmp18_ = NULL;
423
GeeHashSet* _tmp20_ = NULL;
424
GeeSet* _tmp21_ = NULL;
425
FolksPersonaStore* _tmp22_ = NULL;
426
FolksPersonaStore* _tmp23_ = NULL;
457
427
GError * _inner_error_ = NULL;
458
428
g_return_val_if_fail (contact != NULL, NULL);
459
429
g_return_val_if_fail (store != NULL, NULL);
479
449
_g_free0 (_tmp11_);
480
450
_g_free0 (_tmp9_);
481
451
g_signal_connect_object ((GObject*) contact, "notify::alias", (GCallback) __lambda15__g_object_notify, self, 0);
482
g_debug ("tpf-persona.vala:253: Creating new Tpf.Persona '%s' for service-specif" \
452
g_debug ("tpf-persona.vala:252: Creating new Tpf.Persona '%s' for service-specif" \
483
453
"ic UID '%s': %p", uid, id, self);
484
454
self->priv->_is_constructed = TRUE;
485
_tmp14_ = folks_linked_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
486
im_address_set = _tmp14_;
455
_tmp14_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL);
456
_g_object_unref0 (self->priv->_im_addresses);
457
self->priv->_im_addresses = _tmp14_;
487
458
_tmp15_ = tp_account_get_protocol (account);
488
459
_tmp16_ = folks_im_details_normalise_im_address (id, _tmp15_, &_inner_error_);
489
460
_tmp17_ = _tmp16_;
491
462
if (_inner_error_->domain == FOLKS_IM_DETAILS_ERROR) {
492
463
goto __catch0_folks_im_details_error;
494
_g_object_unref0 (im_address_set);
496
466
_g_object_unref0 (account);
497
467
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
498
468
g_clear_error (&_inner_error_);
502
gee_abstract_collection_add ((GeeAbstractCollection*) im_address_set, _tmp18_);
471
_tmp18_ = tp_account_get_protocol (account);
473
gee_multi_map_set ((GeeMultiMap*) self->priv->_im_addresses, _tmp18_, _tmp19_);
505
476
__catch0_folks_im_details_error:
514
485
if (_inner_error_ != NULL) {
515
_g_object_unref0 (im_address_set);
517
487
_g_object_unref0 (account);
518
488
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
519
489
g_clear_error (&_inner_error_);
522
_tmp19_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, _g_object_unref0_);
523
_g_hash_table_unref0 (self->priv->_im_addresses);
524
self->priv->_im_addresses = _tmp19_;
525
_tmp20_ = tp_account_get_protocol (account);
526
_tmp21_ = g_strdup (_tmp20_);
527
_tmp22_ = _g_object_ref0 (im_address_set);
528
g_hash_table_insert (self->priv->_im_addresses, _tmp21_, _tmp22_);
529
_tmp23_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, NULL);
530
_g_hash_table_unref0 (self->priv->_groups);
531
self->priv->_groups = _tmp23_;
492
_tmp20_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
493
_g_object_unref0 (self->priv->_groups);
494
self->priv->_groups = _tmp20_;
495
_tmp21_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) self->priv->_groups);
496
_g_object_unref0 (self->priv->_groups_ro);
497
self->priv->_groups_ro = _tmp21_;
532
498
g_signal_connect_object ((GObject*) contact, "notify::avatar-file", (GCallback) __lambda16__g_object_notify, self, 0);
533
499
_tpf_persona_contact_notify_avatar (self);
534
500
g_signal_connect_object ((GObject*) contact, "notify::presence-message", (GCallback) __lambda17__g_object_notify, self, 0);
535
501
g_signal_connect_object ((GObject*) contact, "notify::presence-type", (GCallback) __lambda18__g_object_notify, self, 0);
536
502
_tpf_persona_contact_notify_presence_message (self);
537
503
_tpf_persona_contact_notify_presence_type (self);
538
_tmp24_ = folks_persona_get_store ((FolksPersona*) self);
539
g_signal_connect_object (TPF_PERSONA_STORE (_tmp24_), "group-members-changed", (GCallback) __lambda19__tpf_persona_store_group_members_changed, self, 0);
540
_tmp25_ = folks_persona_get_store ((FolksPersona*) self);
541
g_signal_connect_object (TPF_PERSONA_STORE (_tmp25_), "group-removed", (GCallback) __lambda20__tpf_persona_store_group_removed, self, 0);
542
_g_object_unref0 (im_address_set);
504
_tmp22_ = folks_persona_get_store ((FolksPersona*) self);
505
g_signal_connect_object (TPF_PERSONA_STORE (_tmp22_), "group-members-changed", (GCallback) __lambda19__tpf_persona_store_group_members_changed, self, 0);
506
_tmp23_ = folks_persona_get_store ((FolksPersona*) self);
507
g_signal_connect_object (TPF_PERSONA_STORE (_tmp23_), "group-removed", (GCallback) __lambda20__tpf_persona_store_group_removed, self, 0);
544
509
_g_object_unref0 (account);
847
static GHashTable* tpf_persona_real_get_im_addresses (FolksImDetails* base) {
812
static GeeMultiMap* tpf_persona_real_get_im_addresses (FolksImDetails* base) {
849
814
TpfPersona* self;
850
815
self = (TpfPersona*) base;
851
result = self->priv->_im_addresses;
816
result = (GeeMultiMap*) self->priv->_im_addresses;
856
static void tpf_persona_real_set_im_addresses (FolksImDetails* base, GHashTable* value) {
821
static void tpf_persona_real_set_im_addresses (FolksImDetails* base, GeeMultiMap* value) {
857
822
TpfPersona* self;
858
823
self = (TpfPersona*) base;
859
824
g_object_notify ((GObject *) self, "im-addresses");
863
static GHashTable* tpf_persona_real_get_groups (FolksGroupDetails* base) {
828
static GeeSet* tpf_persona_real_get_groups (FolksGroupDetails* base) {
865
830
TpfPersona* self;
866
831
self = (TpfPersona*) base;
867
result = self->priv->_groups;
832
result = self->priv->_groups_ro;
872
static gpointer _g_hash_table_ref0 (gpointer self) {
873
return self ? g_hash_table_ref (self) : NULL;
877
static Block2Data* block2_data_ref (Block2Data* _data2_) {
878
g_atomic_int_inc (&_data2_->_ref_count_);
883
static void block2_data_unref (Block2Data* _data2_) {
884
if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
885
_g_object_unref0 (_data2_->self);
886
_g_hash_table_unref0 (_data2_->value);
887
g_slice_free (Block2Data, _data2_);
892
static void _lambda21_ (const gchar* k, gboolean v, TpfPersona* self) {
894
gconstpointer _tmp0_ = NULL;
895
g_return_if_fail (k != NULL);
896
group = (const gchar*) k;
897
_tmp0_ = g_hash_table_lookup (self->priv->_groups, group);
898
if (GPOINTER_TO_INT (_tmp0_) == FALSE) {
899
_tpf_persona_change_group (self, group, TRUE);
904
static void __lambda21__gh_func (gconstpointer key, gconstpointer value, gpointer self) {
905
_lambda21_ (key, value, self);
909
static void _lambda22_ (const gchar* k, gboolean v, Block2Data* _data2_) {
912
gconstpointer _tmp0_ = NULL;
913
self = _data2_->self;
914
g_return_if_fail (k != NULL);
915
group = (const gchar*) k;
916
_tmp0_ = g_hash_table_lookup (_data2_->value, group);
917
if (GPOINTER_TO_INT (_tmp0_) == FALSE) {
918
_tpf_persona_change_group (self, group, TRUE);
923
static void __lambda22__gh_func (gconstpointer key, gconstpointer value, gpointer self) {
924
_lambda22_ (key, value, self);
928
static void tpf_persona_real_set_groups (FolksGroupDetails* base, GHashTable* value) {
837
static void tpf_persona_real_set_groups (FolksGroupDetails* base, GeeSet* value) {
929
838
TpfPersona* self;
931
839
self = (TpfPersona*) base;
932
_data2_ = g_slice_new0 (Block2Data);
933
_data2_->_ref_count_ = 1;
934
_data2_->self = g_object_ref (self);
935
_data2_->value = _g_hash_table_ref0 (value);
936
g_hash_table_foreach (_data2_->value, __lambda21__gh_func, self);
937
g_hash_table_foreach (self->priv->_groups, __lambda22__gh_func, _data2_);
841
GeeIterator* _tmp0_ = NULL;
842
GeeIterator* _group_it;
843
_tmp0_ = gee_iterable_iterator ((GeeIterable*) value);
847
gpointer _tmp2_ = NULL;
850
_tmp1_ = gee_iterator_next (_group_it);
854
_tmp2_ = gee_iterator_get (_group_it);
855
group = (gchar*) _tmp2_;
856
_tmp3_ = gee_abstract_collection_contains ((GeeAbstractCollection*) self->priv->_groups, group);
857
if (_tmp3_ == FALSE) {
858
_tpf_persona_change_group (self, group, TRUE);
862
_g_object_unref0 (_group_it);
865
GeeIterator* _tmp4_ = NULL;
866
GeeIterator* _group_it;
867
_tmp4_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->_groups);
871
gpointer _tmp6_ = NULL;
874
_tmp5_ = gee_iterator_next (_group_it);
878
_tmp6_ = gee_iterator_get (_group_it);
879
group = (gchar*) _tmp6_;
880
_tmp7_ = gee_collection_contains ((GeeCollection*) value, group);
881
if (_tmp7_ == FALSE) {
882
_tpf_persona_change_group (self, group, TRUE);
886
_g_object_unref0 (_group_it);
938
888
g_object_notify ((GObject*) self, "groups");
939
block2_data_unref (_data2_);
941
889
g_object_notify ((GObject *) self, "groups");
1090
1038
const gchar* _tmp0_ = NULL;
1091
1039
self = TPF_PERSONA (obj);
1092
1040
_tmp0_ = folks_persona_get_uid ((FolksPersona*) self);
1093
g_debug ("tpf-persona.vala:323: Destroying Tpf.Persona '%s': %p", _tmp0_, self);
1094
_g_hash_table_unref0 (self->priv->_groups);
1041
g_debug ("tpf-persona.vala:320: Destroying Tpf.Persona '%s': %p", _tmp0_, self);
1042
_g_object_unref0 (self->priv->_groups);
1043
_g_object_unref0 (self->priv->_groups_ro);
1095
1044
_g_free0 (self->priv->_alias);
1096
_g_hash_table_unref0 (self->priv->_im_addresses);
1045
_g_object_unref0 (self->priv->_im_addresses);
1097
1046
_g_object_unref0 (self->priv->_avatar);
1098
1047
_g_free0 (self->priv->_presence_message);
1099
1048
_g_object_unref0 (self->priv->_contact);