1
/* edsf-persona.c generated by valac 0.14.0.15-f8b5, the Vala compiler
2
* generated from edsf-persona.vala, do not modify */
5
* Copyright (C) 2011 Collabora Ltd.
7
* This library is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU Lesser General Public License as published by
9
* the Free Software Foundation, either version 2.1 of the License, or
10
* (at your option) any later version.
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this library. If not, see <http://www.gnu.org/licenses/>.
21
* Travis Reitter <travis.reitter@collabora.co.uk>
22
* Marco Barisione <marco.barisione@collabora.co.uk>
23
* Raul Gutierrez Segales <raul.gutierrez.segales@collabora.co.uk>
27
#include <glib-object.h>
28
#include <folks/folks.h>
32
#include <libebook/e-book-client.h>
36
#define EDSF_TYPE_PERSONA (edsf_persona_get_type ())
37
#define EDSF_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDSF_TYPE_PERSONA, EdsfPersona))
38
#define EDSF_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDSF_TYPE_PERSONA, EdsfPersonaClass))
39
#define EDSF_IS_PERSONA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDSF_TYPE_PERSONA))
40
#define EDSF_IS_PERSONA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDSF_TYPE_PERSONA))
41
#define EDSF_PERSONA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDSF_TYPE_PERSONA, EdsfPersonaClass))
43
typedef struct _EdsfPersona EdsfPersona;
44
typedef struct _EdsfPersonaClass EdsfPersonaClass;
45
typedef struct _EdsfPersonaPrivate EdsfPersonaPrivate;
46
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
47
#define _g_free0(var) (var = (g_free (var), NULL))
48
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
50
#define EDSF_PERSONA_TYPE_URL_TYPE_MAPPING (edsf_persona_url_type_mapping_get_type ())
51
typedef struct _EdsfPersonaUrlTypeMapping EdsfPersonaUrlTypeMapping;
53
#define EDSF_TYPE_PERSONA_STORE (edsf_persona_store_get_type ())
54
#define EDSF_PERSONA_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDSF_TYPE_PERSONA_STORE, EdsfPersonaStore))
55
#define EDSF_PERSONA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDSF_TYPE_PERSONA_STORE, EdsfPersonaStoreClass))
56
#define EDSF_IS_PERSONA_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDSF_TYPE_PERSONA_STORE))
57
#define EDSF_IS_PERSONA_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDSF_TYPE_PERSONA_STORE))
58
#define EDSF_PERSONA_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDSF_TYPE_PERSONA_STORE, EdsfPersonaStoreClass))
60
typedef struct _EdsfPersonaStore EdsfPersonaStore;
61
typedef struct _EdsfPersonaStoreClass EdsfPersonaStoreClass;
62
typedef struct _EdsfPersonaChangeWebServiceAddressesData EdsfPersonaChangeWebServiceAddressesData;
63
typedef struct _EdsfPersonaChangeLocalIdsData EdsfPersonaChangeLocalIdsData;
64
typedef struct _EdsfPersonaChangePostalAddressesData EdsfPersonaChangePostalAddressesData;
65
typedef struct _EdsfPersonaChangePhoneNumbersData EdsfPersonaChangePhoneNumbersData;
66
typedef struct _EdsfPersonaChangeEmailAddressesData EdsfPersonaChangeEmailAddressesData;
67
typedef struct _EdsfPersonaChangeNotesData EdsfPersonaChangeNotesData;
68
typedef struct _EdsfPersonaChangeAvatarData EdsfPersonaChangeAvatarData;
69
typedef struct _EdsfPersonaChangeStructuredNameData EdsfPersonaChangeStructuredNameData;
70
typedef struct _EdsfPersonaChangeFullNameData EdsfPersonaChangeFullNameData;
71
typedef struct _EdsfPersonaChangeNicknameData EdsfPersonaChangeNicknameData;
72
typedef struct _EdsfPersonaChangeGenderData EdsfPersonaChangeGenderData;
73
typedef struct _EdsfPersonaChangeUrlsData EdsfPersonaChangeUrlsData;
74
typedef struct _EdsfPersonaChangeImAddressesData EdsfPersonaChangeImAddressesData;
75
typedef struct _EdsfPersonaChangeGroupData EdsfPersonaChangeGroupData;
76
typedef struct _EdsfPersonaChangeGroupsData EdsfPersonaChangeGroupsData;
77
typedef struct _EdsfPersonaChangeBirthdayData EdsfPersonaChangeBirthdayData;
78
typedef struct _EdsfPersonaChangeRolesData EdsfPersonaChangeRolesData;
79
#define __vala_EVCardAttribute_free0(var) ((var == NULL) ? NULL : (var = (_vala_EVCardAttribute_free (var), NULL)))
80
#define __vala_EContactDate_free0(var) ((var == NULL) ? NULL : (var = (_vala_EContactDate_free (var), NULL)))
82
#define EDSF_TYPE_SET_COMPARATOR (edsf_set_comparator_get_type ())
83
#define EDSF_SET_COMPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDSF_TYPE_SET_COMPARATOR, EdsfSetComparator))
84
#define EDSF_SET_COMPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDSF_TYPE_SET_COMPARATOR, EdsfSetComparatorClass))
85
#define EDSF_IS_SET_COMPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDSF_TYPE_SET_COMPARATOR))
86
#define EDSF_IS_SET_COMPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDSF_TYPE_SET_COMPARATOR))
87
#define EDSF_SET_COMPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDSF_TYPE_SET_COMPARATOR, EdsfSetComparatorClass))
89
typedef struct _EdsfSetComparator EdsfSetComparator;
90
typedef struct _EdsfSetComparatorClass EdsfSetComparatorClass;
91
#define __vala_EVCardAttributeParam_free0(var) ((var == NULL) ? NULL : (var = (_vala_EVCardAttributeParam_free (var), NULL)))
92
#define __g_list_free___vala_EVCardAttribute_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free___vala_EVCardAttribute_free0_ (var), NULL)))
93
#define __vala_EContactName_free0(var) ((var == NULL) ? NULL : (var = (_vala_EContactName_free (var), NULL)))
95
#define EDSF_TYPE_MEMORY_ICON (edsf_memory_icon_get_type ())
96
#define EDSF_MEMORY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDSF_TYPE_MEMORY_ICON, EdsfMemoryIcon))
97
#define EDSF_MEMORY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDSF_TYPE_MEMORY_ICON, EdsfMemoryIconClass))
98
#define EDSF_IS_MEMORY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDSF_TYPE_MEMORY_ICON))
99
#define EDSF_IS_MEMORY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDSF_TYPE_MEMORY_ICON))
100
#define EDSF_MEMORY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDSF_TYPE_MEMORY_ICON, EdsfMemoryIconClass))
102
typedef struct _EdsfMemoryIcon EdsfMemoryIcon;
103
typedef struct _EdsfMemoryIconClass EdsfMemoryIconClass;
104
typedef struct _Block1Data Block1Data;
105
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
106
#define __vala_EContactPhoto_free0(var) ((var == NULL) ? NULL : (var = (_vala_EContactPhoto_free (var), NULL)))
107
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
108
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
110
struct _EdsfPersona {
111
FolksPersona parent_instance;
112
EdsfPersonaPrivate * priv;
115
struct _EdsfPersonaClass {
116
FolksPersonaClass parent_class;
119
struct _EdsfPersonaPrivate {
120
GeeHashSet* _phone_numbers;
121
GeeSet* _phone_numbers_ro;
122
GeeHashSet* _email_addresses;
123
GeeSet* _email_addresses_ro;
126
GeeHashSet* _postal_addresses;
127
GeeSet* _postal_addresses_ro;
128
GeeHashSet* _local_ids;
129
GeeSet* _local_ids_ro;
130
GeeHashMultiMap* _web_service_addresses;
132
GLoadableIcon* _avatar;
133
FolksStructuredName* _structured_name;
140
GeeHashMultiMap* _im_addresses;
143
GDateTime* _birthday;
148
struct _EdsfPersonaUrlTypeMapping {
149
gchar* vcard_field_name;
153
struct _EdsfPersonaChangeWebServiceAddressesData {
155
GObject* _source_object_;
157
GSimpleAsyncResult* _async_result;
159
GeeMultiMap* web_service_addresses;
160
FolksPersonaStore* _tmp0_;
161
FolksPersonaStore* _tmp1_;
163
GError * _inner_error_;
166
struct _EdsfPersonaChangeLocalIdsData {
168
GObject* _source_object_;
170
GSimpleAsyncResult* _async_result;
173
FolksPersonaStore* _tmp0_;
174
FolksPersonaStore* _tmp1_;
176
GError * _inner_error_;
179
struct _EdsfPersonaChangePostalAddressesData {
181
GObject* _source_object_;
183
GSimpleAsyncResult* _async_result;
185
GeeSet* postal_addresses;
186
FolksPersonaStore* _tmp0_;
187
FolksPersonaStore* _tmp1_;
189
GError * _inner_error_;
192
struct _EdsfPersonaChangePhoneNumbersData {
194
GObject* _source_object_;
196
GSimpleAsyncResult* _async_result;
198
GeeSet* phone_numbers;
199
FolksPersonaStore* _tmp0_;
200
FolksPersonaStore* _tmp1_;
202
GError * _inner_error_;
205
struct _EdsfPersonaChangeEmailAddressesData {
207
GObject* _source_object_;
209
GSimpleAsyncResult* _async_result;
211
GeeSet* email_addresses;
212
FolksPersonaStore* _tmp0_;
213
FolksPersonaStore* _tmp1_;
215
GError * _inner_error_;
218
struct _EdsfPersonaChangeNotesData {
220
GObject* _source_object_;
222
GSimpleAsyncResult* _async_result;
225
FolksPersonaStore* _tmp0_;
226
FolksPersonaStore* _tmp1_;
228
GError * _inner_error_;
231
struct _EdsfPersonaChangeAvatarData {
233
GObject* _source_object_;
235
GSimpleAsyncResult* _async_result;
237
GLoadableIcon* avatar;
238
FolksPersonaStore* _tmp0_;
239
FolksPersonaStore* _tmp1_;
240
GLoadableIcon* _tmp2_;
241
GError * _inner_error_;
244
struct _EdsfPersonaChangeStructuredNameData {
246
GObject* _source_object_;
248
GSimpleAsyncResult* _async_result;
250
FolksStructuredName* structured_name;
251
FolksPersonaStore* _tmp0_;
252
FolksPersonaStore* _tmp1_;
253
FolksStructuredName* _tmp2_;
254
GError * _inner_error_;
257
struct _EdsfPersonaChangeFullNameData {
259
GObject* _source_object_;
261
GSimpleAsyncResult* _async_result;
264
FolksPersonaStore* _tmp0_;
265
FolksPersonaStore* _tmp1_;
267
GError * _inner_error_;
270
struct _EdsfPersonaChangeNicknameData {
272
GObject* _source_object_;
274
GSimpleAsyncResult* _async_result;
277
FolksPersonaStore* _tmp0_;
278
FolksPersonaStore* _tmp1_;
280
GError * _inner_error_;
283
struct _EdsfPersonaChangeGenderData {
285
GObject* _source_object_;
287
GSimpleAsyncResult* _async_result;
290
FolksPersonaStore* _tmp0_;
291
FolksPersonaStore* _tmp1_;
293
GError * _inner_error_;
296
struct _EdsfPersonaChangeUrlsData {
298
GObject* _source_object_;
300
GSimpleAsyncResult* _async_result;
303
FolksPersonaStore* _tmp0_;
304
FolksPersonaStore* _tmp1_;
306
GError * _inner_error_;
309
struct _EdsfPersonaChangeImAddressesData {
311
GObject* _source_object_;
313
GSimpleAsyncResult* _async_result;
315
GeeMultiMap* im_addresses;
316
FolksPersonaStore* _tmp0_;
317
FolksPersonaStore* _tmp1_;
319
GError * _inner_error_;
322
struct _EdsfPersonaChangeGroupData {
324
GObject* _source_object_;
326
GSimpleAsyncResult* _async_result;
340
const gchar* _tmp10_;
345
GeeHashSet* new_groups;
347
GeeIterator* _tmp16_;
348
GeeIterator* _category_name_it;
349
GeeIterator* _tmp17_;
351
GeeIterator* _tmp19_;
353
gchar* category_name;
355
const gchar* _tmp22_;
358
const gchar* _tmp25_;
360
const gchar* _tmp27_;
362
GError * _inner_error_;
365
struct _EdsfPersonaChangeGroupsData {
367
GObject* _source_object_;
369
GSimpleAsyncResult* _async_result;
372
FolksPersonaStore* _tmp0_;
373
FolksPersonaStore* _tmp1_;
375
GError * _inner_error_;
378
struct _EdsfPersonaChangeBirthdayData {
380
GObject* _source_object_;
382
GSimpleAsyncResult* _async_result;
385
FolksPersonaStore* _tmp0_;
386
FolksPersonaStore* _tmp1_;
388
GError * _inner_error_;
391
struct _EdsfPersonaChangeRolesData {
393
GObject* _source_object_;
395
GSimpleAsyncResult* _async_result;
398
FolksPersonaStore* _tmp0_;
399
FolksPersonaStore* _tmp1_;
401
GError * _inner_error_;
407
FolksAvatarCache* cache;
408
GLoadableIcon* new_avatar;
412
static gpointer edsf_persona_parent_class = NULL;
413
static GHashTable* edsf_persona__im_eds_map;
414
static GStaticRecMutex __lock_edsf_persona__im_eds_map = {0};
415
static GHashTable* edsf_persona__im_eds_map = NULL;
416
static GTimeZone* edsf_persona__local_time_zone;
417
static GTimeZone* edsf_persona__local_time_zone = NULL;
418
static FolksAvatarDetailsIface* edsf_persona_folks_avatar_details_parent_iface = NULL;
419
static FolksBirthdayDetailsIface* edsf_persona_folks_birthday_details_parent_iface = NULL;
420
static FolksEmailDetailsIface* edsf_persona_folks_email_details_parent_iface = NULL;
421
static FolksGenderDetailsIface* edsf_persona_folks_gender_details_parent_iface = NULL;
422
static FolksGroupDetailsIface* edsf_persona_folks_group_details_parent_iface = NULL;
423
static FolksImDetailsIface* edsf_persona_folks_im_details_parent_iface = NULL;
424
static FolksLocalIdDetailsIface* edsf_persona_folks_local_id_details_parent_iface = NULL;
425
static FolksNameDetailsIface* edsf_persona_folks_name_details_parent_iface = NULL;
426
static FolksNoteDetailsIface* edsf_persona_folks_note_details_parent_iface = NULL;
427
static FolksPhoneDetailsIface* edsf_persona_folks_phone_details_parent_iface = NULL;
428
static FolksRoleDetailsIface* edsf_persona_folks_role_details_parent_iface = NULL;
429
static FolksUrlDetailsIface* edsf_persona_folks_url_details_parent_iface = NULL;
430
static FolksPostalAddressDetailsIface* edsf_persona_folks_postal_address_details_parent_iface = NULL;
431
static FolksWebServiceDetailsIface* edsf_persona_folks_web_service_details_parent_iface = NULL;
433
GType edsf_persona_get_type (void) G_GNUC_CONST;
434
#define EDSF_PERSONA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDSF_TYPE_PERSONA, EdsfPersonaPrivate))
436
EDSF_PERSONA_DUMMY_PROPERTY,
437
EDSF_PERSONA_CONTACT,
438
EDSF_PERSONA_WEB_SERVICE_ADDRESSES,
439
EDSF_PERSONA_LOCAL_IDS,
440
EDSF_PERSONA_POSTAL_ADDRESSES,
441
EDSF_PERSONA_PHONE_NUMBERS,
442
EDSF_PERSONA_EMAIL_ADDRESSES,
444
EDSF_PERSONA_LINKABLE_PROPERTIES,
445
EDSF_PERSONA_WRITEABLE_PROPERTIES,
447
EDSF_PERSONA_STRUCTURED_NAME,
448
EDSF_PERSONA_CONTACT_ID,
449
EDSF_PERSONA_FULL_NAME,
450
EDSF_PERSONA_NICKNAME,
453
EDSF_PERSONA_IM_ADDRESSES,
455
EDSF_PERSONA_CALENDAR_EVENT_ID,
456
EDSF_PERSONA_BIRTHDAY,
459
static GType edsf_persona_url_type_mapping_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
460
static EdsfPersonaUrlTypeMapping* edsf_persona_url_type_mapping_dup (const EdsfPersonaUrlTypeMapping* self);
461
static void edsf_persona_url_type_mapping_free (EdsfPersonaUrlTypeMapping* self);
462
static void edsf_persona_url_type_mapping_copy (const EdsfPersonaUrlTypeMapping* self, EdsfPersonaUrlTypeMapping* dest);
463
static void edsf_persona_url_type_mapping_destroy (EdsfPersonaUrlTypeMapping* self);
464
#define EDSF_PERSONA_gender_attribute_name "X-GENDER"
465
#define EDSF_PERSONA_gender_male "M"
466
#define EDSF_PERSONA_gender_female "F"
467
static void edsf_persona_real_change_web_service_addresses_data_free (gpointer _data);
468
static void edsf_persona_real_change_web_service_addresses (FolksWebServiceDetails* base, GeeMultiMap* web_service_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_);
469
static gboolean edsf_persona_real_change_web_service_addresses_co (EdsfPersonaChangeWebServiceAddressesData* _data_);
470
GType edsf_persona_store_get_type (void) G_GNUC_CONST;
471
void _edsf_persona_store_set_web_service_addresses (EdsfPersonaStore* self, EdsfPersona* persona, GeeMultiMap* web_service_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_);
472
void _edsf_persona_store_set_web_service_addresses_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
473
static void edsf_persona_change_web_service_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
474
static void edsf_persona_real_change_local_ids_data_free (gpointer _data);
475
static void edsf_persona_real_change_local_ids (FolksLocalIdDetails* base, GeeSet* local_ids, GAsyncReadyCallback _callback_, gpointer _user_data_);
476
static gboolean edsf_persona_real_change_local_ids_co (EdsfPersonaChangeLocalIdsData* _data_);
477
void _edsf_persona_store_set_local_ids (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* local_ids, GAsyncReadyCallback _callback_, gpointer _user_data_);
478
void _edsf_persona_store_set_local_ids_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
479
static void edsf_persona_change_local_ids_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
480
static void edsf_persona_real_change_postal_addresses_data_free (gpointer _data);
481
static void edsf_persona_real_change_postal_addresses (FolksPostalAddressDetails* base, GeeSet* postal_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_);
482
static gboolean edsf_persona_real_change_postal_addresses_co (EdsfPersonaChangePostalAddressesData* _data_);
483
void _edsf_persona_store_set_postal_addresses (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* postal_fds, GAsyncReadyCallback _callback_, gpointer _user_data_);
484
void _edsf_persona_store_set_postal_addresses_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
485
static void edsf_persona_change_postal_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
486
static void edsf_persona_real_change_phone_numbers_data_free (gpointer _data);
487
static void edsf_persona_real_change_phone_numbers (FolksPhoneDetails* base, GeeSet* phone_numbers, GAsyncReadyCallback _callback_, gpointer _user_data_);
488
static gboolean edsf_persona_real_change_phone_numbers_co (EdsfPersonaChangePhoneNumbersData* _data_);
489
void _edsf_persona_store_set_phones (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* phones, GAsyncReadyCallback _callback_, gpointer _user_data_);
490
void _edsf_persona_store_set_phones_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
491
static void edsf_persona_change_phone_numbers_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
492
static void edsf_persona_real_change_email_addresses_data_free (gpointer _data);
493
static void edsf_persona_real_change_email_addresses (FolksEmailDetails* base, GeeSet* email_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_);
494
static gboolean edsf_persona_real_change_email_addresses_co (EdsfPersonaChangeEmailAddressesData* _data_);
495
void _edsf_persona_store_set_emails (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* emails, GAsyncReadyCallback _callback_, gpointer _user_data_);
496
void _edsf_persona_store_set_emails_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
497
static void edsf_persona_change_email_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
498
static void edsf_persona_real_change_notes_data_free (gpointer _data);
499
static void edsf_persona_real_change_notes (FolksNoteDetails* base, GeeSet* notes, GAsyncReadyCallback _callback_, gpointer _user_data_);
500
static gboolean edsf_persona_real_change_notes_co (EdsfPersonaChangeNotesData* _data_);
501
void _edsf_persona_store_set_notes (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* notes, GAsyncReadyCallback _callback_, gpointer _user_data_);
502
void _edsf_persona_store_set_notes_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
503
static void edsf_persona_change_notes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
504
static void edsf_persona_real_change_avatar_data_free (gpointer _data);
505
static void edsf_persona_real_change_avatar (FolksAvatarDetails* base, GLoadableIcon* avatar, GAsyncReadyCallback _callback_, gpointer _user_data_);
506
static gboolean edsf_persona_real_change_avatar_co (EdsfPersonaChangeAvatarData* _data_);
507
void _edsf_persona_store_set_avatar (EdsfPersonaStore* self, EdsfPersona* persona, GLoadableIcon* avatar, GAsyncReadyCallback _callback_, gpointer _user_data_);
508
void _edsf_persona_store_set_avatar_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
509
static void edsf_persona_change_avatar_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
510
static void edsf_persona_real_change_structured_name_data_free (gpointer _data);
511
static void edsf_persona_real_change_structured_name (FolksNameDetails* base, FolksStructuredName* structured_name, GAsyncReadyCallback _callback_, gpointer _user_data_);
512
static gboolean edsf_persona_real_change_structured_name_co (EdsfPersonaChangeStructuredNameData* _data_);
513
void _edsf_persona_store_set_structured_name (EdsfPersonaStore* self, EdsfPersona* persona, FolksStructuredName* sname, GAsyncReadyCallback _callback_, gpointer _user_data_);
514
void _edsf_persona_store_set_structured_name_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
515
static void edsf_persona_change_structured_name_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
516
static void edsf_persona_real_change_full_name_data_free (gpointer _data);
517
static void edsf_persona_real_change_full_name (FolksNameDetails* base, const gchar* full_name, GAsyncReadyCallback _callback_, gpointer _user_data_);
518
static gboolean edsf_persona_real_change_full_name_co (EdsfPersonaChangeFullNameData* _data_);
519
void _edsf_persona_store_set_full_name (EdsfPersonaStore* self, EdsfPersona* persona, const gchar* full_name, GAsyncReadyCallback _callback_, gpointer _user_data_);
520
void _edsf_persona_store_set_full_name_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
521
static void edsf_persona_change_full_name_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
522
static void edsf_persona_real_change_nickname_data_free (gpointer _data);
523
static void edsf_persona_real_change_nickname (FolksNameDetails* base, const gchar* nickname, GAsyncReadyCallback _callback_, gpointer _user_data_);
524
static gboolean edsf_persona_real_change_nickname_co (EdsfPersonaChangeNicknameData* _data_);
525
void _edsf_persona_store_set_nickname (EdsfPersonaStore* self, EdsfPersona* persona, const gchar* nickname, GAsyncReadyCallback _callback_, gpointer _user_data_);
526
void _edsf_persona_store_set_nickname_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
527
static void edsf_persona_change_nickname_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
528
static void edsf_persona_real_change_gender_data_free (gpointer _data);
529
static void edsf_persona_real_change_gender (FolksGenderDetails* base, FolksGender gender, GAsyncReadyCallback _callback_, gpointer _user_data_);
530
static gboolean edsf_persona_real_change_gender_co (EdsfPersonaChangeGenderData* _data_);
531
void _edsf_persona_store_set_gender (EdsfPersonaStore* self, EdsfPersona* persona, FolksGender gender, GAsyncReadyCallback _callback_, gpointer _user_data_);
532
void _edsf_persona_store_set_gender_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
533
static void edsf_persona_change_gender_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
534
static void edsf_persona_real_change_urls_data_free (gpointer _data);
535
static void edsf_persona_real_change_urls (FolksUrlDetails* base, GeeSet* urls, GAsyncReadyCallback _callback_, gpointer _user_data_);
536
static gboolean edsf_persona_real_change_urls_co (EdsfPersonaChangeUrlsData* _data_);
537
void _edsf_persona_store_set_urls (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* urls, GAsyncReadyCallback _callback_, gpointer _user_data_);
538
void _edsf_persona_store_set_urls_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
539
static void edsf_persona_change_urls_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
540
static void edsf_persona_real_change_im_addresses_data_free (gpointer _data);
541
static void edsf_persona_real_change_im_addresses (FolksImDetails* base, GeeMultiMap* im_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_);
542
static gboolean edsf_persona_real_change_im_addresses_co (EdsfPersonaChangeImAddressesData* _data_);
543
void _edsf_persona_store_set_im_fds (EdsfPersonaStore* self, EdsfPersona* persona, GeeMultiMap* im_fds, GAsyncReadyCallback _callback_, gpointer _user_data_);
544
void _edsf_persona_store_set_im_fds_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
545
static void edsf_persona_change_im_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
546
static void edsf_persona_real_change_group_data_free (gpointer _data);
547
static void edsf_persona_real_change_group (FolksGroupDetails* base, const gchar* group, gboolean is_member, GAsyncReadyCallback _callback_, gpointer _user_data_);
548
static gboolean edsf_persona_real_change_group_co (EdsfPersonaChangeGroupData* _data_);
549
static void edsf_persona_change_group_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
550
static void edsf_persona_real_change_groups_data_free (gpointer _data);
551
static void edsf_persona_real_change_groups (FolksGroupDetails* base, GeeSet* groups, GAsyncReadyCallback _callback_, gpointer _user_data_);
552
static gboolean edsf_persona_real_change_groups_co (EdsfPersonaChangeGroupsData* _data_);
553
void _edsf_persona_store_set_groups (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* groups, GAsyncReadyCallback _callback_, gpointer _user_data_);
554
void _edsf_persona_store_set_groups_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
555
static void edsf_persona_change_groups_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
556
static void edsf_persona_real_change_birthday_data_free (gpointer _data);
557
static void edsf_persona_real_change_birthday (FolksBirthdayDetails* base, GDateTime* bday, GAsyncReadyCallback _callback_, gpointer _user_data_);
558
static gboolean edsf_persona_real_change_birthday_co (EdsfPersonaChangeBirthdayData* _data_);
559
void _edsf_persona_store_set_birthday (EdsfPersonaStore* self, EdsfPersona* persona, GDateTime* bday, GAsyncReadyCallback _callback_, gpointer _user_data_);
560
void _edsf_persona_store_set_birthday_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
561
static void edsf_persona_change_birthday_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
562
static void edsf_persona_real_change_roles_data_free (gpointer _data);
563
static void edsf_persona_real_change_roles (FolksRoleDetails* base, GeeSet* roles, GAsyncReadyCallback _callback_, gpointer _user_data_);
564
static gboolean edsf_persona_real_change_roles_co (EdsfPersonaChangeRolesData* _data_);
565
void _edsf_persona_store_set_roles (EdsfPersonaStore* self, EdsfPersona* persona, GeeSet* roles, GAsyncReadyCallback _callback_, gpointer _user_data_);
566
void _edsf_persona_store_set_roles_finish (EdsfPersonaStore* self, GAsyncResult* _res_, GError** error);
567
static void edsf_persona_change_roles_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
568
gchar* edsf_persona_build_iid_from_contact (const gchar* store_id, EContact* contact);
569
void* _edsf_persona_get_property_from_contact (EContact* contact, const gchar* prop_name);
570
gchar* edsf_persona_build_iid (const gchar* store_id, const gchar* contact_id);
571
EdsfPersona* edsf_persona_new (EdsfPersonaStore* store, EContact* contact);
572
EdsfPersona* edsf_persona_construct (GType object_type, EdsfPersonaStore* store, EContact* contact);
573
static void edsf_persona_set_contact_id (EdsfPersona* self, const gchar* value);
574
void _edsf_persona_update (EdsfPersona* self, EContact* contact);
575
static void edsf_persona_real_linkable_property_to_links (FolksPersona* base, const gchar* prop_name, FolksPersonaLinkablePropertyCallback callback, void* callback_target);
576
static void edsf_persona_set_contact (EdsfPersona* self, EContact* value);
577
static void _edsf_persona_update_names (EdsfPersona* self);
578
static void _edsf_persona_update_avatar (EdsfPersona* self);
579
static void _edsf_persona_update_urls (EdsfPersona* self);
580
static void _edsf_persona_update_phones (EdsfPersona* self);
581
static void _edsf_persona_update_addresses (EdsfPersona* self);
582
static void _edsf_persona_update_emails (EdsfPersona* self);
583
static void _edsf_persona_update_im_addresses (EdsfPersona* self);
584
static void _edsf_persona_update_groups (EdsfPersona* self);
585
static void _edsf_persona_update_notes (EdsfPersona* self);
586
static void _edsf_persona_update_local_ids (EdsfPersona* self);
587
static void _edsf_persona_update_web_services_addresses (EdsfPersona* self);
588
static void _edsf_persona_update_gender (EdsfPersona* self);
589
static void _edsf_persona_update_birthday (EdsfPersona* self);
590
static void _edsf_persona_update_roles (EdsfPersona* self);
591
static void _edsf_persona_update_params (EdsfPersona* self, FolksAbstractFieldDetails* details, EVCardAttribute* attr);
592
EContact* edsf_persona_get_contact (EdsfPersona* self);
593
static EVCardAttribute* _vala_EVCardAttribute_copy (EVCardAttribute* self);
594
static void _vala_EVCardAttribute_free (EVCardAttribute* self);
595
static void* _edsf_persona_get_property (EdsfPersona* self, const gchar* prop_name);
596
static EContactDate* _vala_EContactDate_copy (EContactDate* self);
597
static void _vala_EContactDate_free (EContactDate* self);
598
static FolksRoleFieldDetails* _edsf_persona_get_default_role (EdsfPersona* self);
599
EdsfSetComparator* edsf_set_comparator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
600
EdsfSetComparator* edsf_set_comparator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
601
GType edsf_set_comparator_get_type (void) G_GNUC_CONST;
602
gboolean edsf_set_comparator_equal (EdsfSetComparator* self, GeeSet* a, GeeSet* b);
603
static EVCardAttributeParam* _vala_EVCardAttributeParam_copy (EVCardAttributeParam* self);
604
static void _vala_EVCardAttributeParam_free (EVCardAttributeParam* self);
605
static void __vala_EVCardAttribute_free0_ (gpointer var);
606
static void _g_list_free___vala_EVCardAttribute_free0_ (GList* self);
607
static EContactName* _vala_EContactName_copy (EContactName* self);
608
static void _vala_EContactName_free (EContactName* self);
609
static GLoadableIcon* _edsf_persona_contact_photo_to_loadable_icon (EdsfPersona* self, EContactPhoto* p);
610
EdsfMemoryIcon* edsf_memory_icon_new (const gchar* image_type, guint8* image_data, int image_data_length1);
611
EdsfMemoryIcon* edsf_memory_icon_construct (GType object_type, const gchar* image_type, guint8* image_data, int image_data_length1);
612
GType edsf_memory_icon_get_type (void) G_GNUC_CONST;
613
static Block1Data* block1_data_ref (Block1Data* _data1_);
614
static void block1_data_unref (Block1Data* _data1_);
615
static EContactPhoto* _vala_EContactPhoto_copy (EContactPhoto* self);
616
static void ___lambda4_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res);
617
static void ____lambda4__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
618
static void ____lambda7_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res);
619
static void _____lambda7__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
620
static void _vala_EContactPhoto_free (EContactPhoto* self);
621
GHashTable* _edsf_persona_get_im_eds_map (void);
622
static gchar* _edsf_persona_im_proto_from_addr (EdsfPersona* self, const gchar* addr);
623
static void _g_free0_ (gpointer var);
624
static FolksPostalAddress* _edsf_persona_postal_address_from_attribute (EdsfPersona* self, EVCardAttribute* attr);
625
const gchar* edsf_persona_get_contact_id (EdsfPersona* self);
626
static void edsf_persona_finalize (GObject* obj);
627
static void _vala_edsf_persona_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
628
static void _vala_edsf_persona_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
629
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
630
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
631
static gint _vala_array_length (gpointer array);
633
const gchar* EDSF_PERSONA_phone_fields[12] = {"assistant_phone", "business_phone", "business_phone_2", "callback_phone", "car_phone", "company_phone", "home_phone", "home_phone_2", "isdn_phone", "mobile_phone", "other_phone", "primary_phone"};
634
const gchar* EDSF_PERSONA_address_fields[3] = {"address_home", "address_other", "address_work"};
635
const gchar* EDSF_PERSONA_email_fields[4] = {"email_1", "email_2", "email_3", "email_4"};
636
const gchar* EDSF_PERSONA_url_properties[4] = {"blog_url", "fburl", "homepage_url", "video_url"};
637
const EdsfPersonaUrlTypeMapping EDSF_PERSONA__url_properties[4] = {{"homepage_url", FOLKS_URL_FIELD_DETAILS_PARAM_TYPE_HOME_PAGE}, {"blog_url", FOLKS_URL_FIELD_DETAILS_PARAM_TYPE_BLOG}, {"fburl", "x-free-busy"}, {"video_url", "x-video"}};
638
static const gchar* EDSF_PERSONA__linkable_properties[3] = {"im-addresses", "local-ids", "web-service-addresses"};
640
static void edsf_persona_real_change_web_service_addresses_data_free (gpointer _data) {
641
EdsfPersonaChangeWebServiceAddressesData* _data_;
643
_g_object_unref0 (_data_->web_service_addresses);
644
_g_object_unref0 (_data_->self);
645
g_slice_free (EdsfPersonaChangeWebServiceAddressesData, _data_);
649
static gpointer _g_object_ref0 (gpointer self) {
650
return self ? g_object_ref (self) : NULL;
654
static void edsf_persona_real_change_web_service_addresses (FolksWebServiceDetails* base, GeeMultiMap* web_service_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_) {
656
EdsfPersonaChangeWebServiceAddressesData* _data_;
660
self = (EdsfPersona*) base;
661
_data_ = g_slice_new0 (EdsfPersonaChangeWebServiceAddressesData);
662
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_web_service_addresses);
663
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_web_service_addresses_data_free);
664
_tmp0_ = _g_object_ref0 (self);
665
_data_->self = _tmp0_;
666
_tmp1_ = web_service_addresses;
667
_tmp2_ = _g_object_ref0 (_tmp1_);
668
_data_->web_service_addresses = _tmp2_;
669
edsf_persona_real_change_web_service_addresses_co (_data_);
673
static void edsf_persona_real_change_web_service_addresses_finish (FolksWebServiceDetails* base, GAsyncResult* _res_, GError** error) {
674
EdsfPersonaChangeWebServiceAddressesData* _data_;
675
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
678
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
687
static void edsf_persona_change_web_service_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
688
EdsfPersonaChangeWebServiceAddressesData* _data_;
689
_data_ = _user_data_;
690
_data_->_source_object_ = source_object;
691
_data_->_res_ = _res_;
692
edsf_persona_real_change_web_service_addresses_co (_data_);
696
static gboolean edsf_persona_real_change_web_service_addresses_co (EdsfPersonaChangeWebServiceAddressesData* _data_) {
697
switch (_data_->_state_) {
703
g_assert_not_reached ();
706
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
707
_data_->_tmp1_ = _data_->_tmp0_;
708
_data_->_tmp2_ = _data_->web_service_addresses;
710
_edsf_persona_store_set_web_service_addresses (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_web_service_addresses_ready, _data_);
713
_edsf_persona_store_set_web_service_addresses_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
714
if (_data_->_inner_error_ != NULL) {
715
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
716
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
717
g_error_free (_data_->_inner_error_);
718
if (_data_->_state_ == 0) {
719
g_simple_async_result_complete_in_idle (_data_->_async_result);
721
g_simple_async_result_complete (_data_->_async_result);
723
g_object_unref (_data_->_async_result);
726
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
727
g_clear_error (&_data_->_inner_error_);
731
if (_data_->_state_ == 0) {
732
g_simple_async_result_complete_in_idle (_data_->_async_result);
734
g_simple_async_result_complete (_data_->_async_result);
736
g_object_unref (_data_->_async_result);
741
static void edsf_persona_real_change_local_ids_data_free (gpointer _data) {
742
EdsfPersonaChangeLocalIdsData* _data_;
744
_g_object_unref0 (_data_->local_ids);
745
_g_object_unref0 (_data_->self);
746
g_slice_free (EdsfPersonaChangeLocalIdsData, _data_);
750
static void edsf_persona_real_change_local_ids (FolksLocalIdDetails* base, GeeSet* local_ids, GAsyncReadyCallback _callback_, gpointer _user_data_) {
752
EdsfPersonaChangeLocalIdsData* _data_;
756
self = (EdsfPersona*) base;
757
_data_ = g_slice_new0 (EdsfPersonaChangeLocalIdsData);
758
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_local_ids);
759
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_local_ids_data_free);
760
_tmp0_ = _g_object_ref0 (self);
761
_data_->self = _tmp0_;
763
_tmp2_ = _g_object_ref0 (_tmp1_);
764
_data_->local_ids = _tmp2_;
765
edsf_persona_real_change_local_ids_co (_data_);
769
static void edsf_persona_real_change_local_ids_finish (FolksLocalIdDetails* base, GAsyncResult* _res_, GError** error) {
770
EdsfPersonaChangeLocalIdsData* _data_;
771
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
774
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
783
static void edsf_persona_change_local_ids_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
784
EdsfPersonaChangeLocalIdsData* _data_;
785
_data_ = _user_data_;
786
_data_->_source_object_ = source_object;
787
_data_->_res_ = _res_;
788
edsf_persona_real_change_local_ids_co (_data_);
792
static gboolean edsf_persona_real_change_local_ids_co (EdsfPersonaChangeLocalIdsData* _data_) {
793
switch (_data_->_state_) {
799
g_assert_not_reached ();
802
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
803
_data_->_tmp1_ = _data_->_tmp0_;
804
_data_->_tmp2_ = _data_->local_ids;
806
_edsf_persona_store_set_local_ids (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_local_ids_ready, _data_);
809
_edsf_persona_store_set_local_ids_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
810
if (_data_->_inner_error_ != NULL) {
811
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
812
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
813
g_error_free (_data_->_inner_error_);
814
if (_data_->_state_ == 0) {
815
g_simple_async_result_complete_in_idle (_data_->_async_result);
817
g_simple_async_result_complete (_data_->_async_result);
819
g_object_unref (_data_->_async_result);
822
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
823
g_clear_error (&_data_->_inner_error_);
827
if (_data_->_state_ == 0) {
828
g_simple_async_result_complete_in_idle (_data_->_async_result);
830
g_simple_async_result_complete (_data_->_async_result);
832
g_object_unref (_data_->_async_result);
837
static void edsf_persona_real_change_postal_addresses_data_free (gpointer _data) {
838
EdsfPersonaChangePostalAddressesData* _data_;
840
_g_object_unref0 (_data_->postal_addresses);
841
_g_object_unref0 (_data_->self);
842
g_slice_free (EdsfPersonaChangePostalAddressesData, _data_);
846
static void edsf_persona_real_change_postal_addresses (FolksPostalAddressDetails* base, GeeSet* postal_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_) {
848
EdsfPersonaChangePostalAddressesData* _data_;
852
self = (EdsfPersona*) base;
853
_data_ = g_slice_new0 (EdsfPersonaChangePostalAddressesData);
854
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_postal_addresses);
855
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_postal_addresses_data_free);
856
_tmp0_ = _g_object_ref0 (self);
857
_data_->self = _tmp0_;
858
_tmp1_ = postal_addresses;
859
_tmp2_ = _g_object_ref0 (_tmp1_);
860
_data_->postal_addresses = _tmp2_;
861
edsf_persona_real_change_postal_addresses_co (_data_);
865
static void edsf_persona_real_change_postal_addresses_finish (FolksPostalAddressDetails* base, GAsyncResult* _res_, GError** error) {
866
EdsfPersonaChangePostalAddressesData* _data_;
867
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
870
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
879
static void edsf_persona_change_postal_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
880
EdsfPersonaChangePostalAddressesData* _data_;
881
_data_ = _user_data_;
882
_data_->_source_object_ = source_object;
883
_data_->_res_ = _res_;
884
edsf_persona_real_change_postal_addresses_co (_data_);
888
static gboolean edsf_persona_real_change_postal_addresses_co (EdsfPersonaChangePostalAddressesData* _data_) {
889
switch (_data_->_state_) {
895
g_assert_not_reached ();
898
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
899
_data_->_tmp1_ = _data_->_tmp0_;
900
_data_->_tmp2_ = _data_->postal_addresses;
902
_edsf_persona_store_set_postal_addresses (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_postal_addresses_ready, _data_);
905
_edsf_persona_store_set_postal_addresses_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
906
if (_data_->_inner_error_ != NULL) {
907
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
908
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
909
g_error_free (_data_->_inner_error_);
910
if (_data_->_state_ == 0) {
911
g_simple_async_result_complete_in_idle (_data_->_async_result);
913
g_simple_async_result_complete (_data_->_async_result);
915
g_object_unref (_data_->_async_result);
918
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
919
g_clear_error (&_data_->_inner_error_);
923
if (_data_->_state_ == 0) {
924
g_simple_async_result_complete_in_idle (_data_->_async_result);
926
g_simple_async_result_complete (_data_->_async_result);
928
g_object_unref (_data_->_async_result);
933
static void edsf_persona_real_change_phone_numbers_data_free (gpointer _data) {
934
EdsfPersonaChangePhoneNumbersData* _data_;
936
_g_object_unref0 (_data_->phone_numbers);
937
_g_object_unref0 (_data_->self);
938
g_slice_free (EdsfPersonaChangePhoneNumbersData, _data_);
942
static void edsf_persona_real_change_phone_numbers (FolksPhoneDetails* base, GeeSet* phone_numbers, GAsyncReadyCallback _callback_, gpointer _user_data_) {
944
EdsfPersonaChangePhoneNumbersData* _data_;
948
self = (EdsfPersona*) base;
949
_data_ = g_slice_new0 (EdsfPersonaChangePhoneNumbersData);
950
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_phone_numbers);
951
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_phone_numbers_data_free);
952
_tmp0_ = _g_object_ref0 (self);
953
_data_->self = _tmp0_;
954
_tmp1_ = phone_numbers;
955
_tmp2_ = _g_object_ref0 (_tmp1_);
956
_data_->phone_numbers = _tmp2_;
957
edsf_persona_real_change_phone_numbers_co (_data_);
961
static void edsf_persona_real_change_phone_numbers_finish (FolksPhoneDetails* base, GAsyncResult* _res_, GError** error) {
962
EdsfPersonaChangePhoneNumbersData* _data_;
963
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
966
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
975
static void edsf_persona_change_phone_numbers_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
976
EdsfPersonaChangePhoneNumbersData* _data_;
977
_data_ = _user_data_;
978
_data_->_source_object_ = source_object;
979
_data_->_res_ = _res_;
980
edsf_persona_real_change_phone_numbers_co (_data_);
984
static gboolean edsf_persona_real_change_phone_numbers_co (EdsfPersonaChangePhoneNumbersData* _data_) {
985
switch (_data_->_state_) {
991
g_assert_not_reached ();
994
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
995
_data_->_tmp1_ = _data_->_tmp0_;
996
_data_->_tmp2_ = _data_->phone_numbers;
998
_edsf_persona_store_set_phones (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_phone_numbers_ready, _data_);
1001
_edsf_persona_store_set_phones_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1002
if (_data_->_inner_error_ != NULL) {
1003
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1004
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1005
g_error_free (_data_->_inner_error_);
1006
if (_data_->_state_ == 0) {
1007
g_simple_async_result_complete_in_idle (_data_->_async_result);
1009
g_simple_async_result_complete (_data_->_async_result);
1011
g_object_unref (_data_->_async_result);
1014
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1015
g_clear_error (&_data_->_inner_error_);
1019
if (_data_->_state_ == 0) {
1020
g_simple_async_result_complete_in_idle (_data_->_async_result);
1022
g_simple_async_result_complete (_data_->_async_result);
1024
g_object_unref (_data_->_async_result);
1029
static void edsf_persona_real_change_email_addresses_data_free (gpointer _data) {
1030
EdsfPersonaChangeEmailAddressesData* _data_;
1032
_g_object_unref0 (_data_->email_addresses);
1033
_g_object_unref0 (_data_->self);
1034
g_slice_free (EdsfPersonaChangeEmailAddressesData, _data_);
1038
static void edsf_persona_real_change_email_addresses (FolksEmailDetails* base, GeeSet* email_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1040
EdsfPersonaChangeEmailAddressesData* _data_;
1041
EdsfPersona* _tmp0_;
1044
self = (EdsfPersona*) base;
1045
_data_ = g_slice_new0 (EdsfPersonaChangeEmailAddressesData);
1046
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_email_addresses);
1047
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_email_addresses_data_free);
1048
_tmp0_ = _g_object_ref0 (self);
1049
_data_->self = _tmp0_;
1050
_tmp1_ = email_addresses;
1051
_tmp2_ = _g_object_ref0 (_tmp1_);
1052
_data_->email_addresses = _tmp2_;
1053
edsf_persona_real_change_email_addresses_co (_data_);
1057
static void edsf_persona_real_change_email_addresses_finish (FolksEmailDetails* base, GAsyncResult* _res_, GError** error) {
1058
EdsfPersonaChangeEmailAddressesData* _data_;
1059
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1062
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1071
static void edsf_persona_change_email_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1072
EdsfPersonaChangeEmailAddressesData* _data_;
1073
_data_ = _user_data_;
1074
_data_->_source_object_ = source_object;
1075
_data_->_res_ = _res_;
1076
edsf_persona_real_change_email_addresses_co (_data_);
1080
static gboolean edsf_persona_real_change_email_addresses_co (EdsfPersonaChangeEmailAddressesData* _data_) {
1081
switch (_data_->_state_) {
1087
g_assert_not_reached ();
1090
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1091
_data_->_tmp1_ = _data_->_tmp0_;
1092
_data_->_tmp2_ = _data_->email_addresses;
1093
_data_->_state_ = 1;
1094
_edsf_persona_store_set_emails (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_email_addresses_ready, _data_);
1097
_edsf_persona_store_set_emails_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1098
if (_data_->_inner_error_ != NULL) {
1099
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1100
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1101
g_error_free (_data_->_inner_error_);
1102
if (_data_->_state_ == 0) {
1103
g_simple_async_result_complete_in_idle (_data_->_async_result);
1105
g_simple_async_result_complete (_data_->_async_result);
1107
g_object_unref (_data_->_async_result);
1110
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1111
g_clear_error (&_data_->_inner_error_);
1115
if (_data_->_state_ == 0) {
1116
g_simple_async_result_complete_in_idle (_data_->_async_result);
1118
g_simple_async_result_complete (_data_->_async_result);
1120
g_object_unref (_data_->_async_result);
1125
static void edsf_persona_real_change_notes_data_free (gpointer _data) {
1126
EdsfPersonaChangeNotesData* _data_;
1128
_g_object_unref0 (_data_->notes);
1129
_g_object_unref0 (_data_->self);
1130
g_slice_free (EdsfPersonaChangeNotesData, _data_);
1134
static void edsf_persona_real_change_notes (FolksNoteDetails* base, GeeSet* notes, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1136
EdsfPersonaChangeNotesData* _data_;
1137
EdsfPersona* _tmp0_;
1140
self = (EdsfPersona*) base;
1141
_data_ = g_slice_new0 (EdsfPersonaChangeNotesData);
1142
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_notes);
1143
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_notes_data_free);
1144
_tmp0_ = _g_object_ref0 (self);
1145
_data_->self = _tmp0_;
1147
_tmp2_ = _g_object_ref0 (_tmp1_);
1148
_data_->notes = _tmp2_;
1149
edsf_persona_real_change_notes_co (_data_);
1153
static void edsf_persona_real_change_notes_finish (FolksNoteDetails* base, GAsyncResult* _res_, GError** error) {
1154
EdsfPersonaChangeNotesData* _data_;
1155
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1158
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1167
static void edsf_persona_change_notes_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1168
EdsfPersonaChangeNotesData* _data_;
1169
_data_ = _user_data_;
1170
_data_->_source_object_ = source_object;
1171
_data_->_res_ = _res_;
1172
edsf_persona_real_change_notes_co (_data_);
1176
static gboolean edsf_persona_real_change_notes_co (EdsfPersonaChangeNotesData* _data_) {
1177
switch (_data_->_state_) {
1183
g_assert_not_reached ();
1186
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1187
_data_->_tmp1_ = _data_->_tmp0_;
1188
_data_->_tmp2_ = _data_->notes;
1189
_data_->_state_ = 1;
1190
_edsf_persona_store_set_notes (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_notes_ready, _data_);
1193
_edsf_persona_store_set_notes_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1194
if (_data_->_inner_error_ != NULL) {
1195
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1196
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1197
g_error_free (_data_->_inner_error_);
1198
if (_data_->_state_ == 0) {
1199
g_simple_async_result_complete_in_idle (_data_->_async_result);
1201
g_simple_async_result_complete (_data_->_async_result);
1203
g_object_unref (_data_->_async_result);
1206
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1207
g_clear_error (&_data_->_inner_error_);
1211
if (_data_->_state_ == 0) {
1212
g_simple_async_result_complete_in_idle (_data_->_async_result);
1214
g_simple_async_result_complete (_data_->_async_result);
1216
g_object_unref (_data_->_async_result);
1221
static void edsf_persona_real_change_avatar_data_free (gpointer _data) {
1222
EdsfPersonaChangeAvatarData* _data_;
1224
_g_object_unref0 (_data_->avatar);
1225
_g_object_unref0 (_data_->self);
1226
g_slice_free (EdsfPersonaChangeAvatarData, _data_);
1230
static void edsf_persona_real_change_avatar (FolksAvatarDetails* base, GLoadableIcon* avatar, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1232
EdsfPersonaChangeAvatarData* _data_;
1233
EdsfPersona* _tmp0_;
1234
GLoadableIcon* _tmp1_;
1235
GLoadableIcon* _tmp2_;
1236
self = (EdsfPersona*) base;
1237
_data_ = g_slice_new0 (EdsfPersonaChangeAvatarData);
1238
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_avatar);
1239
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_avatar_data_free);
1240
_tmp0_ = _g_object_ref0 (self);
1241
_data_->self = _tmp0_;
1243
_tmp2_ = _g_object_ref0 (_tmp1_);
1244
_data_->avatar = _tmp2_;
1245
edsf_persona_real_change_avatar_co (_data_);
1249
static void edsf_persona_real_change_avatar_finish (FolksAvatarDetails* base, GAsyncResult* _res_, GError** error) {
1250
EdsfPersonaChangeAvatarData* _data_;
1251
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1254
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1263
static void edsf_persona_change_avatar_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1264
EdsfPersonaChangeAvatarData* _data_;
1265
_data_ = _user_data_;
1266
_data_->_source_object_ = source_object;
1267
_data_->_res_ = _res_;
1268
edsf_persona_real_change_avatar_co (_data_);
1272
static gboolean edsf_persona_real_change_avatar_co (EdsfPersonaChangeAvatarData* _data_) {
1273
switch (_data_->_state_) {
1279
g_assert_not_reached ();
1282
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1283
_data_->_tmp1_ = _data_->_tmp0_;
1284
_data_->_tmp2_ = _data_->avatar;
1285
_data_->_state_ = 1;
1286
_edsf_persona_store_set_avatar (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_avatar_ready, _data_);
1289
_edsf_persona_store_set_avatar_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1290
if (_data_->_inner_error_ != NULL) {
1291
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1292
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1293
g_error_free (_data_->_inner_error_);
1294
if (_data_->_state_ == 0) {
1295
g_simple_async_result_complete_in_idle (_data_->_async_result);
1297
g_simple_async_result_complete (_data_->_async_result);
1299
g_object_unref (_data_->_async_result);
1302
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1303
g_clear_error (&_data_->_inner_error_);
1307
if (_data_->_state_ == 0) {
1308
g_simple_async_result_complete_in_idle (_data_->_async_result);
1310
g_simple_async_result_complete (_data_->_async_result);
1312
g_object_unref (_data_->_async_result);
1317
static void edsf_persona_real_change_structured_name_data_free (gpointer _data) {
1318
EdsfPersonaChangeStructuredNameData* _data_;
1320
_g_object_unref0 (_data_->structured_name);
1321
_g_object_unref0 (_data_->self);
1322
g_slice_free (EdsfPersonaChangeStructuredNameData, _data_);
1326
static void edsf_persona_real_change_structured_name (FolksNameDetails* base, FolksStructuredName* structured_name, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1328
EdsfPersonaChangeStructuredNameData* _data_;
1329
EdsfPersona* _tmp0_;
1330
FolksStructuredName* _tmp1_;
1331
FolksStructuredName* _tmp2_;
1332
self = (EdsfPersona*) base;
1333
_data_ = g_slice_new0 (EdsfPersonaChangeStructuredNameData);
1334
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_structured_name);
1335
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_structured_name_data_free);
1336
_tmp0_ = _g_object_ref0 (self);
1337
_data_->self = _tmp0_;
1338
_tmp1_ = structured_name;
1339
_tmp2_ = _g_object_ref0 (_tmp1_);
1340
_data_->structured_name = _tmp2_;
1341
edsf_persona_real_change_structured_name_co (_data_);
1345
static void edsf_persona_real_change_structured_name_finish (FolksNameDetails* base, GAsyncResult* _res_, GError** error) {
1346
EdsfPersonaChangeStructuredNameData* _data_;
1347
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1350
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1359
static void edsf_persona_change_structured_name_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1360
EdsfPersonaChangeStructuredNameData* _data_;
1361
_data_ = _user_data_;
1362
_data_->_source_object_ = source_object;
1363
_data_->_res_ = _res_;
1364
edsf_persona_real_change_structured_name_co (_data_);
1368
static gboolean edsf_persona_real_change_structured_name_co (EdsfPersonaChangeStructuredNameData* _data_) {
1369
switch (_data_->_state_) {
1375
g_assert_not_reached ();
1378
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1379
_data_->_tmp1_ = _data_->_tmp0_;
1380
_data_->_tmp2_ = _data_->structured_name;
1381
_data_->_state_ = 1;
1382
_edsf_persona_store_set_structured_name (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_structured_name_ready, _data_);
1385
_edsf_persona_store_set_structured_name_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1386
if (_data_->_inner_error_ != NULL) {
1387
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1388
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1389
g_error_free (_data_->_inner_error_);
1390
if (_data_->_state_ == 0) {
1391
g_simple_async_result_complete_in_idle (_data_->_async_result);
1393
g_simple_async_result_complete (_data_->_async_result);
1395
g_object_unref (_data_->_async_result);
1398
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1399
g_clear_error (&_data_->_inner_error_);
1403
if (_data_->_state_ == 0) {
1404
g_simple_async_result_complete_in_idle (_data_->_async_result);
1406
g_simple_async_result_complete (_data_->_async_result);
1408
g_object_unref (_data_->_async_result);
1413
static void edsf_persona_real_change_full_name_data_free (gpointer _data) {
1414
EdsfPersonaChangeFullNameData* _data_;
1416
_g_free0 (_data_->full_name);
1417
_g_object_unref0 (_data_->self);
1418
g_slice_free (EdsfPersonaChangeFullNameData, _data_);
1422
static void edsf_persona_real_change_full_name (FolksNameDetails* base, const gchar* full_name, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1424
EdsfPersonaChangeFullNameData* _data_;
1425
EdsfPersona* _tmp0_;
1426
const gchar* _tmp1_;
1427
const gchar* _tmp2_;
1428
self = (EdsfPersona*) base;
1429
_data_ = g_slice_new0 (EdsfPersonaChangeFullNameData);
1430
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_full_name);
1431
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_full_name_data_free);
1432
_tmp0_ = _g_object_ref0 (self);
1433
_data_->self = _tmp0_;
1435
_tmp2_ = g_strdup (_tmp1_);
1436
_data_->full_name = _tmp2_;
1437
edsf_persona_real_change_full_name_co (_data_);
1441
static void edsf_persona_real_change_full_name_finish (FolksNameDetails* base, GAsyncResult* _res_, GError** error) {
1442
EdsfPersonaChangeFullNameData* _data_;
1443
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1446
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1455
static void edsf_persona_change_full_name_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1456
EdsfPersonaChangeFullNameData* _data_;
1457
_data_ = _user_data_;
1458
_data_->_source_object_ = source_object;
1459
_data_->_res_ = _res_;
1460
edsf_persona_real_change_full_name_co (_data_);
1464
static gboolean edsf_persona_real_change_full_name_co (EdsfPersonaChangeFullNameData* _data_) {
1465
switch (_data_->_state_) {
1471
g_assert_not_reached ();
1474
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1475
_data_->_tmp1_ = _data_->_tmp0_;
1476
_data_->_tmp2_ = _data_->full_name;
1477
_data_->_state_ = 1;
1478
_edsf_persona_store_set_full_name (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_full_name_ready, _data_);
1481
_edsf_persona_store_set_full_name_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1482
if (_data_->_inner_error_ != NULL) {
1483
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1484
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1485
g_error_free (_data_->_inner_error_);
1486
if (_data_->_state_ == 0) {
1487
g_simple_async_result_complete_in_idle (_data_->_async_result);
1489
g_simple_async_result_complete (_data_->_async_result);
1491
g_object_unref (_data_->_async_result);
1494
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1495
g_clear_error (&_data_->_inner_error_);
1499
if (_data_->_state_ == 0) {
1500
g_simple_async_result_complete_in_idle (_data_->_async_result);
1502
g_simple_async_result_complete (_data_->_async_result);
1504
g_object_unref (_data_->_async_result);
1509
static void edsf_persona_real_change_nickname_data_free (gpointer _data) {
1510
EdsfPersonaChangeNicknameData* _data_;
1512
_g_free0 (_data_->nickname);
1513
_g_object_unref0 (_data_->self);
1514
g_slice_free (EdsfPersonaChangeNicknameData, _data_);
1518
static void edsf_persona_real_change_nickname (FolksNameDetails* base, const gchar* nickname, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1520
EdsfPersonaChangeNicknameData* _data_;
1521
EdsfPersona* _tmp0_;
1522
const gchar* _tmp1_;
1523
const gchar* _tmp2_;
1524
self = (EdsfPersona*) base;
1525
_data_ = g_slice_new0 (EdsfPersonaChangeNicknameData);
1526
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_nickname);
1527
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_nickname_data_free);
1528
_tmp0_ = _g_object_ref0 (self);
1529
_data_->self = _tmp0_;
1531
_tmp2_ = g_strdup (_tmp1_);
1532
_data_->nickname = _tmp2_;
1533
edsf_persona_real_change_nickname_co (_data_);
1537
static void edsf_persona_real_change_nickname_finish (FolksNameDetails* base, GAsyncResult* _res_, GError** error) {
1538
EdsfPersonaChangeNicknameData* _data_;
1539
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1542
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1551
static void edsf_persona_change_nickname_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1552
EdsfPersonaChangeNicknameData* _data_;
1553
_data_ = _user_data_;
1554
_data_->_source_object_ = source_object;
1555
_data_->_res_ = _res_;
1556
edsf_persona_real_change_nickname_co (_data_);
1560
static gboolean edsf_persona_real_change_nickname_co (EdsfPersonaChangeNicknameData* _data_) {
1561
switch (_data_->_state_) {
1567
g_assert_not_reached ();
1570
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1571
_data_->_tmp1_ = _data_->_tmp0_;
1572
_data_->_tmp2_ = _data_->nickname;
1573
_data_->_state_ = 1;
1574
_edsf_persona_store_set_nickname (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_nickname_ready, _data_);
1577
_edsf_persona_store_set_nickname_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1578
if (_data_->_inner_error_ != NULL) {
1579
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1580
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1581
g_error_free (_data_->_inner_error_);
1582
if (_data_->_state_ == 0) {
1583
g_simple_async_result_complete_in_idle (_data_->_async_result);
1585
g_simple_async_result_complete (_data_->_async_result);
1587
g_object_unref (_data_->_async_result);
1590
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1591
g_clear_error (&_data_->_inner_error_);
1595
if (_data_->_state_ == 0) {
1596
g_simple_async_result_complete_in_idle (_data_->_async_result);
1598
g_simple_async_result_complete (_data_->_async_result);
1600
g_object_unref (_data_->_async_result);
1605
static void edsf_persona_real_change_gender_data_free (gpointer _data) {
1606
EdsfPersonaChangeGenderData* _data_;
1608
_g_object_unref0 (_data_->self);
1609
g_slice_free (EdsfPersonaChangeGenderData, _data_);
1613
static void edsf_persona_real_change_gender (FolksGenderDetails* base, FolksGender gender, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1615
EdsfPersonaChangeGenderData* _data_;
1616
EdsfPersona* _tmp0_;
1618
self = (EdsfPersona*) base;
1619
_data_ = g_slice_new0 (EdsfPersonaChangeGenderData);
1620
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_gender);
1621
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_gender_data_free);
1622
_tmp0_ = _g_object_ref0 (self);
1623
_data_->self = _tmp0_;
1625
_data_->gender = _tmp1_;
1626
edsf_persona_real_change_gender_co (_data_);
1630
static void edsf_persona_real_change_gender_finish (FolksGenderDetails* base, GAsyncResult* _res_, GError** error) {
1631
EdsfPersonaChangeGenderData* _data_;
1632
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1635
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1644
static void edsf_persona_change_gender_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1645
EdsfPersonaChangeGenderData* _data_;
1646
_data_ = _user_data_;
1647
_data_->_source_object_ = source_object;
1648
_data_->_res_ = _res_;
1649
edsf_persona_real_change_gender_co (_data_);
1653
static gboolean edsf_persona_real_change_gender_co (EdsfPersonaChangeGenderData* _data_) {
1654
switch (_data_->_state_) {
1660
g_assert_not_reached ();
1663
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1664
_data_->_tmp1_ = _data_->_tmp0_;
1665
_data_->_tmp2_ = _data_->gender;
1666
_data_->_state_ = 1;
1667
_edsf_persona_store_set_gender (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_gender_ready, _data_);
1670
_edsf_persona_store_set_gender_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1671
if (_data_->_inner_error_ != NULL) {
1672
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1673
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1674
g_error_free (_data_->_inner_error_);
1675
if (_data_->_state_ == 0) {
1676
g_simple_async_result_complete_in_idle (_data_->_async_result);
1678
g_simple_async_result_complete (_data_->_async_result);
1680
g_object_unref (_data_->_async_result);
1683
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1684
g_clear_error (&_data_->_inner_error_);
1688
if (_data_->_state_ == 0) {
1689
g_simple_async_result_complete_in_idle (_data_->_async_result);
1691
g_simple_async_result_complete (_data_->_async_result);
1693
g_object_unref (_data_->_async_result);
1698
static void edsf_persona_real_change_urls_data_free (gpointer _data) {
1699
EdsfPersonaChangeUrlsData* _data_;
1701
_g_object_unref0 (_data_->urls);
1702
_g_object_unref0 (_data_->self);
1703
g_slice_free (EdsfPersonaChangeUrlsData, _data_);
1707
static void edsf_persona_real_change_urls (FolksUrlDetails* base, GeeSet* urls, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1709
EdsfPersonaChangeUrlsData* _data_;
1710
EdsfPersona* _tmp0_;
1713
self = (EdsfPersona*) base;
1714
_data_ = g_slice_new0 (EdsfPersonaChangeUrlsData);
1715
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_urls);
1716
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_urls_data_free);
1717
_tmp0_ = _g_object_ref0 (self);
1718
_data_->self = _tmp0_;
1720
_tmp2_ = _g_object_ref0 (_tmp1_);
1721
_data_->urls = _tmp2_;
1722
edsf_persona_real_change_urls_co (_data_);
1726
static void edsf_persona_real_change_urls_finish (FolksUrlDetails* base, GAsyncResult* _res_, GError** error) {
1727
EdsfPersonaChangeUrlsData* _data_;
1728
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1731
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1740
static void edsf_persona_change_urls_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1741
EdsfPersonaChangeUrlsData* _data_;
1742
_data_ = _user_data_;
1743
_data_->_source_object_ = source_object;
1744
_data_->_res_ = _res_;
1745
edsf_persona_real_change_urls_co (_data_);
1749
static gboolean edsf_persona_real_change_urls_co (EdsfPersonaChangeUrlsData* _data_) {
1750
switch (_data_->_state_) {
1756
g_assert_not_reached ();
1759
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1760
_data_->_tmp1_ = _data_->_tmp0_;
1761
_data_->_tmp2_ = _data_->urls;
1762
_data_->_state_ = 1;
1763
_edsf_persona_store_set_urls (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_urls_ready, _data_);
1766
_edsf_persona_store_set_urls_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1767
if (_data_->_inner_error_ != NULL) {
1768
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1769
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1770
g_error_free (_data_->_inner_error_);
1771
if (_data_->_state_ == 0) {
1772
g_simple_async_result_complete_in_idle (_data_->_async_result);
1774
g_simple_async_result_complete (_data_->_async_result);
1776
g_object_unref (_data_->_async_result);
1779
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1780
g_clear_error (&_data_->_inner_error_);
1784
if (_data_->_state_ == 0) {
1785
g_simple_async_result_complete_in_idle (_data_->_async_result);
1787
g_simple_async_result_complete (_data_->_async_result);
1789
g_object_unref (_data_->_async_result);
1794
static void edsf_persona_real_change_im_addresses_data_free (gpointer _data) {
1795
EdsfPersonaChangeImAddressesData* _data_;
1797
_g_object_unref0 (_data_->im_addresses);
1798
_g_object_unref0 (_data_->self);
1799
g_slice_free (EdsfPersonaChangeImAddressesData, _data_);
1803
static void edsf_persona_real_change_im_addresses (FolksImDetails* base, GeeMultiMap* im_addresses, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1805
EdsfPersonaChangeImAddressesData* _data_;
1806
EdsfPersona* _tmp0_;
1807
GeeMultiMap* _tmp1_;
1808
GeeMultiMap* _tmp2_;
1809
self = (EdsfPersona*) base;
1810
_data_ = g_slice_new0 (EdsfPersonaChangeImAddressesData);
1811
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_im_addresses);
1812
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_im_addresses_data_free);
1813
_tmp0_ = _g_object_ref0 (self);
1814
_data_->self = _tmp0_;
1815
_tmp1_ = im_addresses;
1816
_tmp2_ = _g_object_ref0 (_tmp1_);
1817
_data_->im_addresses = _tmp2_;
1818
edsf_persona_real_change_im_addresses_co (_data_);
1822
static void edsf_persona_real_change_im_addresses_finish (FolksImDetails* base, GAsyncResult* _res_, GError** error) {
1823
EdsfPersonaChangeImAddressesData* _data_;
1824
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1827
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1836
static void edsf_persona_change_im_addresses_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1837
EdsfPersonaChangeImAddressesData* _data_;
1838
_data_ = _user_data_;
1839
_data_->_source_object_ = source_object;
1840
_data_->_res_ = _res_;
1841
edsf_persona_real_change_im_addresses_co (_data_);
1845
static gboolean edsf_persona_real_change_im_addresses_co (EdsfPersonaChangeImAddressesData* _data_) {
1846
switch (_data_->_state_) {
1852
g_assert_not_reached ();
1855
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
1856
_data_->_tmp1_ = _data_->_tmp0_;
1857
_data_->_tmp2_ = _data_->im_addresses;
1858
_data_->_state_ = 1;
1859
_edsf_persona_store_set_im_fds (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_im_addresses_ready, _data_);
1862
_edsf_persona_store_set_im_fds_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
1863
if (_data_->_inner_error_ != NULL) {
1864
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
1865
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
1866
g_error_free (_data_->_inner_error_);
1867
if (_data_->_state_ == 0) {
1868
g_simple_async_result_complete_in_idle (_data_->_async_result);
1870
g_simple_async_result_complete (_data_->_async_result);
1872
g_object_unref (_data_->_async_result);
1875
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
1876
g_clear_error (&_data_->_inner_error_);
1880
if (_data_->_state_ == 0) {
1881
g_simple_async_result_complete_in_idle (_data_->_async_result);
1883
g_simple_async_result_complete (_data_->_async_result);
1885
g_object_unref (_data_->_async_result);
1890
static void edsf_persona_real_change_group_data_free (gpointer _data) {
1891
EdsfPersonaChangeGroupData* _data_;
1893
_g_free0 (_data_->group);
1894
_g_object_unref0 (_data_->self);
1895
g_slice_free (EdsfPersonaChangeGroupData, _data_);
1899
static void edsf_persona_real_change_group (FolksGroupDetails* base, const gchar* group, gboolean is_member, GAsyncReadyCallback _callback_, gpointer _user_data_) {
1901
EdsfPersonaChangeGroupData* _data_;
1902
EdsfPersona* _tmp0_;
1903
const gchar* _tmp1_;
1904
const gchar* _tmp2_;
1906
self = (EdsfPersona*) base;
1907
_data_ = g_slice_new0 (EdsfPersonaChangeGroupData);
1908
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_group);
1909
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_group_data_free);
1910
_tmp0_ = _g_object_ref0 (self);
1911
_data_->self = _tmp0_;
1913
_tmp2_ = g_strdup (_tmp1_);
1914
_data_->group = _tmp2_;
1916
_data_->is_member = _tmp3_;
1917
edsf_persona_real_change_group_co (_data_);
1921
static void edsf_persona_real_change_group_finish (FolksGroupDetails* base, GAsyncResult* _res_, GError** error) {
1922
EdsfPersonaChangeGroupData* _data_;
1923
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
1926
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
1935
static void edsf_persona_change_group_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
1936
EdsfPersonaChangeGroupData* _data_;
1937
_data_ = _user_data_;
1938
_data_->_source_object_ = source_object;
1939
_data_->_res_ = _res_;
1940
edsf_persona_real_change_group_co (_data_);
1944
static gboolean edsf_persona_real_change_group_co (EdsfPersonaChangeGroupData* _data_) {
1945
switch (_data_->_state_) {
1951
g_assert_not_reached ();
1954
_data_->_tmp2_ = _data_->is_member;
1955
if (_data_->_tmp2_ == TRUE) {
1956
_data_->_tmp3_ = _data_->self->priv->_groups;
1957
_data_->_tmp4_ = _data_->group;
1958
_data_->_tmp5_ = FALSE;
1959
_data_->_tmp5_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _data_->_tmp3_, _data_->_tmp4_);
1960
_data_->_tmp1_ = _data_->_tmp5_ == TRUE;
1962
_data_->_tmp1_ = FALSE;
1964
_data_->_tmp6_ = _data_->_tmp1_;
1965
if (_data_->_tmp6_) {
1966
_data_->_tmp0_ = TRUE;
1968
_data_->_tmp8_ = _data_->is_member;
1969
if (_data_->_tmp8_ == FALSE) {
1970
_data_->_tmp9_ = _data_->self->priv->_groups;
1971
_data_->_tmp10_ = _data_->group;
1972
_data_->_tmp11_ = FALSE;
1973
_data_->_tmp11_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _data_->_tmp9_, _data_->_tmp10_);
1974
_data_->_tmp7_ = _data_->_tmp11_ == FALSE;
1976
_data_->_tmp7_ = FALSE;
1978
_data_->_tmp12_ = _data_->_tmp7_;
1979
_data_->_tmp0_ = _data_->_tmp12_;
1981
_data_->_tmp13_ = _data_->_tmp0_;
1982
if (_data_->_tmp13_) {
1983
if (_data_->_state_ == 0) {
1984
g_simple_async_result_complete_in_idle (_data_->_async_result);
1986
g_simple_async_result_complete (_data_->_async_result);
1988
g_object_unref (_data_->_async_result);
1991
_data_->_tmp14_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
1992
_data_->new_groups = _data_->_tmp14_;
1994
_data_->_tmp15_ = _data_->self->priv->_groups;
1995
_data_->_tmp16_ = NULL;
1996
_data_->_tmp16_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _data_->_tmp15_);
1997
_data_->_category_name_it = _data_->_tmp16_;
1999
_data_->_tmp17_ = _data_->_category_name_it;
2000
_data_->_tmp18_ = FALSE;
2001
_data_->_tmp18_ = gee_iterator_next (_data_->_tmp17_);
2002
if (!_data_->_tmp18_) {
2005
_data_->_tmp19_ = _data_->_category_name_it;
2006
_data_->_tmp20_ = NULL;
2007
_data_->_tmp20_ = gee_iterator_get (_data_->_tmp19_);
2008
_data_->category_name = (gchar*) _data_->_tmp20_;
2009
_data_->_tmp21_ = _data_->new_groups;
2010
_data_->_tmp22_ = _data_->category_name;
2011
gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp21_, _data_->_tmp22_);
2012
_g_free0 (_data_->category_name);
2014
_g_object_unref0 (_data_->_category_name_it);
2016
_data_->_tmp23_ = _data_->is_member;
2017
if (_data_->_tmp23_ == FALSE) {
2018
_data_->_tmp24_ = _data_->new_groups;
2019
_data_->_tmp25_ = _data_->group;
2020
gee_abstract_collection_remove ((GeeAbstractCollection*) _data_->_tmp24_, _data_->_tmp25_);
2022
_data_->_tmp26_ = _data_->new_groups;
2023
_data_->_tmp27_ = _data_->group;
2024
gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp26_, _data_->_tmp27_);
2026
_data_->_tmp28_ = _data_->new_groups;
2027
_data_->_state_ = 1;
2028
folks_group_details_change_groups ((FolksGroupDetails*) _data_->self, (GeeSet*) _data_->_tmp28_, edsf_persona_change_group_ready, _data_);
2031
folks_group_details_change_groups_finish ((FolksGroupDetails*) _data_->self, _data_->_res_, &_data_->_inner_error_);
2032
if (_data_->_inner_error_ != NULL) {
2033
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
2034
g_error_free (_data_->_inner_error_);
2035
_g_object_unref0 (_data_->new_groups);
2036
if (_data_->_state_ == 0) {
2037
g_simple_async_result_complete_in_idle (_data_->_async_result);
2039
g_simple_async_result_complete (_data_->_async_result);
2041
g_object_unref (_data_->_async_result);
2044
_g_object_unref0 (_data_->new_groups);
2045
if (_data_->_state_ == 0) {
2046
g_simple_async_result_complete_in_idle (_data_->_async_result);
2048
g_simple_async_result_complete (_data_->_async_result);
2050
g_object_unref (_data_->_async_result);
2055
static void edsf_persona_real_change_groups_data_free (gpointer _data) {
2056
EdsfPersonaChangeGroupsData* _data_;
2058
_g_object_unref0 (_data_->groups);
2059
_g_object_unref0 (_data_->self);
2060
g_slice_free (EdsfPersonaChangeGroupsData, _data_);
2064
static void edsf_persona_real_change_groups (FolksGroupDetails* base, GeeSet* groups, GAsyncReadyCallback _callback_, gpointer _user_data_) {
2066
EdsfPersonaChangeGroupsData* _data_;
2067
EdsfPersona* _tmp0_;
2070
self = (EdsfPersona*) base;
2071
_data_ = g_slice_new0 (EdsfPersonaChangeGroupsData);
2072
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_groups);
2073
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_groups_data_free);
2074
_tmp0_ = _g_object_ref0 (self);
2075
_data_->self = _tmp0_;
2077
_tmp2_ = _g_object_ref0 (_tmp1_);
2078
_data_->groups = _tmp2_;
2079
edsf_persona_real_change_groups_co (_data_);
2083
static void edsf_persona_real_change_groups_finish (FolksGroupDetails* base, GAsyncResult* _res_, GError** error) {
2084
EdsfPersonaChangeGroupsData* _data_;
2085
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
2088
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
2097
static void edsf_persona_change_groups_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
2098
EdsfPersonaChangeGroupsData* _data_;
2099
_data_ = _user_data_;
2100
_data_->_source_object_ = source_object;
2101
_data_->_res_ = _res_;
2102
edsf_persona_real_change_groups_co (_data_);
2106
static gboolean edsf_persona_real_change_groups_co (EdsfPersonaChangeGroupsData* _data_) {
2107
switch (_data_->_state_) {
2113
g_assert_not_reached ();
2116
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
2117
_data_->_tmp1_ = _data_->_tmp0_;
2118
_data_->_tmp2_ = _data_->groups;
2119
_data_->_state_ = 1;
2120
_edsf_persona_store_set_groups (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_groups_ready, _data_);
2123
_edsf_persona_store_set_groups_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
2124
if (_data_->_inner_error_ != NULL) {
2125
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
2126
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
2127
g_error_free (_data_->_inner_error_);
2128
if (_data_->_state_ == 0) {
2129
g_simple_async_result_complete_in_idle (_data_->_async_result);
2131
g_simple_async_result_complete (_data_->_async_result);
2133
g_object_unref (_data_->_async_result);
2136
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
2137
g_clear_error (&_data_->_inner_error_);
2141
if (_data_->_state_ == 0) {
2142
g_simple_async_result_complete_in_idle (_data_->_async_result);
2144
g_simple_async_result_complete (_data_->_async_result);
2146
g_object_unref (_data_->_async_result);
2151
static void edsf_persona_real_change_birthday_data_free (gpointer _data) {
2152
EdsfPersonaChangeBirthdayData* _data_;
2154
_g_date_time_unref0 (_data_->bday);
2155
_g_object_unref0 (_data_->self);
2156
g_slice_free (EdsfPersonaChangeBirthdayData, _data_);
2160
static gpointer _g_date_time_ref0 (gpointer self) {
2161
return self ? g_date_time_ref (self) : NULL;
2165
static void edsf_persona_real_change_birthday (FolksBirthdayDetails* base, GDateTime* bday, GAsyncReadyCallback _callback_, gpointer _user_data_) {
2167
EdsfPersonaChangeBirthdayData* _data_;
2168
EdsfPersona* _tmp0_;
2171
self = (EdsfPersona*) base;
2172
_data_ = g_slice_new0 (EdsfPersonaChangeBirthdayData);
2173
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_birthday);
2174
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_birthday_data_free);
2175
_tmp0_ = _g_object_ref0 (self);
2176
_data_->self = _tmp0_;
2178
_tmp2_ = _g_date_time_ref0 (_tmp1_);
2179
_data_->bday = _tmp2_;
2180
edsf_persona_real_change_birthday_co (_data_);
2184
static void edsf_persona_real_change_birthday_finish (FolksBirthdayDetails* base, GAsyncResult* _res_, GError** error) {
2185
EdsfPersonaChangeBirthdayData* _data_;
2186
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
2189
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
2198
static void edsf_persona_change_birthday_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
2199
EdsfPersonaChangeBirthdayData* _data_;
2200
_data_ = _user_data_;
2201
_data_->_source_object_ = source_object;
2202
_data_->_res_ = _res_;
2203
edsf_persona_real_change_birthday_co (_data_);
2207
static gboolean edsf_persona_real_change_birthday_co (EdsfPersonaChangeBirthdayData* _data_) {
2208
switch (_data_->_state_) {
2214
g_assert_not_reached ();
2217
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
2218
_data_->_tmp1_ = _data_->_tmp0_;
2219
_data_->_tmp2_ = _data_->bday;
2220
_data_->_state_ = 1;
2221
_edsf_persona_store_set_birthday (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_birthday_ready, _data_);
2224
_edsf_persona_store_set_birthday_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
2225
if (_data_->_inner_error_ != NULL) {
2226
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
2227
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
2228
g_error_free (_data_->_inner_error_);
2229
if (_data_->_state_ == 0) {
2230
g_simple_async_result_complete_in_idle (_data_->_async_result);
2232
g_simple_async_result_complete (_data_->_async_result);
2234
g_object_unref (_data_->_async_result);
2237
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
2238
g_clear_error (&_data_->_inner_error_);
2242
if (_data_->_state_ == 0) {
2243
g_simple_async_result_complete_in_idle (_data_->_async_result);
2245
g_simple_async_result_complete (_data_->_async_result);
2247
g_object_unref (_data_->_async_result);
2252
static void edsf_persona_real_change_roles_data_free (gpointer _data) {
2253
EdsfPersonaChangeRolesData* _data_;
2255
_g_object_unref0 (_data_->roles);
2256
_g_object_unref0 (_data_->self);
2257
g_slice_free (EdsfPersonaChangeRolesData, _data_);
2261
static void edsf_persona_real_change_roles (FolksRoleDetails* base, GeeSet* roles, GAsyncReadyCallback _callback_, gpointer _user_data_) {
2263
EdsfPersonaChangeRolesData* _data_;
2264
EdsfPersona* _tmp0_;
2267
self = (EdsfPersona*) base;
2268
_data_ = g_slice_new0 (EdsfPersonaChangeRolesData);
2269
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, edsf_persona_real_change_roles);
2270
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, edsf_persona_real_change_roles_data_free);
2271
_tmp0_ = _g_object_ref0 (self);
2272
_data_->self = _tmp0_;
2274
_tmp2_ = _g_object_ref0 (_tmp1_);
2275
_data_->roles = _tmp2_;
2276
edsf_persona_real_change_roles_co (_data_);
2280
static void edsf_persona_real_change_roles_finish (FolksRoleDetails* base, GAsyncResult* _res_, GError** error) {
2281
EdsfPersonaChangeRolesData* _data_;
2282
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
2285
_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
2294
static void edsf_persona_change_roles_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
2295
EdsfPersonaChangeRolesData* _data_;
2296
_data_ = _user_data_;
2297
_data_->_source_object_ = source_object;
2298
_data_->_res_ = _res_;
2299
edsf_persona_real_change_roles_co (_data_);
2303
static gboolean edsf_persona_real_change_roles_co (EdsfPersonaChangeRolesData* _data_) {
2304
switch (_data_->_state_) {
2310
g_assert_not_reached ();
2313
_data_->_tmp0_ = folks_persona_get_store ((FolksPersona*) _data_->self);
2314
_data_->_tmp1_ = _data_->_tmp0_;
2315
_data_->_tmp2_ = _data_->roles;
2316
_data_->_state_ = 1;
2317
_edsf_persona_store_set_roles (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->self, _data_->_tmp2_, edsf_persona_change_roles_ready, _data_);
2320
_edsf_persona_store_set_roles_finish (EDSF_PERSONA_STORE (_data_->_tmp1_), _data_->_res_, &_data_->_inner_error_);
2321
if (_data_->_inner_error_ != NULL) {
2322
if (_data_->_inner_error_->domain == FOLKS_PROPERTY_ERROR) {
2323
g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
2324
g_error_free (_data_->_inner_error_);
2325
if (_data_->_state_ == 0) {
2326
g_simple_async_result_complete_in_idle (_data_->_async_result);
2328
g_simple_async_result_complete (_data_->_async_result);
2330
g_object_unref (_data_->_async_result);
2333
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
2334
g_clear_error (&_data_->_inner_error_);
2338
if (_data_->_state_ == 0) {
2339
g_simple_async_result_complete_in_idle (_data_->_async_result);
2341
g_simple_async_result_complete (_data_->_async_result);
2343
g_object_unref (_data_->_async_result);
2351
* @param store_id the {@link PersonaStore.id}
2352
* @param contact the Contact
2353
* @return a valid IID
2357
gchar* edsf_persona_build_iid_from_contact (const gchar* store_id, EContact* contact) {
2358
gchar* result = NULL;
2360
void* _tmp1_ = NULL;
2363
const gchar* _tmp3_;
2364
gchar* _tmp4_ = NULL;
2365
g_return_val_if_fail (store_id != NULL, NULL);
2366
g_return_val_if_fail (contact != NULL, NULL);
2368
_tmp1_ = _edsf_persona_get_property_from_contact (_tmp0_, "id");
2369
_tmp2_ = g_strdup ((const gchar*) _tmp1_);
2370
contact_id = _tmp2_;
2372
_tmp4_ = edsf_persona_build_iid (_tmp3_, contact_id);
2374
_g_free0 (contact_id);
2382
* @param store_id the {@link PersonaStore.id}
2383
* @param contact_id the id belonging to the Contact
2384
* @return a valid IID
2388
gchar* edsf_persona_build_iid (const gchar* store_id, const gchar* contact_id) {
2389
gchar* result = NULL;
2390
const gchar* _tmp0_;
2391
const gchar* _tmp1_;
2392
gchar* _tmp2_ = NULL;
2393
g_return_val_if_fail (store_id != NULL, NULL);
2394
g_return_val_if_fail (contact_id != NULL, NULL);
2396
_tmp1_ = contact_id;
2397
_tmp2_ = g_strdup_printf ("%s:%s", _tmp0_, _tmp1_);
2404
* Create a new persona.
2406
* Create a new persona for the {@link PersonaStore} `store`, representing
2407
* the EDS contact given by `contact`.
2411
EdsfPersona* edsf_persona_construct (GType object_type, EdsfPersonaStore* store, EContact* contact) {
2412
EdsfPersona * self = NULL;
2414
void* _tmp1_ = NULL;
2417
EdsfPersonaStore* _tmp3_;
2418
const gchar* _tmp4_;
2419
const gchar* _tmp5_;
2420
gchar* _tmp6_ = NULL;
2422
EdsfPersonaStore* _tmp7_;
2423
const gchar* _tmp8_;
2424
const gchar* _tmp9_;
2425
gchar* _tmp10_ = NULL;
2428
gboolean _tmp12_ = FALSE;
2431
void* _tmp14_ = NULL;
2434
EdsfPersonaStore* _tmp16_;
2435
GeeHashSet* _tmp17_;
2436
GeeHashSet* _tmp18_;
2439
GeeHashSet* _tmp21_;
2440
GeeHashSet* _tmp22_;
2443
GeeHashSet* _tmp25_;
2444
GeeHashSet* _tmp26_;
2447
GeeHashSet* _tmp29_;
2448
GeeHashSet* _tmp30_;
2451
GeeHashSet* _tmp33_;
2452
GeeHashSet* _tmp34_;
2455
GeeHashSet* _tmp37_;
2456
GeeHashSet* _tmp38_;
2459
GeeHashMultiMap* _tmp41_;
2460
GeeHashSet* _tmp42_;
2461
GeeHashSet* _tmp43_;
2464
GeeHashSet* _tmp46_;
2465
GeeHashSet* _tmp47_;
2469
g_return_val_if_fail (store != NULL, NULL);
2470
g_return_val_if_fail (contact != NULL, NULL);
2472
_tmp1_ = _edsf_persona_get_property_from_contact (_tmp0_, "id");
2473
_tmp2_ = g_strdup ((const gchar*) _tmp1_);
2474
contact_id = _tmp2_;
2476
_tmp4_ = folks_persona_store_get_id ((FolksPersonaStore*) _tmp3_);
2478
_tmp6_ = folks_persona_build_uid (BACKEND_NAME, _tmp5_, contact_id);
2481
_tmp8_ = folks_persona_store_get_id ((FolksPersonaStore*) _tmp7_);
2483
_tmp10_ = edsf_persona_build_iid (_tmp9_, contact_id);
2486
_tmp12_ = e_book_client_is_self (_tmp11_);
2489
_tmp14_ = _edsf_persona_get_property_from_contact (_tmp13_, "full_name");
2490
_tmp15_ = g_strdup ((const gchar*) _tmp14_);
2491
full_name = _tmp15_;
2492
g_debug ("edsf-persona.vala:673: Creating new Edsf.Persona with IID '%s'", iid);
2494
self = (EdsfPersona*) g_object_new (object_type, "display-id", full_name, "uid", uid, "iid", iid, "store", _tmp16_, "is-user", is_user, NULL);
2495
self->priv->_gender = FOLKS_GENDER_UNSPECIFIED;
2496
edsf_persona_set_contact_id (self, contact_id);
2497
_tmp17_ = gee_hash_set_new (FOLKS_TYPE_PHONE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
2498
_g_object_unref0 (self->priv->_phone_numbers);
2499
self->priv->_phone_numbers = _tmp17_;
2500
_tmp18_ = self->priv->_phone_numbers;
2501
_tmp19_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp18_);
2503
_g_object_unref0 (self->priv->_phone_numbers_ro);
2504
self->priv->_phone_numbers_ro = _tmp20_;
2505
_tmp21_ = gee_hash_set_new (FOLKS_TYPE_EMAIL_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
2506
_g_object_unref0 (self->priv->_email_addresses);
2507
self->priv->_email_addresses = _tmp21_;
2508
_tmp22_ = self->priv->_email_addresses;
2509
_tmp23_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp22_);
2511
_g_object_unref0 (self->priv->_email_addresses_ro);
2512
self->priv->_email_addresses_ro = _tmp24_;
2513
_tmp25_ = gee_hash_set_new (FOLKS_TYPE_NOTE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
2514
_g_object_unref0 (self->priv->_notes);
2515
self->priv->_notes = _tmp25_;
2516
_tmp26_ = self->priv->_notes;
2517
_tmp27_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp26_);
2519
_g_object_unref0 (self->priv->_notes_ro);
2520
self->priv->_notes_ro = _tmp28_;
2521
_tmp29_ = gee_hash_set_new (FOLKS_TYPE_URL_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
2522
_g_object_unref0 (self->priv->_urls);
2523
self->priv->_urls = _tmp29_;
2524
_tmp30_ = self->priv->_urls;
2525
_tmp31_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp30_);
2527
_g_object_unref0 (self->priv->_urls_ro);
2528
self->priv->_urls_ro = _tmp32_;
2529
_tmp33_ = gee_hash_set_new (FOLKS_TYPE_POSTAL_ADDRESS_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
2530
_g_object_unref0 (self->priv->_postal_addresses);
2531
self->priv->_postal_addresses = _tmp33_;
2532
_tmp34_ = self->priv->_postal_addresses;
2533
_tmp35_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp34_);
2535
_g_object_unref0 (self->priv->_postal_addresses_ro);
2536
self->priv->_postal_addresses_ro = _tmp36_;
2537
_tmp37_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
2538
_g_object_unref0 (self->priv->_local_ids);
2539
self->priv->_local_ids = _tmp37_;
2540
_tmp38_ = self->priv->_local_ids;
2541
_tmp39_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp38_);
2543
_g_object_unref0 (self->priv->_local_ids_ro);
2544
self->priv->_local_ids_ro = _tmp40_;
2545
_tmp41_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_TYPE_WEB_SERVICE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
2546
_g_object_unref0 (self->priv->_web_service_addresses);
2547
self->priv->_web_service_addresses = _tmp41_;
2548
_tmp42_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
2549
_g_object_unref0 (self->priv->_groups);
2550
self->priv->_groups = _tmp42_;
2551
_tmp43_ = self->priv->_groups;
2552
_tmp44_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp43_);
2554
_g_object_unref0 (self->priv->_groups_ro);
2555
self->priv->_groups_ro = _tmp45_;
2556
_tmp46_ = gee_hash_set_new (FOLKS_TYPE_ROLE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
2557
_g_object_unref0 (self->priv->_roles);
2558
self->priv->_roles = _tmp46_;
2559
_tmp47_ = self->priv->_roles;
2560
_tmp48_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp47_);
2562
_g_object_unref0 (self->priv->_roles_ro);
2563
self->priv->_roles_ro = _tmp49_;
2565
_edsf_persona_update (self, _tmp50_);
2566
_g_free0 (full_name);
2569
_g_free0 (contact_id);
2574
EdsfPersona* edsf_persona_new (EdsfPersonaStore* store, EContact* contact) {
2575
return edsf_persona_construct (EDSF_TYPE_PERSONA, store, contact);
2584
static void edsf_persona_real_linkable_property_to_links (FolksPersona* base, const gchar* prop_name, FolksPersonaLinkablePropertyCallback callback, void* callback_target) {
2586
const gchar* _tmp0_;
2587
self = (EdsfPersona*) base;
2588
g_return_if_fail (prop_name != NULL);
2590
if (g_strcmp0 (_tmp0_, "im-addresses") == 0) {
2592
GeeHashMultiMap* _tmp1_;
2593
GeeSet* _tmp2_ = NULL;
2595
GeeIterator* _tmp4_ = NULL;
2596
GeeIterator* _tmp5_;
2597
GeeIterator* _protocol_it;
2598
_tmp1_ = self->priv->_im_addresses;
2599
_tmp2_ = gee_multi_map_get_keys ((GeeMultiMap*) _tmp1_);
2601
_tmp4_ = gee_iterable_iterator ((GeeIterable*) _tmp3_);
2603
_g_object_unref0 (_tmp3_);
2604
_protocol_it = _tmp5_;
2606
GeeIterator* _tmp6_;
2607
gboolean _tmp7_ = FALSE;
2608
GeeIterator* _tmp8_;
2609
gpointer _tmp9_ = NULL;
2611
GeeHashMultiMap* _tmp10_;
2612
const gchar* _tmp11_;
2613
GeeCollection* _tmp12_ = NULL;
2614
GeeCollection* im_fds;
2615
_tmp6_ = _protocol_it;
2616
_tmp7_ = gee_iterator_next (_tmp6_);
2620
_tmp8_ = _protocol_it;
2621
_tmp9_ = gee_iterator_get (_tmp8_);
2622
protocol = (gchar*) _tmp9_;
2623
_tmp10_ = self->priv->_im_addresses;
2625
_tmp12_ = gee_multi_map_get ((GeeMultiMap*) _tmp10_, _tmp11_);
2628
GeeCollection* _tmp13_;
2629
GeeIterator* _tmp14_ = NULL;
2630
GeeIterator* _im_fd_it;
2632
_tmp14_ = gee_iterable_iterator ((GeeIterable*) _tmp13_);
2633
_im_fd_it = _tmp14_;
2635
GeeIterator* _tmp15_;
2636
gboolean _tmp16_ = FALSE;
2637
GeeIterator* _tmp17_;
2638
gpointer _tmp18_ = NULL;
2639
FolksImFieldDetails* im_fd;
2640
FolksPersonaLinkablePropertyCallback _tmp19_;
2641
void* _tmp19__target;
2642
const gchar* _tmp20_;
2645
FolksImFieldDetails* _tmp23_;
2646
gconstpointer _tmp24_;
2647
const gchar* _tmp25_;
2650
_tmp15_ = _im_fd_it;
2651
_tmp16_ = gee_iterator_next (_tmp15_);
2655
_tmp17_ = _im_fd_it;
2656
_tmp18_ = gee_iterator_get (_tmp17_);
2657
im_fd = (FolksImFieldDetails*) _tmp18_;
2659
_tmp19__target = callback_target;
2661
_tmp21_ = g_strconcat (_tmp20_, ":", NULL);
2664
_tmp24_ = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*) _tmp23_);
2666
_tmp26_ = g_strconcat (_tmp22_, (const gchar*) _tmp25_, NULL);
2668
_tmp19_ (_tmp27_, _tmp19__target);
2671
_g_object_unref0 (im_fd);
2673
_g_object_unref0 (_im_fd_it);
2675
_g_object_unref0 (im_fds);
2676
_g_free0 (protocol);
2678
_g_object_unref0 (_protocol_it);
2681
const gchar* _tmp28_;
2682
_tmp28_ = prop_name;
2683
if (g_strcmp0 (_tmp28_, "local-ids") == 0) {
2687
GeeIterator* _tmp31_ = NULL;
2688
GeeIterator* _id_it;
2689
_tmp29_ = folks_local_id_details_get_local_ids ((FolksLocalIdDetails*) self);
2691
_tmp31_ = gee_iterable_iterator ((GeeIterable*) _tmp30_);
2694
GeeIterator* _tmp32_;
2695
gboolean _tmp33_ = FALSE;
2696
GeeIterator* _tmp34_;
2697
gpointer _tmp35_ = NULL;
2699
FolksPersonaLinkablePropertyCallback _tmp36_;
2700
void* _tmp36__target;
2701
const gchar* _tmp37_;
2703
_tmp33_ = gee_iterator_next (_tmp32_);
2708
_tmp35_ = gee_iterator_get (_tmp34_);
2709
id = (gchar*) _tmp35_;
2711
_tmp36__target = callback_target;
2713
_tmp36_ (_tmp37_, _tmp36__target);
2716
_g_object_unref0 (_id_it);
2719
const gchar* _tmp38_;
2720
_tmp38_ = prop_name;
2721
if (g_strcmp0 (_tmp38_, "web-service-addresses") == 0) {
2723
GeeMultiMap* _tmp39_;
2724
GeeMultiMap* _tmp40_;
2725
GeeSet* _tmp41_ = NULL;
2727
GeeIterator* _tmp43_ = NULL;
2728
GeeIterator* _tmp44_;
2729
GeeIterator* _web_service_it;
2730
_tmp39_ = folks_web_service_details_get_web_service_addresses ((FolksWebServiceDetails*) self);
2732
_tmp41_ = gee_multi_map_get_keys (_tmp40_);
2734
_tmp43_ = gee_iterable_iterator ((GeeIterable*) _tmp42_);
2736
_g_object_unref0 (_tmp42_);
2737
_web_service_it = _tmp44_;
2739
GeeIterator* _tmp45_;
2740
gboolean _tmp46_ = FALSE;
2741
GeeIterator* _tmp47_;
2742
gpointer _tmp48_ = NULL;
2744
GeeHashMultiMap* _tmp49_;
2745
const gchar* _tmp50_;
2746
GeeCollection* _tmp51_ = NULL;
2747
GeeCollection* web_service_addresses;
2748
_tmp45_ = _web_service_it;
2749
_tmp46_ = gee_iterator_next (_tmp45_);
2753
_tmp47_ = _web_service_it;
2754
_tmp48_ = gee_iterator_get (_tmp47_);
2755
web_service = (gchar*) _tmp48_;
2756
_tmp49_ = self->priv->_web_service_addresses;
2757
_tmp50_ = web_service;
2758
_tmp51_ = gee_multi_map_get ((GeeMultiMap*) _tmp49_, _tmp50_);
2759
web_service_addresses = _tmp51_;
2761
GeeCollection* _tmp52_;
2762
GeeIterator* _tmp53_ = NULL;
2763
GeeIterator* _ws_fd_it;
2764
_tmp52_ = web_service_addresses;
2765
_tmp53_ = gee_iterable_iterator ((GeeIterable*) _tmp52_);
2766
_ws_fd_it = _tmp53_;
2768
GeeIterator* _tmp54_;
2769
gboolean _tmp55_ = FALSE;
2770
GeeIterator* _tmp56_;
2771
gpointer _tmp57_ = NULL;
2772
FolksWebServiceFieldDetails* ws_fd;
2773
FolksPersonaLinkablePropertyCallback _tmp58_;
2774
void* _tmp58__target;
2775
const gchar* _tmp59_;
2778
FolksWebServiceFieldDetails* _tmp62_;
2779
gconstpointer _tmp63_;
2780
const gchar* _tmp64_;
2783
_tmp54_ = _ws_fd_it;
2784
_tmp55_ = gee_iterator_next (_tmp54_);
2788
_tmp56_ = _ws_fd_it;
2789
_tmp57_ = gee_iterator_get (_tmp56_);
2790
ws_fd = (FolksWebServiceFieldDetails*) _tmp57_;
2792
_tmp58__target = callback_target;
2793
_tmp59_ = web_service;
2794
_tmp60_ = g_strconcat (_tmp59_, ":", NULL);
2797
_tmp63_ = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*) _tmp62_);
2799
_tmp65_ = g_strconcat (_tmp61_, (const gchar*) _tmp64_, NULL);
2801
_tmp58_ (_tmp66_, _tmp58__target);
2804
_g_object_unref0 (ws_fd);
2806
_g_object_unref0 (_ws_fd_it);
2808
_g_object_unref0 (web_service_addresses);
2809
_g_free0 (web_service);
2811
_g_object_unref0 (_web_service_it);
2814
const gchar* _tmp67_;
2815
FolksPersonaLinkablePropertyCallback _tmp68_;
2816
void* _tmp68__target;
2817
_tmp67_ = prop_name;
2819
_tmp68__target = callback_target;
2820
FOLKS_PERSONA_CLASS (edsf_persona_parent_class)->linkable_property_to_links (FOLKS_PERSONA (self), _tmp67_, _tmp68_, _tmp68__target);
2828
* Update attribs of the persona.
2830
void _edsf_persona_update (EdsfPersona* self, EContact* contact) {
2832
g_return_if_fail (self != NULL);
2833
g_return_if_fail (contact != NULL);
2835
edsf_persona_set_contact (self, _tmp0_);
2836
g_object_freeze_notify ((GObject*) self);
2837
_edsf_persona_update_names (self);
2838
_edsf_persona_update_avatar (self);
2839
_edsf_persona_update_urls (self);
2840
_edsf_persona_update_phones (self);
2841
_edsf_persona_update_addresses (self);
2842
_edsf_persona_update_emails (self);
2843
_edsf_persona_update_im_addresses (self);
2844
_edsf_persona_update_groups (self);
2845
_edsf_persona_update_notes (self);
2846
_edsf_persona_update_local_ids (self);
2847
_edsf_persona_update_web_services_addresses (self);
2848
_edsf_persona_update_gender (self);
2849
_edsf_persona_update_birthday (self);
2850
_edsf_persona_update_roles (self);
2851
g_object_thaw_notify ((GObject*) self);
2855
static void _edsf_persona_update_params (EdsfPersona* self, FolksAbstractFieldDetails* details, EVCardAttribute* attr) {
2856
EVCardAttribute* _tmp0_;
2857
GList* _tmp1_ = NULL;
2858
g_return_if_fail (self != NULL);
2859
g_return_if_fail (details != NULL);
2860
g_return_if_fail (attr != NULL);
2862
_tmp1_ = e_vcard_attribute_get_params (_tmp0_);
2864
GList* param_collection = NULL;
2865
GList* param_it = NULL;
2866
param_collection = _tmp1_;
2867
for (param_it = param_collection; param_it != NULL; param_it = param_it->next) {
2868
EVCardAttributeParam* param = NULL;
2869
param = (EVCardAttributeParam*) param_it->data;
2871
EVCardAttributeParam* _tmp2_;
2872
const gchar* _tmp3_ = NULL;
2873
gchar* _tmp4_ = NULL;
2875
EVCardAttributeParam* _tmp5_;
2876
GList* _tmp6_ = NULL;
2878
_tmp3_ = e_vcard_attribute_param_get_name (_tmp2_);
2879
_tmp4_ = g_utf8_strdown (_tmp3_, (gssize) (-1));
2880
param_name = _tmp4_;
2882
_tmp6_ = e_vcard_attribute_param_get_values (_tmp5_);
2884
GList* param_value_collection = NULL;
2885
GList* param_value_it = NULL;
2886
param_value_collection = _tmp6_;
2887
for (param_value_it = param_value_collection; param_value_it != NULL; param_value_it = param_value_it->next) {
2888
const gchar* param_value = NULL;
2889
param_value = (const gchar*) param_value_it->data;
2891
const gchar* _tmp7_;
2892
_tmp7_ = param_name;
2893
if (g_strcmp0 (_tmp7_, FOLKS_ABSTRACT_FIELD_DETAILS_PARAM_TYPE) == 0) {
2894
FolksAbstractFieldDetails* _tmp8_;
2895
const gchar* _tmp9_;
2896
const gchar* _tmp10_;
2897
gchar* _tmp11_ = NULL;
2900
_tmp9_ = param_name;
2901
_tmp10_ = param_value;
2902
_tmp11_ = g_utf8_strdown (_tmp10_, (gssize) (-1));
2904
folks_abstract_field_details_add_parameter (_tmp8_, _tmp9_, _tmp12_);
2907
FolksAbstractFieldDetails* _tmp13_;
2908
const gchar* _tmp14_;
2909
const gchar* _tmp15_;
2911
_tmp14_ = param_name;
2912
_tmp15_ = param_value;
2913
folks_abstract_field_details_add_parameter (_tmp13_, _tmp14_, _tmp15_);
2918
_g_free0 (param_name);
2925
static EVCardAttribute* _vala_EVCardAttribute_copy (EVCardAttribute* self) {
2926
return g_boxed_copy (e_vcard_attribute_get_type (), self);
2930
static gpointer __vala_EVCardAttribute_copy0 (gpointer self) {
2931
return self ? _vala_EVCardAttribute_copy (self) : NULL;
2935
static void _vala_EVCardAttribute_free (EVCardAttribute* self) {
2936
g_boxed_free (e_vcard_attribute_get_type (), self);
2940
static void _edsf_persona_update_gender (EdsfPersona* self) {
2943
EVCardAttribute* _tmp1_ = NULL;
2944
EVCardAttribute* _tmp2_;
2945
EVCardAttribute* gender_attr;
2946
EVCardAttribute* _tmp3_;
2947
FolksGender _tmp11_;
2948
FolksGender _tmp12_;
2949
g_return_if_fail (self != NULL);
2950
gender = FOLKS_GENDER_UNSPECIFIED;
2951
_tmp0_ = self->priv->_contact;
2952
_tmp1_ = e_vcard_get_attribute ((EVCard*) _tmp0_, EDSF_PERSONA_gender_attribute_name);
2953
_tmp2_ = __vala_EVCardAttribute_copy0 (_tmp1_);
2954
gender_attr = _tmp2_;
2955
_tmp3_ = gender_attr;
2956
if (_tmp3_ != NULL) {
2957
EVCardAttribute* _tmp4_;
2958
gchar* _tmp5_ = NULL;
2960
gchar* _tmp7_ = NULL;
2963
const gchar* _tmp9_;
2964
_tmp4_ = gender_attr;
2965
_tmp5_ = e_vcard_attribute_get_value (_tmp4_);
2967
_tmp7_ = g_utf8_strup (_tmp6_, (gssize) (-1));
2970
gender_str = _tmp8_;
2971
_tmp9_ = gender_str;
2972
if (g_strcmp0 (_tmp9_, EDSF_PERSONA_gender_male) == 0) {
2973
gender = FOLKS_GENDER_MALE;
2975
const gchar* _tmp10_;
2976
_tmp10_ = gender_str;
2977
if (g_strcmp0 (_tmp10_, EDSF_PERSONA_gender_female) == 0) {
2978
gender = FOLKS_GENDER_FEMALE;
2981
_g_free0 (gender_str);
2983
_tmp11_ = self->priv->_gender;
2985
if (_tmp11_ != _tmp12_) {
2986
FolksGender _tmp13_;
2988
self->priv->_gender = _tmp13_;
2989
g_object_notify ((GObject*) self, "gender");
2991
__vala_EVCardAttribute_free0 (gender_attr);
2995
static EContactDate* _vala_EContactDate_copy (EContactDate* self) {
2996
return g_boxed_copy (e_contact_date_get_type (), self);
3000
static gpointer __vala_EContactDate_copy0 (gpointer self) {
3001
return self ? _vala_EContactDate_copy (self) : NULL;
3005
static void _vala_EContactDate_free (EContactDate* self) {
3006
g_boxed_free (e_contact_date_get_type (), self);
3010
static void _edsf_persona_update_birthday (EdsfPersona* self) {
3011
void* _tmp0_ = NULL;
3012
EContactDate* _tmp1_;
3014
EContactDate* _tmp2_;
3015
g_return_if_fail (self != NULL);
3016
_tmp0_ = _edsf_persona_get_property (self, "birth_date");
3017
_tmp1_ = __vala_EContactDate_copy0 ((EContactDate*) _tmp0_);
3020
if (_tmp2_ != NULL) {
3022
EContactDate* _tmp4_;
3024
EContactDate* _tmp6_;
3026
EContactDate* _tmp8_;
3030
gboolean _tmp11_ = FALSE;
3033
_tmp3_ = edsf_persona__local_time_zone;
3035
_tmp5_ = _tmp4_->year;
3037
_tmp7_ = _tmp6_->month;
3039
_tmp9_ = _tmp8_->day;
3040
_tmp10_ = g_date_time_new (_tmp3_, (gint) _tmp5_, (gint) _tmp7_, (gint) _tmp9_, 0, 0, 0.0);
3042
_tmp12_ = self->priv->_birthday;
3043
if (_tmp12_ == NULL) {
3046
gboolean _tmp13_ = FALSE;
3049
_tmp14_ = self->priv->_birthday;
3050
if (_tmp14_ != NULL) {
3053
GDateTime* _tmp17_ = NULL;
3055
gboolean _tmp19_ = FALSE;
3056
_tmp15_ = self->priv->_birthday;
3058
_tmp17_ = g_date_time_to_utc (_tmp16_);
3060
_tmp19_ = g_date_time_equal (_tmp15_, _tmp18_);
3062
_g_date_time_unref0 (_tmp18_);
3072
GDateTime* _tmp23_ = NULL;
3074
_tmp23_ = g_date_time_to_utc (_tmp22_);
3075
_g_date_time_unref0 (self->priv->_birthday);
3076
self->priv->_birthday = _tmp23_;
3077
g_object_notify ((GObject*) self, "birthday");
3079
_g_date_time_unref0 (d);
3082
_tmp24_ = self->priv->_birthday;
3083
if (_tmp24_ != NULL) {
3084
_g_date_time_unref0 (self->priv->_birthday);
3085
self->priv->_birthday = NULL;
3086
g_object_notify ((GObject*) self, "birthday");
3089
__vala_EContactDate_free0 (bday);
3093
static void _edsf_persona_update_roles (EdsfPersona* self) {
3095
GeeHashSet* new_roles;
3096
FolksRoleFieldDetails* _tmp1_ = NULL;
3097
FolksRoleFieldDetails* default_role_fd;
3098
FolksRoleFieldDetails* _tmp2_;
3103
GList* _tmp8_ = NULL;
3104
EdsfSetComparator* _tmp40_;
3105
EdsfSetComparator* comp;
3106
EdsfSetComparator* _tmp41_;
3107
GeeHashSet* _tmp42_;
3108
GeeHashSet* _tmp43_;
3109
gboolean _tmp44_ = FALSE;
3110
g_return_if_fail (self != NULL);
3111
_tmp0_ = gee_hash_set_new (FOLKS_TYPE_ROLE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
3113
_tmp1_ = _edsf_persona_get_default_role (self);
3114
default_role_fd = _tmp1_;
3115
_tmp2_ = default_role_fd;
3116
if (_tmp2_ != NULL) {
3118
FolksRoleFieldDetails* _tmp4_;
3120
_tmp4_ = default_role_fd;
3121
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, _tmp4_);
3123
_tmp5_ = self->priv->_contact;
3124
_tmp6_ = _g_object_ref0 (E_VCARD (_tmp5_));
3127
_tmp8_ = e_vcard_get_attributes (_tmp7_);
3129
GList* attr_collection = NULL;
3130
GList* attr_it = NULL;
3131
attr_collection = _tmp8_;
3132
for (attr_it = attr_collection; attr_it != NULL; attr_it = attr_it->next) {
3133
EVCardAttribute* attr = NULL;
3134
attr = (EVCardAttribute*) attr_it->data;
3136
EVCardAttribute* _tmp9_;
3137
const gchar* _tmp10_ = NULL;
3141
EVCardAttribute* _tmp13_;
3142
gchar* _tmp14_ = NULL;
3145
FolksRoleFieldDetails* _tmp17_;
3146
FolksRoleFieldDetails* role_fd;
3147
EVCardAttribute* _tmp18_;
3148
GList* _tmp19_ = NULL;
3149
GeeHashSet* _tmp38_;
3150
FolksRoleFieldDetails* _tmp39_;
3152
_tmp10_ = e_vcard_attribute_get_name (_tmp9_);
3153
if (g_strcmp0 (_tmp10_, "X-ROLES") != 0) {
3156
_tmp11_ = folks_role_new ("", "", NULL);
3160
_tmp14_ = e_vcard_attribute_get_value (_tmp13_);
3162
folks_role_set_role (_tmp12_, _tmp15_);
3165
_tmp17_ = folks_role_field_details_new (_tmp16_, NULL);
3168
_tmp19_ = e_vcard_attribute_get_params (_tmp18_);
3170
GList* param_collection = NULL;
3171
GList* param_it = NULL;
3172
param_collection = _tmp19_;
3173
for (param_it = param_collection; param_it != NULL; param_it = param_it->next) {
3174
EVCardAttributeParam* param = NULL;
3175
param = (EVCardAttributeParam*) param_it->data;
3177
EVCardAttributeParam* _tmp20_;
3178
const gchar* _tmp21_ = NULL;
3179
gchar* _tmp22_ = NULL;
3181
const gchar* _tmp23_;
3183
_tmp21_ = e_vcard_attribute_param_get_name (_tmp20_);
3184
_tmp22_ = g_utf8_strdown (_tmp21_, (gssize) (-1));
3185
param_name = _tmp22_;
3186
_tmp23_ = param_name;
3187
if (g_strcmp0 (_tmp23_, "organisation_name") == 0) {
3188
EVCardAttributeParam* _tmp24_;
3189
GList* _tmp25_ = NULL;
3191
_tmp25_ = e_vcard_attribute_param_get_values (_tmp24_);
3193
GList* param_value_collection = NULL;
3194
GList* param_value_it = NULL;
3195
param_value_collection = _tmp25_;
3196
for (param_value_it = param_value_collection; param_value_it != NULL; param_value_it = param_value_it->next) {
3197
const gchar* param_value = NULL;
3198
param_value = (const gchar*) param_value_it->data;
3201
const gchar* _tmp27_;
3203
_tmp27_ = param_value;
3204
folks_role_set_organisation_name (_tmp26_, _tmp27_);
3210
const gchar* _tmp28_;
3211
_tmp28_ = param_name;
3212
if (g_strcmp0 (_tmp28_, "title") == 0) {
3213
EVCardAttributeParam* _tmp29_;
3214
GList* _tmp30_ = NULL;
3216
_tmp30_ = e_vcard_attribute_param_get_values (_tmp29_);
3218
GList* param_value_collection = NULL;
3219
GList* param_value_it = NULL;
3220
param_value_collection = _tmp30_;
3221
for (param_value_it = param_value_collection; param_value_it != NULL; param_value_it = param_value_it->next) {
3222
const gchar* param_value = NULL;
3223
param_value = (const gchar*) param_value_it->data;
3226
const gchar* _tmp32_;
3228
_tmp32_ = param_value;
3229
folks_role_set_title (_tmp31_, _tmp32_);
3235
EVCardAttributeParam* _tmp33_;
3236
GList* _tmp34_ = NULL;
3238
_tmp34_ = e_vcard_attribute_param_get_values (_tmp33_);
3240
GList* param_value_collection = NULL;
3241
GList* param_value_it = NULL;
3242
param_value_collection = _tmp34_;
3243
for (param_value_it = param_value_collection; param_value_it != NULL; param_value_it = param_value_it->next) {
3244
const gchar* param_value = NULL;
3245
param_value = (const gchar*) param_value_it->data;
3247
FolksRoleFieldDetails* _tmp35_;
3248
const gchar* _tmp36_;
3249
const gchar* _tmp37_;
3251
_tmp36_ = param_name;
3252
_tmp37_ = param_value;
3253
folks_abstract_field_details_add_parameter ((FolksAbstractFieldDetails*) _tmp35_, _tmp36_, _tmp37_);
3259
_g_free0 (param_name);
3263
_tmp38_ = new_roles;
3265
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp38_, _tmp39_);
3266
_g_object_unref0 (role_fd);
3267
_g_object_unref0 (role);
3271
_tmp40_ = edsf_set_comparator_new (FOLKS_TYPE_ROLE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref);
3274
_tmp42_ = new_roles;
3275
_tmp43_ = self->priv->_roles;
3276
_tmp44_ = edsf_set_comparator_equal (_tmp41_, (GeeSet*) _tmp42_, (GeeSet*) _tmp43_);
3278
GeeHashSet* _tmp45_;
3279
GeeHashSet* _tmp46_;
3280
GeeHashSet* _tmp47_;
3283
_tmp45_ = new_roles;
3284
_tmp46_ = _g_object_ref0 (_tmp45_);
3285
_g_object_unref0 (self->priv->_roles);
3286
self->priv->_roles = _tmp46_;
3287
_tmp47_ = new_roles;
3288
_tmp48_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp47_);
3290
_g_object_unref0 (self->priv->_roles_ro);
3291
self->priv->_roles_ro = _tmp49_;
3292
g_object_notify ((GObject*) self, "roles");
3294
_g_object_unref0 (comp);
3295
_g_object_unref0 (vcard);
3296
_g_object_unref0 (default_role_fd);
3297
_g_object_unref0 (new_roles);
3301
static FolksRoleFieldDetails* _edsf_persona_get_default_role (EdsfPersona* self) {
3302
FolksRoleFieldDetails* result = NULL;
3303
FolksRoleFieldDetails* default_role;
3304
void* _tmp0_ = NULL;
3307
void* _tmp2_ = NULL;
3310
void* _tmp4_ = NULL;
3313
void* _tmp6_ = NULL;
3316
void* _tmp8_ = NULL;
3319
void* _tmp10_ = NULL;
3322
void* _tmp12_ = NULL;
3325
gboolean _tmp14_ = FALSE;
3326
gboolean _tmp15_ = FALSE;
3327
gboolean _tmp16_ = FALSE;
3328
gboolean _tmp17_ = FALSE;
3329
gboolean _tmp18_ = FALSE;
3330
gboolean _tmp19_ = FALSE;
3331
const gchar* _tmp20_;
3338
g_return_val_if_fail (self != NULL, NULL);
3339
default_role = NULL;
3340
_tmp0_ = _edsf_persona_get_property (self, "org");
3341
_tmp1_ = g_strdup ((const gchar*) _tmp0_);
3343
_tmp2_ = _edsf_persona_get_property (self, "org_unit");
3344
_tmp3_ = g_strdup ((const gchar*) _tmp2_);
3346
_tmp4_ = _edsf_persona_get_property (self, "office");
3347
_tmp5_ = g_strdup ((const gchar*) _tmp4_);
3349
_tmp6_ = _edsf_persona_get_property (self, "title");
3350
_tmp7_ = g_strdup ((const gchar*) _tmp6_);
3352
_tmp8_ = _edsf_persona_get_property (self, "role");
3353
_tmp9_ = g_strdup ((const gchar*) _tmp8_);
3355
_tmp10_ = _edsf_persona_get_property (self, "manager");
3356
_tmp11_ = g_strdup ((const gchar*) _tmp10_);
3358
_tmp12_ = _edsf_persona_get_property (self, "assistant");
3359
_tmp13_ = g_strdup ((const gchar*) _tmp12_);
3360
assistant = _tmp13_;
3362
if (_tmp20_ != NULL) {
3365
const gchar* _tmp21_;
3367
_tmp19_ = _tmp21_ != NULL;
3373
const gchar* _tmp23_;
3375
_tmp18_ = _tmp23_ != NULL;
3381
const gchar* _tmp25_;
3383
_tmp17_ = _tmp25_ != NULL;
3389
const gchar* _tmp27_;
3391
_tmp16_ = _tmp27_ != NULL;
3397
const gchar* _tmp29_;
3399
_tmp15_ = _tmp29_ != NULL;
3405
const gchar* _tmp31_;
3406
_tmp31_ = assistant;
3407
_tmp14_ = _tmp31_ != NULL;
3411
const gchar* _tmp33_;
3412
const gchar* _tmp34_;
3414
FolksRole* new_role;
3415
const gchar* _tmp36_;
3417
FolksRoleFieldDetails* _tmp40_;
3418
const gchar* _tmp41_;
3419
const gchar* _tmp44_;
3420
const gchar* _tmp47_;
3421
const gchar* _tmp50_;
3424
_tmp35_ = folks_role_new (_tmp33_, _tmp34_, NULL);
3427
if (_tmp36_ != NULL) {
3429
const gchar* _tmp38_;
3432
folks_role_set_role (_tmp37_, _tmp38_);
3435
_tmp40_ = folks_role_field_details_new (_tmp39_, NULL);
3436
_g_object_unref0 (default_role);
3437
default_role = _tmp40_;
3439
if (_tmp41_ != NULL) {
3440
FolksRoleFieldDetails* _tmp42_;
3441
const gchar* _tmp43_;
3442
_tmp42_ = default_role;
3444
folks_abstract_field_details_set_parameter ((FolksAbstractFieldDetails*) _tmp42_, "org_unit", _tmp43_);
3447
if (_tmp44_ != NULL) {
3448
FolksRoleFieldDetails* _tmp45_;
3449
const gchar* _tmp46_;
3450
_tmp45_ = default_role;
3452
folks_abstract_field_details_set_parameter ((FolksAbstractFieldDetails*) _tmp45_, "office", _tmp46_);
3455
if (_tmp47_ != NULL) {
3456
FolksRoleFieldDetails* _tmp48_;
3457
const gchar* _tmp49_;
3458
_tmp48_ = default_role;
3460
folks_abstract_field_details_set_parameter ((FolksAbstractFieldDetails*) _tmp48_, "manager", _tmp49_);
3462
_tmp50_ = assistant;
3463
if (_tmp50_ != NULL) {
3464
FolksRoleFieldDetails* _tmp51_;
3465
const gchar* _tmp52_;
3466
_tmp51_ = default_role;
3467
_tmp52_ = assistant;
3468
folks_abstract_field_details_set_parameter ((FolksAbstractFieldDetails*) _tmp51_, "assistant", _tmp52_);
3470
_g_object_unref0 (new_role);
3472
result = default_role;
3473
_g_free0 (assistant);
3478
_g_free0 (org_unit);
3484
static EVCardAttributeParam* _vala_EVCardAttributeParam_copy (EVCardAttributeParam* self) {
3485
return g_boxed_copy (e_vcard_attribute_param_get_type (), self);
3489
static gpointer __vala_EVCardAttributeParam_copy0 (gpointer self) {
3490
return self ? _vala_EVCardAttributeParam_copy (self) : NULL;
3494
static void _vala_EVCardAttributeParam_free (EVCardAttributeParam* self) {
3495
g_boxed_free (e_vcard_attribute_param_get_type (), self);
3499
static void _edsf_persona_update_web_services_addresses (EdsfPersona* self) {
3500
GeeHashMultiMap* _tmp0_;
3501
GeeHashMultiMap* new_services;
3503
EVCardAttribute* _tmp2_ = NULL;
3504
EVCardAttribute* _tmp3_;
3505
EVCardAttribute* services;
3506
EVCardAttribute* _tmp4_;
3507
GeeHashMultiMap* _tmp20_;
3508
GeeHashMultiMap* _tmp21_;
3509
gboolean _tmp22_ = FALSE;
3510
g_return_if_fail (self != NULL);
3511
_tmp0_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_TYPE_WEB_SERVICE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
3512
new_services = _tmp0_;
3513
_tmp1_ = self->priv->_contact;
3514
_tmp2_ = e_vcard_get_attribute ((EVCard*) _tmp1_, "X-FOLKS-WEB-SERVICES-IDS");
3515
_tmp3_ = __vala_EVCardAttribute_copy0 (_tmp2_);
3518
if (_tmp4_ != NULL) {
3519
EVCardAttribute* _tmp5_;
3520
GList* _tmp6_ = NULL;
3522
_tmp6_ = e_vcard_attribute_get_params (_tmp5_);
3524
GList* service_collection = NULL;
3525
GList* service_it = NULL;
3526
service_collection = _tmp6_;
3527
for (service_it = service_collection; service_it != NULL; service_it = service_it->next) {
3528
EVCardAttributeParam* _tmp7_;
3529
EVCardAttributeParam* service = NULL;
3530
_tmp7_ = __vala_EVCardAttributeParam_copy0 ((EVCardAttributeParam*) service_it->data);
3533
EVCardAttributeParam* _tmp8_;
3534
const gchar* _tmp9_ = NULL;
3535
gchar* _tmp10_ = NULL;
3536
gchar* service_name;
3537
EVCardAttributeParam* _tmp11_;
3538
GList* _tmp12_ = NULL;
3540
_tmp9_ = e_vcard_attribute_param_get_name (_tmp8_);
3541
_tmp10_ = g_utf8_strdown (_tmp9_, (gssize) (-1));
3542
service_name = _tmp10_;
3544
_tmp12_ = e_vcard_attribute_param_get_values (_tmp11_);
3546
GList* service_id_collection = NULL;
3547
GList* service_id_it = NULL;
3548
service_id_collection = _tmp12_;
3549
for (service_id_it = service_id_collection; service_id_it != NULL; service_id_it = service_id_it->next) {
3551
gchar* service_id = NULL;
3552
_tmp13_ = g_strdup ((const gchar*) service_id_it->data);
3553
service_id = _tmp13_;
3555
const gchar* _tmp14_;
3556
GeeHashMultiMap* _tmp15_;
3557
const gchar* _tmp16_;
3558
const gchar* _tmp17_;
3559
FolksWebServiceFieldDetails* _tmp18_;
3560
FolksWebServiceFieldDetails* _tmp19_;
3561
_tmp14_ = service_id;
3562
if (_tmp14_ == NULL) {
3563
_g_free0 (service_id);
3566
_tmp15_ = new_services;
3567
_tmp16_ = service_name;
3568
_tmp17_ = service_id;
3569
_tmp18_ = folks_web_service_field_details_new (_tmp17_, NULL);
3571
gee_multi_map_set ((GeeMultiMap*) _tmp15_, _tmp16_, _tmp19_);
3572
_g_object_unref0 (_tmp19_);
3573
_g_free0 (service_id);
3577
_g_free0 (service_name);
3578
__vala_EVCardAttributeParam_free0 (service);
3583
_tmp20_ = new_services;
3584
_tmp21_ = self->priv->_web_service_addresses;
3585
_tmp22_ = folks_utils_multi_map_str_afd_equal ((GeeMultiMap*) _tmp20_, (GeeMultiMap*) _tmp21_);
3587
GeeHashMultiMap* _tmp23_;
3588
GeeHashMultiMap* _tmp24_;
3589
_tmp23_ = new_services;
3590
_tmp24_ = _g_object_ref0 (_tmp23_);
3591
_g_object_unref0 (self->priv->_web_service_addresses);
3592
self->priv->_web_service_addresses = _tmp24_;
3593
g_object_notify ((GObject*) self, "web-service-addresses");
3595
__vala_EVCardAttribute_free0 (services);
3596
_g_object_unref0 (new_services);
3600
static void __vala_EVCardAttribute_free0_ (gpointer var) {
3601
(var == NULL) ? NULL : (var = (_vala_EVCardAttribute_free (var), NULL));
3605
static void _g_list_free___vala_EVCardAttribute_free0_ (GList* self) {
3606
g_list_foreach (self, (GFunc) __vala_EVCardAttribute_free0_, NULL);
3611
static void _edsf_persona_update_emails (EdsfPersona* self) {
3613
GeeHashSet* new_email_addresses;
3615
GList* _tmp2_ = NULL;
3618
EdsfSetComparator* _tmp14_;
3619
EdsfSetComparator* comp;
3620
EdsfSetComparator* _tmp15_;
3621
GeeHashSet* _tmp16_;
3622
GeeHashSet* _tmp17_;
3623
gboolean _tmp18_ = FALSE;
3624
g_return_if_fail (self != NULL);
3625
_tmp0_ = gee_hash_set_new (FOLKS_TYPE_EMAIL_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
3626
new_email_addresses = _tmp0_;
3627
_tmp1_ = self->priv->_contact;
3628
_tmp2_ = e_contact_get_attributes (_tmp1_, E_CONTACT_EMAIL);
3632
GList* attr_collection = NULL;
3633
GList* attr_it = NULL;
3634
attr_collection = _tmp3_;
3635
for (attr_it = attr_collection; attr_it != NULL; attr_it = attr_it->next) {
3636
EVCardAttribute* _tmp4_;
3637
EVCardAttribute* attr = NULL;
3638
_tmp4_ = __vala_EVCardAttribute_copy0 ((EVCardAttribute*) attr_it->data);
3641
EVCardAttribute* _tmp5_;
3642
gchar* _tmp6_ = NULL;
3644
FolksEmailFieldDetails* _tmp8_;
3645
FolksEmailFieldDetails* _tmp9_;
3646
FolksEmailFieldDetails* email_fd;
3647
FolksEmailFieldDetails* _tmp10_;
3648
EVCardAttribute* _tmp11_;
3649
GeeHashSet* _tmp12_;
3650
FolksEmailFieldDetails* _tmp13_;
3652
_tmp6_ = e_vcard_attribute_get_value (_tmp5_);
3654
_tmp8_ = folks_email_field_details_new (_tmp7_, NULL);
3660
_edsf_persona_update_params (self, (FolksAbstractFieldDetails*) _tmp10_, _tmp11_);
3661
_tmp12_ = new_email_addresses;
3663
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp13_);
3664
_g_object_unref0 (email_fd);
3665
__vala_EVCardAttribute_free0 (attr);
3669
_tmp14_ = edsf_set_comparator_new (FOLKS_TYPE_EMAIL_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref);
3672
_tmp16_ = new_email_addresses;
3673
_tmp17_ = self->priv->_email_addresses;
3674
_tmp18_ = edsf_set_comparator_equal (_tmp15_, (GeeSet*) _tmp16_, (GeeSet*) _tmp17_);
3676
GeeHashSet* _tmp19_;
3677
GeeHashSet* _tmp20_;
3678
GeeHashSet* _tmp21_;
3681
_tmp19_ = new_email_addresses;
3682
_tmp20_ = _g_object_ref0 (_tmp19_);
3683
_g_object_unref0 (self->priv->_email_addresses);
3684
self->priv->_email_addresses = _tmp20_;
3685
_tmp21_ = new_email_addresses;
3686
_tmp22_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp21_);
3688
_g_object_unref0 (self->priv->_email_addresses_ro);
3689
self->priv->_email_addresses_ro = _tmp23_;
3690
g_object_notify ((GObject*) self, "email-addresses");
3692
_g_object_unref0 (comp);
3693
__g_list_free___vala_EVCardAttribute_free0_0 (attrs);
3694
_g_object_unref0 (new_email_addresses);
3698
static void _edsf_persona_update_notes (EdsfPersona* self) {
3700
GeeHashSet* new_notes;
3701
void* _tmp1_ = NULL;
3704
gboolean _tmp3_ = FALSE;
3705
const gchar* _tmp4_;
3707
EdsfSetComparator* _tmp11_;
3708
EdsfSetComparator* comp;
3709
EdsfSetComparator* _tmp12_;
3710
GeeHashSet* _tmp13_;
3711
GeeHashSet* _tmp14_;
3712
gboolean _tmp15_ = FALSE;
3713
g_return_if_fail (self != NULL);
3714
_tmp0_ = gee_hash_set_new (FOLKS_TYPE_NOTE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
3716
_tmp1_ = _edsf_persona_get_property (self, "note");
3717
_tmp2_ = g_strdup ((const gchar*) _tmp1_);
3720
if (_tmp4_ != NULL) {
3721
const gchar* _tmp5_;
3723
_tmp3_ = g_strcmp0 (_tmp5_, "") != 0;
3729
const gchar* _tmp7_;
3730
FolksNoteFieldDetails* _tmp8_;
3731
FolksNoteFieldDetails* note;
3733
FolksNoteFieldDetails* _tmp10_;
3735
_tmp8_ = folks_note_field_details_new (_tmp7_, NULL, NULL);
3739
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _tmp10_);
3740
_g_object_unref0 (note);
3742
_tmp11_ = edsf_set_comparator_new (FOLKS_TYPE_NOTE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref);
3745
_tmp13_ = new_notes;
3746
_tmp14_ = self->priv->_notes;
3747
_tmp15_ = edsf_set_comparator_equal (_tmp12_, (GeeSet*) _tmp13_, (GeeSet*) _tmp14_);
3749
GeeHashSet* _tmp16_;
3750
GeeHashSet* _tmp17_;
3751
GeeHashSet* _tmp18_;
3754
_tmp16_ = new_notes;
3755
_tmp17_ = _g_object_ref0 (_tmp16_);
3756
_g_object_unref0 (self->priv->_notes);
3757
self->priv->_notes = _tmp17_;
3758
_tmp18_ = self->priv->_notes;
3759
_tmp19_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp18_);
3761
_g_object_unref0 (self->priv->_notes_ro);
3762
self->priv->_notes_ro = _tmp20_;
3763
g_object_notify ((GObject*) self, "notes");
3765
_g_object_unref0 (comp);
3767
_g_object_unref0 (new_notes);
3771
static EContactName* _vala_EContactName_copy (EContactName* self) {
3772
return g_boxed_copy (e_contact_name_get_type (), self);
3776
static gpointer __vala_EContactName_copy0 (gpointer self) {
3777
return self ? _vala_EContactName_copy (self) : NULL;
3781
static void _vala_EContactName_free (EContactName* self) {
3782
g_boxed_free (e_contact_name_get_type (), self);
3786
static void _edsf_persona_update_names (EdsfPersona* self) {
3787
void* _tmp0_ = NULL;
3790
const gchar* _tmp2_;
3791
const gchar* _tmp4_;
3792
const gchar* _tmp5_;
3793
void* _tmp8_ = NULL;
3796
const gchar* _tmp10_;
3797
const gchar* _tmp12_;
3798
const gchar* _tmp13_;
3799
FolksStructuredName* structured_name;
3800
void* _tmp16_ = NULL;
3801
EContactName* _tmp17_;
3803
EContactName* _tmp18_;
3804
gboolean _tmp40_ = FALSE;
3805
FolksStructuredName* _tmp41_;
3807
g_return_if_fail (self != NULL);
3808
_tmp0_ = _edsf_persona_get_property (self, "full_name");
3809
_tmp1_ = g_strdup ((const gchar*) _tmp0_);
3812
if (_tmp2_ == NULL) {
3814
_tmp3_ = g_strdup ("");
3815
_g_free0 (full_name);
3818
_tmp4_ = self->priv->_full_name;
3820
if (g_strcmp0 (_tmp4_, _tmp5_) != 0) {
3821
const gchar* _tmp6_;
3824
_tmp7_ = g_strdup (_tmp6_);
3825
_g_free0 (self->priv->_full_name);
3826
self->priv->_full_name = _tmp7_;
3827
g_object_notify ((GObject*) self, "full-name");
3829
_tmp8_ = _edsf_persona_get_property (self, "nickname");
3830
_tmp9_ = g_strdup ((const gchar*) _tmp8_);
3833
if (_tmp10_ == NULL) {
3835
_tmp11_ = g_strdup ("");
3836
_g_free0 (nickname);
3839
_tmp12_ = self->priv->_nickname;
3841
if (g_strcmp0 (_tmp12_, _tmp13_) != 0) {
3842
const gchar* _tmp14_;
3845
_tmp15_ = g_strdup (_tmp14_);
3846
_g_free0 (self->priv->_nickname);
3847
self->priv->_nickname = _tmp15_;
3848
g_object_notify ((GObject*) self, "nickname");
3850
structured_name = NULL;
3851
_tmp16_ = _edsf_persona_get_property (self, "name");
3852
_tmp17_ = __vala_EContactName_copy0 ((EContactName*) _tmp16_);
3855
if (_tmp18_ != NULL) {
3856
EContactName* _tmp19_;
3857
const gchar* _tmp20_;
3860
EContactName* _tmp22_;
3861
const gchar* _tmp23_;
3864
EContactName* _tmp25_;
3865
const gchar* _tmp26_;
3867
gchar* additional_names;
3868
EContactName* _tmp28_;
3869
const gchar* _tmp29_;
3872
EContactName* _tmp31_;
3873
const gchar* _tmp32_;
3876
const gchar* _tmp34_;
3877
const gchar* _tmp35_;
3878
const gchar* _tmp36_;
3879
const gchar* _tmp37_;
3880
const gchar* _tmp38_;
3881
FolksStructuredName* _tmp39_;
3883
_tmp20_ = _tmp19_->family;
3884
_tmp21_ = g_strdup (_tmp20_);
3885
family_name = _tmp21_;
3887
_tmp23_ = _tmp22_->given;
3888
_tmp24_ = g_strdup (_tmp23_);
3889
given_name = _tmp24_;
3891
_tmp26_ = _tmp25_->additional;
3892
_tmp27_ = g_strdup (_tmp26_);
3893
additional_names = _tmp27_;
3895
_tmp29_ = _tmp28_->prefixes;
3896
_tmp30_ = g_strdup (_tmp29_);
3899
_tmp32_ = _tmp31_->suffixes;
3900
_tmp33_ = g_strdup (_tmp32_);
3902
_tmp34_ = family_name;
3903
_tmp35_ = given_name;
3904
_tmp36_ = additional_names;
3907
_tmp39_ = folks_structured_name_new (_tmp34_, _tmp35_, _tmp36_, _tmp37_, _tmp38_);
3908
_g_object_unref0 (structured_name);
3909
structured_name = _tmp39_;
3910
_g_free0 (suffixes);
3911
_g_free0 (prefixes);
3912
_g_free0 (additional_names);
3913
_g_free0 (given_name);
3914
_g_free0 (family_name);
3916
_tmp41_ = structured_name;
3917
if (_tmp41_ != NULL) {
3918
FolksStructuredName* _tmp42_;
3919
gboolean _tmp43_ = FALSE;
3920
_tmp42_ = structured_name;
3921
_tmp43_ = folks_structured_name_is_empty (_tmp42_);
3928
FolksStructuredName* _tmp45_;
3929
FolksStructuredName* _tmp46_;
3930
_tmp45_ = structured_name;
3931
_tmp46_ = _g_object_ref0 (_tmp45_);
3932
_g_object_unref0 (self->priv->_structured_name);
3933
self->priv->_structured_name = _tmp46_;
3934
g_object_notify ((GObject*) self, "structured-name");
3936
FolksStructuredName* _tmp47_;
3937
_tmp47_ = self->priv->_structured_name;
3938
if (_tmp47_ != NULL) {
3939
_g_object_unref0 (self->priv->_structured_name);
3940
self->priv->_structured_name = NULL;
3941
g_object_notify ((GObject*) self, "structured-name");
3944
__vala_EContactName_free0 (cn);
3945
_g_object_unref0 (structured_name);
3946
_g_free0 (nickname);
3947
_g_free0 (full_name);
3951
static GLoadableIcon* _edsf_persona_contact_photo_to_loadable_icon (EdsfPersona* self, EContactPhoto* p) {
3952
GLoadableIcon* result = NULL;
3953
EContactPhoto* _tmp0_;
3954
EContactPhoto* _tmp1_;
3955
EContactPhotoType _tmp2_;
3956
g_return_val_if_fail (self != NULL, NULL);
3958
if (_tmp0_ == NULL) {
3963
_tmp2_ = _tmp1_->type;
3965
case E_CONTACT_PHOTO_TYPE_URI:
3967
EContactPhoto* _tmp3_;
3968
const gchar* _tmp4_ = NULL;
3969
EContactPhoto* _tmp5_;
3970
const gchar* _tmp6_ = NULL;
3971
GFile* _tmp7_ = NULL;
3974
GLoadableIcon* _tmp10_;
3976
_tmp4_ = e_contact_photo_get_uri (_tmp3_);
3977
if (_tmp4_ == NULL) {
3982
_tmp6_ = e_contact_photo_get_uri (_tmp5_);
3983
_tmp7_ = g_file_new_for_uri (_tmp6_);
3985
_tmp9_ = (GFileIcon*) g_file_icon_new (_tmp8_);
3986
_tmp10_ = (GLoadableIcon*) _tmp9_;
3987
_g_object_unref0 (_tmp8_);
3991
case E_CONTACT_PHOTO_TYPE_INLINED:
3993
gboolean _tmp11_ = FALSE;
3994
EContactPhoto* _tmp12_;
3995
const gchar* _tmp13_ = NULL;
3997
EContactPhoto* _tmp18_;
3998
const gchar* _tmp19_ = NULL;
3999
EContactPhoto* _tmp20_;
4001
guint8* _tmp22_ = NULL;
4002
EdsfMemoryIcon* _tmp23_;
4004
_tmp13_ = e_contact_photo_get_mime_type (_tmp12_);
4005
if (_tmp13_ == NULL) {
4008
EContactPhoto* _tmp14_;
4010
guint8* _tmp16_ = NULL;
4012
_tmp16_ = e_contact_photo_get_inlined (_tmp14_, &_tmp15_);
4013
_tmp11_ = _tmp16_ == NULL;
4021
_tmp19_ = e_contact_photo_get_mime_type (_tmp18_);
4023
_tmp22_ = e_contact_photo_get_inlined (_tmp20_, &_tmp21_);
4024
_tmp23_ = edsf_memory_icon_new (_tmp19_, _tmp22_, _tmp21_);
4025
result = (GLoadableIcon*) _tmp23_;
4037
static Block1Data* block1_data_ref (Block1Data* _data1_) {
4038
g_atomic_int_inc (&_data1_->_ref_count_);
4043
static void block1_data_unref (Block1Data* _data1_) {
4044
if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
4045
_g_object_unref0 (_data1_->self);
4046
_g_object_unref0 (_data1_->new_avatar);
4047
_g_object_unref0 (_data1_->cache);
4048
g_slice_free (Block1Data, _data1_);
4053
static EContactPhoto* _vala_EContactPhoto_copy (EContactPhoto* self) {
4054
return g_boxed_copy (e_contact_photo_get_type (), self);
4058
static gpointer __vala_EContactPhoto_copy0 (gpointer self) {
4059
return self ? _vala_EContactPhoto_copy (self) : NULL;
4063
static void ___lambda4_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res) {
4065
GError * _inner_error_ = NULL;
4066
self = _data1_->self;
4067
g_return_if_fail (res != NULL);
4069
FolksAvatarCache* _tmp0_;
4070
GAsyncResult* _tmp1_;
4071
_tmp0_ = _data1_->cache;
4073
folks_avatar_cache_remove_avatar_finish (_tmp0_, _tmp1_, &_inner_error_);
4074
if (_inner_error_ != NULL) {
4075
goto __catch0_g_error;
4083
_inner_error_ = NULL;
4084
_g_error_free0 (e1);
4087
if (_inner_error_ != NULL) {
4088
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);
4089
g_clear_error (&_inner_error_);
4092
_g_object_unref0 (self->priv->_avatar);
4093
self->priv->_avatar = NULL;
4094
g_object_notify ((GObject*) self, "avatar");
4098
static void ____lambda4__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
4099
___lambda4_ (self, source_object, res);
4100
block1_data_unref (self);
4104
static void ____lambda7_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res) {
4106
GError * _inner_error_ = NULL;
4107
self = _data1_->self;
4108
g_return_if_fail (res != NULL);
4110
FolksAvatarCache* _tmp0_;
4111
GAsyncResult* _tmp1_;
4112
gchar* _tmp2_ = NULL;
4114
GLoadableIcon* _tmp4_;
4115
GLoadableIcon* _tmp5_;
4116
_tmp0_ = _data1_->cache;
4118
_tmp2_ = folks_avatar_cache_store_avatar_finish (_tmp0_, _tmp1_, &_inner_error_);
4121
if (_inner_error_ != NULL) {
4122
goto __catch1_g_error;
4124
_tmp4_ = _data1_->new_avatar;
4125
_tmp5_ = _g_object_ref0 (_tmp4_);
4126
_g_object_unref0 (self->priv->_avatar);
4127
self->priv->_avatar = _tmp5_;
4128
g_object_notify ((GObject*) self, "avatar");
4134
const gchar* _tmp6_;
4135
const gchar* _tmp7_;
4137
const gchar* _tmp9_;
4139
_inner_error_ = NULL;
4140
_tmp6_ = folks_persona_get_uid ((FolksPersona*) self);
4143
_tmp9_ = _tmp8_->message;
4144
g_warning ("edsf-persona.vala:1190: Couldn't cache avatar for Edsf.Persona '%s': %" \
4145
"s", _tmp7_, _tmp9_);
4146
_g_object_unref0 (_data1_->new_avatar);
4147
_data1_->new_avatar = NULL;
4148
_g_error_free0 (e2);
4151
if (_inner_error_ != NULL) {
4152
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);
4153
g_clear_error (&_inner_error_);
4159
static void _____lambda7__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
4160
____lambda7_ (self, source_object, res);
4161
block1_data_unref (self);
4165
static void _vala_EContactPhoto_free (EContactPhoto* self) {
4166
g_boxed_free (e_contact_photo_get_type (), self);
4170
static void _edsf_persona_update_avatar (EdsfPersona* self) {
4171
Block1Data* _data1_;
4172
void* _tmp0_ = NULL;
4173
EContactPhoto* _tmp1_;
4175
FolksAvatarCache* _tmp2_ = NULL;
4176
EContactPhoto* _tmp3_;
4177
GLoadableIcon* _tmp4_ = NULL;
4178
gboolean _tmp5_ = FALSE;
4179
GLoadableIcon* _tmp6_;
4181
g_return_if_fail (self != NULL);
4182
_data1_ = g_slice_new0 (Block1Data);
4183
_data1_->_ref_count_ = 1;
4184
_data1_->self = g_object_ref (self);
4185
_tmp0_ = _edsf_persona_get_property (self, "photo");
4186
_tmp1_ = __vala_EContactPhoto_copy0 ((EContactPhoto*) _tmp0_);
4188
_tmp2_ = folks_avatar_cache_dup ();
4189
_data1_->cache = _tmp2_;
4191
_tmp4_ = _edsf_persona_contact_photo_to_loadable_icon (self, _tmp3_);
4192
_data1_->new_avatar = _tmp4_;
4193
_tmp6_ = self->priv->_avatar;
4194
if (_tmp6_ != NULL) {
4195
GLoadableIcon* _tmp7_;
4196
_tmp7_ = _data1_->new_avatar;
4197
_tmp5_ = _tmp7_ == NULL;
4203
FolksAvatarCache* _tmp9_;
4204
const gchar* _tmp10_;
4205
const gchar* _tmp11_;
4206
_tmp9_ = _data1_->cache;
4207
_tmp10_ = folks_persona_get_uid ((FolksPersona*) self);
4209
folks_avatar_cache_remove_avatar (_tmp9_, _tmp11_, ____lambda4__gasync_ready_callback, block1_data_ref (_data1_));
4211
gboolean _tmp12_ = FALSE;
4212
gboolean _tmp13_ = FALSE;
4213
GLoadableIcon* _tmp14_;
4214
GLoadableIcon* _tmp15_;
4217
_tmp14_ = folks_avatar_details_get_avatar ((FolksAvatarDetails*) self);
4219
if (_tmp15_ == NULL) {
4220
GLoadableIcon* _tmp16_;
4221
_tmp16_ = _data1_->new_avatar;
4222
_tmp13_ = _tmp16_ != NULL;
4230
gboolean _tmp18_ = FALSE;
4231
gboolean _tmp19_ = FALSE;
4232
GLoadableIcon* _tmp20_;
4233
GLoadableIcon* _tmp21_;
4236
_tmp20_ = folks_avatar_details_get_avatar ((FolksAvatarDetails*) self);
4238
if (_tmp21_ != NULL) {
4239
GLoadableIcon* _tmp22_;
4240
_tmp22_ = _data1_->new_avatar;
4241
_tmp19_ = _tmp22_ != NULL;
4247
GLoadableIcon* _tmp24_;
4248
GLoadableIcon* _tmp25_;
4249
gboolean _tmp26_ = FALSE;
4250
_tmp24_ = self->priv->_avatar;
4251
_tmp25_ = _data1_->new_avatar;
4252
_tmp26_ = g_icon_equal ((GIcon*) _tmp24_, (GIcon*) _tmp25_);
4253
_tmp18_ = _tmp26_ == FALSE;
4262
FolksAvatarCache* _tmp29_;
4263
const gchar* _tmp30_;
4264
const gchar* _tmp31_;
4265
GLoadableIcon* _tmp32_;
4266
_tmp29_ = _data1_->cache;
4267
_tmp30_ = folks_persona_get_uid ((FolksPersona*) self);
4269
_tmp32_ = _data1_->new_avatar;
4270
folks_avatar_cache_store_avatar (_tmp29_, _tmp31_, _tmp32_, _____lambda7__gasync_ready_callback, block1_data_ref (_data1_));
4273
__vala_EContactPhoto_free0 (p);
4274
block1_data_unref (_data1_);
4279
static void _edsf_persona_update_urls (EdsfPersona* self) {
4281
GeeHashSet* new_urls;
4286
GList* _tmp24_ = NULL;
4287
GeeHashSet* _tmp36_;
4288
GeeHashSet* _tmp37_;
4289
gboolean _tmp38_ = FALSE;
4290
g_return_if_fail (self != NULL);
4291
_tmp0_ = gee_hash_set_new (FOLKS_TYPE_URL_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL);
4294
EdsfPersonaUrlTypeMapping* mapping_collection = NULL;
4295
gint mapping_collection_length1 = 0;
4296
gint _mapping_collection_size_ = 0;
4297
gint mapping_it = 0;
4298
mapping_collection = EDSF_PERSONA__url_properties;
4299
mapping_collection_length1 = G_N_ELEMENTS (EDSF_PERSONA__url_properties);
4300
for (mapping_it = 0; mapping_it < G_N_ELEMENTS (EDSF_PERSONA__url_properties); mapping_it = mapping_it + 1) {
4301
EdsfPersonaUrlTypeMapping mapping = {0};
4302
mapping = mapping_collection[mapping_it];
4304
EdsfPersonaUrlTypeMapping _tmp1_;
4305
const gchar* _tmp2_;
4307
gchar* url_property;
4308
EdsfPersonaUrlTypeMapping _tmp4_;
4309
const gchar* _tmp5_;
4312
const gchar* _tmp7_;
4313
void* _tmp8_ = NULL;
4316
gboolean _tmp10_ = FALSE;
4317
const gchar* _tmp11_;
4320
_tmp2_ = _tmp1_.vcard_field_name;
4321
_tmp3_ = g_strdup (_tmp2_);
4322
url_property = _tmp3_;
4324
_tmp5_ = _tmp4_.folks_type;
4325
_tmp6_ = g_strdup (_tmp5_);
4326
folks_type = _tmp6_;
4327
_tmp7_ = url_property;
4328
_tmp8_ = _edsf_persona_get_property (self, _tmp7_);
4329
_tmp9_ = g_strdup ((const gchar*) _tmp8_);
4332
if (_tmp11_ != NULL) {
4333
const gchar* _tmp12_;
4335
_tmp10_ = g_strcmp0 (_tmp12_, "") != 0;
4341
const gchar* _tmp14_;
4342
FolksUrlFieldDetails* _tmp15_;
4343
FolksUrlFieldDetails* fd_u;
4344
FolksUrlFieldDetails* _tmp16_;
4345
FolksUrlFieldDetails* _tmp17_;
4346
const gchar* _tmp18_;
4347
GeeHashSet* _tmp19_;
4348
FolksUrlFieldDetails* _tmp20_;
4350
_tmp15_ = folks_url_field_details_new (_tmp14_, NULL);
4354
_tmp18_ = folks_type;
4355
folks_abstract_field_details_set_parameter ((FolksAbstractFieldDetails*) _tmp16_, FOLKS_ABSTRACT_FIELD_DETAILS_PARAM_TYPE, _tmp18_);
4358
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp19_, _tmp20_);
4359
_g_object_unref0 (fd_u);
4362
_g_free0 (folks_type);
4363
_g_free0 (url_property);
4367
_tmp21_ = self->priv->_contact;
4368
_tmp22_ = _g_object_ref0 (E_VCARD (_tmp21_));
4371
_tmp24_ = e_vcard_get_attributes (_tmp23_);
4373
GList* attr_collection = NULL;
4374
GList* attr_it = NULL;
4375
attr_collection = _tmp24_;
4376
for (attr_it = attr_collection; attr_it != NULL; attr_it = attr_it->next) {
4377
EVCardAttribute* attr = NULL;
4378
attr = (EVCardAttribute*) attr_it->data;
4380
EVCardAttribute* _tmp25_;
4381
const gchar* _tmp26_ = NULL;
4383
_tmp26_ = e_vcard_attribute_get_name (_tmp25_);
4384
if (g_strcmp0 (_tmp26_, "X-URIS") == 0) {
4385
EVCardAttribute* _tmp27_;
4386
gchar* _tmp28_ = NULL;
4388
FolksUrlFieldDetails* _tmp30_;
4389
FolksUrlFieldDetails* _tmp31_;
4390
FolksUrlFieldDetails* url_fd;
4391
FolksUrlFieldDetails* _tmp32_;
4392
EVCardAttribute* _tmp33_;
4393
GeeHashSet* _tmp34_;
4394
FolksUrlFieldDetails* _tmp35_;
4396
_tmp28_ = e_vcard_attribute_get_value (_tmp27_);
4398
_tmp30_ = folks_url_field_details_new (_tmp29_, NULL);
4404
_edsf_persona_update_params (self, (FolksAbstractFieldDetails*) _tmp32_, _tmp33_);
4407
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp34_, _tmp35_);
4408
_g_object_unref0 (url_fd);
4414
_tmp37_ = self->priv->_urls;
4415
_tmp38_ = folks_utils_set_afd_equal ((GeeSet*) _tmp36_, (GeeSet*) _tmp37_);
4417
GeeHashSet* _tmp39_;
4418
GeeHashSet* _tmp40_;
4419
GeeHashSet* _tmp41_;
4423
_tmp40_ = _g_object_ref0 (_tmp39_);
4424
_g_object_unref0 (self->priv->_urls);
4425
self->priv->_urls = _tmp40_;
4427
_tmp42_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp41_);
4429
_g_object_unref0 (self->priv->_urls_ro);
4430
self->priv->_urls_ro = _tmp43_;
4431
g_object_notify ((GObject*) self, "urls");
4433
_g_object_unref0 (vcard);
4434
_g_object_unref0 (new_urls);
4438
static void _edsf_persona_update_im_addresses (EdsfPersona* self) {
4439
GHashTable* _tmp0_ = NULL;
4440
GHashTable* im_eds_map;
4441
GeeHashMultiMap* _tmp1_;
4442
GeeHashMultiMap* new_im_addresses;
4444
GList* _tmp3_ = NULL;
4445
GeeHashMultiMap* _tmp73_;
4446
GeeHashMultiMap* _tmp74_;
4447
gboolean _tmp75_ = FALSE;
4448
GError * _inner_error_ = NULL;
4449
g_return_if_fail (self != NULL);
4450
_tmp0_ = _edsf_persona_get_im_eds_map ();
4451
im_eds_map = _tmp0_;
4452
_tmp1_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_TYPE_IM_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
4453
new_im_addresses = _tmp1_;
4454
_tmp2_ = im_eds_map;
4455
_tmp3_ = g_hash_table_get_keys (_tmp2_);
4457
GList* im_proto_collection = NULL;
4458
GList* im_proto_it = NULL;
4459
im_proto_collection = _tmp3_;
4460
for (im_proto_it = im_proto_collection; im_proto_it != NULL; im_proto_it = im_proto_it->next) {
4461
const gchar* im_proto = NULL;
4462
im_proto = (const gchar*) im_proto_it->data;
4466
const gchar* _tmp6_;
4467
gconstpointer _tmp7_ = NULL;
4468
GList* _tmp8_ = NULL;
4471
_tmp4_ = self->priv->_contact;
4472
_tmp5_ = im_eds_map;
4474
_tmp7_ = g_hash_table_lookup (_tmp5_, _tmp6_);
4475
_tmp8_ = e_contact_get_attributes (_tmp4_, GPOINTER_TO_INT (_tmp7_));
4479
GList* attr_collection = NULL;
4480
GList* attr_it = NULL;
4481
attr_collection = _tmp9_;
4482
for (attr_it = attr_collection; attr_it != NULL; attr_it = attr_it->next) {
4483
EVCardAttribute* _tmp10_;
4484
EVCardAttribute* attr = NULL;
4485
_tmp10_ = __vala_EVCardAttribute_copy0 ((EVCardAttribute*) attr_it->data);
4489
EVCardAttribute* _tmp11_;
4490
gchar* _tmp12_ = NULL;
4492
const gchar* _tmp13_;
4493
const gchar* _tmp14_;
4494
gchar* _tmp15_ = NULL;
4499
gchar* normalised_addr;
4500
const gchar* _tmp20_;
4501
FolksImFieldDetails* _tmp21_;
4502
FolksImFieldDetails* im_fd;
4503
GeeHashMultiMap* _tmp22_;
4504
const gchar* _tmp23_;
4505
FolksImFieldDetails* _tmp24_;
4507
_tmp12_ = e_vcard_attribute_get_value (_tmp11_);
4511
_tmp15_ = folks_im_details_normalise_im_address (_tmp13_, _tmp14_, &_inner_error_);
4513
if (_inner_error_ != NULL) {
4515
if (_inner_error_->domain == FOLKS_IM_DETAILS_ERROR) {
4516
goto __catch2_folks_im_details_error;
4519
__vala_EVCardAttribute_free0 (attr);
4520
__g_list_free___vala_EVCardAttribute_free0_0 (addresses);
4521
_g_list_free0 (im_proto_collection);
4522
_g_object_unref0 (new_im_addresses);
4523
_g_hash_table_unref0 (im_eds_map);
4524
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);
4525
g_clear_error (&_inner_error_);
4533
normalised_addr = _tmp19_;
4534
_tmp20_ = normalised_addr;
4535
_tmp21_ = folks_im_field_details_new (_tmp20_, NULL);
4537
_tmp22_ = new_im_addresses;
4540
gee_multi_map_set ((GeeMultiMap*) _tmp22_, _tmp23_, _tmp24_);
4541
_g_object_unref0 (im_fd);
4542
_g_free0 (normalised_addr);
4546
__catch2_folks_im_details_error:
4550
const gchar* _tmp26_;
4552
_inner_error_ = NULL;
4554
_tmp26_ = _tmp25_->message;
4555
g_warning ("edsf-persona.vala:1260: Problem when trying to normalise address: %s\n", _tmp26_);
4559
if (_inner_error_ != NULL) {
4560
__vala_EVCardAttribute_free0 (attr);
4561
__g_list_free___vala_EVCardAttribute_free0_0 (addresses);
4562
_g_list_free0 (im_proto_collection);
4563
_g_object_unref0 (new_im_addresses);
4564
_g_hash_table_unref0 (im_eds_map);
4565
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);
4566
g_clear_error (&_inner_error_);
4569
__vala_EVCardAttribute_free0 (attr);
4573
__g_list_free___vala_EVCardAttribute_free0_0 (addresses);
4576
_g_list_free0 (im_proto_collection);
4581
GeeIterator* _tmp29_ = NULL;
4582
GeeIterator* _email_it;
4583
_tmp27_ = folks_email_details_get_email_addresses ((FolksEmailDetails*) self);
4585
_tmp29_ = gee_iterable_iterator ((GeeIterable*) _tmp28_);
4586
_email_it = _tmp29_;
4588
GeeIterator* _tmp30_;
4589
gboolean _tmp31_ = FALSE;
4590
GeeIterator* _tmp32_;
4591
gpointer _tmp33_ = NULL;
4592
FolksEmailFieldDetails* email;
4593
FolksEmailFieldDetails* _tmp34_;
4594
gconstpointer _tmp35_;
4595
const gchar* _tmp36_;
4596
gchar* _tmp37_ = NULL;
4598
const gchar* _tmp38_;
4599
_tmp30_ = _email_it;
4600
_tmp31_ = gee_iterator_next (_tmp30_);
4604
_tmp32_ = _email_it;
4605
_tmp33_ = gee_iterator_get (_tmp32_);
4606
email = (FolksEmailFieldDetails*) _tmp33_;
4608
_tmp35_ = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*) _tmp34_);
4610
_tmp37_ = _edsf_persona_im_proto_from_addr (self, (const gchar*) _tmp36_);
4613
if (_tmp38_ != NULL) {
4615
GeeMultiMap* _tmp39_;
4616
GeeMultiMap* _tmp40_;
4617
const gchar* _tmp41_;
4618
GeeCollection* _tmp42_ = NULL;
4619
GeeCollection* current_im_addrs;
4620
GeeCollection* _tmp43_;
4623
_tmp39_ = folks_im_details_get_im_addresses ((FolksImDetails*) self);
4626
_tmp42_ = gee_multi_map_get (_tmp40_, _tmp41_);
4627
current_im_addrs = _tmp42_;
4628
_tmp43_ = current_im_addrs;
4629
if (_tmp43_ != NULL) {
4631
GeeCollection* _tmp44_;
4632
GeeIterator* _tmp45_ = NULL;
4633
GeeIterator* _cur_im_it;
4634
_tmp44_ = current_im_addrs;
4635
_tmp45_ = gee_iterable_iterator ((GeeIterable*) _tmp44_);
4636
_cur_im_it = _tmp45_;
4638
GeeIterator* _tmp46_;
4639
gboolean _tmp47_ = FALSE;
4640
GeeIterator* _tmp48_;
4641
gpointer _tmp49_ = NULL;
4642
FolksImFieldDetails* cur_im;
4643
FolksImFieldDetails* _tmp50_;
4644
gconstpointer _tmp51_;
4645
const gchar* _tmp52_;
4646
FolksEmailFieldDetails* _tmp53_;
4647
gconstpointer _tmp54_;
4648
const gchar* _tmp55_;
4649
_tmp46_ = _cur_im_it;
4650
_tmp47_ = gee_iterator_next (_tmp46_);
4654
_tmp48_ = _cur_im_it;
4655
_tmp49_ = gee_iterator_get (_tmp48_);
4656
cur_im = (FolksImFieldDetails*) _tmp49_;
4658
_tmp51_ = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*) _tmp50_);
4661
_tmp54_ = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*) _tmp53_);
4663
if (g_strcmp0 ((const gchar*) _tmp52_, (const gchar*) _tmp55_) == 0) {
4665
_g_object_unref0 (cur_im);
4668
_g_object_unref0 (cur_im);
4670
_g_object_unref0 (_cur_im_it);
4675
_g_object_unref0 (current_im_addrs);
4677
_g_object_unref0 (email);
4681
FolksEmailFieldDetails* _tmp57_;
4682
gconstpointer _tmp58_;
4683
const gchar* _tmp59_;
4684
const gchar* _tmp60_;
4685
gchar* _tmp61_ = NULL;
4690
gchar* normalised_addr;
4691
const gchar* _tmp66_;
4692
FolksImFieldDetails* _tmp67_;
4693
FolksImFieldDetails* im_fd;
4694
GeeHashMultiMap* _tmp68_;
4695
const gchar* _tmp69_;
4696
FolksImFieldDetails* _tmp70_;
4698
_tmp58_ = folks_abstract_field_details_get_value ((FolksAbstractFieldDetails*) _tmp57_);
4701
_tmp61_ = folks_im_details_normalise_im_address ((const gchar*) _tmp59_, _tmp60_, &_inner_error_);
4703
if (_inner_error_ != NULL) {
4704
if (_inner_error_->domain == FOLKS_IM_DETAILS_ERROR) {
4705
goto __catch3_folks_im_details_error;
4707
_g_object_unref0 (current_im_addrs);
4709
_g_object_unref0 (email);
4710
_g_object_unref0 (_email_it);
4711
_g_object_unref0 (new_im_addresses);
4712
_g_hash_table_unref0 (im_eds_map);
4713
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);
4714
g_clear_error (&_inner_error_);
4722
normalised_addr = _tmp65_;
4723
_tmp66_ = normalised_addr;
4724
_tmp67_ = folks_im_field_details_new (_tmp66_, NULL);
4726
_tmp68_ = new_im_addresses;
4729
gee_multi_map_set ((GeeMultiMap*) _tmp68_, _tmp69_, _tmp70_);
4730
_g_object_unref0 (im_fd);
4731
_g_free0 (normalised_addr);
4734
__catch3_folks_im_details_error:
4738
const gchar* _tmp72_;
4740
_inner_error_ = NULL;
4742
_tmp72_ = _tmp71_->message;
4743
g_warning ("edsf-persona.vala:1308: Problem when trying to normalise address: %s\n", _tmp72_);
4747
if (_inner_error_ != NULL) {
4748
_g_object_unref0 (current_im_addrs);
4750
_g_object_unref0 (email);
4751
_g_object_unref0 (_email_it);
4752
_g_object_unref0 (new_im_addresses);
4753
_g_hash_table_unref0 (im_eds_map);
4754
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);
4755
g_clear_error (&_inner_error_);
4758
_g_object_unref0 (current_im_addrs);
4761
_g_object_unref0 (email);
4763
_g_object_unref0 (_email_it);
4765
_tmp73_ = new_im_addresses;
4766
_tmp74_ = self->priv->_im_addresses;
4767
_tmp75_ = folks_utils_multi_map_str_afd_equal ((GeeMultiMap*) _tmp73_, (GeeMultiMap*) _tmp74_);
4769
GeeHashMultiMap* _tmp76_;
4770
GeeHashMultiMap* _tmp77_;
4771
_tmp76_ = new_im_addresses;
4772
_tmp77_ = _g_object_ref0 (_tmp76_);
4773
_g_object_unref0 (self->priv->_im_addresses);
4774
self->priv->_im_addresses = _tmp77_;
4775
g_object_notify ((GObject*) self, "im-addresses");
4777
_g_object_unref0 (new_im_addresses);
4778
_g_hash_table_unref0 (im_eds_map);
4782
static void _edsf_persona_update_groups (EdsfPersona* self) {
4784
void* _tmp1_ = NULL;
4785
GList* category_names;
4787
GeeHashSet* new_categories;
4788
GeeLinkedList* _tmp3_;
4789
GeeLinkedList* added_categories;
4791
GeeLinkedList* _tmp13_;
4792
GeeLinkedList* removed_categories;
4793
gboolean _tmp53_ = FALSE;
4794
GeeLinkedList* _tmp54_;
4798
g_return_if_fail (self != NULL);
4799
_tmp0_ = self->priv->_contact;
4800
_tmp1_ = e_contact_get (_tmp0_, E_CONTACT_CATEGORY_LIST);
4801
category_names = (GList*) _tmp1_;
4802
_tmp2_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
4803
new_categories = _tmp2_;
4804
_tmp3_ = gee_linked_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL);
4805
added_categories = _tmp3_;
4806
_tmp4_ = category_names;
4808
GList* category_name_collection = NULL;
4809
GList* category_name_it = NULL;
4810
category_name_collection = _tmp4_;
4811
for (category_name_it = category_name_collection; category_name_it != NULL; category_name_it = category_name_it->next) {
4813
gchar* category_name = NULL;
4814
_tmp5_ = g_strdup ((const gchar*) category_name_it->data);
4815
category_name = _tmp5_;
4818
const gchar* _tmp7_;
4820
const gchar* _tmp9_;
4821
gboolean _tmp10_ = FALSE;
4822
_tmp6_ = new_categories;
4823
_tmp7_ = category_name;
4824
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp6_, _tmp7_);
4825
_tmp8_ = self->priv->_groups;
4826
_tmp9_ = category_name;
4827
_tmp10_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp8_, _tmp9_);
4829
GeeLinkedList* _tmp11_;
4830
const gchar* _tmp12_;
4831
_tmp11_ = added_categories;
4832
_tmp12_ = category_name;
4833
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, _tmp12_);
4835
_g_free0 (category_name);
4839
_tmp13_ = gee_linked_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL);
4840
removed_categories = _tmp13_;
4842
GeeHashSet* _tmp14_;
4843
GeeIterator* _tmp15_ = NULL;
4844
GeeIterator* _category_name_it;
4845
_tmp14_ = self->priv->_groups;
4846
_tmp15_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _tmp14_);
4847
_category_name_it = _tmp15_;
4849
GeeIterator* _tmp16_;
4850
gboolean _tmp17_ = FALSE;
4851
GeeIterator* _tmp18_;
4852
gpointer _tmp19_ = NULL;
4853
gchar* category_name;
4854
GeeHashSet* _tmp20_;
4855
const gchar* _tmp21_;
4856
gboolean _tmp22_ = FALSE;
4857
_tmp16_ = _category_name_it;
4858
_tmp17_ = gee_iterator_next (_tmp16_);
4862
_tmp18_ = _category_name_it;
4863
_tmp19_ = gee_iterator_get (_tmp18_);
4864
category_name = (gchar*) _tmp19_;
4865
_tmp20_ = new_categories;
4866
_tmp21_ = category_name;
4867
_tmp22_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp20_, _tmp21_);
4869
GeeLinkedList* _tmp23_;
4870
const gchar* _tmp24_;
4871
_tmp23_ = removed_categories;
4872
_tmp24_ = category_name;
4873
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp23_, _tmp24_);
4875
_g_free0 (category_name);
4877
_g_object_unref0 (_category_name_it);
4880
GeeLinkedList* _tmp25_;
4881
GeeLinkedList* _tmp26_;
4882
GeeLinkedList* _category_name_list;
4883
GeeLinkedList* _tmp27_;
4886
gint _category_name_size;
4887
gint _category_name_index;
4888
_tmp25_ = removed_categories;
4889
_tmp26_ = _g_object_ref0 (_tmp25_);
4890
_category_name_list = _tmp26_;
4891
_tmp27_ = _category_name_list;
4892
_tmp28_ = gee_collection_get_size ((GeeCollection*) _tmp27_);
4894
_category_name_size = _tmp29_;
4895
_category_name_index = -1;
4900
GeeLinkedList* _tmp33_;
4902
gpointer _tmp35_ = NULL;
4903
gchar* category_name;
4904
const gchar* _tmp36_;
4905
GeeHashSet* _tmp37_;
4906
const gchar* _tmp38_;
4907
_tmp30_ = _category_name_index;
4908
_category_name_index = _tmp30_ + 1;
4909
_tmp31_ = _category_name_index;
4910
_tmp32_ = _category_name_size;
4911
if (!(_tmp31_ < _tmp32_)) {
4914
_tmp33_ = _category_name_list;
4915
_tmp34_ = _category_name_index;
4916
_tmp35_ = gee_abstract_list_get ((GeeAbstractList*) _tmp33_, _tmp34_);
4917
category_name = (gchar*) _tmp35_;
4918
_tmp36_ = category_name;
4919
g_signal_emit_by_name ((FolksGroupDetails*) self, "group-changed", _tmp36_, FALSE);
4920
_tmp37_ = self->priv->_groups;
4921
_tmp38_ = category_name;
4922
gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp37_, _tmp38_);
4923
_g_free0 (category_name);
4925
_g_object_unref0 (_category_name_list);
4928
GeeLinkedList* _tmp39_;
4929
GeeLinkedList* _tmp40_;
4930
GeeLinkedList* _category_name_list;
4931
GeeLinkedList* _tmp41_;
4934
gint _category_name_size;
4935
gint _category_name_index;
4936
_tmp39_ = added_categories;
4937
_tmp40_ = _g_object_ref0 (_tmp39_);
4938
_category_name_list = _tmp40_;
4939
_tmp41_ = _category_name_list;
4940
_tmp42_ = gee_collection_get_size ((GeeCollection*) _tmp41_);
4942
_category_name_size = _tmp43_;
4943
_category_name_index = -1;
4948
GeeLinkedList* _tmp47_;
4950
gpointer _tmp49_ = NULL;
4951
gchar* category_name;
4952
GeeHashSet* _tmp50_;
4953
const gchar* _tmp51_;
4954
const gchar* _tmp52_;
4955
_tmp44_ = _category_name_index;
4956
_category_name_index = _tmp44_ + 1;
4957
_tmp45_ = _category_name_index;
4958
_tmp46_ = _category_name_size;
4959
if (!(_tmp45_ < _tmp46_)) {
4962
_tmp47_ = _category_name_list;
4963
_tmp48_ = _category_name_index;
4964
_tmp49_ = gee_abstract_list_get ((GeeAbstractList*) _tmp47_, _tmp48_);
4965
category_name = (gchar*) _tmp49_;
4966
_tmp50_ = self->priv->_groups;
4967
_tmp51_ = category_name;
4968
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp50_, _tmp51_);
4969
_tmp52_ = category_name;
4970
g_signal_emit_by_name ((FolksGroupDetails*) self, "group-changed", _tmp52_, TRUE);
4971
_g_free0 (category_name);
4973
_g_object_unref0 (_category_name_list);
4975
_tmp54_ = added_categories;
4976
_tmp55_ = gee_collection_get_size ((GeeCollection*) _tmp54_);
4981
GeeLinkedList* _tmp57_;
4984
_tmp57_ = removed_categories;
4985
_tmp58_ = gee_collection_get_size ((GeeCollection*) _tmp57_);
4987
_tmp53_ = _tmp59_ != 0;
4991
g_object_notify ((GObject*) self, "groups");
4993
_g_object_unref0 (removed_categories);
4994
_g_object_unref0 (added_categories);
4995
_g_object_unref0 (new_categories);
5000
* build a table of im protocols / im protocol aliases
5002
static void _g_free0_ (gpointer var) {
5003
var = (g_free (var), NULL);
5007
static gpointer _g_hash_table_ref0 (gpointer self) {
5008
return self ? g_hash_table_ref (self) : NULL;
5012
GHashTable* _edsf_persona_get_im_eds_map (void) {
5013
GHashTable* result = NULL;
5014
GHashTable* _tmp22_;
5015
GHashTable* _tmp23_;
5016
GError * _inner_error_ = NULL;
5019
_tmp0_ = edsf_persona__im_eds_map;
5020
g_static_rec_mutex_lock (&__lock_edsf_persona__im_eds_map);
5023
_tmp1_ = edsf_persona__im_eds_map;
5024
if (_tmp1_ == NULL) {
5034
GHashTable* _tmp11_;
5036
GHashTable* _tmp13_;
5038
GHashTable* _tmp15_;
5040
GHashTable* _tmp17_;
5042
GHashTable* _tmp19_;
5044
_tmp2_ = g_str_hash;
5045
_tmp3_ = g_str_equal;
5046
_tmp4_ = g_hash_table_new_full (_tmp2_, _tmp3_, _g_free0_, NULL);
5047
_g_hash_table_unref0 (edsf_persona__im_eds_map);
5048
edsf_persona__im_eds_map = _tmp4_;
5049
_tmp5_ = edsf_persona__im_eds_map;
5050
_tmp6_ = g_strdup ("aim");
5051
g_hash_table_insert (_tmp5_, _tmp6_, GINT_TO_POINTER (E_CONTACT_IM_AIM));
5052
_tmp7_ = edsf_persona__im_eds_map;
5053
_tmp8_ = g_strdup ("yahoo");
5054
g_hash_table_insert (_tmp7_, _tmp8_, GINT_TO_POINTER (E_CONTACT_IM_YAHOO));
5055
_tmp9_ = edsf_persona__im_eds_map;
5056
_tmp10_ = g_strdup ("groupwise");
5057
g_hash_table_insert (_tmp9_, _tmp10_, GINT_TO_POINTER (E_CONTACT_IM_GROUPWISE));
5058
_tmp11_ = edsf_persona__im_eds_map;
5059
_tmp12_ = g_strdup ("jabber");
5060
g_hash_table_insert (_tmp11_, _tmp12_, GINT_TO_POINTER (E_CONTACT_IM_JABBER));
5061
_tmp13_ = edsf_persona__im_eds_map;
5062
_tmp14_ = g_strdup ("msn");
5063
g_hash_table_insert (_tmp13_, _tmp14_, GINT_TO_POINTER (E_CONTACT_IM_MSN));
5064
_tmp15_ = edsf_persona__im_eds_map;
5065
_tmp16_ = g_strdup ("icq");
5066
g_hash_table_insert (_tmp15_, _tmp16_, GINT_TO_POINTER (E_CONTACT_IM_ICQ));
5067
_tmp17_ = edsf_persona__im_eds_map;
5068
_tmp18_ = g_strdup ("gadugadu");
5069
g_hash_table_insert (_tmp17_, _tmp18_, GINT_TO_POINTER (E_CONTACT_IM_GADUGADU));
5070
_tmp19_ = edsf_persona__im_eds_map;
5071
_tmp20_ = g_strdup ("skype");
5072
g_hash_table_insert (_tmp19_, _tmp20_, GINT_TO_POINTER (E_CONTACT_IM_SKYPE));
5077
GHashTable* _tmp21_;
5078
_tmp21_ = edsf_persona__im_eds_map;
5079
g_static_rec_mutex_unlock (&__lock_edsf_persona__im_eds_map);
5081
if (_inner_error_ != NULL) {
5082
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);
5083
g_clear_error (&_inner_error_);
5087
_tmp22_ = edsf_persona__im_eds_map;
5088
_tmp23_ = _g_hash_table_ref0 (_tmp22_);
5094
static void _edsf_persona_update_phones (EdsfPersona* self) {
5096
GeeHashSet* new_phone_numbers;
5098
GList* _tmp2_ = NULL;
5101
EdsfSetComparator* _tmp14_;
5102
EdsfSetComparator* comp;
5103
EdsfSetComparator* _tmp15_;
5104
GeeHashSet* _tmp16_;
5105
GeeHashSet* _tmp17_;
5106
gboolean _tmp18_ = FALSE;
5107
g_return_if_fail (self != NULL);
5108
_tmp0_ = gee_hash_set_new (FOLKS_TYPE_PHONE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
5109
new_phone_numbers = _tmp0_;
5110
_tmp1_ = self->priv->_contact;
5111
_tmp2_ = e_contact_get_attributes (_tmp1_, E_CONTACT_TEL);
5115
GList* attr_collection = NULL;
5116
GList* attr_it = NULL;
5117
attr_collection = _tmp3_;
5118
for (attr_it = attr_collection; attr_it != NULL; attr_it = attr_it->next) {
5119
EVCardAttribute* _tmp4_;
5120
EVCardAttribute* attr = NULL;
5121
_tmp4_ = __vala_EVCardAttribute_copy0 ((EVCardAttribute*) attr_it->data);
5124
EVCardAttribute* _tmp5_;
5125
gchar* _tmp6_ = NULL;
5127
FolksPhoneFieldDetails* _tmp8_;
5128
FolksPhoneFieldDetails* _tmp9_;
5129
FolksPhoneFieldDetails* phone_fd;
5130
FolksPhoneFieldDetails* _tmp10_;
5131
EVCardAttribute* _tmp11_;
5132
GeeHashSet* _tmp12_;
5133
FolksPhoneFieldDetails* _tmp13_;
5135
_tmp6_ = e_vcard_attribute_get_value (_tmp5_);
5137
_tmp8_ = folks_phone_field_details_new (_tmp7_, NULL);
5143
_edsf_persona_update_params (self, (FolksAbstractFieldDetails*) _tmp10_, _tmp11_);
5144
_tmp12_ = new_phone_numbers;
5146
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp13_);
5147
_g_object_unref0 (phone_fd);
5148
__vala_EVCardAttribute_free0 (attr);
5152
_tmp14_ = edsf_set_comparator_new (FOLKS_TYPE_PHONE_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref);
5155
_tmp16_ = new_phone_numbers;
5156
_tmp17_ = self->priv->_phone_numbers;
5157
_tmp18_ = edsf_set_comparator_equal (_tmp15_, (GeeSet*) _tmp16_, (GeeSet*) _tmp17_);
5159
GeeHashSet* _tmp19_;
5160
GeeHashSet* _tmp20_;
5161
GeeHashSet* _tmp21_;
5164
_tmp19_ = new_phone_numbers;
5165
_tmp20_ = _g_object_ref0 (_tmp19_);
5166
_g_object_unref0 (self->priv->_phone_numbers);
5167
self->priv->_phone_numbers = _tmp20_;
5168
_tmp21_ = new_phone_numbers;
5169
_tmp22_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp21_);
5171
_g_object_unref0 (self->priv->_phone_numbers_ro);
5172
self->priv->_phone_numbers_ro = _tmp23_;
5173
g_object_notify ((GObject*) self, "phone-numbers");
5175
_g_object_unref0 (comp);
5176
__g_list_free___vala_EVCardAttribute_free0_0 (attrs);
5177
_g_object_unref0 (new_phone_numbers);
5181
static FolksPostalAddress* _edsf_persona_postal_address_from_attribute (EdsfPersona* self, EVCardAttribute* attr) {
5182
FolksPostalAddress* result = NULL;
5183
EVCardAttribute* _tmp0_;
5184
GList* _tmp1_ = NULL;
5189
gchar* address_format;
5211
const gchar* _tmp53_;
5212
const gchar* _tmp54_;
5213
const gchar* _tmp55_;
5214
const gchar* _tmp56_;
5215
const gchar* _tmp57_;
5216
const gchar* _tmp58_;
5217
const gchar* _tmp59_;
5218
const gchar* _tmp60_;
5219
FolksPostalAddress* _tmp61_;
5220
g_return_val_if_fail (self != NULL, NULL);
5221
g_return_val_if_fail (attr != NULL, NULL);
5223
_tmp1_ = e_vcard_attribute_get_values (_tmp0_);
5227
_tmp3_ = g_strdup ("");
5228
address_format = _tmp3_;
5229
_tmp4_ = g_strdup ("");
5231
_tmp5_ = g_strdup ("");
5233
_tmp6_ = g_strdup ("");
5235
_tmp7_ = g_strdup ("");
5237
_tmp8_ = g_strdup ("");
5239
_tmp9_ = g_strdup ("");
5240
postal_code = _tmp9_;
5241
_tmp10_ = g_strdup ("");
5244
if (_tmp11_ != NULL) {
5246
gconstpointer _tmp13_;
5251
_tmp13_ = _tmp12_->data;
5252
_tmp14_ = g_strdup ((const gchar*) _tmp13_);
5256
_tmp16_ = _tmp15_->next;
5260
if (_tmp17_ != NULL) {
5262
gconstpointer _tmp19_;
5267
_tmp19_ = _tmp18_->data;
5268
_tmp20_ = g_strdup ((const gchar*) _tmp19_);
5269
_g_free0 (extension);
5270
extension = _tmp20_;
5272
_tmp22_ = _tmp21_->next;
5276
if (_tmp23_ != NULL) {
5278
gconstpointer _tmp25_;
5283
_tmp25_ = _tmp24_->data;
5284
_tmp26_ = g_strdup ((const gchar*) _tmp25_);
5288
_tmp28_ = _tmp27_->next;
5292
if (_tmp29_ != NULL) {
5294
gconstpointer _tmp31_;
5299
_tmp31_ = _tmp30_->data;
5300
_tmp32_ = g_strdup ((const gchar*) _tmp31_);
5301
_g_free0 (locality);
5304
_tmp34_ = _tmp33_->next;
5308
if (_tmp35_ != NULL) {
5310
gconstpointer _tmp37_;
5315
_tmp37_ = _tmp36_->data;
5316
_tmp38_ = g_strdup ((const gchar*) _tmp37_);
5320
_tmp40_ = _tmp39_->next;
5324
if (_tmp41_ != NULL) {
5326
gconstpointer _tmp43_;
5331
_tmp43_ = _tmp42_->data;
5332
_tmp44_ = g_strdup ((const gchar*) _tmp43_);
5333
_g_free0 (postal_code);
5334
postal_code = _tmp44_;
5336
_tmp46_ = _tmp45_->next;
5340
if (_tmp47_ != NULL) {
5342
gconstpointer _tmp49_;
5347
_tmp49_ = _tmp48_->data;
5348
_tmp50_ = g_strdup ((const gchar*) _tmp49_);
5352
_tmp52_ = _tmp51_->next;
5356
_tmp54_ = extension;
5360
_tmp58_ = postal_code;
5362
_tmp60_ = address_format;
5363
_tmp61_ = folks_postal_address_new (_tmp53_, _tmp54_, _tmp55_, _tmp56_, _tmp57_, _tmp58_, _tmp59_, _tmp60_, NULL);
5366
_g_free0 (postal_code);
5368
_g_free0 (locality);
5370
_g_free0 (extension);
5372
_g_free0 (address_format);
5377
static void _edsf_persona_update_addresses (EdsfPersona* self) {
5379
GeeHashSet* new_postal_addresses;
5381
GList* _tmp2_ = NULL;
5384
EdsfSetComparator* _tmp13_;
5385
EdsfSetComparator* comp;
5386
EdsfSetComparator* _tmp14_;
5387
GeeHashSet* _tmp15_;
5388
GeeHashSet* _tmp16_;
5389
gboolean _tmp17_ = FALSE;
5390
g_return_if_fail (self != NULL);
5391
_tmp0_ = gee_hash_set_new (FOLKS_TYPE_POSTAL_ADDRESS_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
5392
new_postal_addresses = _tmp0_;
5393
_tmp1_ = self->priv->_contact;
5394
_tmp2_ = e_contact_get_attributes (_tmp1_, E_CONTACT_ADDRESS);
5398
GList* attr_collection = NULL;
5399
GList* attr_it = NULL;
5400
attr_collection = _tmp3_;
5401
for (attr_it = attr_collection; attr_it != NULL; attr_it = attr_it->next) {
5402
EVCardAttribute* attr = NULL;
5403
attr = (EVCardAttribute*) attr_it->data;
5405
EVCardAttribute* _tmp4_;
5406
FolksPostalAddress* _tmp5_ = NULL;
5407
FolksPostalAddress* _tmp6_;
5408
FolksPostalAddressFieldDetails* _tmp7_;
5409
FolksPostalAddressFieldDetails* _tmp8_;
5410
FolksPostalAddressFieldDetails* pa_fd;
5411
FolksPostalAddressFieldDetails* _tmp9_;
5412
EVCardAttribute* _tmp10_;
5413
GeeHashSet* _tmp11_;
5414
FolksPostalAddressFieldDetails* _tmp12_;
5416
_tmp5_ = _edsf_persona_postal_address_from_attribute (self, _tmp4_);
5418
_tmp7_ = folks_postal_address_field_details_new (_tmp6_, NULL);
5420
_g_object_unref0 (_tmp6_);
5424
_edsf_persona_update_params (self, (FolksAbstractFieldDetails*) _tmp9_, _tmp10_);
5425
_tmp11_ = new_postal_addresses;
5427
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, _tmp12_);
5428
_g_object_unref0 (pa_fd);
5432
_tmp13_ = edsf_set_comparator_new (FOLKS_TYPE_POSTAL_ADDRESS_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref);
5435
_tmp15_ = new_postal_addresses;
5436
_tmp16_ = self->priv->_postal_addresses;
5437
_tmp17_ = edsf_set_comparator_equal (_tmp14_, (GeeSet*) _tmp15_, (GeeSet*) _tmp16_);
5439
GeeHashSet* _tmp18_;
5440
GeeHashSet* _tmp19_;
5441
GeeHashSet* _tmp20_;
5444
_tmp18_ = new_postal_addresses;
5445
_tmp19_ = _g_object_ref0 (_tmp18_);
5446
_g_object_unref0 (self->priv->_postal_addresses);
5447
self->priv->_postal_addresses = _tmp19_;
5448
_tmp20_ = new_postal_addresses;
5449
_tmp21_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp20_);
5451
_g_object_unref0 (self->priv->_postal_addresses_ro);
5452
self->priv->_postal_addresses_ro = _tmp22_;
5453
g_object_notify ((GObject*) self, "phone-numbers");
5455
g_object_notify ((GObject*) self, "postal-addresses");
5456
_g_object_unref0 (comp);
5457
__g_list_free___vala_EVCardAttribute_free0_0 (attrs);
5458
_g_object_unref0 (new_postal_addresses);
5462
static void _edsf_persona_update_local_ids (EdsfPersona* self) {
5464
GeeHashSet* new_local_ids;
5466
EVCardAttribute* _tmp2_ = NULL;
5467
EVCardAttribute* _tmp3_;
5468
EVCardAttribute* ids;
5469
EVCardAttribute* _tmp4_;
5470
GeeHashSet* _tmp11_;
5471
const gchar* _tmp12_;
5472
const gchar* _tmp13_;
5473
EdsfSetComparator* _tmp14_;
5474
EdsfSetComparator* comp;
5475
EdsfSetComparator* _tmp15_;
5476
GeeHashSet* _tmp16_;
5479
gboolean _tmp19_ = FALSE;
5480
g_return_if_fail (self != NULL);
5481
_tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
5482
new_local_ids = _tmp0_;
5483
_tmp1_ = self->priv->_contact;
5484
_tmp2_ = e_vcard_get_attribute ((EVCard*) _tmp1_, "X-FOLKS-CONTACTS-IDS");
5485
_tmp3_ = __vala_EVCardAttribute_copy0 (_tmp2_);
5488
if (_tmp4_ != NULL) {
5489
EVCardAttribute* _tmp5_;
5490
GList* _tmp6_ = NULL;
5494
_tmp6_ = e_vcard_attribute_get_values (_tmp5_);
5498
GList* local_id_collection = NULL;
5499
GList* local_id_it = NULL;
5500
local_id_collection = _tmp7_;
5501
for (local_id_it = local_id_collection; local_id_it != NULL; local_id_it = local_id_it->next) {
5503
gchar* local_id = NULL;
5504
_tmp8_ = g_strdup ((const gchar*) local_id_it->data);
5508
const gchar* _tmp10_;
5509
_tmp9_ = new_local_ids;
5511
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _tmp10_);
5512
_g_free0 (local_id);
5517
_tmp11_ = new_local_ids;
5518
_tmp12_ = folks_persona_get_iid ((FolksPersona*) self);
5520
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, _tmp13_);
5521
_tmp14_ = edsf_set_comparator_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free);
5524
_tmp16_ = new_local_ids;
5525
_tmp17_ = folks_local_id_details_get_local_ids ((FolksLocalIdDetails*) self);
5527
_tmp19_ = edsf_set_comparator_equal (_tmp15_, (GeeSet*) _tmp16_, _tmp18_);
5529
GeeHashSet* _tmp20_;
5530
GeeHashSet* _tmp21_;
5531
GeeHashSet* _tmp22_;
5534
_tmp20_ = new_local_ids;
5535
_tmp21_ = _g_object_ref0 (_tmp20_);
5536
_g_object_unref0 (self->priv->_local_ids);
5537
self->priv->_local_ids = _tmp21_;
5538
_tmp22_ = self->priv->_local_ids;
5539
_tmp23_ = gee_abstract_set_get_read_only_view ((GeeAbstractSet*) _tmp22_);
5541
_g_object_unref0 (self->priv->_local_ids_ro);
5542
self->priv->_local_ids_ro = _tmp24_;
5543
g_object_notify ((GObject*) self, "local-ids");
5545
_g_object_unref0 (comp);
5546
__vala_EVCardAttribute_free0 (ids);
5547
_g_object_unref0 (new_local_ids);
5551
void* _edsf_persona_get_property_from_contact (EContact* contact, const gchar* prop_name) {
5552
void* result = NULL;
5555
const gchar* _tmp1_;
5556
EContactField _tmp2_ = 0;
5557
void* _tmp3_ = NULL;
5559
g_return_val_if_fail (contact != NULL, NULL);
5560
g_return_val_if_fail (prop_name != NULL, NULL);
5564
_tmp2_ = e_contact_field_id (_tmp1_);
5565
_tmp3_ = e_contact_get (_tmp0_, _tmp2_);
5566
prop_value = _tmp3_;
5567
_tmp4_ = prop_value;
5573
static void* _edsf_persona_get_property (EdsfPersona* self, const gchar* prop_name) {
5574
void* result = NULL;
5576
const gchar* _tmp1_;
5577
void* _tmp2_ = NULL;
5578
g_return_val_if_fail (self != NULL, NULL);
5579
g_return_val_if_fail (prop_name != NULL, NULL);
5580
_tmp0_ = self->priv->_contact;
5582
_tmp2_ = _edsf_persona_get_property_from_contact (_tmp0_, _tmp1_);
5588
static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
5591
const gchar* _tmp1_;
5592
gchar* _tmp2_ = NULL;
5595
g_return_val_if_fail (self != NULL, 0);
5596
g_return_val_if_fail (needle != NULL, 0);
5597
_tmp0_ = start_index;
5599
_tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
5602
if (_tmp3_ != NULL) {
5605
result = (gint) (_tmp4_ - ((gchar*) self));
5614
static gchar* _edsf_persona_im_proto_from_addr (EdsfPersona* self, const gchar* addr) {
5615
gchar* result = NULL;
5616
const gchar* _tmp0_;
5618
const gchar* _tmp2_;
5620
gchar** _tmp4_ = NULL;
5622
gint tokens_length1;
5625
gint _tmp5__length1;
5627
gint _tmp6__length1;
5628
const gchar* _tmp7_;
5631
const gchar* _tmp9_;
5633
const gchar* _tmp11_;
5635
gchar** _tmp13_ = NULL;
5637
gint _tmp14__length1;
5639
gint _tmp15__length1;
5640
const gchar* _tmp16_;
5642
gboolean _tmp18_ = FALSE;
5643
gboolean _tmp19_ = FALSE;
5644
const gchar* _tmp20_;
5647
g_return_val_if_fail (self != NULL, NULL);
5648
g_return_val_if_fail (addr != NULL, NULL);
5650
_tmp1_ = string_index_of (_tmp0_, "@", 0);
5651
if (_tmp1_ == (-1)) {
5656
_tmp4_ = _tmp3_ = g_strsplit (_tmp2_, "@", 2);
5658
tokens_length1 = _vala_array_length (_tmp3_);
5659
_tokens_size_ = tokens_length1;
5661
_tmp5__length1 = tokens_length1;
5662
if (_tmp5__length1 != 2) {
5664
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5668
_tmp6__length1 = tokens_length1;
5670
_tmp8_ = g_strdup (_tmp7_);
5673
_tmp10_ = string_index_of (_tmp9_, ".", 0);
5674
if (_tmp10_ == (-1)) {
5677
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5681
_tmp13_ = _tmp12_ = g_strsplit (_tmp11_, ".", 2);
5682
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5684
tokens_length1 = _vala_array_length (_tmp12_);
5685
_tokens_size_ = tokens_length1;
5687
_tmp14__length1 = tokens_length1;
5688
if (_tmp14__length1 != 2) {
5691
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5695
_tmp15__length1 = tokens_length1;
5696
_tmp16_ = _tmp15_[0];
5697
_tmp17_ = g_strdup (_tmp16_);
5701
if (g_strcmp0 (_tmp20_, "msn") == 0) {
5704
const gchar* _tmp21_;
5706
_tmp19_ = g_strcmp0 (_tmp21_, "hotmail") == 0;
5712
const gchar* _tmp23_;
5714
_tmp18_ = g_strcmp0 (_tmp23_, "live") == 0;
5719
_tmp25_ = g_strdup ("msn");
5722
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5725
gboolean _tmp26_ = FALSE;
5726
const gchar* _tmp27_;
5729
if (g_strcmp0 (_tmp27_, "gmail") == 0) {
5732
const gchar* _tmp28_;
5734
_tmp26_ = g_strcmp0 (_tmp28_, "googlemail") == 0;
5739
_tmp30_ = g_strdup ("jabber");
5742
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5745
const gchar* _tmp31_;
5747
if (g_strcmp0 (_tmp31_, "yahoo") == 0) {
5749
_tmp32_ = g_strdup ("yahoo");
5752
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5759
tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
5764
EContact* edsf_persona_get_contact (EdsfPersona* self) {
5767
g_return_val_if_fail (self != NULL, NULL);
5768
_tmp0_ = self->priv->_contact;
5774
static void edsf_persona_set_contact (EdsfPersona* self, EContact* value) {
5777
g_return_if_fail (self != NULL);
5779
_tmp1_ = _g_object_ref0 (_tmp0_);
5780
_g_object_unref0 (self->priv->_contact);
5781
self->priv->_contact = _tmp1_;
5782
g_object_notify ((GObject *) self, "contact");
5786
static GeeMultiMap* edsf_persona_real_get_web_service_addresses (FolksWebServiceDetails* base) {
5787
GeeMultiMap* result;
5789
GeeHashMultiMap* _tmp0_;
5790
self = (EdsfPersona*) base;
5791
_tmp0_ = self->priv->_web_service_addresses;
5792
result = (GeeMultiMap*) _tmp0_;
5797
static void edsf_persona_real_set_web_service_addresses (FolksWebServiceDetails* base, GeeMultiMap* value) {
5799
GeeMultiMap* _tmp0_;
5800
self = (EdsfPersona*) base;
5802
folks_web_service_details_change_web_service_addresses ((FolksWebServiceDetails*) self, _tmp0_, NULL, NULL);
5806
static GeeSet* edsf_persona_real_get_local_ids (FolksLocalIdDetails* base) {
5810
const gchar* _tmp1_;
5811
const gchar* _tmp2_;
5812
gboolean _tmp3_ = FALSE;
5814
self = (EdsfPersona*) base;
5815
_tmp0_ = self->priv->_local_ids;
5816
_tmp1_ = folks_persona_get_iid ((FolksPersona*) self);
5818
_tmp3_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp0_, _tmp2_);
5819
if (_tmp3_ == FALSE) {
5821
const gchar* _tmp5_;
5822
const gchar* _tmp6_;
5823
_tmp4_ = self->priv->_local_ids;
5824
_tmp5_ = folks_persona_get_iid ((FolksPersona*) self);
5826
gee_abstract_collection_add ((GeeAbstractCollection*) _tmp4_, _tmp6_);
5828
_tmp7_ = self->priv->_local_ids_ro;
5834
static void edsf_persona_real_set_local_ids (FolksLocalIdDetails* base, GeeSet* value) {
5837
self = (EdsfPersona*) base;
5839
folks_local_id_details_change_local_ids ((FolksLocalIdDetails*) self, _tmp0_, NULL, NULL);
5843
static GeeSet* edsf_persona_real_get_postal_addresses (FolksPostalAddressDetails* base) {
5847
self = (EdsfPersona*) base;
5848
_tmp0_ = self->priv->_postal_addresses_ro;
5854
static void edsf_persona_real_set_postal_addresses (FolksPostalAddressDetails* base, GeeSet* value) {
5857
self = (EdsfPersona*) base;
5859
folks_postal_address_details_change_postal_addresses ((FolksPostalAddressDetails*) self, _tmp0_, NULL, NULL);
5863
static GeeSet* edsf_persona_real_get_phone_numbers (FolksPhoneDetails* base) {
5867
self = (EdsfPersona*) base;
5868
_tmp0_ = self->priv->_phone_numbers_ro;
5874
static void edsf_persona_real_set_phone_numbers (FolksPhoneDetails* base, GeeSet* value) {
5877
self = (EdsfPersona*) base;
5879
folks_phone_details_change_phone_numbers ((FolksPhoneDetails*) self, _tmp0_, NULL, NULL);
5883
static GeeSet* edsf_persona_real_get_email_addresses (FolksEmailDetails* base) {
5887
self = (EdsfPersona*) base;
5888
_tmp0_ = self->priv->_email_addresses_ro;
5894
static void edsf_persona_real_set_email_addresses (FolksEmailDetails* base, GeeSet* value) {
5897
self = (EdsfPersona*) base;
5899
folks_email_details_change_email_addresses ((FolksEmailDetails*) self, _tmp0_, NULL, NULL);
5903
static GeeSet* edsf_persona_real_get_notes (FolksNoteDetails* base) {
5907
self = (EdsfPersona*) base;
5908
_tmp0_ = self->priv->_notes_ro;
5914
static void edsf_persona_real_set_notes (FolksNoteDetails* base, GeeSet* value) {
5917
self = (EdsfPersona*) base;
5919
folks_note_details_change_notes ((FolksNoteDetails*) self, _tmp0_, NULL, NULL);
5923
static gchar** edsf_persona_real_get_linkable_properties (FolksPersona* base, int* result_length1) {
5927
gint _tmp0__length1;
5928
self = (EdsfPersona*) base;
5929
_tmp0_ = EDSF_PERSONA__linkable_properties;
5930
_tmp0__length1 = G_N_ELEMENTS (EDSF_PERSONA__linkable_properties);
5931
if (result_length1) {
5932
*result_length1 = _tmp0__length1;
5939
static gchar** edsf_persona_real_get_writeable_properties (FolksPersona* base, int* result_length1) {
5942
FolksPersonaStore* _tmp0_;
5943
FolksPersonaStore* _tmp1_;
5945
gint _tmp2__length1;
5947
gint _tmp3__length1;
5949
gint _tmp4__length1;
5950
self = (EdsfPersona*) base;
5951
_tmp0_ = folks_persona_get_store ((FolksPersona*) self);
5953
_tmp2_ = folks_persona_store_get_always_writeable_properties (_tmp1_, &_tmp2__length1);
5955
_tmp3__length1 = _tmp2__length1;
5957
_tmp4__length1 = _tmp3__length1;
5958
if (result_length1) {
5959
*result_length1 = _tmp4__length1;
5966
static GLoadableIcon* edsf_persona_real_get_avatar (FolksAvatarDetails* base) {
5967
GLoadableIcon* result;
5969
GLoadableIcon* _tmp0_;
5970
self = (EdsfPersona*) base;
5971
_tmp0_ = self->priv->_avatar;
5977
static void edsf_persona_real_set_avatar (FolksAvatarDetails* base, GLoadableIcon* value) {
5979
GLoadableIcon* _tmp0_;
5980
self = (EdsfPersona*) base;
5982
folks_avatar_details_change_avatar ((FolksAvatarDetails*) self, _tmp0_, NULL, NULL);
5986
static FolksStructuredName* edsf_persona_real_get_structured_name (FolksNameDetails* base) {
5987
FolksStructuredName* result;
5989
FolksStructuredName* _tmp0_;
5990
self = (EdsfPersona*) base;
5991
_tmp0_ = self->priv->_structured_name;
5997
static void edsf_persona_real_set_structured_name (FolksNameDetails* base, FolksStructuredName* value) {
5999
FolksStructuredName* _tmp0_;
6000
self = (EdsfPersona*) base;
6002
folks_name_details_change_structured_name ((FolksNameDetails*) self, _tmp0_, NULL, NULL);
6006
const gchar* edsf_persona_get_contact_id (EdsfPersona* self) {
6007
const gchar* result;
6008
const gchar* _tmp0_;
6009
g_return_val_if_fail (self != NULL, NULL);
6010
_tmp0_ = self->priv->_contact_id;
6016
static void edsf_persona_set_contact_id (EdsfPersona* self, const gchar* value) {
6017
const gchar* _tmp0_;
6019
g_return_if_fail (self != NULL);
6021
_tmp1_ = g_strdup (_tmp0_);
6022
_g_free0 (self->priv->_contact_id);
6023
self->priv->_contact_id = _tmp1_;
6024
g_object_notify ((GObject *) self, "contact-id");
6028
static const gchar* edsf_persona_real_get_full_name (FolksNameDetails* base) {
6029
const gchar* result;
6031
const gchar* _tmp0_;
6032
self = (EdsfPersona*) base;
6033
_tmp0_ = self->priv->_full_name;
6039
static void edsf_persona_real_set_full_name (FolksNameDetails* base, const gchar* value) {
6041
const gchar* _tmp0_;
6042
self = (EdsfPersona*) base;
6044
folks_name_details_change_full_name ((FolksNameDetails*) self, _tmp0_, NULL, NULL);
6048
static const gchar* edsf_persona_real_get_nickname (FolksNameDetails* base) {
6049
const gchar* result;
6051
const gchar* _tmp0_;
6052
self = (EdsfPersona*) base;
6053
_tmp0_ = self->priv->_nickname;
6059
static void edsf_persona_real_set_nickname (FolksNameDetails* base, const gchar* value) {
6061
const gchar* _tmp0_;
6062
self = (EdsfPersona*) base;
6064
folks_name_details_change_nickname ((FolksNameDetails*) self, _tmp0_, NULL, NULL);
6068
static FolksGender edsf_persona_real_get_gender (FolksGenderDetails* base) {
6072
self = (EdsfPersona*) base;
6073
_tmp0_ = self->priv->_gender;
6079
static void edsf_persona_real_set_gender (FolksGenderDetails* base, FolksGender value) {
6082
self = (EdsfPersona*) base;
6084
folks_gender_details_change_gender ((FolksGenderDetails*) self, _tmp0_, NULL, NULL);
6088
static GeeSet* edsf_persona_real_get_urls (FolksUrlDetails* base) {
6092
self = (EdsfPersona*) base;
6093
_tmp0_ = self->priv->_urls_ro;
6099
static void edsf_persona_real_set_urls (FolksUrlDetails* base, GeeSet* value) {
6102
self = (EdsfPersona*) base;
6104
folks_url_details_change_urls ((FolksUrlDetails*) self, _tmp0_, NULL, NULL);
6108
static GeeMultiMap* edsf_persona_real_get_im_addresses (FolksImDetails* base) {
6109
GeeMultiMap* result;
6111
GeeHashMultiMap* _tmp0_;
6112
self = (EdsfPersona*) base;
6113
_tmp0_ = self->priv->_im_addresses;
6114
result = (GeeMultiMap*) _tmp0_;
6119
static void edsf_persona_real_set_im_addresses (FolksImDetails* base, GeeMultiMap* value) {
6121
GeeMultiMap* _tmp0_;
6122
self = (EdsfPersona*) base;
6124
folks_im_details_change_im_addresses ((FolksImDetails*) self, _tmp0_, NULL, NULL);
6128
static GeeSet* edsf_persona_real_get_groups (FolksGroupDetails* base) {
6132
self = (EdsfPersona*) base;
6133
_tmp0_ = self->priv->_groups_ro;
6139
static void edsf_persona_real_set_groups (FolksGroupDetails* base, GeeSet* value) {
6142
self = (EdsfPersona*) base;
6144
folks_group_details_change_groups ((FolksGroupDetails*) self, _tmp0_, NULL, NULL);
6148
static const gchar* edsf_persona_real_get_calendar_event_id (FolksBirthdayDetails* base) {
6149
const gchar* result;
6151
self = (EdsfPersona*) base;
6157
static void edsf_persona_real_set_calendar_event_id (FolksBirthdayDetails* base, const gchar* value) {
6159
const gchar* _tmp0_;
6160
self = (EdsfPersona*) base;
6162
folks_birthday_details_change_calendar_event_id ((FolksBirthdayDetails*) self, _tmp0_, NULL, NULL);
6166
static GDateTime* edsf_persona_real_get_birthday (FolksBirthdayDetails* base) {
6170
self = (EdsfPersona*) base;
6171
_tmp0_ = self->priv->_birthday;
6177
static void edsf_persona_real_set_birthday (FolksBirthdayDetails* base, GDateTime* value) {
6180
self = (EdsfPersona*) base;
6182
folks_birthday_details_change_birthday ((FolksBirthdayDetails*) self, _tmp0_, NULL, NULL);
6186
static GeeSet* edsf_persona_real_get_roles (FolksRoleDetails* base) {
6190
self = (EdsfPersona*) base;
6191
_tmp0_ = self->priv->_roles_ro;
6197
static void edsf_persona_real_set_roles (FolksRoleDetails* base, GeeSet* value) {
6200
self = (EdsfPersona*) base;
6202
folks_role_details_change_roles ((FolksRoleDetails*) self, _tmp0_, NULL, NULL);
6206
static void edsf_persona_url_type_mapping_copy (const EdsfPersonaUrlTypeMapping* self, EdsfPersonaUrlTypeMapping* dest) {
6207
const gchar* _tmp0_;
6208
const gchar* _tmp1_;
6209
const gchar* _tmp2_;
6210
const gchar* _tmp3_;
6211
_tmp0_ = (*self).vcard_field_name;
6212
_tmp1_ = g_strdup (_tmp0_);
6213
_g_free0 ((*dest).vcard_field_name);
6214
(*dest).vcard_field_name = _tmp1_;
6215
_tmp2_ = (*self).folks_type;
6216
_tmp3_ = g_strdup (_tmp2_);
6217
_g_free0 ((*dest).folks_type);
6218
(*dest).folks_type = _tmp3_;
6222
static void edsf_persona_url_type_mapping_destroy (EdsfPersonaUrlTypeMapping* self) {
6223
_g_free0 ((*self).vcard_field_name);
6224
_g_free0 ((*self).folks_type);
6228
static EdsfPersonaUrlTypeMapping* edsf_persona_url_type_mapping_dup (const EdsfPersonaUrlTypeMapping* self) {
6229
EdsfPersonaUrlTypeMapping* dup;
6230
dup = g_new0 (EdsfPersonaUrlTypeMapping, 1);
6231
edsf_persona_url_type_mapping_copy (self, dup);
6236
static void edsf_persona_url_type_mapping_free (EdsfPersonaUrlTypeMapping* self) {
6237
edsf_persona_url_type_mapping_destroy (self);
6242
static GType edsf_persona_url_type_mapping_get_type (void) {
6243
static volatile gsize edsf_persona_url_type_mapping_type_id__volatile = 0;
6244
if (g_once_init_enter (&edsf_persona_url_type_mapping_type_id__volatile)) {
6245
GType edsf_persona_url_type_mapping_type_id;
6246
edsf_persona_url_type_mapping_type_id = g_boxed_type_register_static ("EdsfPersonaUrlTypeMapping", (GBoxedCopyFunc) edsf_persona_url_type_mapping_dup, (GBoxedFreeFunc) edsf_persona_url_type_mapping_free);
6247
g_once_init_leave (&edsf_persona_url_type_mapping_type_id__volatile, edsf_persona_url_type_mapping_type_id);
6249
return edsf_persona_url_type_mapping_type_id__volatile;
6253
static void edsf_persona_class_init (EdsfPersonaClass * klass) {
6255
edsf_persona_parent_class = g_type_class_peek_parent (klass);
6256
g_type_class_add_private (klass, sizeof (EdsfPersonaPrivate));
6257
FOLKS_PERSONA_CLASS (klass)->linkable_property_to_links = edsf_persona_real_linkable_property_to_links;
6258
FOLKS_PERSONA_CLASS (klass)->get_linkable_properties = edsf_persona_real_get_linkable_properties;
6259
FOLKS_PERSONA_CLASS (klass)->get_writeable_properties = edsf_persona_real_get_writeable_properties;
6260
G_OBJECT_CLASS (klass)->get_property = _vala_edsf_persona_get_property;
6261
G_OBJECT_CLASS (klass)->set_property = _vala_edsf_persona_set_property;
6262
G_OBJECT_CLASS (klass)->finalize = edsf_persona_finalize;
6264
* The e-d-s contact represented by this Persona
6266
g_object_class_install_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_CONTACT, g_param_spec_object ("contact", "contact", "contact", e_contact_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
6270
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_WEB_SERVICE_ADDRESSES, "web-service-addresses");
6272
* IDs used to link {@link Edsf.Persona}s.
6274
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_LOCAL_IDS, "local-ids");
6276
* The postal addresses of the contact.
6278
* A list of postal addresses associated to the contact.
6282
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_POSTAL_ADDRESSES, "postal-addresses");
6288
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_PHONE_NUMBERS, "phone-numbers");
6294
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_EMAIL_ADDRESSES, "email-addresses");
6300
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_NOTES, "notes");
6306
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_LINKABLE_PROPERTIES, "linkable-properties");
6312
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_WRITEABLE_PROPERTIES, "writeable-properties");
6314
* An avatar for the Persona.
6316
* See {@link Folks.AvatarDetails.avatar}.
6320
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_AVATAR, "avatar");
6326
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_STRUCTURED_NAME, "structured-name");
6328
* The e-d-s contact uid
6332
g_object_class_install_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_CONTACT_ID, g_param_spec_string ("contact-id", "contact-id", "contact-id", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
6338
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_FULL_NAME, "full-name");
6344
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_NICKNAME, "nickname");
6350
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_GENDER, "gender");
6356
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_URLS, "urls");
6362
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_IM_ADDRESSES, "im-addresses");
6368
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_GROUPS, "groups");
6372
* e-d-s has no equivalent field, so this is unsupported.
6376
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_CALENDAR_EVENT_ID, "calendar-event-id");
6382
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_BIRTHDAY, "birthday");
6388
g_object_class_override_property (G_OBJECT_CLASS (klass), EDSF_PERSONA_ROLES, "roles");
6389
g_static_rec_mutex_init (&__lock_edsf_persona__im_eds_map);
6390
_tmp0_ = g_time_zone_new_local ();
6391
edsf_persona__local_time_zone = _tmp0_;
6395
static void edsf_persona_folks_avatar_details_interface_init (FolksAvatarDetailsIface * iface) {
6396
edsf_persona_folks_avatar_details_parent_iface = g_type_interface_peek_parent (iface);
6397
iface->change_avatar = (void (*)(FolksAvatarDetails*, GLoadableIcon*, GError**)) edsf_persona_real_change_avatar;
6398
iface->change_avatar_finish = edsf_persona_real_change_avatar_finish;
6399
iface->get_avatar = edsf_persona_real_get_avatar;
6400
iface->set_avatar = edsf_persona_real_set_avatar;
6404
static void edsf_persona_folks_birthday_details_interface_init (FolksBirthdayDetailsIface * iface) {
6405
edsf_persona_folks_birthday_details_parent_iface = g_type_interface_peek_parent (iface);
6406
iface->change_birthday = (void (*)(FolksBirthdayDetails*, GDateTime*, GError**)) edsf_persona_real_change_birthday;
6407
iface->change_birthday_finish = edsf_persona_real_change_birthday_finish;
6408
iface->get_calendar_event_id = edsf_persona_real_get_calendar_event_id;
6409
iface->set_calendar_event_id = edsf_persona_real_set_calendar_event_id;
6410
iface->get_birthday = edsf_persona_real_get_birthday;
6411
iface->set_birthday = edsf_persona_real_set_birthday;
6415
static void edsf_persona_folks_email_details_interface_init (FolksEmailDetailsIface * iface) {
6416
edsf_persona_folks_email_details_parent_iface = g_type_interface_peek_parent (iface);
6417
iface->change_email_addresses = (void (*)(FolksEmailDetails*, GeeSet*, GError**)) edsf_persona_real_change_email_addresses;
6418
iface->change_email_addresses_finish = edsf_persona_real_change_email_addresses_finish;
6419
iface->get_email_addresses = edsf_persona_real_get_email_addresses;
6420
iface->set_email_addresses = edsf_persona_real_set_email_addresses;
6424
static void edsf_persona_folks_gender_details_interface_init (FolksGenderDetailsIface * iface) {
6425
edsf_persona_folks_gender_details_parent_iface = g_type_interface_peek_parent (iface);
6426
iface->change_gender = (void (*)(FolksGenderDetails*, FolksGender, GError**)) edsf_persona_real_change_gender;
6427
iface->change_gender_finish = edsf_persona_real_change_gender_finish;
6428
iface->get_gender = edsf_persona_real_get_gender;
6429
iface->set_gender = edsf_persona_real_set_gender;
6433
static void edsf_persona_folks_group_details_interface_init (FolksGroupDetailsIface * iface) {
6434
edsf_persona_folks_group_details_parent_iface = g_type_interface_peek_parent (iface);
6435
iface->change_group = (void (*)(FolksGroupDetails*, const gchar*, gboolean, GError**)) edsf_persona_real_change_group;
6436
iface->change_group_finish = edsf_persona_real_change_group_finish;
6437
iface->change_groups = (void (*)(FolksGroupDetails*, GeeSet*, GError**)) edsf_persona_real_change_groups;
6438
iface->change_groups_finish = edsf_persona_real_change_groups_finish;
6439
iface->get_groups = edsf_persona_real_get_groups;
6440
iface->set_groups = edsf_persona_real_set_groups;
6444
static void edsf_persona_folks_im_details_interface_init (FolksImDetailsIface * iface) {
6445
edsf_persona_folks_im_details_parent_iface = g_type_interface_peek_parent (iface);
6446
iface->change_im_addresses = (void (*)(FolksImDetails*, GeeMultiMap*, GError**)) edsf_persona_real_change_im_addresses;
6447
iface->change_im_addresses_finish = edsf_persona_real_change_im_addresses_finish;
6448
iface->get_im_addresses = edsf_persona_real_get_im_addresses;
6449
iface->set_im_addresses = edsf_persona_real_set_im_addresses;
6453
static void edsf_persona_folks_local_id_details_interface_init (FolksLocalIdDetailsIface * iface) {
6454
edsf_persona_folks_local_id_details_parent_iface = g_type_interface_peek_parent (iface);
6455
iface->change_local_ids = (void (*)(FolksLocalIdDetails*, GeeSet*, GError**)) edsf_persona_real_change_local_ids;
6456
iface->change_local_ids_finish = edsf_persona_real_change_local_ids_finish;
6457
iface->get_local_ids = edsf_persona_real_get_local_ids;
6458
iface->set_local_ids = edsf_persona_real_set_local_ids;
6462
static void edsf_persona_folks_name_details_interface_init (FolksNameDetailsIface * iface) {
6463
edsf_persona_folks_name_details_parent_iface = g_type_interface_peek_parent (iface);
6464
iface->change_structured_name = (void (*)(FolksNameDetails*, FolksStructuredName*, GError**)) edsf_persona_real_change_structured_name;
6465
iface->change_structured_name_finish = edsf_persona_real_change_structured_name_finish;
6466
iface->change_full_name = (void (*)(FolksNameDetails*, const gchar*, GError**)) edsf_persona_real_change_full_name;
6467
iface->change_full_name_finish = edsf_persona_real_change_full_name_finish;
6468
iface->change_nickname = (void (*)(FolksNameDetails*, const gchar*, GError**)) edsf_persona_real_change_nickname;
6469
iface->change_nickname_finish = edsf_persona_real_change_nickname_finish;
6470
iface->get_structured_name = edsf_persona_real_get_structured_name;
6471
iface->set_structured_name = edsf_persona_real_set_structured_name;
6472
iface->get_full_name = edsf_persona_real_get_full_name;
6473
iface->set_full_name = edsf_persona_real_set_full_name;
6474
iface->get_nickname = edsf_persona_real_get_nickname;
6475
iface->set_nickname = edsf_persona_real_set_nickname;
6479
static void edsf_persona_folks_note_details_interface_init (FolksNoteDetailsIface * iface) {
6480
edsf_persona_folks_note_details_parent_iface = g_type_interface_peek_parent (iface);
6481
iface->change_notes = (void (*)(FolksNoteDetails*, GeeSet*, GError**)) edsf_persona_real_change_notes;
6482
iface->change_notes_finish = edsf_persona_real_change_notes_finish;
6483
iface->get_notes = edsf_persona_real_get_notes;
6484
iface->set_notes = edsf_persona_real_set_notes;
6488
static void edsf_persona_folks_phone_details_interface_init (FolksPhoneDetailsIface * iface) {
6489
edsf_persona_folks_phone_details_parent_iface = g_type_interface_peek_parent (iface);
6490
iface->change_phone_numbers = (void (*)(FolksPhoneDetails*, GeeSet*, GError**)) edsf_persona_real_change_phone_numbers;
6491
iface->change_phone_numbers_finish = edsf_persona_real_change_phone_numbers_finish;
6492
iface->get_phone_numbers = edsf_persona_real_get_phone_numbers;
6493
iface->set_phone_numbers = edsf_persona_real_set_phone_numbers;
6497
static void edsf_persona_folks_role_details_interface_init (FolksRoleDetailsIface * iface) {
6498
edsf_persona_folks_role_details_parent_iface = g_type_interface_peek_parent (iface);
6499
iface->change_roles = (void (*)(FolksRoleDetails*, GeeSet*, GError**)) edsf_persona_real_change_roles;
6500
iface->change_roles_finish = edsf_persona_real_change_roles_finish;
6501
iface->get_roles = edsf_persona_real_get_roles;
6502
iface->set_roles = edsf_persona_real_set_roles;
6506
static void edsf_persona_folks_url_details_interface_init (FolksUrlDetailsIface * iface) {
6507
edsf_persona_folks_url_details_parent_iface = g_type_interface_peek_parent (iface);
6508
iface->change_urls = (void (*)(FolksUrlDetails*, GeeSet*, GError**)) edsf_persona_real_change_urls;
6509
iface->change_urls_finish = edsf_persona_real_change_urls_finish;
6510
iface->get_urls = edsf_persona_real_get_urls;
6511
iface->set_urls = edsf_persona_real_set_urls;
6515
static void edsf_persona_folks_postal_address_details_interface_init (FolksPostalAddressDetailsIface * iface) {
6516
edsf_persona_folks_postal_address_details_parent_iface = g_type_interface_peek_parent (iface);
6517
iface->change_postal_addresses = (void (*)(FolksPostalAddressDetails*, GeeSet*, GError**)) edsf_persona_real_change_postal_addresses;
6518
iface->change_postal_addresses_finish = edsf_persona_real_change_postal_addresses_finish;
6519
iface->get_postal_addresses = edsf_persona_real_get_postal_addresses;
6520
iface->set_postal_addresses = edsf_persona_real_set_postal_addresses;
6524
static void edsf_persona_folks_web_service_details_interface_init (FolksWebServiceDetailsIface * iface) {
6525
edsf_persona_folks_web_service_details_parent_iface = g_type_interface_peek_parent (iface);
6526
iface->change_web_service_addresses = (void (*)(FolksWebServiceDetails*, GeeMultiMap*, GError**)) edsf_persona_real_change_web_service_addresses;
6527
iface->change_web_service_addresses_finish = edsf_persona_real_change_web_service_addresses_finish;
6528
iface->get_web_service_addresses = edsf_persona_real_get_web_service_addresses;
6529
iface->set_web_service_addresses = edsf_persona_real_set_web_service_addresses;
6533
static void edsf_persona_instance_init (EdsfPersona * self) {
6536
GeeHashMultiMap* _tmp2_;
6537
self->priv = EDSF_PERSONA_GET_PRIVATE (self);
6538
self->priv->_avatar = NULL;
6539
self->priv->_structured_name = NULL;
6540
_tmp0_ = g_strdup ("");
6541
self->priv->_full_name = _tmp0_;
6542
_tmp1_ = g_strdup ("");
6543
self->priv->_nickname = _tmp1_;
6544
_tmp2_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_TYPE_IM_FIELD_DETAILS, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, (GHashFunc) folks_abstract_field_details_hash, (GEqualFunc) folks_abstract_field_details_equal);
6545
self->priv->_im_addresses = _tmp2_;
6546
self->priv->_birthday = NULL;
6550
static void edsf_persona_finalize (GObject* obj) {
6552
const gchar* _tmp0_;
6553
const gchar* _tmp1_;
6554
self = EDSF_PERSONA (obj);
6555
_tmp0_ = folks_persona_get_uid ((FolksPersona*) self);
6557
g_debug ("edsf-persona.vala:769: Destroying Edsf.Persona '%s': %p", _tmp1_, self);
6558
_g_object_unref0 (self->priv->_phone_numbers);
6559
_g_object_unref0 (self->priv->_phone_numbers_ro);
6560
_g_object_unref0 (self->priv->_email_addresses);
6561
_g_object_unref0 (self->priv->_email_addresses_ro);
6562
_g_object_unref0 (self->priv->_notes);
6563
_g_object_unref0 (self->priv->_notes_ro);
6564
_g_object_unref0 (self->priv->_postal_addresses);
6565
_g_object_unref0 (self->priv->_postal_addresses_ro);
6566
_g_object_unref0 (self->priv->_local_ids);
6567
_g_object_unref0 (self->priv->_local_ids_ro);
6568
_g_object_unref0 (self->priv->_web_service_addresses);
6569
_g_object_unref0 (self->priv->_contact);
6570
_g_object_unref0 (self->priv->_avatar);
6571
_g_object_unref0 (self->priv->_structured_name);
6572
_g_free0 (self->priv->_contact_id);
6573
_g_free0 (self->priv->_full_name);
6574
_g_free0 (self->priv->_nickname);
6575
_g_object_unref0 (self->priv->_urls);
6576
_g_object_unref0 (self->priv->_urls_ro);
6577
_g_object_unref0 (self->priv->_im_addresses);
6578
_g_object_unref0 (self->priv->_groups);
6579
_g_object_unref0 (self->priv->_groups_ro);
6580
_g_date_time_unref0 (self->priv->_birthday);
6581
_g_object_unref0 (self->priv->_roles);
6582
_g_object_unref0 (self->priv->_roles_ro);
6583
G_OBJECT_CLASS (edsf_persona_parent_class)->finalize (obj);
6588
* A persona subclass which represents a single EDS contact.
6590
GType edsf_persona_get_type (void) {
6591
static volatile gsize edsf_persona_type_id__volatile = 0;
6592
if (g_once_init_enter (&edsf_persona_type_id__volatile)) {
6593
static const GTypeInfo g_define_type_info = { sizeof (EdsfPersonaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edsf_persona_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EdsfPersona), 0, (GInstanceInitFunc) edsf_persona_instance_init, NULL };
6594
static const GInterfaceInfo folks_avatar_details_info = { (GInterfaceInitFunc) edsf_persona_folks_avatar_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6595
static const GInterfaceInfo folks_birthday_details_info = { (GInterfaceInitFunc) edsf_persona_folks_birthday_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6596
static const GInterfaceInfo folks_email_details_info = { (GInterfaceInitFunc) edsf_persona_folks_email_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6597
static const GInterfaceInfo folks_gender_details_info = { (GInterfaceInitFunc) edsf_persona_folks_gender_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6598
static const GInterfaceInfo folks_group_details_info = { (GInterfaceInitFunc) edsf_persona_folks_group_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6599
static const GInterfaceInfo folks_im_details_info = { (GInterfaceInitFunc) edsf_persona_folks_im_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6600
static const GInterfaceInfo folks_local_id_details_info = { (GInterfaceInitFunc) edsf_persona_folks_local_id_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6601
static const GInterfaceInfo folks_name_details_info = { (GInterfaceInitFunc) edsf_persona_folks_name_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6602
static const GInterfaceInfo folks_note_details_info = { (GInterfaceInitFunc) edsf_persona_folks_note_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6603
static const GInterfaceInfo folks_phone_details_info = { (GInterfaceInitFunc) edsf_persona_folks_phone_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6604
static const GInterfaceInfo folks_role_details_info = { (GInterfaceInitFunc) edsf_persona_folks_role_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6605
static const GInterfaceInfo folks_url_details_info = { (GInterfaceInitFunc) edsf_persona_folks_url_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6606
static const GInterfaceInfo folks_postal_address_details_info = { (GInterfaceInitFunc) edsf_persona_folks_postal_address_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6607
static const GInterfaceInfo folks_web_service_details_info = { (GInterfaceInitFunc) edsf_persona_folks_web_service_details_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
6608
GType edsf_persona_type_id;
6609
edsf_persona_type_id = g_type_register_static (FOLKS_TYPE_PERSONA, "EdsfPersona", &g_define_type_info, 0);
6610
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_AVATAR_DETAILS, &folks_avatar_details_info);
6611
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_BIRTHDAY_DETAILS, &folks_birthday_details_info);
6612
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_EMAIL_DETAILS, &folks_email_details_info);
6613
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_GENDER_DETAILS, &folks_gender_details_info);
6614
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_GROUP_DETAILS, &folks_group_details_info);
6615
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_IM_DETAILS, &folks_im_details_info);
6616
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_LOCAL_ID_DETAILS, &folks_local_id_details_info);
6617
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_NAME_DETAILS, &folks_name_details_info);
6618
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_NOTE_DETAILS, &folks_note_details_info);
6619
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_PHONE_DETAILS, &folks_phone_details_info);
6620
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_ROLE_DETAILS, &folks_role_details_info);
6621
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_URL_DETAILS, &folks_url_details_info);
6622
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_POSTAL_ADDRESS_DETAILS, &folks_postal_address_details_info);
6623
g_type_add_interface_static (edsf_persona_type_id, FOLKS_TYPE_WEB_SERVICE_DETAILS, &folks_web_service_details_info);
6624
g_once_init_leave (&edsf_persona_type_id__volatile, edsf_persona_type_id);
6626
return edsf_persona_type_id__volatile;
6630
static void _vala_edsf_persona_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
6632
self = EDSF_PERSONA (object);
6633
switch (property_id) {
6634
case EDSF_PERSONA_CONTACT:
6635
g_value_set_object (value, edsf_persona_get_contact (self));
6637
case EDSF_PERSONA_WEB_SERVICE_ADDRESSES:
6638
g_value_set_object (value, folks_web_service_details_get_web_service_addresses ((FolksWebServiceDetails*) self));
6640
case EDSF_PERSONA_LOCAL_IDS:
6641
g_value_set_object (value, folks_local_id_details_get_local_ids ((FolksLocalIdDetails*) self));
6643
case EDSF_PERSONA_POSTAL_ADDRESSES:
6644
g_value_set_object (value, folks_postal_address_details_get_postal_addresses ((FolksPostalAddressDetails*) self));
6646
case EDSF_PERSONA_PHONE_NUMBERS:
6647
g_value_set_object (value, folks_phone_details_get_phone_numbers ((FolksPhoneDetails*) self));
6649
case EDSF_PERSONA_EMAIL_ADDRESSES:
6650
g_value_set_object (value, folks_email_details_get_email_addresses ((FolksEmailDetails*) self));
6652
case EDSF_PERSONA_NOTES:
6653
g_value_set_object (value, folks_note_details_get_notes ((FolksNoteDetails*) self));
6655
case EDSF_PERSONA_LINKABLE_PROPERTIES:
6658
g_value_set_boxed (value, folks_persona_get_linkable_properties ((FolksPersona*) self, &length));
6661
case EDSF_PERSONA_WRITEABLE_PROPERTIES:
6664
g_value_set_boxed (value, folks_persona_get_writeable_properties ((FolksPersona*) self, &length));
6667
case EDSF_PERSONA_AVATAR:
6668
g_value_set_object (value, folks_avatar_details_get_avatar ((FolksAvatarDetails*) self));
6670
case EDSF_PERSONA_STRUCTURED_NAME:
6671
g_value_set_object (value, folks_name_details_get_structured_name ((FolksNameDetails*) self));
6673
case EDSF_PERSONA_CONTACT_ID:
6674
g_value_set_string (value, edsf_persona_get_contact_id (self));
6676
case EDSF_PERSONA_FULL_NAME:
6677
g_value_set_string (value, folks_name_details_get_full_name ((FolksNameDetails*) self));
6679
case EDSF_PERSONA_NICKNAME:
6680
g_value_set_string (value, folks_name_details_get_nickname ((FolksNameDetails*) self));
6682
case EDSF_PERSONA_GENDER:
6683
g_value_set_enum (value, folks_gender_details_get_gender ((FolksGenderDetails*) self));
6685
case EDSF_PERSONA_URLS:
6686
g_value_set_object (value, folks_url_details_get_urls ((FolksUrlDetails*) self));
6688
case EDSF_PERSONA_IM_ADDRESSES:
6689
g_value_set_object (value, folks_im_details_get_im_addresses ((FolksImDetails*) self));
6691
case EDSF_PERSONA_GROUPS:
6692
g_value_set_object (value, folks_group_details_get_groups ((FolksGroupDetails*) self));
6694
case EDSF_PERSONA_CALENDAR_EVENT_ID:
6695
g_value_set_string (value, folks_birthday_details_get_calendar_event_id ((FolksBirthdayDetails*) self));
6697
case EDSF_PERSONA_BIRTHDAY:
6698
g_value_set_boxed (value, folks_birthday_details_get_birthday ((FolksBirthdayDetails*) self));
6700
case EDSF_PERSONA_ROLES:
6701
g_value_set_object (value, folks_role_details_get_roles ((FolksRoleDetails*) self));
6704
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
6710
static void _vala_edsf_persona_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
6712
self = EDSF_PERSONA (object);
6713
switch (property_id) {
6714
case EDSF_PERSONA_CONTACT:
6715
edsf_persona_set_contact (self, g_value_get_object (value));
6717
case EDSF_PERSONA_WEB_SERVICE_ADDRESSES:
6718
folks_web_service_details_set_web_service_addresses ((FolksWebServiceDetails*) self, g_value_get_object (value));
6720
case EDSF_PERSONA_LOCAL_IDS:
6721
folks_local_id_details_set_local_ids ((FolksLocalIdDetails*) self, g_value_get_object (value));
6723
case EDSF_PERSONA_POSTAL_ADDRESSES:
6724
folks_postal_address_details_set_postal_addresses ((FolksPostalAddressDetails*) self, g_value_get_object (value));
6726
case EDSF_PERSONA_PHONE_NUMBERS:
6727
folks_phone_details_set_phone_numbers ((FolksPhoneDetails*) self, g_value_get_object (value));
6729
case EDSF_PERSONA_EMAIL_ADDRESSES:
6730
folks_email_details_set_email_addresses ((FolksEmailDetails*) self, g_value_get_object (value));
6732
case EDSF_PERSONA_NOTES:
6733
folks_note_details_set_notes ((FolksNoteDetails*) self, g_value_get_object (value));
6735
case EDSF_PERSONA_AVATAR:
6736
folks_avatar_details_set_avatar ((FolksAvatarDetails*) self, g_value_get_object (value));
6738
case EDSF_PERSONA_STRUCTURED_NAME:
6739
folks_name_details_set_structured_name ((FolksNameDetails*) self, g_value_get_object (value));
6741
case EDSF_PERSONA_CONTACT_ID:
6742
edsf_persona_set_contact_id (self, g_value_get_string (value));
6744
case EDSF_PERSONA_FULL_NAME:
6745
folks_name_details_set_full_name ((FolksNameDetails*) self, g_value_get_string (value));
6747
case EDSF_PERSONA_NICKNAME:
6748
folks_name_details_set_nickname ((FolksNameDetails*) self, g_value_get_string (value));
6750
case EDSF_PERSONA_GENDER:
6751
folks_gender_details_set_gender ((FolksGenderDetails*) self, g_value_get_enum (value));
6753
case EDSF_PERSONA_URLS:
6754
folks_url_details_set_urls ((FolksUrlDetails*) self, g_value_get_object (value));
6756
case EDSF_PERSONA_IM_ADDRESSES:
6757
folks_im_details_set_im_addresses ((FolksImDetails*) self, g_value_get_object (value));
6759
case EDSF_PERSONA_GROUPS:
6760
folks_group_details_set_groups ((FolksGroupDetails*) self, g_value_get_object (value));
6762
case EDSF_PERSONA_CALENDAR_EVENT_ID:
6763
folks_birthday_details_set_calendar_event_id ((FolksBirthdayDetails*) self, g_value_get_string (value));
6765
case EDSF_PERSONA_BIRTHDAY:
6766
folks_birthday_details_set_birthday ((FolksBirthdayDetails*) self, g_value_get_boxed (value));
6768
case EDSF_PERSONA_ROLES:
6769
folks_role_details_set_roles ((FolksRoleDetails*) self, g_value_get_object (value));
6772
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
6778
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
6779
if ((array != NULL) && (destroy_func != NULL)) {
6781
for (i = 0; i < array_length; i = i + 1) {
6782
if (((gpointer*) array)[i] != NULL) {
6783
destroy_func (((gpointer*) array)[i]);
6790
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
6791
_vala_array_destroy (array, array_length, destroy_func);
6796
static gint _vala_array_length (gpointer array) {
6800
while (((gpointer*) array)[length]) {