libpurple/blistnodetypes.c

Mon, 16 Sep 2013 22:53:40 +0530

author
Ankit Vani <a@nevitus.org>
date
Mon, 16 Sep 2013 22:53:40 +0530
branch
soc.2013.gobjectification.plugins
changeset 36752
c726e758c59b
parent 36720
465f02116328
child 36843
a81a985c60f4
permissions
-rw-r--r--

Refactored finch grouping plugin to use the new plugin API

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

mercurial