libpurple/blistnodetypes.c

Sat, 11 Jul 2015 14:45:46 -0400

author
James Geboski <jgeboski@gmail.com>
date
Sat, 11 Jul 2015 14:45:46 -0400
branch
facebook
changeset 37293
dc35ba3e7fac
parent 37143
728319cb659f
child 37944
e42e19eba593
permissions
-rw-r--r--

facebook: fixed all errors being marked as fatal

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"
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
24 #include "glibcompat.h"
34721
ad8974e1a268 Added includes and finished up blistnodetypes.c
Ankit Vani <a@nevitus.org>
parents: 34720
diff changeset
25 #include "dbus-maybe.h"
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
26 #include "debug.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 #define PURPLE_BUDDY_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
29 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_BUDDY, PurpleBuddyPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
30
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
31 typedef struct _PurpleBuddyPrivate PurpleBuddyPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
32
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
33 #define PURPLE_CONTACT_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
34 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CONTACT, PurpleContactPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
35
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
36 typedef struct _PurpleContactPrivate PurpleContactPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
37
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
38 #define PURPLE_GROUP_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
39 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_GROUP, PurpleGroupPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
40
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
41 typedef struct _PurpleGroupPrivate PurpleGroupPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
42
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
43 #define PURPLE_CHAT_GET_PRIVATE(obj) \
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
44 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CHAT, PurpleChatPrivate))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
45
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
46 typedef struct _PurpleChatPrivate PurpleChatPrivate;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
47
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
48 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
49 /* Private data */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
50 /**************************************************************************/
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
51 /* Private data for a buddy. */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
52 struct _PurpleBuddyPrivate {
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
53 char *name; /* The name of the buddy. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
54 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
55 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
56 (i.e. MSN "Friendly Names") */
37075
cf3f735b09b7 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 36999 35470
diff changeset
57 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
58 whatever data it wants with a buddy. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
59 PurpleBuddyIcon *icon; /* The buddy icon. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
60 PurpleAccount *account; /* the account this buddy belongs to */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
61 PurplePresence *presence; /* Presense information of the buddy */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
62 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
63
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
64 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
65 being constructed. */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
66 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
67
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
68 /* Buddy property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
69 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
70 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
71 BUDDY_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
72 BUDDY_PROP_NAME,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
73 BUDDY_PROP_LOCAL_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
74 BUDDY_PROP_SERVER_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
75 BUDDY_PROP_ICON,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
76 BUDDY_PROP_ACCOUNT,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
77 BUDDY_PROP_PRESENCE,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
78 BUDDY_PROP_MEDIA_CAPS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
79 BUDDY_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
80 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
81
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
82 /* Private data for a contact */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
83 struct _PurpleContactPrivate {
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
84 char *alias; /* The user-set alias of the contact */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
85 PurpleBuddy *priority_buddy; /* The "top" buddy for this contact */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
86 gboolean priority_valid; /* Is priority valid? */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
87 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
88
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
89 /* Contact property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
90 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
91 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
92 CONTACT_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
93 CONTACT_PROP_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
94 CONTACT_PROP_PRIORITY_BUDDY,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
95 CONTACT_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
96 };
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
97
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
98 /* Private data for a group */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
99 struct _PurpleGroupPrivate {
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
100 char *name; /* The name of this group. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
101 gboolean is_constructed; /* Indicates if the group has finished being
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
102 constructed. */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
103 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
104
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
105 /* Group property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
106 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
107 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
108 GROUP_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
109 GROUP_PROP_NAME,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
110 GROUP_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
111 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
112
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
113 /* Private data for a chat node */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
114 struct _PurpleChatPrivate {
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
115 char *alias; /* The display name of this chat. */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
116 PurpleAccount *account; /* The account this chat is attached to */
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
117 GHashTable *components; /* the stuff the protocol needs to know to
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
118 join the chat */
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
119
35470
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
120 gboolean is_constructed; /* Indicates if the chat has finished being
8ee08a41f2f3 Convert some other doxygen-type comments
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
121 constructed. */
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
122 };
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
123
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
124 /* Chat property enums */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
125 enum
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
126 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
127 CHAT_PROP_0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
128 CHAT_PROP_ALIAS,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
129 CHAT_PROP_ACCOUNT,
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
130 CHAT_PROP_COMPONENTS,
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
131 CHAT_PROP_LAST
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
132 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
133
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
134 static PurpleBlistNode *blistnode_parent_class;
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
135 static PurpleCountingNode *counting_parent_class;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
136
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
137 static GParamSpec *bd_properties[BUDDY_PROP_LAST];
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
138 static GParamSpec *co_properties[CONTACT_PROP_LAST];
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
139 static GParamSpec *gr_properties[GROUP_PROP_LAST];
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
140 static GParamSpec *ch_properties[CHAT_PROP_LAST];
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
141
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
142 static gboolean
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
143 purple_strings_are_different(const char *one, const char *two)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
144 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
145 return !((one && two && g_utf8_collate(one, two) == 0) ||
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
146 ((one == NULL || *one == '\0') && (two == NULL || *two == '\0')));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
147 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
148
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
149 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
150 /* Buddy API */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
151 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
152
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
153 void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
154 purple_buddy_set_icon(PurpleBuddy *buddy, PurpleBuddyIcon *icon)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
155 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
156 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
157 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
158
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
159 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
160
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
161 if (priv->icon != icon)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
162 {
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
163 purple_buddy_icon_unref(priv->icon);
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
164 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
165
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
166 g_object_notify_by_pspec(G_OBJECT(buddy),
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
167 bd_properties[BUDDY_PROP_ICON]);
34707
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
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
170 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
171
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
172 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
173 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
174 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
175
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
176 PurpleBuddyIcon *
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
177 purple_buddy_get_icon(const PurpleBuddy *buddy)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
178 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
179 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
180
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
181 g_return_val_if_fail(priv != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
182
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
183 return priv->icon;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
184 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
185
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
186 PurpleAccount *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
187 purple_buddy_get_account(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
188 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
189 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
190
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
191 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
192
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
193 return priv->account;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
194 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
195
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
196 void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
197 purple_buddy_set_name(PurpleBuddy *buddy, const char *name)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
198 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
199 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
200 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
201
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
202 g_return_if_fail(priv != NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
203
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
204 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
205
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
206 g_free(priv->name);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
207 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
208
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
209 g_object_notify_by_pspec(G_OBJECT(buddy), bd_properties[BUDDY_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
210
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
211 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
212 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
213 ops->save_node(PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
214 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
215 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
216 }
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
217 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
218
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
219 const char *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
220 purple_buddy_get_name(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
221 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
222 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
223
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
224 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
225
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
226 return priv->name;
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
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
229 gpointer
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
230 purple_buddy_get_protocol_data(const PurpleBuddy *buddy)
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 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
233
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
234 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
235
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
236 return priv->proto_data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
237 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
238
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
239 void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
240 purple_buddy_set_protocol_data(PurpleBuddy *buddy, gpointer data)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
241 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
242 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
243
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
244 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
245
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
246 priv->proto_data = data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
247 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
248
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
249 const char *purple_buddy_get_alias_only(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
250 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
251 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
252
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
253 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
254
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
255 if ((priv->local_alias != NULL) && (*priv->local_alias != '\0')) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
256 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
257 } else if ((priv->server_alias != NULL) &&
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
258 (*priv->server_alias != '\0')) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
259
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
260 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
261 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
262
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
263 return NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
264 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
265
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
266 const char *purple_buddy_get_contact_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
267 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
268 PurpleContact *c;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
269 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
270
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
271 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
272
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
273 /* Search for an alias for the buddy. In order of precedence: */
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
274 /* The local buddy alias */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
275 if (priv->local_alias != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
276 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
277
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
278 /* The contact alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
279 c = purple_buddy_get_contact(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
280 if ((c != NULL) && (purple_contact_get_alias(c) != NULL))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
281 return purple_contact_get_alias(c);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
282
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
283 /* The server alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
284 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
285 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
286
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
287 /* The buddy's user name (i.e. no alias) */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
288 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
289 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
290
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
291 const char *purple_buddy_get_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
292 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
293 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
294
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
295 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
296
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
297 /* 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
298 /* The buddy alias */
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
299 if (priv->local_alias != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
300 return priv->local_alias;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
301
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
302 /* The server alias */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
303 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
304 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
305
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
306 /* The buddy's user name (i.e. no alias) */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
307 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
308 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
309
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
310 void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
311 purple_buddy_set_local_alias(PurpleBuddy *buddy, const char *alias)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
312 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
313 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
314 PurpleIMConversation *im;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
315 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
316 char *new_alias = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
317 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
318
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
319 g_return_if_fail(priv != NULL);
34727
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 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
322 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
323
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
324 if (!purple_strings_are_different(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
325 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
326 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
327 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
328
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
329 old_alias = priv->local_alias;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
330
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
331 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
332 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
333 else {
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
334 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
335 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
336 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
337
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
338 g_object_notify_by_pspec(G_OBJECT(buddy),
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
339 bd_properties[BUDDY_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
340
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
341 if (ops && ops->save_node)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
342 ops->save_node(PURPLE_BLIST_NODE(buddy));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
343
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
344 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
345 ops->update(purple_blist_get_buddy_list(), 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
346
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
347 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
348 priv->account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
349 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
350 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
351
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
352 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
353 buddy, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
354 g_free(old_alias);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
355 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
356
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
357 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
358 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
359 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
360
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
361 g_return_val_if_fail(priv != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
362
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
363 return priv->local_alias;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
364 }
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
365
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
366 void
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
367 purple_buddy_set_server_alias(PurpleBuddy *buddy, const char *alias)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
368 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
369 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
370 PurpleIMConversation *im;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
371 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
372 char *new_alias = NULL;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
373 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
374
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
375 g_return_if_fail(priv != NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
376
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
377 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
378 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
379
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
380 if (!purple_strings_are_different(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
381 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
382 return;
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
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
385 old_alias = priv->server_alias;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
386
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
387 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
388 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
389 else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
390 priv->server_alias = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
391 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
392 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
393
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
394 g_object_notify_by_pspec(G_OBJECT(buddy),
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
395 bd_properties[BUDDY_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
396
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
397 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
398 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
399 ops->save_node(PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
400 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
401 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
402 }
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
403
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
404 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
405 priv->account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
406 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
407 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
408
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
409 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
410 buddy, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
411 g_free(old_alias);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
412 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
413
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
414 const char *purple_buddy_get_server_alias(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
415 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
416 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
417
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
418 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
419
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
420 if ((priv->server_alias) && (*priv->server_alias))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
421 return priv->server_alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
422
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
423 return NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
424 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
425
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
426 PurpleContact *purple_buddy_get_contact(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
427 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
428 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
429
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
430 return PURPLE_CONTACT(PURPLE_BLIST_NODE(buddy)->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
431 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
432
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
433 PurplePresence *purple_buddy_get_presence(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
434 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
435 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
436
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
437 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
438
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
439 return priv->presence;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
440 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
441
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
442 void
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34727
diff changeset
443 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
444 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
445 PurpleStatus *status;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
446 PurpleBlistNode *cnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
447 PurpleContact *contact;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
448 PurpleCountingNode *contact_counter, *group_counter;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
449 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
450 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
451
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
452 g_return_if_fail(priv != NULL);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
453
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
454 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
455
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
456 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
457 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
458
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
459 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
460 !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
461
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
462 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
463
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
464 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
465 contact = PURPLE_CONTACT(cnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
466 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
467 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
468
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
469 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
470 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
471 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
472 } 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
473 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
474
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
475 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
476 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
477
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
478 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
479 contact = PURPLE_CONTACT(cnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
480 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
481 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
482
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
483 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
484 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
485 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
486 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
487 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
488 "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
489 status);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
490 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
491
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
492 /*
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
493 * 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
494 * 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
495 * 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
496 * 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
497 *
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
498 * 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
499 * 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
500 * 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
501 */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
502 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
503
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
504 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
505 ops->update(purple_blist_get_buddy_list(), 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
506 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
507
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
508 PurpleMediaCaps purple_buddy_get_media_caps(const PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
509 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
510 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
511
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
512 g_return_val_if_fail(priv != NULL, 0);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
513
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
514 return priv->media_caps;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
515 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
516
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
517 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
518 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
519 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
520
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
521 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
522
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
523 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
524
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
525 g_object_notify_by_pspec(G_OBJECT(buddy),
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
526 bd_properties[BUDDY_PROP_MEDIA_CAPS]);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
527 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
528
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
529 PurpleGroup *purple_buddy_get_group(PurpleBuddy *buddy)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
530 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
531 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
532
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
533 if (PURPLE_BLIST_NODE(buddy)->parent == NULL)
35958
1d8446f396b6 blist: define default group better
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35470
diff changeset
534 return purple_blist_get_default_group();
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
535
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
536 return PURPLE_GROUP(PURPLE_BLIST_NODE(buddy)->parent->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
537 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
538
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
539 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
540 * GObject code for PurpleBuddy
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
541 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
542
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
543 /* Set method for GObject properties */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
544 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
545 purple_buddy_set_property(GObject *obj, guint param_id, const GValue *value,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
546 GParamSpec *pspec)
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 PurpleBuddy *buddy = PURPLE_BUDDY(obj);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
549 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
550
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
551 switch (param_id) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
552 case BUDDY_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
553 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
554 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
555 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
556 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
557 purple_utf8_strip_unprintables(g_value_get_string(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
558 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
559 case BUDDY_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
560 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
561 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
562 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
563 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
564 purple_utf8_strip_unprintables(g_value_get_string(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
565 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
566 case BUDDY_PROP_SERVER_ALIAS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
567 purple_buddy_set_server_alias(buddy, g_value_get_string(value));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
568 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
569 case BUDDY_PROP_ICON:
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
570 purple_buddy_set_icon(buddy, g_value_get_pointer(value));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
571 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
572 case BUDDY_PROP_ACCOUNT:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
573 priv->account = g_value_get_object(value);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
574 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
575 case BUDDY_PROP_MEDIA_CAPS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
576 purple_buddy_set_media_caps(buddy, g_value_get_enum(value));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
577 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
578 default:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
579 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
580 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
581 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
582 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
583
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
584 /* Get method for GObject properties */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
585 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
586 purple_buddy_get_property(GObject *obj, guint param_id, GValue *value,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
587 GParamSpec *pspec)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
588 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
589 PurpleBuddy *buddy = PURPLE_BUDDY(obj);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
590
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
591 switch (param_id) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
592 case BUDDY_PROP_NAME:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
593 g_value_set_string(value, purple_buddy_get_name(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
594 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
595 case BUDDY_PROP_LOCAL_ALIAS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
596 g_value_set_string(value, purple_buddy_get_local_alias(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
597 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
598 case BUDDY_PROP_SERVER_ALIAS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
599 g_value_set_string(value, purple_buddy_get_server_alias(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
600 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
601 case BUDDY_PROP_ICON:
34831
da607046d658 Backed out changeset d9b286af48ba
Ankit Vani <a@nevitus.org>
parents: 34830
diff changeset
602 g_value_set_pointer(value, purple_buddy_get_icon(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
603 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
604 case BUDDY_PROP_ACCOUNT:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
605 g_value_set_object(value, purple_buddy_get_account(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
606 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
607 case BUDDY_PROP_PRESENCE:
34836
289bc0df25bb API changes for PurplePresence. See details.
Ankit Vani <a@nevitus.org>
parents: 34833
diff changeset
608 g_value_set_object(value, purple_buddy_get_presence(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
609 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
610 case BUDDY_PROP_MEDIA_CAPS:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
611 g_value_set_enum(value, purple_buddy_get_media_caps(buddy));
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
612 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
613 default:
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
614 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
615 break;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
616 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
617 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
618
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
619 /* GObject initialization function */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
620 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
621 purple_buddy_init(GTypeInstance *instance, gpointer klass)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
622 {
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
623 PURPLE_DBUS_REGISTER_POINTER(PURPLE_BUDDY(instance), PurpleBuddy);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
624 }
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
625
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
626 /* Called when done constructing */
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
627 static void
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
628 purple_buddy_constructed(GObject *object)
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
629 {
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
630 PurpleBuddy *buddy = PURPLE_BUDDY(object);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
631 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
632 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
633
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
634 G_OBJECT_CLASS(blistnode_parent_class)->constructed(object);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
635
34844
e341dbc04539 Refactored plugins, account, blistnodetypes to use the GObject presence API
Ankit Vani <a@nevitus.org>
parents: 34838
diff changeset
636 priv->presence = PURPLE_PRESENCE(purple_buddy_presence_new(buddy));
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
637 purple_presence_set_status_active(priv->presence, "offline", TRUE);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
638
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
639 if (ops && ops->new_node)
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
640 ops->new_node((PurpleBlistNode *)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
641
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
642 priv->is_constructed = TRUE;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
643 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
644
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
645 /* GObject dispose function */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
646 static void
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
647 purple_buddy_dispose(GObject *object)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
648 {
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
649 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(object);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
650
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
651 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
652 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
653 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
654 }
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
655
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
656 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
657 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
658 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
659 }
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
660
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
661 G_OBJECT_CLASS(blistnode_parent_class)->dispose(object);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
662 }
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
663
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
664 /* GObject finalize function */
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
665 static void
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
666 purple_buddy_finalize(GObject *object)
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
667 {
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
668 PurpleBuddy *buddy = PURPLE_BUDDY(object);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
669 PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
670 PurpleProtocol *protocol;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
671
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
672 /*
36637
9b0109ae118d Renamed some prpl stuff to protocol stuff.
Ankit Vani <a@nevitus.org>
parents: 36626
diff changeset
673 * 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
674 * can free proto_data
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
675 */
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
676 protocol = purple_protocols_find(purple_account_get_protocol_id(priv->account));
36610
3d99b9c0bf90 Refactored account, blist, buddyicon, connection, conversation, presence to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
677 if (protocol)
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36688
diff changeset
678 purple_protocol_client_iface_buddy_free(protocol, buddy);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
679
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
680 g_free(priv->name);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
681 g_free(priv->local_alias);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
682 g_free(priv->server_alias);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
683
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
684 PURPLE_DBUS_UNREGISTER_POINTER(buddy);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
685
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
686 G_OBJECT_CLASS(blistnode_parent_class)->finalize(object);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
687 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
688
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
689 /* Class initializer function */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
690 static void purple_buddy_class_init(PurpleBuddyClass *klass)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
691 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
692 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
693
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
694 blistnode_parent_class = g_type_class_peek_parent(klass);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
695
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
696 obj_class->dispose = purple_buddy_dispose;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
697 obj_class->finalize = purple_buddy_finalize;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
698
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
699 /* Setup properties */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
700 obj_class->get_property = purple_buddy_get_property;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
701 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
702 obj_class->constructed = purple_buddy_constructed;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
703
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
704 g_type_class_add_private(klass, sizeof(PurpleBuddyPrivate));
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
705
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
706 bd_properties[BUDDY_PROP_NAME] = g_param_spec_string("name", "Name",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
707 "The name of the buddy.", NULL,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
708 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
709
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
710 bd_properties[BUDDY_PROP_LOCAL_ALIAS] = g_param_spec_string("local-alias",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
711 "Local alias",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
712 "Local alias of thee buddy.", NULL,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
713 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
714
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
715 bd_properties[BUDDY_PROP_SERVER_ALIAS] = g_param_spec_string("server-alias",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
716 "Server alias",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
717 "Server-side alias of the buddy.", NULL,
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
718 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
719
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
720 bd_properties[BUDDY_PROP_ICON] = g_param_spec_pointer("icon", "Buddy icon",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
721 "The icon for the buddy.",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
722 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
723
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
724 bd_properties[BUDDY_PROP_ACCOUNT] = g_param_spec_object("account",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
725 "Account",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
726 "The account for the buddy.", PURPLE_TYPE_ACCOUNT,
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
727 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
728 G_PARAM_STATIC_STRINGS);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
729
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
730 bd_properties[BUDDY_PROP_PRESENCE] = g_param_spec_object("presence",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
731 "Presence",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
732 "The status information for the buddy.", PURPLE_TYPE_PRESENCE,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
733 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
734
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
735 bd_properties[BUDDY_PROP_MEDIA_CAPS] = g_param_spec_enum("media-caps",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
736 "Media capabilities",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
737 "The media capabilities of the buddy.",
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
738 PURPLE_MEDIA_TYPE_CAPS, PURPLE_MEDIA_CAPS_NONE,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
739 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
740
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
741 g_object_class_install_properties(obj_class, BUDDY_PROP_LAST,
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
742 bd_properties);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
743 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
744
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
745 GType
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
746 purple_buddy_get_type(void)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
747 {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
748 static GType type = 0;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
749
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
750 if(type == 0) {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
751 static const GTypeInfo info = {
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
752 sizeof(PurpleBuddyClass),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
753 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
754 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
755 (GClassInitFunc)purple_buddy_class_init,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
756 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
757 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
758 sizeof(PurpleBuddy),
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
759 0,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
760 (GInstanceInitFunc)purple_buddy_init,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
761 NULL,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
762 };
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
763
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
764 type = g_type_register_static(PURPLE_TYPE_BLIST_NODE,
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
765 "PurpleBuddy",
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
766 &info, 0);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
767 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
768
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
769 return type;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
770 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
771
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
772 PurpleBuddy *
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
773 purple_buddy_new(PurpleAccount *account, const char *name, const char *alias)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
774 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
775 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
776 g_return_val_if_fail(name != NULL, NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
777
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
778 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
779 "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
780 "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
781 "local-alias", alias,
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
782 NULL);
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
783 }
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
784
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
785 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
786 /* Contact API */
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
787 /**************************************************************************/
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
788
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
789 static void
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
790 purple_contact_compute_priority_buddy(PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
791 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
792 PurpleBlistNode *bnode;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
793 PurpleBuddy *new_priority = NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
794 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
795
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
796 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
797
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
798 priv->priority_buddy = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
799 for (bnode = PURPLE_BLIST_NODE(contact)->child;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
800 bnode != NULL;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
801 bnode = bnode->next)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
802 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
803 PurpleBuddy *buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
804
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
805 if (!PURPLE_IS_BUDDY(bnode))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
806 continue;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
807
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
808 buddy = PURPLE_BUDDY(bnode);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
809 if (new_priority == NULL)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
810 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
811 new_priority = buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
812 continue;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
813 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
814
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
815 if (purple_account_is_connected(purple_buddy_get_account(buddy)))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
816 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
817 int cmp = 1;
34721
ad8974e1a268 Added includes and finished up blistnodetypes.c
Ankit Vani <a@nevitus.org>
parents: 34720
diff changeset
818 if (purple_account_is_connected(purple_buddy_get_account(new_priority)))
34846
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34844
diff changeset
819 cmp = purple_buddy_presence_compare(
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34844
diff changeset
820 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(new_priority)),
dea8dd8343d5 Added GObject code to presenses.c.
Ankit Vani <a@nevitus.org>
parents: 34844
diff changeset
821 PURPLE_BUDDY_PRESENCE(purple_buddy_get_presence(buddy)));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
822
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
823 if (cmp > 0 || (cmp == 0 &&
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
824 purple_prefs_get_bool("/purple/contact/last_match")))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
825 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
826 new_priority = buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
827 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
828 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
829 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
830
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
831 priv->priority_buddy = new_priority;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
832 priv->priority_valid = TRUE;
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
833
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
834 g_object_notify_by_pspec(G_OBJECT(contact),
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
835 co_properties[CONTACT_PROP_PRIORITY_BUDDY]);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
836 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
837
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
838 PurpleGroup *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
839 purple_contact_get_group(const PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
840 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
841 g_return_val_if_fail(PURPLE_IS_CONTACT(contact), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
842
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
843 return PURPLE_GROUP(PURPLE_BLIST_NODE(contact)->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
844 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
845
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
846 void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
847 purple_contact_set_alias(PurpleContact *contact, const char *alias)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
848 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
849 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
850 PurpleIMConversation *im;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
851 PurpleBlistNode *bnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
852 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
853 char *new_alias = NULL;
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
854 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
855
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
856 g_return_if_fail(priv != NULL);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
857
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
858 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
859 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
860
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
861 if (!purple_strings_are_different(priv->alias, new_alias)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
862 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
863 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
864 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
865
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
866 old_alias = priv->alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
867
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
868 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
869 priv->alias = new_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
870 else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
871 priv->alias = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
872 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
873 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
874
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
875 g_object_notify_by_pspec(G_OBJECT(contact),
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
876 co_properties[CONTACT_PROP_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
877
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
878 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
879 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
880 ops->save_node(PURPLE_BLIST_NODE(contact));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
881 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
882 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(contact));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
883 }
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
884
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
885 for(bnode = PURPLE_BLIST_NODE(contact)->child; bnode != NULL; bnode = bnode->next)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
886 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
887 PurpleBuddy *buddy = PURPLE_BUDDY(bnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
888
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
889 im = purple_conversations_find_im_with_account(purple_buddy_get_name(buddy),
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
890 purple_buddy_get_account(buddy));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
891 if (im)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
892 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
893 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
894
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
895 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
896 contact, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
897 g_free(old_alias);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
898 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
899
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
900 const char *purple_contact_get_alias(PurpleContact* contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
901 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
902 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
903
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
904 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
905
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
906 if (priv->alias)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
907 return priv->alias;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
908
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
909 return purple_buddy_get_alias(purple_contact_get_priority_buddy(contact));
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
910 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
911
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
912 gboolean purple_contact_on_account(PurpleContact *c, PurpleAccount *account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
913 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
914 PurpleBlistNode *bnode, *cnode = (PurpleBlistNode *) c;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
915
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
916 g_return_val_if_fail(PURPLE_IS_CONTACT(c), FALSE);
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
917 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), FALSE);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
918
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
919 for (bnode = cnode->child; bnode; bnode = bnode->next) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
920 PurpleBuddy *buddy;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
921
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
922 if (! PURPLE_IS_BUDDY(bnode))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
923 continue;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
924
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
925 buddy = (PurpleBuddy *)bnode;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
926 if (purple_buddy_get_account(buddy) == account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
927 return TRUE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
928 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
929 return FALSE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
930 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
931
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
932 void purple_contact_invalidate_priority_buddy(PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
933 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
934 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
935
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
936 g_return_if_fail(priv != NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
937
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
938 priv->priority_valid = FALSE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
939 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
940
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
941 PurpleBuddy *purple_contact_get_priority_buddy(PurpleContact *contact)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
942 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
943 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
944
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
945 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
946
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
947 if (!priv->priority_valid)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
948 purple_contact_compute_priority_buddy(contact);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
949
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
950 return priv->priority_buddy;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
951 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
952
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
953 void purple_contact_merge(PurpleContact *source, PurpleBlistNode *node)
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
954 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
955 PurpleBlistNode *sourcenode = (PurpleBlistNode*)source;
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
956 PurpleBlistNode *prev, *cur, *next;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
957 PurpleContact *target;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
958
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
959 g_return_if_fail(PURPLE_IS_CONTACT(source));
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
960 g_return_if_fail(PURPLE_IS_BLIST_NODE(node));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
961
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
962 if (PURPLE_IS_CONTACT(node)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
963 target = (PurpleContact *)node;
34767
38a5613c3e26 Prepended functions private to a subsystem but used over multiple files by underscore
Ankit Vani <a@nevitus.org>
parents: 34744
diff changeset
964 prev = _purple_blist_get_last_child(node);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
965 } else if (PURPLE_IS_BUDDY(node)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
966 target = (PurpleContact *)node->parent;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
967 prev = node;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
968 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
969 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
970 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
971
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
972 if (source == target || !target)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
973 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
974
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
975 next = sourcenode->child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
976
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
977 while (next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
978 cur = next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
979 next = cur->next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
980 if (PURPLE_IS_BUDDY(cur)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
981 purple_blist_add_buddy((PurpleBuddy *)cur, target, NULL, prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
982 prev = cur;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
983 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
984 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
985 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
986
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
987 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
988 * GObject code for PurpleContact
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
989 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
990
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
991 /* Set method for GObject properties */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
992 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
993 purple_contact_set_property(GObject *obj, guint param_id, const GValue *value,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
994 GParamSpec *pspec)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
995 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
996 PurpleContact *contact = PURPLE_CONTACT(obj);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
997
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
998 switch (param_id) {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
999 case CONTACT_PROP_ALIAS:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1000 purple_contact_set_alias(contact, g_value_get_string(value));
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1001 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1002 default:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1003 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1004 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1005 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1006 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1007
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1008 /* Get method for GObject properties */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1009 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1010 purple_contact_get_property(GObject *obj, guint param_id, GValue *value,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1011 GParamSpec *pspec)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1012 {
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1013 PurpleContact *contact = PURPLE_CONTACT(obj);
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1014 PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1015
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1016 switch (param_id) {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1017 case CONTACT_PROP_ALIAS:
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1018 g_value_set_string(value, priv->alias);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1019 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1020 case CONTACT_PROP_PRIORITY_BUDDY:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1021 g_value_set_object(value, purple_contact_get_priority_buddy(contact));
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1022 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1023 default:
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1024 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1025 break;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1026 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1027 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1028
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1029 /* GObject initialization function */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1030 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1031 purple_contact_init(GTypeInstance *instance, gpointer klass)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1032 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1033 PurpleContact *contact = PURPLE_CONTACT(instance);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1034 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1035
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1036 if (ops && ops->new_node)
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1037 ops->new_node(PURPLE_BLIST_NODE(contact));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1038
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1039 PURPLE_DBUS_REGISTER_POINTER(contact, PurpleContact);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1040 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1041
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1042 /* GObject finalize function */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1043 static void
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1044 purple_contact_finalize(GObject *object)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1045 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1046 g_free(PURPLE_CONTACT_GET_PRIVATE(object)->alias);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1047
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1048 PURPLE_DBUS_UNREGISTER_POINTER(object);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1049
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1050 G_OBJECT_CLASS(counting_parent_class)->finalize(object);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1051 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1052
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1053 /* Class initializer function */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1054 static void purple_contact_class_init(PurpleContactClass *klass)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1055 {
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1056 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1057
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1058 counting_parent_class = g_type_class_peek_parent(klass);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1059
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1060 obj_class->finalize = purple_contact_finalize;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1061
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1062 /* Setup properties */
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1063 obj_class->get_property = purple_contact_get_property;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1064 obj_class->set_property = purple_contact_set_property;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1065
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1066 g_type_class_add_private(klass, sizeof(PurpleContactPrivate));
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1067
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1068 co_properties[CONTACT_PROP_ALIAS] = g_param_spec_string("alias", "Alias",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
1069 "The alias for the contact.", NULL,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1070 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1071
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1072 co_properties[CONTACT_PROP_PRIORITY_BUDDY] = g_param_spec_object(
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1073 "priority-buddy",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
1074 "Priority buddy", "The priority buddy of the contact.",
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1075 PURPLE_TYPE_BUDDY, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1076
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1077 g_object_class_install_properties(obj_class, CONTACT_PROP_LAST,
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1078 co_properties);
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1079 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1080
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1081 GType
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1082 purple_contact_get_type(void)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1083 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1084 static GType type = 0;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1085
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1086 if(type == 0) {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1087 static const GTypeInfo info = {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1088 sizeof(PurpleContactClass),
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1089 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1090 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1091 (GClassInitFunc)purple_contact_class_init,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1092 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1093 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1094 sizeof(PurpleContact),
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1095 0,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1096 (GInstanceInitFunc)purple_contact_init,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1097 NULL,
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1098 };
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1099
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1100 type = g_type_register_static(PURPLE_TYPE_COUNTING_NODE,
34718
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1101 "PurpleContact",
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1102 &info, 0);
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1103 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1104
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1105 return type;
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1106 }
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1107
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1108 PurpleContact *
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1109 purple_contact_new(void)
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1110 {
aa2019a5ccec GObjectified PurpleContact.
Ankit Vani <a@nevitus.org>
parents: 34716
diff changeset
1111 return g_object_new(PURPLE_TYPE_CONTACT, NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1112 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1113
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1114 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1115 /* Chat API */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1116 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1117
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1118 const char *purple_chat_get_name(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1119 {
34737
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1120 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1121
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1122 g_return_val_if_fail(priv != NULL, NULL);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1123
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1124 if ((priv->alias != NULL) && (*priv->alias != '\0'))
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1125 return priv->alias;
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1126
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1127 return purple_chat_get_name_only(chat);
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1128 }
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1129
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1130 const char *purple_chat_get_name_only(PurpleChat *chat)
60d32106f808 Refactored finch to use the GObject BList API. Added purple_chat_get_name_only().
Ankit Vani <a@nevitus.org>
parents: 34730
diff changeset
1131 {
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1132 char *ret = NULL;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
1133 PurpleProtocol *protocol = NULL;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1134 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1135
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1136 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1137
36626
18fc361b3704 Renamed purple_find_protocol_info to purple_protocols_find
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
1138 protocol = purple_protocols_find(purple_account_get_protocol_id(priv->account));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1139
36720
465f02116328 Refactored account, blistnodetypes, buddylist, connection to use the new protocol interfaces
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
1140 if (PURPLE_PROTOCOL_IMPLEMENTS(protocol, CHAT_IFACE, info)) {
36555
fc17a4351e63 Replaced struct proto_chat_entry with PurpleProtocolChatEntry
Ankit Vani <a@nevitus.org>
parents: 36544
diff changeset
1141 PurpleProtocolChatEntry *pce;
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36688
diff changeset
1142 GList *parts = purple_protocol_chat_iface_info(protocol, purple_account_get_connection(priv->account));
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1143 pce = parts->data;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1144 ret = g_hash_table_lookup(priv->components, pce->identifier);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1145 g_list_foreach(parts, (GFunc)g_free, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1146 g_list_free(parts);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1147 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1148
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1149 return ret;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1150 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1151
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1152 void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1153 purple_chat_set_alias(PurpleChat *chat, const char *alias)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1154 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1155 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1156 char *old_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1157 char *new_alias = NULL;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1158 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1159
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1160 g_return_if_fail(priv != NULL);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1161
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1162 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
1163 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
1164
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1165 if (!purple_strings_are_different(priv->alias, new_alias)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1166 g_free(new_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1167 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1168 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1169
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1170 old_alias = priv->alias;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1171
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1172 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
1173 priv->alias = new_alias;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1174 else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1175 priv->alias = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1176 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
1177 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1178
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1179 g_object_notify_by_pspec(G_OBJECT(chat), ch_properties[CHAT_PROP_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
1180
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1181 if (ops) {
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1182 if (ops->save_node)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1183 ops->save_node(PURPLE_BLIST_NODE(chat));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1184 if (ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1185 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(chat));
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1186 }
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1187
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1188 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
1189 chat, old_alias);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1190 g_free(old_alias);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1191 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1192
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1193 PurpleGroup *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1194 purple_chat_get_group(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1195 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
1196 g_return_val_if_fail(PURPLE_IS_CHAT(chat), NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1197
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1198 return PURPLE_GROUP(PURPLE_BLIST_NODE(chat)->parent);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1199 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1200
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1201 PurpleAccount *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1202 purple_chat_get_account(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1203 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1204 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1205
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1206 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1207
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1208 return priv->account;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1209 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1210
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1211 GHashTable *
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1212 purple_chat_get_components(PurpleChat *chat)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1213 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1214 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1215
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1216 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1217
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1218 return priv->components;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1219 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1220
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1221 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1222 * GObject code for PurpleChat
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1223 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1224
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1225 /* Set method for GObject properties */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1226 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1227 purple_chat_set_property(GObject *obj, guint param_id, const GValue *value,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1228 GParamSpec *pspec)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1229 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1230 PurpleChat *chat = PURPLE_CHAT(obj);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1231 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1232
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1233 switch (param_id) {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1234 case CHAT_PROP_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
1235 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
1236 purple_chat_set_alias(chat, 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
1237 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
1238 priv->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
1239 purple_utf8_strip_unprintables(g_value_get_string(value));
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1240 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1241 case CHAT_PROP_ACCOUNT:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1242 priv->account = g_value_get_object(value);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1243 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1244 case CHAT_PROP_COMPONENTS:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1245 priv->components = g_value_get_pointer(value);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1246 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1247 default:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1248 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1249 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1250 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1251 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1252
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1253 /* Get method for GObject properties */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1254 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1255 purple_chat_get_property(GObject *obj, guint param_id, GValue *value,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1256 GParamSpec *pspec)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1257 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1258 PurpleChat *chat = PURPLE_CHAT(obj);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1259 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1260
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1261 switch (param_id) {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1262 case CHAT_PROP_ALIAS:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1263 g_value_set_string(value, priv->alias);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1264 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1265 case CHAT_PROP_ACCOUNT:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1266 g_value_set_object(value, purple_chat_get_account(chat));
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1267 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1268 case CHAT_PROP_COMPONENTS:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1269 g_value_set_pointer(value, purple_chat_get_components(chat));
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1270 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1271 default:
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1272 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1273 break;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1274 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1275 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1276
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1277 /* GObject initialization function */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1278 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1279 purple_chat_init(GTypeInstance *instance, gpointer klass)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1280 {
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
1281 PURPLE_DBUS_REGISTER_POINTER(PURPLE_CHAT(instance), PurpleChat);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1282 }
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1283
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1284 /* Called when done constructing */
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1285 static void
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1286 purple_chat_constructed(GObject *object)
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1287 {
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1288 PurpleChat *chat = PURPLE_CHAT(object);
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
1289 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1290 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1291
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
1292 G_OBJECT_CLASS(blistnode_parent_class)->constructed(object);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1293
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1294 if (ops != NULL && ops->new_node != NULL)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1295 ops->new_node(PURPLE_BLIST_NODE(chat));
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
1296
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
1297 priv->is_constructed = TRUE;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1298 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1299
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1300 /* GObject finalize function */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1301 static void
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1302 purple_chat_finalize(GObject *object)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1303 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1304 PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(object);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1305
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1306 g_free(priv->alias);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1307 g_hash_table_destroy(priv->components);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1308
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1309 PURPLE_DBUS_UNREGISTER_POINTER(object);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1310
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1311 G_OBJECT_CLASS(blistnode_parent_class)->finalize(object);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1312 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1313
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1314 /* Class initializer function */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1315 static void purple_chat_class_init(PurpleChatClass *klass)
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1316 {
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1317 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1318
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1319 blistnode_parent_class = g_type_class_peek_parent(klass);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1320
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1321 obj_class->finalize = purple_chat_finalize;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1322
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1323 /* Setup properties */
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1324 obj_class->get_property = purple_chat_get_property;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1325 obj_class->set_property = purple_chat_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
1326 obj_class->constructed = purple_chat_constructed;
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1327
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1328 g_type_class_add_private(klass, sizeof(PurpleChatPrivate));
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1329
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1330 ch_properties[CHAT_PROP_ALIAS] = g_param_spec_string("alias", "Alias",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
1331 "The alias for the chat.", NULL,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1332 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1333
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1334 ch_properties[CHAT_PROP_ACCOUNT] = g_param_spec_object("account", "Account",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
1335 "The account that the chat belongs to.", PURPLE_TYPE_ACCOUNT,
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
1336 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1337 G_PARAM_STATIC_STRINGS);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1338
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1339 ch_properties[CHAT_PROP_COMPONENTS] = g_param_spec_pointer("components",
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1340 "Components",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
1341 "The protocol components of the chat.",
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
1342 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1343 G_PARAM_STATIC_STRINGS);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1344
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1345 g_object_class_install_properties(obj_class, CHAT_PROP_LAST, ch_properties);
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1346 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1347
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1348 GType
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1349 purple_chat_get_type(void)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1350 {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1351 static GType type = 0;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1352
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1353 if(type == 0) {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1354 static const GTypeInfo info = {
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1355 sizeof(PurpleChatClass),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1356 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1357 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1358 (GClassInitFunc)purple_chat_class_init,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1359 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1360 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1361 sizeof(PurpleChat),
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1362 0,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1363 (GInstanceInitFunc)purple_chat_init,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1364 NULL,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1365 };
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1366
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1367 type = g_type_register_static(PURPLE_TYPE_BLIST_NODE,
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1368 "PurpleChat",
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1369 &info, 0);
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1370 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1371
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1372 return type;
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1373 }
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1374
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1375 PurpleChat *
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1376 purple_chat_new(PurpleAccount *account, const char *alias, GHashTable *components)
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1377 {
34983
81638be26f41 Check types of GObjects instead of just for NULL values
Ankit Vani <a@nevitus.org>
parents: 34908
diff changeset
1378 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1379 g_return_val_if_fail(components != NULL, NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1380
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1381 return g_object_new(PURPLE_TYPE_CHAT,
35010
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
1382 "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
1383 "alias", alias,
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
1384 "components", components,
34719
714032ec3302 GObjectified PurpleChat.
Ankit Vani <a@nevitus.org>
parents: 34718
diff changeset
1385 NULL);
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1386 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1387
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1388 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1389 /* Group API */
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1390 /**************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1391
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1392 GSList *purple_group_get_accounts(PurpleGroup *group)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1393 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1394 GSList *l = NULL;
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1395 PurpleBlistNode *gnode, *cnode, *bnode;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1396
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1397 gnode = (PurpleBlistNode *)group;
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1398
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1399 for (cnode = gnode->child; cnode; cnode = cnode->next) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1400 if (PURPLE_IS_CHAT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1401 if (!g_slist_find(l, purple_chat_get_account(PURPLE_CHAT(cnode))))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1402 l = g_slist_append(l, purple_chat_get_account(PURPLE_CHAT(cnode)));
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1403 } else if (PURPLE_IS_CONTACT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1404 for (bnode = cnode->child; bnode; bnode = bnode->next) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1405 if (PURPLE_IS_BUDDY(bnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1406 if (!g_slist_find(l, purple_buddy_get_account(PURPLE_BUDDY(bnode))))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1407 l = g_slist_append(l, purple_buddy_get_account(PURPLE_BUDDY(bnode)));
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1408 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1409 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1410 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1411 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1412
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1413 return l;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1414 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1415
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1416 gboolean purple_group_on_account(PurpleGroup *g, PurpleAccount *account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1417 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1418 PurpleBlistNode *cnode;
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1419 for (cnode = ((PurpleBlistNode *)g)->child; cnode; cnode = cnode->next) {
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1420 if (PURPLE_IS_CONTACT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1421 if(purple_contact_on_account((PurpleContact *) cnode, account))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1422 return TRUE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1423 } else if (PURPLE_IS_CHAT(cnode)) {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1424 PurpleChat *chat = (PurpleChat *)cnode;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1425 if ((!account && purple_account_is_connected(purple_chat_get_account(chat)))
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1426 || purple_chat_get_account(chat) == account)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1427 return TRUE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1428 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1429 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1430 return FALSE;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1431 }
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1432
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1433 /*
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1434 * TODO: If merging, prompt the user if they want to merge.
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1435 */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1436 void purple_group_set_name(PurpleGroup *source, const char *name)
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1437 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1438 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1439 PurpleGroup *dest;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1440 gchar *old_name;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1441 gchar *new_name;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1442 GList *moved_buddies = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1443 GSList *accts;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1444 PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(source);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1445
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1446 g_return_if_fail(priv != NULL);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1447 g_return_if_fail(name != NULL);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1448
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1449 new_name = purple_utf8_strip_unprintables(name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1450
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1451 if (*new_name == '\0' || purple_strequal(new_name, priv->name)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1452 g_free(new_name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1453 return;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1454 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1455
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34727
diff changeset
1456 dest = purple_blist_find_group(new_name);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1457 if (dest != NULL && purple_utf8_strcasecmp(priv->name,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1458 PURPLE_GROUP_GET_PRIVATE(dest)->name) != 0) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1459 /* We're merging two groups */
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1460 PurpleBlistNode *prev, *child, *next;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1461
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1462 prev = _purple_blist_get_last_child((PurpleBlistNode*)dest);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1463 child = PURPLE_BLIST_NODE(source)->child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1464
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1465 /*
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1466 * TODO: This seems like a dumb way to do this... why not just
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1467 * append all children from the old group to the end of the new
36637
9b0109ae118d Renamed some prpl stuff to protocol stuff.
Ankit Vani <a@nevitus.org>
parents: 36626
diff changeset
1468 * one? Protocols might be expecting to receive an add_buddy() for
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1469 * each moved buddy...
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1470 */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1471 while (child)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1472 {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1473 next = child->next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1474 if (PURPLE_IS_CONTACT(child)) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1475 PurpleBlistNode *bnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1476 purple_blist_add_contact((PurpleContact *)child, dest, prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1477 for (bnode = child->child; bnode != NULL; bnode = bnode->next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1478 purple_blist_add_buddy((PurpleBuddy *)bnode, (PurpleContact *)child,
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1479 NULL, bnode->prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1480 moved_buddies = g_list_append(moved_buddies, bnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1481 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1482 prev = child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1483 } else if (PURPLE_IS_CHAT(child)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1484 purple_blist_add_chat((PurpleChat *)child, dest, prev);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1485 prev = child;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1486 } else {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
1487 purple_debug(PURPLE_DEBUG_ERROR, "blistnodetypes",
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1488 "Unknown child type in group %s\n", priv->name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1489 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1490 child = next;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1491 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1492
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1493 /* Make a copy of the old group name and then delete the old group */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1494 old_name = g_strdup(priv->name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1495 purple_blist_remove_group(source);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1496 source = dest;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1497 g_free(new_name);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1498 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1499 /* A simple rename */
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1500 PurpleBlistNode *cnode, *bnode;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1501
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1502 /* Build a GList of all buddies in this group */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1503 for (cnode = PURPLE_BLIST_NODE(source)->child; cnode != NULL; cnode = cnode->next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1504 if (PURPLE_IS_CONTACT(cnode))
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1505 for (bnode = cnode->child; bnode != NULL; bnode = bnode->next)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1506 moved_buddies = g_list_append(moved_buddies, bnode);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1507 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1508
34729
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
1509 purple_blist_update_groups_cache(source, new_name);
7f5a2fc8ef9c Refactored blistnodetypes and BuddyList.xs according to API changes
Ankit Vani <a@nevitus.org>
parents: 34728
diff changeset
1510
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1511 old_name = priv->name;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1512 priv->name = new_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
1513
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1514 g_object_notify_by_pspec(G_OBJECT(source), gr_properties[GROUP_PROP_NAME]);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1515 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1516
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1517 /* Save our changes */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1518 if (ops && ops->save_node)
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1519 ops->save_node(PURPLE_BLIST_NODE(source));
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1520
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1521 /* Update the UI */
34730
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1522 if (ops && ops->update)
2406671e3c44 Buddy list now compiles.
Ankit Vani <a@nevitus.org>
parents: 34729
diff changeset
1523 ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(source));
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1524
36637
9b0109ae118d Renamed some prpl stuff to protocol stuff.
Ankit Vani <a@nevitus.org>
parents: 36626
diff changeset
1525 /* Notify all protocols */
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1526 /* TODO: Is this condition needed? Seems like it would always be TRUE */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1527 if(old_name && !purple_strequal(priv->name, old_name)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1528 for (accts = purple_group_get_accounts(source); accts; accts = g_slist_remove(accts, accts->data)) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1529 PurpleAccount *account = accts->data;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1530 PurpleConnection *gc = NULL;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
1531 PurpleProtocol *protocol = NULL;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1532 GList *l = NULL, *buddies = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1533
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1534 gc = purple_account_get_connection(account);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1535
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1536 if(gc)
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36620
diff changeset
1537 protocol = purple_connection_get_protocol(gc);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1538
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36365
diff changeset
1539 if(!protocol)
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1540 continue;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1541
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1542 for(l = moved_buddies; l; l = l->next) {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1543 PurpleBuddy *buddy = PURPLE_BUDDY(l->data);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1544
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1545 if(buddy && purple_buddy_get_account(buddy) == account)
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1546 buddies = g_list_append(buddies, (PurpleBlistNode *)buddy);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1547 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1548
36720
465f02116328 Refactored account, blistnodetypes, buddylist, connection to use the new protocol interfaces
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
1549 if(PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER_IFACE, rename_group)) {
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36688
diff changeset
1550 purple_protocol_server_iface_rename_group(protocol, gc, old_name, source, buddies);
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1551 } else {
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1552 GList *cur, *groups = NULL;
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1553
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1554 /* Make a list of what the groups each buddy is in */
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1555 for(cur = buddies; cur; cur = cur->next) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1556 PurpleBlistNode *node = (PurpleBlistNode *)cur->data;
34727
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1557 groups = g_list_prepend(groups, node->parent->parent);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1558 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1559
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1560 purple_account_remove_buddies(account, buddies, groups);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1561 g_list_free(groups);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1562 purple_account_add_buddies(account, buddies, NULL);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1563 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1564
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1565 g_list_free(buddies);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1566 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1567 }
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1568 g_list_free(moved_buddies);
579e9a8dbd5f Moved methods from buddylist.[ch] to the appropriate object files
Ankit Vani <a@nevitus.org>
parents: 34722
diff changeset
1569 g_free(old_name);
35010
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
1570
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1571 g_object_notify_by_pspec(G_OBJECT(source), gr_properties[GROUP_PROP_NAME]);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1572 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1573
34707
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1574 const char *purple_group_get_name(PurpleGroup *group)
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1575 {
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1576 PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(group);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1577
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1578 g_return_val_if_fail(priv != NULL, NULL);
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1579
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1580 return priv->name;
d433bf40792a Added blistnode.[ch] and blistnodetypes.[ch]
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1581 }
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1582
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1583 /**************************************************************************
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1584 * GObject code for PurpleGroup
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1585 **************************************************************************/
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1586
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1587 /* Set method for GObject properties */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1588 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1589 purple_group_set_property(GObject *obj, guint param_id, const GValue *value,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1590 GParamSpec *pspec)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1591 {
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
1592 PurpleGroup *group = PURPLE_GROUP(obj);
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
1593 PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(group);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1594
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1595 switch (param_id) {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1596 case GROUP_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
1597 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
1598 purple_group_set_name(group, 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
1599 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
1600 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
1601 purple_utf8_strip_unprintables(g_value_get_string(value));
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1602 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1603 default:
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1604 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1605 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1606 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1607 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1608
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1609 /* Get method for GObject properties */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1610 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1611 purple_group_get_property(GObject *obj, guint param_id, GValue *value,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1612 GParamSpec *pspec)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1613 {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1614 PurpleGroup *group = PURPLE_GROUP(obj);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1615
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1616 switch (param_id) {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1617 case GROUP_PROP_NAME:
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1618 g_value_set_string(value, purple_group_get_name(group));
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1619 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1620 default:
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1621 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1622 break;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1623 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1624 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1625
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1626 /* GObject initialization function */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1627 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1628 purple_group_init(GTypeInstance *instance, gpointer klass)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1629 {
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
1630 PURPLE_DBUS_REGISTER_POINTER(PURPLE_GROUP(instance), PurpleGroup);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1631 }
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1632
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1633 /* Called when done constructing */
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1634 static void
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1635 purple_group_constructed(GObject *object)
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1636 {
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1637 PurpleGroup *group = PURPLE_GROUP(object);
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
1638 PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(group);
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34846
diff changeset
1639 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1640
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
1641 G_OBJECT_CLASS(counting_parent_class)->constructed(object);
fccb496c385e Override GObject constructed method for PurpleBuddy, PurpleChat and PurpleGroup, to inform UI of creation
Ankit Vani <a@nevitus.org>
parents: 34742
diff changeset
1642
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1643 if (ops && ops->new_node)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1644 ops->new_node(PURPLE_BLIST_NODE(group));
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
1645
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
1646 priv->is_constructed = TRUE;
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1647 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1648
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1649 /* GObject finalize function */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1650 static void
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1651 purple_group_finalize(GObject *object)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1652 {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1653 g_free(PURPLE_GROUP_GET_PRIVATE(object)->name);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1654
34986
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1655 PURPLE_DBUS_UNREGISTER_POINTER(object);
894c29e33300 Move all object destruction code to finalize() methods and keep unrefs in dispose()
Ankit Vani <a@nevitus.org>
parents: 34983
diff changeset
1656
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1657 G_OBJECT_CLASS(counting_parent_class)->finalize(object);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1658 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1659
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1660 /* Class initializer function */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1661 static void purple_group_class_init(PurpleGroupClass *klass)
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1662 {
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1663 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1664
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1665 counting_parent_class = g_type_class_peek_parent(klass);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1666
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1667 obj_class->finalize = purple_group_finalize;
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
1668 obj_class->constructed = purple_group_constructed;
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1669
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1670 /* Setup properties */
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1671 obj_class->get_property = purple_group_get_property;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1672 obj_class->set_property = purple_group_set_property;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1673
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1674 g_type_class_add_private(klass, sizeof(PurpleGroupPrivate));
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1675
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1676 gr_properties[GROUP_PROP_NAME] = g_param_spec_string("name", "Name",
35058
506740af931c Unmark property names and blurbs from translatable to non-translatable
Ankit Vani <a@nevitus.org>
parents: 35010
diff changeset
1677 "Name of the group.", NULL,
35080
58bddd91956c libpurple: use g_object_notify_by_pspec instead of g_object_notify
Ankit Vani <a@nevitus.org>
parents: 35066
diff changeset
1678 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1679
35085
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1680 g_object_class_install_properties(obj_class, GROUP_PROP_LAST,
abab0adfa0ec libpurple: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35080
diff changeset
1681 gr_properties);
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1682 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1683
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1684 GType
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1685 purple_group_get_type(void)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1686 {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1687 static GType type = 0;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1688
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1689 if(type == 0) {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1690 static const GTypeInfo info = {
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1691 sizeof(PurpleGroupClass),
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1692 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1693 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1694 (GClassInitFunc)purple_group_class_init,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1695 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1696 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1697 sizeof(PurpleGroup),
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1698 0,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1699 (GInstanceInitFunc)purple_group_init,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1700 NULL,
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1701 };
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1702
34722
32e636146d3f Added PurpleCountingNode to blistnodes.[ch]. PurpleContact and PurpleGroup inherit PurpleCountingNode.
Ankit Vani <a@nevitus.org>
parents: 34721
diff changeset
1703 type = g_type_register_static(PURPLE_TYPE_COUNTING_NODE,
34720
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1704 "PurpleGroup",
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1705 &info, 0);
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1706 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1707
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1708 return type;
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1709 }
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1710
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1711 PurpleGroup *
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1712 purple_group_new(const char *name)
456380cee8d5 GObjectified PurpleGroup.
Ankit Vani <a@nevitus.org>
parents: 34719
diff changeset
1713 {
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1714 PurpleGroup *group;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1715
35958
1d8446f396b6 blist: define default group better
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35470
diff changeset
1716 if (name == NULL || name[0] == '\0')
1d8446f396b6 blist: define default group better
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35470
diff changeset
1717 name = PURPLE_BLIST_DEFAULT_GROUP_NAME;
1d8446f396b6 blist: define default group better
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35470
diff changeset
1718 if (g_strcmp0(name, "Buddies") == 0)
1d8446f396b6 blist: define default group better
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35470
diff changeset
1719 name = PURPLE_BLIST_DEFAULT_GROUP_NAME;
35961
87fd9126902a blist: store localized name of default group to avoid contact splitting
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35958
diff changeset
1720 if (g_strcmp0(name, _purple_blist_get_localized_default_group_name()) == 0)
87fd9126902a blist: store localized name of default group to avoid contact splitting
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35958
diff changeset
1721 name = PURPLE_BLIST_DEFAULT_GROUP_NAME;
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1722
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34727
diff changeset
1723 group = purple_blist_find_group(name);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1724 if (group != NULL)
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1725 return group;
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1726
35010
9c2d352b1d96 Cleaned up properties and added g_object_notify calls for PurpleAccount and PurpleBlistNodes
Ankit Vani <a@nevitus.org>
parents: 34986
diff changeset
1727 return g_object_new(PURPLE_TYPE_GROUP, "name", name, NULL);
34714
9d1d1e5d19b4 GObjectified PurpleBuddy.
Ankit Vani <a@nevitus.org>
parents: 34709
diff changeset
1728 }

mercurial