libpurple/request/purplerequestgroup.c

Fri, 27 Sep 2024 02:21:36 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 27 Sep 2024 02:21:36 -0500
changeset 42984
818220289e67
parent 42767
8cf1d11b59c1
child 42997
368deff13c21
permissions
-rw-r--r--

Update the gi-docgen subproject and fix some new issues it found

These aren't new issues per se, there were issues that it didn't warn/error
about previously.

Testing Done:
Updated subprojects and called in the turtles.

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

42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
1 /*
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
2 * Purple - Internet Messaging Library
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7964
diff changeset
7 * source distribution.
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
8 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
12 * any later version.
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
17 * more details.
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
19 * You should have received a copy of the GNU General Public License along with
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42576
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 */
24900
a19d983918c2 Deprecate purple_request_field_list_add()
Richard Laager <rlaager@pidgin.im>
parents: 24899
diff changeset
22
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40350
diff changeset
23 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40350
diff changeset
24
42120
1de24f50c9a6 Split PurpleRequestFieldGroup into its own files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42117
diff changeset
25 #include "purplerequestgroup.h"
42144
92dd14dc8a73 Cleanup request field files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42132
diff changeset
26 #include "purplerequestpage.h"
42117
8a001a903e90 Split PurpleRequestField into its own files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42116
diff changeset
27 #include "purpleprivate.h"
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
29 struct _PurpleRequestGroup {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
30 GObject parent;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
31
32273
55a194e489bb A small bit of hide-a-struct
Mark Doliner <markdoliner@pidgin.im>
parents: 32216
diff changeset
32 char *title;
55a194e489bb A small bit of hide-a-struct
Mark Doliner <markdoliner@pidgin.im>
parents: 32216
diff changeset
33
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
34 GPtrArray *fields;
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
35 GHashTable *invalid_fields;
32216
5467debfccda Hide-a-Struct
Mark Doliner <markdoliner@pidgin.im>
parents: 31697
diff changeset
36 };
5477
942b6f295034 [gaim-migrate @ 5873]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
38 enum {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
39 PROP_0,
42668
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
40 PROP_ITEM_TYPE,
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
41 PROP_N_ITEMS,
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
42 PROP_TITLE,
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
43 PROP_VALID,
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
44 N_PROPERTIES,
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
45 };
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
46 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
47
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
48 /******************************************************************************
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
49 * Helpers
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
50 *****************************************************************************/
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
51 static void
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
52 purple_request_group_set_title(PurpleRequestGroup *group, const char *title) {
42767
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42668
diff changeset
53 if(g_set_str(&group->title, title)) {
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42668
diff changeset
54 g_object_notify_by_pspec(G_OBJECT(group), properties[PROP_TITLE]);
8cf1d11b59c1 Use g_set_str everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42668
diff changeset
55 }
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
56 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
57
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
58 /******************************************************************************
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
59 * Callbacks
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
60 *****************************************************************************/
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
61 static void
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
62 purple_request_group_notify_field_cb(GObject *obj,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
63 G_GNUC_UNUSED GParamSpec *pspec,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
64 gpointer data)
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
65 {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
66 PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(data);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
67 PurpleRequestField *field = PURPLE_REQUEST_FIELD(obj);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
68 gboolean before, after;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
69
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
70 before = purple_request_group_is_valid(group);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
71 if(purple_request_field_is_valid(field, NULL)) {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
72 g_hash_table_remove(group->invalid_fields, field);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
73 } else {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
74 g_hash_table_add(group->invalid_fields, field);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
75 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
76 after = purple_request_group_is_valid(group);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
77
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
78 if(before != after) {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
79 g_object_notify_by_pspec(G_OBJECT(group), properties[PROP_VALID]);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
80 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
81 }
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
82
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
83 /******************************************************************************
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
84 * GListModel Implementation
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
85 *****************************************************************************/
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
86 static GType
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
87 purple_request_group_get_item_type(G_GNUC_UNUSED GListModel *model) {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
88 return PURPLE_TYPE_REQUEST_FIELD;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
89 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
90
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
91 static guint
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
92 purple_request_group_get_n_items(GListModel *model) {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
93 PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(model);
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
94
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
95 return group->fields->len;
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
96 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
97
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
98 static gpointer
42132
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42128
diff changeset
99 purple_request_group_get_item(GListModel *model, guint index) {
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
100 PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(model);
42132
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42128
diff changeset
101 PurpleRequestField *field = NULL;
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
102
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
103 if(index < group->fields->len) {
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
104 field = g_ptr_array_index(group->fields, index);
42132
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42128
diff changeset
105 g_object_ref(field);
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42128
diff changeset
106 }
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42128
diff changeset
107
358f8573573f Fix refs in request page/group list model implementation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42128
diff changeset
108 return field;
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
109 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
110
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
111 static void
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
112 purple_request_group_list_model_init(GListModelInterface *iface) {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
113 iface->get_item_type = purple_request_group_get_item_type;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
114 iface->get_item = purple_request_group_get_item;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
115 iface->get_n_items = purple_request_group_get_n_items;
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
116 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
117
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
118 /******************************************************************************
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
119 * GObject Implementation
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
120 *****************************************************************************/
42576
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42327
diff changeset
121 G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleRequestGroup, purple_request_group, G_TYPE_OBJECT,
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42327
diff changeset
122 G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
ab1ca778ddb2 Make sure all of the final types in libpurple are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42327
diff changeset
123 purple_request_group_list_model_init))
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
124
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
125 static void
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
126 purple_request_group_get_property(GObject *obj, guint param_id, GValue *value,
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
127 GParamSpec *pspec)
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
128 {
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
129 PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(obj);
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
130
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
131 switch(param_id) {
42668
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
132 case PROP_ITEM_TYPE:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
133 g_value_set_gtype(value,
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
134 purple_request_group_get_item_type(G_LIST_MODEL(group)));
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
135 break;
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
136 case PROP_N_ITEMS:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
137 g_value_set_uint(value,
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
138 purple_request_group_get_n_items(G_LIST_MODEL(group)));
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
139 break;
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
140 case PROP_TITLE:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
141 g_value_set_string(value, purple_request_group_get_title(group));
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
142 break;
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
143 case PROP_VALID:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
144 g_value_set_boolean(value, purple_request_group_is_valid(group));
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
145 break;
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
146 default:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
147 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
148 break;
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
149 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
150 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
151
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
152 static void
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
153 purple_request_group_set_property(GObject *obj, guint param_id,
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
154 const GValue *value, GParamSpec *pspec)
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
155 {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
156 PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(obj);
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
157
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
158 switch(param_id) {
42668
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
159 case PROP_TITLE:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
160 purple_request_group_set_title(group, g_value_get_string(value));
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
161 break;
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
162 default:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
163 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
164 break;
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
165 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
166 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
167
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
168 static void
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
169 purple_request_group_finalize(GObject *obj) {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
170 PurpleRequestGroup *group = PURPLE_REQUEST_GROUP(obj);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
171
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13283
diff changeset
172 g_free(group->title);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
173
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
174 g_clear_pointer(&group->fields, g_ptr_array_unref);
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
175 g_clear_pointer(&group->invalid_fields, g_hash_table_destroy);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
176
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
177 G_OBJECT_CLASS(purple_request_group_parent_class)->finalize(obj);
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
178 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
179
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
180 static void
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
181 purple_request_group_init(PurpleRequestGroup *group) {
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
182 group->fields = g_ptr_array_new_with_free_func(g_object_unref);
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
183 group->invalid_fields = g_hash_table_new(g_direct_hash, g_direct_equal);
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
184 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
185
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
186 static void
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
187 purple_request_group_class_init(PurpleRequestGroupClass *klass) {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
188 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
189
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
190 obj_class->finalize = purple_request_group_finalize;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
191 obj_class->get_property = purple_request_group_get_property;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
192 obj_class->set_property = purple_request_group_set_property;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
193
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
194 /**
42668
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
195 * PurpleRequestGroup:item-type:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
196 *
42984
818220289e67 Update the gi-docgen subproject and fix some new issues it found
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
197 * The type of items. See [vfunc@Gio.ListModel.get_item_type].
42668
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
198 *
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
199 * Since: 3.0
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
200 */
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
201 properties[PROP_ITEM_TYPE] = g_param_spec_gtype(
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
202 "item-type", "item-type",
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
203 "The type of the contained items.",
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
204 G_TYPE_OBJECT,
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
205 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
206
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
207 /**
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
208 * PurpleRequestGroup:n-items:
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
209 *
42984
818220289e67 Update the gi-docgen subproject and fix some new issues it found
Gary Kramlich <grim@reaperworld.com>
parents: 42767
diff changeset
210 * The number of items. See [vfunc@Gio.ListModel.get_n_items].
42668
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
211 *
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
212 * Since: 3.0
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
213 */
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
214 properties[PROP_N_ITEMS] = g_param_spec_uint(
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
215 "n-items", "n-items",
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
216 "The number of contained items.",
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
217 0, G_MAXUINT, 0,
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
218 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
219
22f777ef5415 Add item-type and n-items properties to PurpleRequestGroup
Gary Kramlich <grim@reaperworld.com>
parents: 42617
diff changeset
220 /**
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
221 * PurpleRequestGroup:title:
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
222 *
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
223 * The title of the field group.
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
224 *
42617
c8eb73bff6e0 Remove the micro version from since tags for libpurple part 6
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
225 * Since: 3.0
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
226 */
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
227 properties[PROP_TITLE] = g_param_spec_string(
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
228 "title", "title",
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
229 "The title of the field group.",
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
230 NULL,
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
231 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
232
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
233 /**
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
234 * PurpleRequestGroup:valid:
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
235 *
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
236 * Whether all fields in a group are valid.
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
237 *
42617
c8eb73bff6e0 Remove the micro version from since tags for libpurple part 6
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
238 * Since: 3.0
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
239 */
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
240 properties[PROP_VALID] = g_param_spec_boolean(
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
241 "valid", "valid",
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
242 "Whether all fields in a group are valid.",
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
243 TRUE,
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
244 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
245
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
246 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
247 }
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
248
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
249 /******************************************************************************
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
250 * Public API
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
251 *****************************************************************************/
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
252 PurpleRequestGroup *
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
253 purple_request_group_new(const char *title) {
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
254 return g_object_new(PURPLE_TYPE_REQUEST_GROUP,
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
255 "title", title,
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
256 NULL);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
257 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
258
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
259 void
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
260 purple_request_group_add_field(PurpleRequestGroup *group,
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
261 PurpleRequestField *field)
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
262 {
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
263 guint position;
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
264
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
265 g_return_if_fail(PURPLE_IS_REQUEST_GROUP(group));
42124
472dc8caeda3 Convert PurpleRequestField into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42120
diff changeset
266 g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
267
42170
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
268 position = group->fields->len;
c9968cbf01d5 Use GPtrArray internally to PurpleRequest{Group,Page}
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42169
diff changeset
269 g_ptr_array_add(group->fields, field);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
270
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
271 purple_request_group_notify_field_cb(G_OBJECT(field), NULL, group);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
272 g_signal_connect(field, "notify::valid",
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
273 G_CALLBACK(purple_request_group_notify_field_cb), group);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
274
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
275 g_list_model_items_changed(G_LIST_MODEL(group), position, 0, 1);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
276 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
277
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
278 const char *
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
279 purple_request_group_get_title(PurpleRequestGroup *group)
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
280 {
42127
18acb99a0fa6 Convert PurpleRequestGroup into a GObject
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42124
diff changeset
281 g_return_val_if_fail(PURPLE_IS_REQUEST_GROUP(group), NULL);
5807
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
282
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
283 return group->title;
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
284 }
7e0d857c4c93 [gaim-migrate @ 6237]
Christian Hammond <chipx86@chipx86.com>
parents: 5496
diff changeset
285
42152
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
286 gboolean
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
287 purple_request_group_is_valid(PurpleRequestGroup *group) {
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
288 g_return_val_if_fail(PURPLE_IS_REQUEST_GROUP(group), FALSE);
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
289
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
290 return g_hash_table_size(group->invalid_fields) == 0;
2bcdf415a79d Add PurpleRequest{Group,Page}:valid properties
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42144
diff changeset
291 }

mercurial