libpurple/purplecontactinfo.c

Tue, 19 Sep 2023 01:33:57 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 19 Sep 2023 01:33:57 -0500
changeset 42324
3c66b48c2fb7
parent 42312
7d6f0b8b6e77
child 42581
73eda937c387
permissions
-rw-r--r--

Add a secondary id property to PurpleContactInfo

This is meant to give the protocol to add a single additional identifier to a
contact. Something like an XMPP resource or IRC ident.

Testing Done:
Ran the unit tests under valgrind.

Reviewed at https://reviews.imfreedom.org/r/2610/

41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * (at your option) any later version.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * GNU General Public License for more details.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * along with this program; if not, see <https://www.gnu.org/licenses/>.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
19 #include "purplecontactinfo.h"
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
21 #include "purpleenums.h"
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
22 #include "util.h"
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
23
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
24 typedef struct {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
25 char *id;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
27 char *username;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
28 char *display_name;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
29 char *alias;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
30 char *color;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
31 char *email;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
32 char *phone_number;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
33 GTimeZone *time_zone;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
34 char *note;
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
35 char *sid;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
36
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
37 char *name_for_display;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
39 PurpleAvatar *avatar;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 PurplePresence *presence;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 PurpleTags *tags;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
44
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
45 PurplePerson *person;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
46
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
47 PurpleContactInfoPermission permission;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
48 } PurpleContactInfoPrivate;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 enum {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 PROP_0,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 PROP_ID,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 PROP_USERNAME,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 PROP_DISPLAY_NAME,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55 PROP_ALIAS,
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
56 PROP_COLOR,
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
57 PROP_EMAIL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
58 PROP_PHONE_NUMBER,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
59 PROP_TIME_ZONE,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
60 PROP_NOTE,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 PROP_AVATAR,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 PROP_PRESENCE,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 PROP_TAGS,
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
64 PROP_PERSON,
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
65 PROP_PERMISSION,
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
66 PROP_SID,
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
67 PROP_NAME_FOR_DISPLAY,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 N_PROPERTIES
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 };
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
72 enum {
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
73 SIG_PRESENCE_CHANGED,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
74 N_SIGNALS,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
75 };
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
76 static guint signals[N_SIGNALS] = {0, };
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
77
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
78 G_DEFINE_TYPE_WITH_PRIVATE(PurpleContactInfo, purple_contact_info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
79 G_TYPE_OBJECT)
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
80
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 /******************************************************************************
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
82 * Helpers
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
83 *****************************************************************************/
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
84 static void
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
85 purple_contact_info_update_name_for_display(PurpleContactInfo *info) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
86 PurpleContactInfoPrivate *priv = NULL;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
87 const char *name_for_display = NULL;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
88
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
89 priv = purple_contact_info_get_instance_private(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
90
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
91 /* If the info has an alias set, use it. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
92 if(name_for_display == NULL && !purple_strempty(priv->alias)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
93 name_for_display = priv->alias;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
94 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
95
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
96 /* If info is associated with a PurplePerson that has an alias set, use the
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
97 * alias of that PurplePerson.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
98 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
99 if(name_for_display == NULL && priv->person != NULL) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
100 const char *alias = purple_person_get_alias(priv->person);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
101
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
102 if(!purple_strempty(alias)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
103 name_for_display = alias;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
104 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
105 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
106
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
107 /* If the info has a display name set, use it. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
108 if(name_for_display == NULL && !purple_strempty(priv->display_name)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
109 name_for_display = priv->display_name;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
110 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
111
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
112 /* Fallback to the username if that is set. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
113 if(name_for_display == NULL && !purple_strempty(priv->username)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
114 name_for_display = priv->username;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
115 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
116
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
117 /* Finally, in a last ditch effort, use the id of the info. */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
118 if(name_for_display == NULL) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
119 name_for_display = priv->id;
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
120 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
121
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
122 if(!purple_strequal(name_for_display, priv->name_for_display)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
123 /* If we have a new name for display, free the old one, dup the new one
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
124 * into the struct, and then emit the notify signal.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
125 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
126 g_free(priv->name_for_display);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
127 priv->name_for_display = g_strdup(name_for_display);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
128
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
129 g_object_notify_by_pspec(G_OBJECT(info),
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
130 properties[PROP_NAME_FOR_DISPLAY]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
131 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
132 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
133
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
134 /******************************************************************************
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
135 * Callbacks
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
136 *****************************************************************************/
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
137 static void
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
138 purple_contact_info_person_alias_changed_cb(G_GNUC_UNUSED GObject *obj,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
139 G_GNUC_UNUSED GParamSpec *pspec,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
140 gpointer data)
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
141 {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
142 purple_contact_info_update_name_for_display(data);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
143 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
144
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
145 /*
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
146 * This is a notify callback on the presence for a contact info, it is used
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
147 * to emit the presence-changed signal.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
148 */
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
149 static void
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
150 purple_contact_info_presence_notify_cb(GObject *source, GParamSpec *pspec,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
151 gpointer data)
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
152 {
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
153 g_signal_emit(data, signals[SIG_PRESENCE_CHANGED],
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
154 g_param_spec_get_name_quark(pspec),
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
155 source, pspec);
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
156 }
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
157
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
158 /******************************************************************************
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
159 * GObject Implementation
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
160 *****************************************************************************/
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
161 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
162 purple_contact_info_get_property(GObject *obj, guint param_id, GValue *value,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
163 GParamSpec *pspec)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
165 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 switch(param_id) {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168 case PROP_ID:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
169 g_value_set_string(value, purple_contact_info_get_id(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 case PROP_USERNAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
172 g_value_set_string(value, purple_contact_info_get_username(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 case PROP_DISPLAY_NAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
175 g_value_set_string(value,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
176 purple_contact_info_get_display_name(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
177 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178 case PROP_ALIAS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
179 g_value_set_string(value, purple_contact_info_get_alias(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
180 break;
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
181 case PROP_COLOR:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
182 g_value_set_string(value, purple_contact_info_get_color(info));
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
183 break;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
184 case PROP_EMAIL:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
185 g_value_set_string(value, purple_contact_info_get_email(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
186 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
187 case PROP_PHONE_NUMBER:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
188 g_value_set_string(value,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
189 purple_contact_info_get_phone_number(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
190 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
191 case PROP_TIME_ZONE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
192 g_value_set_boxed(value, purple_contact_info_get_time_zone(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
193 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
194 case PROP_NOTE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
195 g_value_set_string(value, purple_contact_info_get_note(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
196 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
197 case PROP_AVATAR:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
198 g_value_set_object(value, purple_contact_info_get_avatar(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200 case PROP_PRESENCE:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
201 g_value_set_object(value, purple_contact_info_get_presence(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203 case PROP_TAGS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
204 g_value_set_object(value, purple_contact_info_get_tags(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205 break;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
206 case PROP_PERSON:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
207 g_value_set_object(value, purple_contact_info_get_person(info));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
208 break;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
209 case PROP_PERMISSION:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
210 g_value_set_enum(value, purple_contact_info_get_permission(info));
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
211 break;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
212 case PROP_NAME_FOR_DISPLAY:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
213 g_value_set_string(value,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
214 purple_contact_info_get_name_for_display(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
215 break;
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
216 case PROP_SID:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
217 g_value_set_string(value, purple_contact_info_get_sid(info));
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
218 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219 default:
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
220 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
223 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
224
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
226 purple_contact_info_set_property(GObject *obj, guint param_id,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
227 const GValue *value, GParamSpec *pspec)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
229 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 switch(param_id) {
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 case PROP_ID:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
233 purple_contact_info_set_id(info, g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 case PROP_USERNAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
236 purple_contact_info_set_username(info, g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238 case PROP_DISPLAY_NAME:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
239 purple_contact_info_set_display_name(info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
240 g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242 case PROP_ALIAS:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
243 purple_contact_info_set_alias(info, g_value_get_string(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244 break;
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
245 case PROP_COLOR:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
246 purple_contact_info_set_color(info, g_value_get_string(value));
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
247 break;
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
248 case PROP_EMAIL:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
249 purple_contact_info_set_email(info, g_value_get_string(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
250 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
251 case PROP_PHONE_NUMBER:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
252 purple_contact_info_set_phone_number(info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
253 g_value_get_string(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
254 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
255 case PROP_TIME_ZONE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
256 purple_contact_info_set_time_zone(info, g_value_get_boxed(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
257 break;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
258 case PROP_NOTE:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
259 purple_contact_info_set_note(info, g_value_get_string(value));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
260 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
261 case PROP_AVATAR:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
262 purple_contact_info_set_avatar(info, g_value_get_object(value));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
263 break;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
264 case PROP_PERSON:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
265 purple_contact_info_set_person(info, g_value_get_object(value));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
266 break;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
267 case PROP_PERMISSION:
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
268 purple_contact_info_set_permission(info, g_value_get_enum(value));
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
269 break;
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
270 case PROP_SID:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
271 purple_contact_info_set_sid(info, g_value_get_string(value));
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
272 break;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
273 default:
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
274 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
275 break;
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
280 purple_contact_info_dispose(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
281 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
282 PurpleContactInfoPrivate *priv = NULL;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
283
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
284 priv = purple_contact_info_get_instance_private(info);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
285
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
286 g_clear_object(&priv->avatar);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
287 g_clear_object(&priv->presence);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
288 g_clear_object(&priv->tags);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
289 g_clear_object(&priv->person);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
290
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
291 G_OBJECT_CLASS(purple_contact_info_parent_class)->dispose(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
293
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
294 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
295 purple_contact_info_finalize(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
296 PurpleContactInfo *info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
297 PurpleContactInfoPrivate *priv = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
298
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
299 priv = purple_contact_info_get_instance_private(info);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
300
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
301 g_clear_pointer(&priv->id, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
302 g_clear_pointer(&priv->username, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
303 g_clear_pointer(&priv->display_name, g_free);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
304 g_clear_pointer(&priv->alias, g_free);
42063
34db408e4e3c fix memory leak in purple_contact_info
Markus Fischer <ivanhoe@fiscari.de>
parents: 42060
diff changeset
305 g_clear_pointer(&priv->color, g_free);
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
306 g_clear_pointer(&priv->email, g_free);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
307 g_clear_pointer(&priv->phone_number, g_free);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
308 g_clear_pointer(&priv->time_zone, g_time_zone_unref);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
309 g_clear_pointer(&priv->note, g_free);
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
310 g_clear_pointer(&priv->sid, g_free);
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
311 g_clear_pointer(&priv->name_for_display, g_free);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
312
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
313 G_OBJECT_CLASS(purple_contact_info_parent_class)->finalize(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
314 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
315
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
316 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
317 purple_contact_info_constructed(GObject *obj) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
318 PurpleContactInfo *info = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
319 PurpleContactInfoPrivate *priv = NULL;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
320
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
321 G_OBJECT_CLASS(purple_contact_info_parent_class)->constructed(obj);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
322
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
323 info = PURPLE_CONTACT_INFO(obj);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
324 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
325
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
326 if(priv->id == NULL) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
327 purple_contact_info_set_id(info, NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
328 }
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
329
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
330 purple_contact_info_update_name_for_display(info);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
331 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
332
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
333 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
334 purple_contact_info_init(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
335 PurpleContactInfoPrivate *priv = NULL;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
336
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
337 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
338
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
339 priv->tags = purple_tags_new();
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
340
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
341 priv->presence = g_object_new(PURPLE_TYPE_PRESENCE, NULL);
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
342 g_signal_connect_object(priv->presence, "notify",
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
343 G_CALLBACK(purple_contact_info_presence_notify_cb),
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
344 info, 0);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
345 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
346
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
347 static void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
348 purple_contact_info_class_init(PurpleContactInfoClass *klass) {
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
349 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
350
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
351 obj_class->constructed = purple_contact_info_constructed;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
352 obj_class->dispose = purple_contact_info_dispose;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
353 obj_class->finalize = purple_contact_info_finalize;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
354 obj_class->get_property = purple_contact_info_get_property;
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
355 obj_class->set_property = purple_contact_info_set_property;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
356
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
357 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
358 * PurpleContactInfo:id:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
359 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
360 * The protocol specific id for the contact.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
361 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
362 * Since: 3.0.0
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
363 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
364 properties[PROP_ID] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
365 "id", "id",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
366 "The id of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
367 NULL,
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
368 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
369
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
370 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
371 * PurpleContactInfo:username:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
372 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
373 * The username for this contact. In rare cases this can change, like when
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
374 * a user changes their "nick" on IRC which is their user name.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
375 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
376 * Since: 3.0.0
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
377 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
378 properties[PROP_USERNAME] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
379 "username", "username",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
380 "The username of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
381 NULL,
41961
0da91f053305 Make PurpleAccount subclass PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41948
diff changeset
382 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
383
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
384 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
385 * PurpleContactInfo:display-name:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
386 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
387 * The display name for this contact. This is generally set by the person
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
388 * the contact is representing and controlled via the protocol plugin.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
389 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
390 * Since: 3.0.0
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
391 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
392 properties[PROP_DISPLAY_NAME] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
393 "display-name", "display-name",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
394 "The display name of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
395 NULL,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
396 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
397
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
398 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
399 * PurpleContactInfo:alias:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
400 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
401 * The alias for this contact. This is controlled by the libpurple user and
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
402 * may be used by the protocol if it allows for aliasing.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
403 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
404 * Since: 3.0.0
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
405 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
406 properties[PROP_ALIAS] = g_param_spec_string(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
407 "alias", "alias",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
408 "The alias of the contact.",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
409 NULL,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
410 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
411
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
412 /**
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
413 * PurpleContactInfo:color:
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
414 *
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
415 * The color for this contact. This is an RGB hex code that user interfaces
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
416 * can use when rendering the contact. This may also be controlled via a
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
417 * protocol plugin in the event that the protocol allows people to set a
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
418 * highlight/branding color.
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
419 *
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
420 * Since: 3.0.0
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
421 */
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
422 properties[PROP_COLOR] = g_param_spec_string(
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
423 "color", "color",
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
424 "The color to use when rendering the contact.",
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
425 NULL,
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
426 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
427
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
428 /**
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
429 * PurpleContactInfo:email:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
430 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
431 * The primary email address for the contact. This may also be controlled
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
432 * via a protocol plugin in the event that the protocol makes it available.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
433 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
434 * Since: 3.0.0
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
435 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
436 properties[PROP_EMAIL] = g_param_spec_string(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
437 "email", "email",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
438 "The primary email address for the contact.",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
439 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
440 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
441
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
442 /**
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
443 * PurpleContactInfo:phone-number:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
444 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
445 * The primary phone number for the contact. This may also be set via a
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
446 * protocol plugin in the event that the protocol knows it.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
447 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
448 * Since: 3.0.0
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
449 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
450 properties[PROP_PHONE_NUMBER] = g_param_spec_string(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
451 "phone-number", "phone-number",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
452 "The primary phone number for the contact.",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
453 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
454 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
455
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
456 /**
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
457 * PurpleContactInfo:time-zone:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
458 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
459 * The time zone for this contact. This is typically controlled by the
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
460 * protocol and should only be read by others.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
461 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
462 * Since: 3.0.0
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
463 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
464 properties[PROP_TIME_ZONE] = g_param_spec_boxed(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
465 "time-zone", "time-zone",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
466 "The time zone for the contact.",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
467 G_TYPE_TIME_ZONE,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
468 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
469
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
470 /**
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
471 * PurpleContactInfo:note:
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
472 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
473 * A note for this contact. Many protocols will allow you to set a note on
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
474 * a contact and store it server side. This property is where that is kept
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
475 * track of.
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
476 *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
477 * Since: 3.0.0
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
478 */
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
479 properties[PROP_NOTE] = g_param_spec_string(
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
480 "note", "note",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
481 "A note for the contact.",
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
482 NULL,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
483 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
484
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
485 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
486 * PurpleContactInfo:avatar:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
487 *
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
488 * The avatar for this contact. This is typically controlled by the
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
489 * protocol and should only be read by others.
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
490 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
491 * Since: 3.0.0
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
492 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
493 properties[PROP_AVATAR] = g_param_spec_object(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
494 "avatar", "avatar",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
495 "The avatar of the contact",
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
496 PURPLE_TYPE_AVATAR,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
497 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
498
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
499 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
500 * PurpleContactInfo:presence:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
501 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
502 * The [class@Purple.Presence] for this contact. This is typically
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
503 * controlled by the protocol and should only be read by others.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
504 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
505 * Since: 3.0.0
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
506 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
507 properties[PROP_PRESENCE] = g_param_spec_object(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
508 "presence", "presence",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
509 "The presence of the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
510 PURPLE_TYPE_PRESENCE,
41771
c5877e2c93f2 Create and add PurpleContacts to the manager when purple_buddy_new is called
Gary Kramlich <grim@reaperworld.com>
parents: 41759
diff changeset
511 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
512
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
513 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
514 * PurpleContactInfo:tags:
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
515 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
516 * The [class@Purple.Tags] for this contact.
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
517 *
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
518 * Since: 3.0.0
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
519 */
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
520 properties[PROP_TAGS] = g_param_spec_object(
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
521 "tags", "tags",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
522 "The tags for the contact",
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
523 PURPLE_TYPE_TAGS,
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
524 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
525
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
526 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
527 * PurpleContactInfo:person:
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
528 *
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
529 * The [class@Purple.Person] that this contact belongs to.
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
530 *
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
531 * Since: 3.0.0
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
532 */
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
533 properties[PROP_PERSON] = g_param_spec_object(
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
534 "person", "person",
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
535 "The person this contact belongs to.",
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
536 PURPLE_TYPE_PERSON,
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
537 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
538
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
539 /**
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
540 * PurpleContactInfo:permission:
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
541 *
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
542 * The permission level for the contact.
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
543 *
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
544 * Since: 3.0.0
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
545 */
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
546 properties[PROP_PERMISSION] = g_param_spec_enum(
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
547 "permission", "permission",
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
548 "The permission level of the contact",
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
549 PURPLE_TYPE_CONTACT_INFO_PERMISSION,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
550 PURPLE_CONTACT_INFO_PERMISSION_UNSET,
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
551 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
552
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
553 /**
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
554 * PurpleContactInfo:sid:
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
555 *
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
556 * The sid, or secondary id, is an additional identifier field for a
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
557 * contact.
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
558 *
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
559 * This could be used to hold the `ident` for an IRC contact, the
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
560 * `resource` for an XMPP contact, or something similar.
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
561 *
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
562 * Since: 3.0.0
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
563 */
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
564 properties[PROP_SID] = g_param_spec_string(
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
565 "sid", "sid",
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
566 "The secondary id for the contact.",
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
567 NULL,
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
568 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
569
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
570 /**
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
571 * PurpleContactInfo:name-for-display:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
572 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
573 * The name that the user interface should display for this contact info.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
574 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
575 * This will first check [property@Purple.ContactInfo:alias] and return
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
576 * that if it is set.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
577 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
578 * Next, if the [property@Purple.ContactInfo:person] points to a valid
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
579 * [class@Purple.Person], the alias of [class@Purple.Person] will be
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
580 * returned if it is set.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
581 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
582 * Otherwise, this will be set to the first set property from the following
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
583 * list:
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
584 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
585 * * [property@Purple.ContactInfo:display-name]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
586 * * [property@Purple.ContactInfo:username]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
587 * * [property@Purple.ContactInfo:id]
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
588 *
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
589 * Since: 3.0.0
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
590 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
591 properties[PROP_NAME_FOR_DISPLAY] = g_param_spec_string(
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
592 "name-for-display", "name-for-display",
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
593 "The name that should be displayed for the contact info",
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
594 NULL,
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
595 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
596
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
597 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
42115
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
598
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
599 /**
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
600 * PurpleContactInfo::presence-changed:
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
601 * @info: The instance.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
602 * @presence: The presence that was changed.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
603 * @pspec: The [class@GObject.ParamSpec] for the property that changed.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
604 *
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
605 * This is a propagation of the notify signal from @presence. This means
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
606 * that your callback will be called when anything in the presence changes.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
607 *
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
608 * This also supports details, so you can specify the signal name as
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
609 * something like `presence-changed::message` and your callback will only
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
610 * be called when the message property of @presence has been changed.
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
611 *
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
612 * Since: 3.0.0
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
613 */
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
614 signals[SIG_PRESENCE_CHANGED] = g_signal_new_class_handler(
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
615 "presence-changed",
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
616 G_OBJECT_CLASS_TYPE(klass),
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
617 G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
618 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
619 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
620 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
621 NULL,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
622 G_TYPE_NONE,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
623 2,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
624 PURPLE_TYPE_PRESENCE,
4f06e6f47a78 Propagate the notify signal for the Presence object on a ContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42063
diff changeset
625 G_TYPE_PARAM);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
626 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
627
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
628 /******************************************************************************
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
629 * Public API
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
630 *****************************************************************************/
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
631 PurpleContactInfo *
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
632 purple_contact_info_new(const gchar *id) {
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
633 return g_object_new(
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
634 PURPLE_TYPE_CONTACT_INFO,
41759
1ecc0512e714 Make purple_contact_new take the id instead of the username.
Gary Kramlich <grim@reaperworld.com>
parents: 41755
diff changeset
635 "id", id,
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
636 NULL);
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
637 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
638
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
639 const gchar *
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
640 purple_contact_info_get_id(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
641 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
642
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
643 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
644
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
645 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
646
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
647 return priv->id;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
648 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
649
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
650 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
651 purple_contact_info_set_id(PurpleContactInfo *info, const gchar *id) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
652 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
653 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
654
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
655 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
656
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
657 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
658
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
659 changed = !purple_strequal(priv->id, id);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
660
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
661 g_free(priv->id);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
662 priv->id = g_strdup(id);
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
663
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
664 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
665 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
666
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
667 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_ID]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
668
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
669 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
670
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
671 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
672 }
41920
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
673 }
29ebd938c592 Add a contact property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41918
diff changeset
674
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
675 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
676 purple_contact_info_get_username(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
677 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
678
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
679 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
680
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
681 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
682
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
683 return priv->username;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
684 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
685
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
686 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
687 purple_contact_info_set_username(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
688 const gchar *username)
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
689 {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
690 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
691 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
692
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
693 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
694
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
695 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
696
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
697 changed = !purple_strequal(priv->username, username);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
698
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
699 g_free(priv->username);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
700 priv->username = g_strdup(username);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
701
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
702 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
703 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
704
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
705 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_USERNAME]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
706
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
707 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
708
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
709 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
710 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
711 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
712
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
713 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
714 purple_contact_info_get_display_name(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
715 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
716
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
717 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
718
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
719 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
720
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
721 return priv->display_name;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
722 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
723
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
724 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
725 purple_contact_info_set_display_name(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
726 const gchar *display_name)
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
727 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
728 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
729 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
730
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
731 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
732
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
733 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
734
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
735 changed = !purple_strequal(priv->display_name, display_name);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
736
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
737 g_free(priv->display_name);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
738 priv->display_name = g_strdup(display_name);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
739
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
740 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
741 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
742
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
743 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_DISPLAY_NAME]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
744
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
745 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
746
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
747 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
748 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
749 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
750
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
751 const gchar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
752 purple_contact_info_get_alias(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
753 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
754
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
755 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
756
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
757 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
758
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
759 return priv->alias;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
760 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
761
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
762 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
763 purple_contact_info_set_alias(PurpleContactInfo *info, const gchar *alias) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
764 PurpleContactInfoPrivate *priv = NULL;
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
765 gboolean changed = FALSE;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
766
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
767 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
768
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
769 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
770
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
771 changed = !purple_strequal(priv->alias, alias);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
772
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
773 g_free(priv->alias);
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
774 priv->alias = g_strdup(alias);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
775
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
776 if(changed) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
777 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
778
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
779 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_ALIAS]);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
780
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
781 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
782
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
783 g_object_thaw_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
784 }
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
785 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
786
41973
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
787 const char *
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
788 purple_contact_info_get_color(PurpleContactInfo *info) {
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
789 PurpleContactInfoPrivate *priv = NULL;
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
790
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
791 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
792
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
793 priv = purple_contact_info_get_instance_private(info);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
794
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
795 return priv->color;
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
796 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
797
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
798 void
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
799 purple_contact_info_set_color(PurpleContactInfo *info, const char *color) {
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
800 PurpleContactInfoPrivate *priv = NULL;
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
801
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
802 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
803
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
804 priv = purple_contact_info_get_instance_private(info);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
805
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
806 if(!purple_strequal(priv->color, color)) {
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
807 g_free(priv->color);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
808 priv->color = g_strdup(color);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
809
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
810 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_COLOR]);
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
811 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
812 }
9da6ba6eba5d Add a color property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41961
diff changeset
813
42257
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
814 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
815 purple_contact_info_get_email(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
816 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
817
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
818 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
819
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
820 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
821
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
822 return priv->email;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
823 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
824
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
825 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
826 purple_contact_info_set_email(PurpleContactInfo *info, const char *email) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
827 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
828
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
829 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
830
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
831 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
832
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
833 if(!purple_strequal(priv->email, email)) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
834 g_free(priv->email);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
835 priv->email = g_strdup(email);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
836
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
837 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_EMAIL]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
838 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
839 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
840
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
841 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
842 purple_contact_info_get_phone_number(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
843 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
844
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
845 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
846
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
847 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
848
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
849 return priv->phone_number;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
850 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
851
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
852 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
853 purple_contact_info_set_phone_number(PurpleContactInfo *info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
854 const char *phone_number)
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
855 {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
856 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
857
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
858 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
859
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
860 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
861
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
862 if(!purple_strequal(priv->phone_number, phone_number)) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
863 g_free(priv->phone_number);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
864 priv->phone_number = g_strdup(phone_number);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
865
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
866 g_object_notify_by_pspec(G_OBJECT(info),
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
867 properties[PROP_PHONE_NUMBER]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
868 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
869 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
870
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
871 GTimeZone *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
872 purple_contact_info_get_time_zone(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
873 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
874
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
875 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
876
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
877 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
878
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
879 return priv->time_zone;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
880 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
881
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
882 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
883 purple_contact_info_set_time_zone(PurpleContactInfo *info,
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
884 GTimeZone *time_zone)
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
885 {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
886 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
887 GTimeZone *old = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
888
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
889 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
890
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
891 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
892 old = priv->time_zone;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
893
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
894 priv->time_zone = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
895 if(time_zone != NULL) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
896 priv->time_zone = g_time_zone_ref(time_zone);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
897 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
898
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
899 if(old != NULL) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
900 g_time_zone_unref(old);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
901 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
902
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
903 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_TIME_ZONE]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
904 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
905
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
906 const char *
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
907 purple_contact_info_get_note(PurpleContactInfo *info) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
908 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
909
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
910 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
911
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
912 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
913
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
914 return priv->note;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
915 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
916
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
917 void
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
918 purple_contact_info_set_note(PurpleContactInfo *info, const char *note) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
919 PurpleContactInfoPrivate *priv = NULL;
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
920
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
921 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
922
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
923 priv = purple_contact_info_get_instance_private(info);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
924
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
925 if(!purple_strequal(priv->note, note)) {
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
926 g_free(priv->note);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
927 priv->note = g_strdup(note);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
928
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
929 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_NOTE]);
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
930 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
931 }
281bd12a66f7 Add some additional fields to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42115
diff changeset
932
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
933 PurpleAvatar *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
934 purple_contact_info_get_avatar(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
935 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
936
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
937 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
938
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
939 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
940
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
941 return priv->avatar;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
942 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
943
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
944 void
42312
7d6f0b8b6e77 Use PurpleAvatar for PurplePerson and PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42257
diff changeset
945 purple_contact_info_set_avatar(PurpleContactInfo *info, PurpleAvatar *avatar) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
946 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
947
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
948 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
949
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
950 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
951
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
952 if(g_set_object(&priv->avatar, avatar)) {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
953 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_AVATAR]);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
954 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
955 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
956
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
957 PurplePresence *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
958 purple_contact_info_get_presence(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
959 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
960
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
961 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
962
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
963 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
964
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
965 return priv->presence;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
966 }
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
967
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
968 PurpleTags *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
969 purple_contact_info_get_tags(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
970 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
971
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
972 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
973
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
974 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
975
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
976 return priv->tags;
41739
f589ceec0172 Create the new PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
977 }
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
978
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
979 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
980 purple_contact_info_set_person(PurpleContactInfo *info, PurplePerson *person) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
981 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
982
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
983 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
984
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
985 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
986
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
987 if(g_set_object(&priv->person, person)) {
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
988 /* If we got a new person, we need to connect to the notify::alias
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
989 * signal.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
990 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
991 if(PURPLE_IS_PERSON(priv->person)) {
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
992 g_signal_connect_object(priv->person, "notify::alias",
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
993 G_CALLBACK(purple_contact_info_person_alias_changed_cb),
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
994 info, 0);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
995 }
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
996
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
997 /* Freeze notifications as the person update could change the
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
998 * name-for-display property.
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
999 */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1000 g_object_freeze_notify(G_OBJECT(info));
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1001
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1002 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_PERSON]);
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1003
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1004 /* Update the name-for-display property */
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1005 purple_contact_info_update_name_for_display(info);
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1006
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1007 g_object_thaw_notify(G_OBJECT(info));
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1008 }
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1009 }
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1010
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1011 PurplePerson *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1012 purple_contact_info_get_person(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1013 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1014
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1015 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1016
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1017 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1018
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1019 return priv->person;
41755
b7e6166e5300 Add a person property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41739
diff changeset
1020 }
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1021
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1022 PurpleContactInfoPermission
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1023 purple_contact_info_get_permission(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1024 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1025
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1026 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info),
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1027 PURPLE_CONTACT_INFO_PERMISSION_UNSET);
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1028
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1029 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1030
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1031 return priv->permission;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1032 }
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1033
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1034 void
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1035 purple_contact_info_set_permission(PurpleContactInfo *info,
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1036 PurpleContactInfoPermission permission)
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1037 {
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1038 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1039
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1040 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1041
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1042 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1043
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1044 priv->permission = permission;
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1045
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1046 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_PERMISSION]);
41918
106ae46b290b Add a permission property to PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41771
diff changeset
1047 }
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1048
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1049 const char *
42324
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1050 purple_contact_info_get_sid(PurpleContactInfo *info) {
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1051 PurpleContactInfoPrivate *priv = NULL;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1052
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1053 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1054
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1055 priv = purple_contact_info_get_instance_private(info);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1056
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1057 return priv->sid;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1058 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1059
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1060 void
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1061 purple_contact_info_set_sid(PurpleContactInfo *info, const char *sid) {
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1062 PurpleContactInfoPrivate *priv = NULL;
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1063
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1064 g_return_if_fail(PURPLE_IS_CONTACT_INFO(info));
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1065
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1066 priv = purple_contact_info_get_instance_private(info);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1067
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1068 if(!purple_strequal(priv->sid, sid)) {
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1069 g_free(priv->sid);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1070 priv->sid = g_strdup(sid);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1071
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1072 g_object_notify_by_pspec(G_OBJECT(info), properties[PROP_SID]);
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1073 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1074 }
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1075
3c66b48c2fb7 Add a secondary id property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 42312
diff changeset
1076 const char *
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1077 purple_contact_info_get_name_for_display(PurpleContactInfo *info) {
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1078 PurpleContactInfoPrivate *priv = NULL;
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1079
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1080 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), NULL);
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1081
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1082 priv = purple_contact_info_get_instance_private(info);
41933
8ccd6fdc7ceb Make PurpleContact derivable
Gary Kramlich <grim@reaperworld.com>
parents: 41929
diff changeset
1083
42007
b7f9345b02a4 Add a name-for-display property to PurpleContactInfo
Gary Kramlich <grim@reaperworld.com>
parents: 41973
diff changeset
1084 return priv->name_for_display;
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1085 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1086
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1087 int
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1088 purple_contact_info_compare(PurpleContactInfo *a, PurpleContactInfo *b) {
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1089 PurplePerson *person_a = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1090 PurplePerson *person_b = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1091 const char *name_a = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1092 const char *name_b = NULL;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1093
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1094 /* Check for NULL values. */
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1095 if(a != NULL && b == NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1096 return -1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1097 } else if(a == NULL && b != NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1098 return 1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1099 } else if(a == NULL && b == NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1100 return 0;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1101 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1102
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1103 /* Check if the contacts have persons associated with them. */
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1104 person_a = purple_contact_info_get_person(a);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1105 person_b = purple_contact_info_get_person(b);
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1106
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1107 if(person_a != NULL && person_b == NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1108 return -1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1109 } else if(person_a == NULL && person_b != NULL) {
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1110 return 1;
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1111 }
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1112
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1113 /* Finally get the names for the displaying and compare those. */
41948
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1114 name_a = purple_contact_info_get_name_for_display(a);
6d844d2faff1 Split PurpleContactInfo out of PurpleContact
Gary Kramlich <grim@reaperworld.com>
parents: 41933
diff changeset
1115 name_b = purple_contact_info_get_name_for_display(b);
41929
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1116
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1117 return purple_utf8_strcasecmp(name_a, name_b);
7509b313b098 Add purple_contact_compare and purple_contact_get_name_for_display
Gary Kramlich <grim@reaperworld.com>
parents: 41920
diff changeset
1118 }
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1119
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1120 gboolean
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1121 purple_contact_info_matches(PurpleContactInfo *info, const char *needle) {
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1122 PurpleContactInfoPrivate *priv = NULL;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1123
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1124 g_return_val_if_fail(PURPLE_IS_CONTACT_INFO(info), FALSE);
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1125
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1126 if(purple_strempty(needle)) {
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1127 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1128 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1129
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1130 priv = purple_contact_info_get_instance_private(info);
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1131
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1132 if(!purple_strempty(priv->username)) {
42060
d55b605fdafb Add purple_strmatches and move purple_person_matches and purple_contact_info_matches to it
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
1133 if(purple_strmatches(needle, priv->username)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1134 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1135 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1136 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1137
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1138 if(!purple_strempty(priv->alias)) {
42060
d55b605fdafb Add purple_strmatches and move purple_person_matches and purple_contact_info_matches to it
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
1139 if(purple_strmatches(needle, priv->alias)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1140 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1141 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1142 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1143
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1144 if(!purple_strempty(priv->display_name)) {
42060
d55b605fdafb Add purple_strmatches and move purple_person_matches and purple_contact_info_matches to it
Gary Kramlich <grim@reaperworld.com>
parents: 42059
diff changeset
1145 if(purple_strmatches(needle, priv->display_name)) {
42059
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1146 return TRUE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1147 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1148 }
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1149
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1150 /* Nothing matched, so return FALSE. */
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1151 return FALSE;
e6dcbf0db616 Add search support to the contact list
Gary Kramlich <grim@reaperworld.com>
parents: 42007
diff changeset
1152 }

mercurial