libpurple/buddy.c

Thu, 03 Dec 2020 04:34:04 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 03 Dec 2020 04:34:04 -0600
changeset 40634
4d3018b00ad4
parent 40537
fbf29150c28c
child 40752
81e94476e3ac
permissions
-rw-r--r--

Fix the PurpleProtocolClient interface and split it out to its own file.

Testing Done:
Compile and unit tests.

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

34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 /*
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
2 * purple
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
3 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 * source distribution.
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 * (at your option) any later version.
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 * GNU General Public License for more details.
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
21 *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
22 */
34721
ad8974e1a268 Added includes and finished up blistnodetypes.c
Ankit Vani <a@nevitus.org>
parents: 34720
diff changeset
23 #include "internal.h"
40537
fbf29150c28c Move PurpleAccountPresence and PurpleBuddyPresence to their own files
Gary Kramlich <grim@reaperworld.com>
parents: 40195
diff changeset
24 #include "purplebuddypresence.h"
40634
4d3018b00ad4 Fix the PurpleProtocolClient interface and split it out to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
25 #include "purpleprotocolclient.h"
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
26 #include "util.h"
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
27
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
28 typedef struct _PurpleBuddyPrivate PurpleBuddyPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
29
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
30 struct _PurpleBuddyPrivate {
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
31 char *name; /* The name of the buddy. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
32 char *local_alias; /* The user-set alias of the buddy */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
33 char *server_alias; /* The server-specified alias of the buddy.
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
34 (i.e. MSN "Friendly Names") */
37075
cf3f735b09b7 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 36999 35470
diff changeset
35 void *proto_data; /* This allows the protocol to associate
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
36 whatever data it wants with a buddy. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
37 PurpleBuddyIcon *icon; /* The buddy icon. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
38 PurpleAccount *account; /* the account this buddy belongs to */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
39 PurplePresence *presence; /* Presense information of the buddy */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
40 PurpleMediaCaps media_caps; /* The media capabilities of the buddy. */
35090
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
41
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
42 gboolean is_constructed; /* Indicates if the buddy has finished
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
43 being constructed. */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
44 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
45
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
46 enum {
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
47 PROP_0,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
48 PROP_NAME,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
49 PROP_LOCAL_ALIAS,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
50 PROP_SERVER_ALIAS,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
51 PROP_ICON,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
52 PROP_ACCOUNT,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
53 PROP_PRESENCE,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
54 PROP_MEDIA_CAPS,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
55 PROP_LAST
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
56 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
57
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
58 /******************************************************************************
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
59 * Globals
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
60 *****************************************************************************/
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
61 static GParamSpec *properties[PROP_LAST];
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
62
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
63 G_DEFINE_TYPE_WITH_PRIVATE(PurpleBuddy, purple_buddy, PURPLE_TYPE_BLIST_NODE)
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
64
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
65 /******************************************************************************
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
66 * API
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
67 *****************************************************************************/
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
68 void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
69 purple_buddy_set_icon(PurpleBuddy *buddy, PurpleBuddyIcon *icon)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
70 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
71 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
72
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
73 g_return_if_fail(PURPLE_IS_BUDDY(buddy));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
74
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
75 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
76
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
77 if (priv->icon != icon)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
78 {
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
79 purple_buddy_icon_unref(priv->icon);
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
80 priv->icon = (icon != NULL ? purple_buddy_icon_ref(icon) : NULL);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
81
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
82 g_object_notify_by_pspec(G_OBJECT(buddy),
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
83 properties[PROP_ICON]);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
84 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
85
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
86 purple_signal_emit(purple_blist_get_handle(), "buddy-icon-changed", buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
87
39675
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
88 purple_blist_update_node(purple_blist_get_default(),
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
89 PURPLE_BLIST_NODE(buddy));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
90 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
91
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
92 PurpleBuddyIcon *
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
93 purple_buddy_get_icon(PurpleBuddy *buddy)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
94 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
95 PurpleBuddyPrivate *priv = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
96
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
97 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
98
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
99 priv = purple_buddy_get_instance_private(buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
100 return priv->icon;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
101 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
102
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
103 PurpleAccount *
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
104 purple_buddy_get_account(PurpleBuddy *buddy)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
105 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
106 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
107
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
108 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
109
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
110 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
111 return priv->account;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
112 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
113
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
114 void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
115 purple_buddy_set_name(PurpleBuddy *buddy, const char *name)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
116 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
117 PurpleBuddyPrivate *priv = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
118
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
119 g_return_if_fail(PURPLE_IS_BUDDY(buddy));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
120
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
121 priv = purple_buddy_get_instance_private(buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
122
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
123 purple_blist_update_buddies_cache(buddy, name);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
124
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
125 g_free(priv->name);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
126 priv->name = purple_utf8_strip_unprintables(name);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
127
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
128 g_object_notify_by_pspec(G_OBJECT(buddy), properties[PROP_NAME]);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
129
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
130 purple_blist_save_node(purple_blist_get_default(),
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
131 PURPLE_BLIST_NODE(buddy));
39675
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
132 purple_blist_update_node(purple_blist_get_default(),
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
133 PURPLE_BLIST_NODE(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
134 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
135
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
136 const char *
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
137 purple_buddy_get_name(PurpleBuddy *buddy)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
138 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
139 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
140
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
141 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
142
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
143 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
144 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
145 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
146
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
147 gpointer
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
148 purple_buddy_get_protocol_data(PurpleBuddy *buddy)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
149 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
150 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
151
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
152 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
153
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
154 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
155 return priv->proto_data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
156 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
157
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
158 void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
159 purple_buddy_set_protocol_data(PurpleBuddy *buddy, gpointer data)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
160 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
161 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
162
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
163 g_return_if_fail(PURPLE_IS_BUDDY(buddy));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
164
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
165 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
166 priv->proto_data = data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
167 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
168
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
169 const char *purple_buddy_get_alias_only(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
170 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
171 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
172
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
173 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
174
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
175 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
176
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
177 if ((priv->local_alias != NULL) && (*priv->local_alias != '\0')) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
178 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
179 } else if ((priv->server_alias != NULL) &&
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
180 (*priv->server_alias != '\0')) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
181
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
182 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
183 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
184
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
185 return NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
186 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
187
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
188 const char *purple_buddy_get_contact_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
189 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
190 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
191 PurpleContact *c;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
192
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
193 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
194
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
195 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
196
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
197 /* Search for an alias for the buddy. In order of precedence: */
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
198 /* The local buddy alias */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
199 if (priv->local_alias != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
200 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
201
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
202 /* The contact alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
203 c = purple_buddy_get_contact(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
204 if ((c != NULL) && (purple_contact_get_alias(c) != NULL))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
205 return purple_contact_get_alias(c);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
206
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
207 /* The server alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
208 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
209 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
210
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
211 /* The buddy's user name (i.e. no alias) */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
212 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
213 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
214
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
215 const char *purple_buddy_get_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
216 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
217 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
218
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
219 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
220
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
221 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
222
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
223 /* Search for an alias for the buddy. In order of precedence: */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
224 /* The buddy alias */
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
225 if (priv->local_alias != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
226 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
227
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
228 /* The server alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
229 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
230 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
231
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
232 /* The buddy's user name (i.e. no alias) */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
233 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
234 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
235
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
236 void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
237 purple_buddy_set_local_alias(PurpleBuddy *buddy, const char *alias)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
238 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
239 PurpleBuddyPrivate *priv = NULL;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
240 PurpleIMConversation *im;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
241 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
242 char *new_alias = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
243
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
244 g_return_if_fail(PURPLE_IS_BUDDY(buddy));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
245
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
246 priv = purple_buddy_get_instance_private(buddy);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
247
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
248 if ((alias != NULL) && (*alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
249 new_alias = purple_utf8_strip_unprintables(alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
250
38042
b11347d83ec0 buddy: Fix buddy aliases due to inverted purple_strequal()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37948
diff changeset
251 if (purple_strequal(priv->local_alias, new_alias)) {
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
252 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
253 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
254 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
255
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
256 old_alias = priv->local_alias;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
257
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
258 if ((new_alias != NULL) && (*new_alias != '\0'))
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
259 priv->local_alias = new_alias;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
260 else {
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
261 priv->local_alias = NULL;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
262 g_free(new_alias); /* could be "\0" */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
263 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
264
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
265 g_object_notify_by_pspec(G_OBJECT(buddy),
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
266 properties[PROP_LOCAL_ALIAS]);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
267
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
268 purple_blist_save_node(purple_blist_get_default(),
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
269 PURPLE_BLIST_NODE(buddy));
39675
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
270 purple_blist_update_node(purple_blist_get_default(),
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
271 PURPLE_BLIST_NODE(buddy));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
272
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
273 im = purple_conversations_find_im_with_account(priv->name,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
274 priv->account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
275 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
276 purple_conversation_autoset_title(PURPLE_CONVERSATION(im));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
277
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
278 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
279 buddy, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
280 g_free(old_alias);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
281 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
282
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
283 const char *purple_buddy_get_local_alias(PurpleBuddy *buddy)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
284 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
285 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
286
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
287 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
288
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
289 priv = purple_buddy_get_instance_private(buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
290 return priv->local_alias;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
291 }
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
292
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
293 void
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
294 purple_buddy_set_server_alias(PurpleBuddy *buddy, const char *alias)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
295 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
296 PurpleBuddyPrivate *priv = NULL;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
297 PurpleIMConversation *im;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
298 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
299 char *new_alias = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
300
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
301 g_return_if_fail(PURPLE_IS_BUDDY(buddy));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
302
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
303 priv = purple_buddy_get_instance_private(buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
304
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
305 if ((alias != NULL) && (*alias != '\0') && g_utf8_validate(alias, -1, NULL))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
306 new_alias = purple_utf8_strip_unprintables(alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
307
38042
b11347d83ec0 buddy: Fix buddy aliases due to inverted purple_strequal()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37948
diff changeset
308 if (purple_strequal(priv->server_alias, new_alias)) {
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
309 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
310 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
311 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
312
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
313 old_alias = priv->server_alias;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
314
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
315 if ((new_alias != NULL) && (*new_alias != '\0'))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
316 priv->server_alias = new_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
317 else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
318 priv->server_alias = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
319 g_free(new_alias); /* could be "\0"; */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
320 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
321
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
322 g_object_notify_by_pspec(G_OBJECT(buddy),
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
323 properties[PROP_SERVER_ALIAS]);
35066
f997e5384f79 libpurple: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 35058
diff changeset
324
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
325 purple_blist_save_node(purple_blist_get_default(),
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
326 PURPLE_BLIST_NODE(buddy));
39675
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
327 purple_blist_update_node(purple_blist_get_default(),
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
328 PURPLE_BLIST_NODE(buddy));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
329
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
330 im = purple_conversations_find_im_with_account(priv->name,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
331 priv->account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
332 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
333 purple_conversation_autoset_title(PURPLE_CONVERSATION(im));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
334
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
335 purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
336 buddy, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
337 g_free(old_alias);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
338 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
339
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
340 const char *purple_buddy_get_server_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
341 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
342 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
343
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
344 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
345
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
346 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
347
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
348 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
349 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
350
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
351 return NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
352 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
353
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
354 PurpleContact *purple_buddy_get_contact(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
355 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
356 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
357
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
358 return PURPLE_CONTACT(PURPLE_BLIST_NODE(buddy)->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
359 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
360
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
361 PurplePresence *purple_buddy_get_presence(PurpleBuddy *buddy)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
362 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
363 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
364
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
365 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
366
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
367 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
368 return priv->presence;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
369 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
370
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
371 void
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34727
diff changeset
372 purple_buddy_update_status(PurpleBuddy *buddy, PurpleStatus *old_status)
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
373 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
374 PurpleBuddyPrivate *priv = NULL;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
375 PurpleStatus *status;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
376 PurpleBlistNode *cnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
377 PurpleContact *contact;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
378 PurpleCountingNode *contact_counter, *group_counter;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
379
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
380 g_return_if_fail(PURPLE_IS_BUDDY(buddy));
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
381
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
382 priv = purple_buddy_get_instance_private(buddy);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
383
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
384 status = purple_presence_get_active_status(priv->presence);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
385
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
386 purple_debug_info("blistnodetypes", "Updating buddy status for %s (%s)\n",
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
387 priv->name, purple_account_get_protocol_name(priv->account));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
388
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
389 if (purple_status_is_online(status) &&
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
390 !purple_status_is_online(old_status)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
391
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
392 purple_signal_emit(purple_blist_get_handle(), "buddy-signed-on", buddy);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
393
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
394 cnode = PURPLE_BLIST_NODE(buddy)->parent;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
395 contact = PURPLE_CONTACT(cnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
396 contact_counter = PURPLE_COUNTING_NODE(contact);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
397 group_counter = PURPLE_COUNTING_NODE(cnode->parent);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
398
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
399 purple_counting_node_change_online_count(contact_counter, +1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
400 if (purple_counting_node_get_online_count(contact_counter) == 1)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
401 purple_counting_node_change_online_count(group_counter, +1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
402 } else if (!purple_status_is_online(status) &&
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
403 purple_status_is_online(old_status)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
404
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
405 purple_blist_node_set_int(PURPLE_BLIST_NODE(buddy), "last_seen", time(NULL));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
406 purple_signal_emit(purple_blist_get_handle(), "buddy-signed-off", buddy);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
407
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
408 cnode = PURPLE_BLIST_NODE(buddy)->parent;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
409 contact = PURPLE_CONTACT(cnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
410 contact_counter = PURPLE_COUNTING_NODE(contact);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
411 group_counter = PURPLE_COUNTING_NODE(cnode->parent);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
412
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
413 purple_counting_node_change_online_count(contact_counter, -1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
414 if (purple_counting_node_get_online_count(contact_counter) == 0)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
415 purple_counting_node_change_online_count(group_counter, -1);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
416 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
417 purple_signal_emit(purple_blist_get_handle(),
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
418 "buddy-status-changed", buddy, old_status,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
419 status);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
420 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
421
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
422 /*
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
423 * This function used to only call the following two functions if one of
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
424 * the above signals had been triggered, but that's not good, because
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
425 * if someone's away message changes and they don't go from away to back
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
426 * to away then no signal is triggered.
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
427 *
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
428 * It's a safe assumption that SOMETHING called this function. PROBABLY
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
429 * because something, somewhere changed. Calling the stuff below
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
430 * certainly won't hurt anything. Unless you're on a K6-2 300.
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
431 */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
432 purple_contact_invalidate_priority_buddy(purple_buddy_get_contact(buddy));
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
433
39675
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
434 purple_blist_update_node(purple_blist_get_default(),
583e2ba6e78e Add wrapper functions for some PurpleBlistUiOps.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39665
diff changeset
435 PURPLE_BLIST_NODE(buddy));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
436 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
437
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
438 PurpleMediaCaps purple_buddy_get_media_caps(PurpleBuddy *buddy)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
439 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
440 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
441
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
442 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), 0);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
443
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
444 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
445 return priv->media_caps;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
446 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
447
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
448 void purple_buddy_set_media_caps(PurpleBuddy *buddy, PurpleMediaCaps media_caps)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
449 {
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
450 PurpleBuddyPrivate *priv = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
451
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
452 g_return_if_fail(PURPLE_IS_BUDDY(buddy));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
453
39782
db027c5e1463 Fix broken `priv != NULL` checks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39676
diff changeset
454 priv = purple_buddy_get_instance_private(buddy);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
455 priv->media_caps = media_caps;
35010
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
456
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
457 g_object_notify_by_pspec(G_OBJECT(buddy),
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
458 properties[PROP_MEDIA_CAPS]);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
459 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
460
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
461 PurpleGroup *purple_buddy_get_group(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
462 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
463 g_return_val_if_fail(PURPLE_IS_BUDDY(buddy), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
464
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
465 if (PURPLE_BLIST_NODE(buddy)->parent == NULL)
35958
1d8446f396b6 blist: define default group better
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35470
diff changeset
466 return purple_blist_get_default_group();
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
467
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
468 return PURPLE_GROUP(PURPLE_BLIST_NODE(buddy)->parent->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
469 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
470
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
471 /******************************************************************************
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
472 * GObject Stuff
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
473 *****************************************************************************/
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
474 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
475 purple_buddy_set_property(GObject *obj, guint param_id, const GValue *value,
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
476 GParamSpec *pspec)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
477 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
478 PurpleBuddy *buddy = PURPLE_BUDDY(obj);
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
479 PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
480
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
481 switch (param_id) {
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
482 case PROP_NAME:
35090
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
483 if (priv->is_constructed)
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
484 purple_buddy_set_name(buddy, g_value_get_string(value));
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
485 else
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
486 priv->name =
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
487 purple_utf8_strip_unprintables(g_value_get_string(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
488 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
489 case PROP_LOCAL_ALIAS:
35090
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
490 if (priv->is_constructed)
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
491 purple_buddy_set_local_alias(buddy, g_value_get_string(value));
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
492 else
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
493 priv->local_alias =
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
494 purple_utf8_strip_unprintables(g_value_get_string(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
495 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
496 case PROP_SERVER_ALIAS:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
497 purple_buddy_set_server_alias(buddy, g_value_get_string(value));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
498 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
499 case PROP_ICON:
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
500 purple_buddy_set_icon(buddy, g_value_get_pointer(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
501 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
502 case PROP_ACCOUNT:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
503 priv->account = g_value_get_object(value);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
504 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
505 case PROP_MEDIA_CAPS:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
506 purple_buddy_set_media_caps(buddy, g_value_get_enum(value));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
507 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
508 default:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
509 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
510 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
511 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
512 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
513
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
514 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
515 purple_buddy_get_property(GObject *obj, guint param_id, GValue *value,
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
516 GParamSpec *pspec)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
517 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
518 PurpleBuddy *buddy = PURPLE_BUDDY(obj);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
519
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
520 switch (param_id) {
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
521 case PROP_NAME:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
522 g_value_set_string(value, purple_buddy_get_name(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
523 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
524 case PROP_LOCAL_ALIAS:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
525 g_value_set_string(value, purple_buddy_get_local_alias(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
526 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
527 case PROP_SERVER_ALIAS:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
528 g_value_set_string(value, purple_buddy_get_server_alias(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
529 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
530 case PROP_ICON:
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
531 g_value_set_pointer(value, purple_buddy_get_icon(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
532 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
533 case PROP_ACCOUNT:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
534 g_value_set_object(value, purple_buddy_get_account(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
535 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
536 case PROP_PRESENCE:
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34833
diff changeset
537 g_value_set_object(value, purple_buddy_get_presence(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
538 break;
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
539 case PROP_MEDIA_CAPS:
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
540 g_value_set_enum(value, purple_buddy_get_media_caps(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
541 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
542 default:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
543 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
544 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
545 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
546 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
547
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
548 static void
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
549 purple_buddy_init(PurpleBuddy *buddy)
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
550 {
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
551 }
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
552
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
553 static void
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
554 purple_buddy_constructed(GObject *object) {
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
555 PurpleBuddy *buddy = PURPLE_BUDDY(object);
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
556 PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
557
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
558 G_OBJECT_CLASS(purple_buddy_parent_class)->constructed(object);
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
559
34844
e341dbc04539 Refactored plugins, account, blistnodetypes to use the GObject presence API
Ankit Vani <a@nevitus.org>
parents: 34838
diff changeset
560 priv->presence = PURPLE_PRESENCE(purple_buddy_presence_new(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
561 purple_presence_set_status_active(priv->presence, "offline", TRUE);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
562
39676
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
563 purple_blist_new_node(purple_blist_get_default(),
1e8394d47205 Add list parameter to all buddy list UI ops.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39675
diff changeset
564 PURPLE_BLIST_NODE(buddy));
35090
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
565
c181fdc1ceac Make a few buddy, chat, group properties save data correctly on set_property after construction
Ankit Vani <a@nevitus.org>
parents: 35085
diff changeset
566 priv->is_constructed = TRUE;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
567 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
568
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
569 static void
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
570 purple_buddy_dispose(GObject *object) {
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
571 PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(PURPLE_BUDDY(object));
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
572
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
573 if (priv->icon) {
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
574 purple_buddy_icon_unref(priv->icon);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
575 priv->icon = NULL;
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
576 }
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
577
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
578 if (priv->presence) {
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
579 g_object_unref(priv->presence);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
580 priv->presence = NULL;
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
581 }
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
582
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
583 G_OBJECT_CLASS(purple_buddy_parent_class)->dispose(object);
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
584 }
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
585
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
586 static void
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
587 purple_buddy_finalize(GObject *object) {
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
588 PurpleBuddy *buddy = PURPLE_BUDDY(object);
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
589 PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
590 PurpleProtocol *protocol;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
591
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
592 /*
36637
9b0109ae118d Renamed some prpl stuff to protocol stuff.
Ankit Vani <a@nevitus.org>
parents: 36626
diff changeset
593 * Tell the owner protocol that we're about to free the buddy so it
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
594 * can free proto_data
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
595 */
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
596 protocol = purple_protocols_find(purple_account_get_protocol_id(priv->account));
40634
4d3018b00ad4 Fix the PurpleProtocolClient interface and split it out to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
597 if(protocol) {
4d3018b00ad4 Fix the PurpleProtocolClient interface and split it out to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
598 purple_protocol_client_buddy_free(PURPLE_PROTOCOL_CLIENT(protocol),
4d3018b00ad4 Fix the PurpleProtocolClient interface and split it out to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
599 buddy);
4d3018b00ad4 Fix the PurpleProtocolClient interface and split it out to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40537
diff changeset
600 }
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
601
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
602 g_free(priv->name);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
603 g_free(priv->local_alias);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
604 g_free(priv->server_alias);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
605
39432
4c9808e30b3e Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
606 G_OBJECT_CLASS(purple_buddy_parent_class)->finalize(object);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
607 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
608
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
609 static void purple_buddy_class_init(PurpleBuddyClass *klass) {
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
610 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
611
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
612 obj_class->dispose = purple_buddy_dispose;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
613 obj_class->finalize = purple_buddy_finalize;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
614
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
615 /* Setup properties */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
616 obj_class->get_property = purple_buddy_get_property;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
617 obj_class->set_property = purple_buddy_set_property;
34743
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
618 obj_class->constructed = purple_buddy_constructed;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
619
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
620 properties[PROP_NAME] = g_param_spec_string(
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
621 "name",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
622 "Name",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
623 "The name of the buddy.",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
624 NULL,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
625 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
626 );
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
627
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
628 properties[PROP_LOCAL_ALIAS] = g_param_spec_string(
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
629 "local-alias",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
630 "Local alias",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
631 "Local alias of thee buddy.",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
632 NULL,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
633 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
634 );
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
635
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
636 properties[PROP_SERVER_ALIAS] = g_param_spec_string(
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
637 "server-alias",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
638 "Server alias",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
639 "Server-side alias of the buddy.",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
640 NULL,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
641 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
642 );
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
643
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
644 properties[PROP_ICON] = g_param_spec_pointer(
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
645 "icon",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
646 "Buddy icon",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
647 "The icon for the buddy.",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
648 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
649 );
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
650
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
651 properties[PROP_ACCOUNT] = g_param_spec_object(
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
652 "account",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
653 "Account",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
654 "The account for the buddy.",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
655 PURPLE_TYPE_ACCOUNT,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
656 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
657 );
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
658
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
659 properties[PROP_PRESENCE] = g_param_spec_object(
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
660 "presence",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
661 "Presence",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
662 "The status information for the buddy.",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
663 PURPLE_TYPE_PRESENCE,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
664 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
665 );
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
666
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
667 properties[PROP_MEDIA_CAPS] = g_param_spec_enum(
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
668 "media-caps",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
669 "Media capabilities",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
670 "The media capabilities of the buddy.",
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
671 PURPLE_MEDIA_TYPE_CAPS, PURPLE_MEDIA_CAPS_NONE,
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
672 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
673 );
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
674
37948
2a8f41535c8f rename blistnodetypes.[ch] to buddy.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 37947
diff changeset
675 g_object_class_install_properties(obj_class, PROP_LAST, properties);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
676 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
677
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
678 PurpleBuddy *
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
679 purple_buddy_new(PurpleAccount *account, const char *name, const char *alias)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
680 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
681 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
682 g_return_val_if_fail(name != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
683
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
684 return g_object_new(PURPLE_TYPE_BUDDY,
35010
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
685 "account", account,
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
686 "name", name,
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
687 "local-alias", alias,
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
688 NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
689 }

mercurial