Mon, 22 Aug 2022 22:05:55 -0500
Create PurpleAuthorizationRequest and use it for notifications.
This replaces the old internal representation of authorization requests as well
as the UI's implementation of their own objects. Everything is now controlled
via PurpleAuthorizationRequest and the UI's display the notification for
interaction.
Testing Done:
Verified the notification and actions work in both finch and pidgin.
Reviewed at https://reviews.imfreedom.org/r/1613/
|
39887
9c8f874c74a0
Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents:
39835
diff
changeset
|
1 | /* |
|
9c8f874c74a0
Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents:
39835
diff
changeset
|
2 | * finch |
|
14620
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
3 | * |
|
15931
716b5fac1895
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents:
15906
diff
changeset
|
4 | * Finch is the legal property of its developers, whose names are too numerous |
|
14620
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
6 | * source distribution. |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
7 | * |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
8 | * This program is free software; you can redistribute it and/or modify |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
11 | * (at your option) any later version. |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
12 | * |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
16 | * GNU General Public License for more details. |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
17 | * |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18400
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
14620
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14210
diff
changeset
|
21 | */ |
|
39887
9c8f874c74a0
Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents:
39835
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:
40439
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:
40439
diff
changeset
|
24 | |
|
40439
e9838d634d5e
Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents:
40350
diff
changeset
|
25 | #include <purple.h> |
|
29106
51c7b2177e42
Fix all the remaining files for which internal.h doesn't end up being the first include.
Paul Aurich <darkrain42@pidgin.im>
parents:
27829
diff
changeset
|
26 | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | #include <gnt.h> |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
28 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
29 | #include "gntplugin.h" |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
30 | #include "gntrequest.h" |
|
40616
064ff9f4150a
Don't allow libraries to include their own global header files.
Gary Kramlich <grim@reaperworld.com>
parents:
40544
diff
changeset
|
31 | #include "libfinch.h" |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
32 | |
|
36395
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
33 | typedef struct |
|
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
34 | { |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
35 | FinchPluginPrefFrameCb pref_frame_cb; |
|
36395
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
36 | } FinchPluginInfoPrivate; |
|
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
37 | |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
38 | enum |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
39 | { |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
40 | PROP_0, |
| 36936 | 41 | PROP_GNT_PREF_FRAME_CB, |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
42 | PROP_LAST |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
43 | }; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
44 | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
45 | static struct |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | { |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | GntWidget *tree; |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
48 | GntWidget *window; |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
49 | GntWidget *aboot; |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
50 | GntWidget *conf; |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
51 | } plugins; |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
52 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
53 | typedef struct |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
54 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
55 | enum |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
56 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
57 | FINCH_PLUGIN_UI_DATA_TYPE_WINDOW, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
58 | FINCH_PLUGIN_UI_DATA_TYPE_REQUEST |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
59 | } type; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
60 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
61 | union |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
62 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
63 | GntWidget *window; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
64 | gpointer request_handle; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
65 | } u; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
66 | } FinchPluginUiData; |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
67 | |
|
39248
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
68 | G_DEFINE_TYPE_WITH_PRIVATE(FinchPluginInfo, finch_plugin_info, |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
69 | PURPLE_TYPE_PLUGIN_INFO); |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
70 | |
|
18301
1988607deed3
Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18273
diff
changeset
|
71 | static GntWidget *process_pref_frame(PurplePluginPrefFrame *frame); |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
72 | |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
73 | /* Set method for GObject properties */ |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
74 | static void |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
75 | finch_plugin_info_set_property(GObject *obj, guint param_id, const GValue *value, |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
76 | GParamSpec *pspec) |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
77 | { |
|
39248
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
78 | FinchPluginInfoPrivate *priv = finch_plugin_info_get_instance_private( |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
79 | FINCH_PLUGIN_INFO(obj)); |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
80 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
81 | switch (param_id) { |
| 36936 | 82 | case PROP_GNT_PREF_FRAME_CB: |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
83 | priv->pref_frame_cb = g_value_get_pointer(value); |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
84 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
85 | default: |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
86 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
87 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
88 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
89 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
90 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
91 | /* Get method for GObject properties */ |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
92 | static void |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
93 | finch_plugin_info_get_property(GObject *obj, guint param_id, GValue *value, |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
94 | GParamSpec *pspec) |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
95 | { |
|
39248
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
96 | FinchPluginInfoPrivate *priv = finch_plugin_info_get_instance_private( |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
97 | FINCH_PLUGIN_INFO(obj)); |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
98 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
99 | switch (param_id) { |
| 36936 | 100 | case PROP_GNT_PREF_FRAME_CB: |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
101 | g_value_set_pointer(value, priv->pref_frame_cb); |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
102 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
103 | default: |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
104 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
105 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
106 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
107 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
108 | |
|
39248
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
109 | static void |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
110 | finch_plugin_info_init(FinchPluginInfo *info) |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
111 | { |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
112 | } |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
113 | |
|
36395
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
114 | /* Class initializer function */ |
|
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
115 | static void finch_plugin_info_class_init(FinchPluginInfoClass *klass) |
|
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
116 | { |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
117 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
118 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
119 | /* Setup properties */ |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
120 | obj_class->get_property = finch_plugin_info_get_property; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
121 | obj_class->set_property = finch_plugin_info_set_property; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
122 | |
| 36936 | 123 | g_object_class_install_property(obj_class, PROP_GNT_PREF_FRAME_CB, |
|
36935
5384600e613c
Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents:
36934
diff
changeset
|
124 | g_param_spec_pointer("gnt-pref-frame-cb", |
|
5384600e613c
Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents:
36934
diff
changeset
|
125 | "GNT preferences frame callback", |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
126 | "Callback that returns a GNT preferences frame", |
|
36954
26c2cf81a97a
Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents:
36936
diff
changeset
|
127 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | |
|
26c2cf81a97a
Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents:
36936
diff
changeset
|
128 | G_PARAM_STATIC_STRINGS)); |
|
36395
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
129 | } |
|
a27e8b7a2938
Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents:
33935
diff
changeset
|
130 | |
|
40895
9406fe45ca7b
Convert the Finch plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents:
40616
diff
changeset
|
131 | GPluginPluginInfo * |
|
36446
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
132 | finch_plugin_info_new(const char *first_property, ...) |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
133 | { |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
134 | GObject *info; |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
135 | va_list var_args; |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
136 | |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
137 | /* at least ID is required */ |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
138 | if (!first_property) |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
139 | return NULL; |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
140 | |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
141 | va_start(var_args, first_property); |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
142 | info = g_object_new_valist(FINCH_TYPE_PLUGIN_INFO, first_property, |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
143 | var_args); |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
144 | va_end(var_args); |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
145 | |
|
40895
9406fe45ca7b
Convert the Finch plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents:
40616
diff
changeset
|
146 | return GPLUGIN_PLUGIN_INFO(info); |
|
36446
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
147 | } |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36431
diff
changeset
|
148 | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
149 | static void |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
150 | free_stringlist(GList *list) |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
151 | { |
|
39897
16b440d4ab36
Use g_list_free_full instead of g_list_foreach+g_list_free.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39887
diff
changeset
|
152 | g_list_free_full(list, g_free); |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
153 | } |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
154 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
155 | static gboolean |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
156 | has_prefs(PurplePlugin *plugin) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
157 | { |
| 36929 | 158 | PurplePluginInfo *info = purple_plugin_get_info(plugin); |
| 159 | FinchPluginInfoPrivate *priv = NULL; | |
| 160 | gboolean ret; | |
| 161 | ||
| 162 | g_return_val_if_fail(plugin != NULL, FALSE); | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
163 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
164 | if (!purple_plugin_is_loaded(plugin)) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
165 | return FALSE; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
166 | |
| 36929 | 167 | if (FINCH_IS_PLUGIN_INFO(info)) |
|
39248
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
168 | priv = finch_plugin_info_get_instance_private( |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
169 | FINCH_PLUGIN_INFO(info)); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
170 | |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
171 | ret = ((priv && priv->pref_frame_cb) || |
|
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
172 | purple_plugin_info_get_pref_frame_cb(info) || |
|
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
173 | purple_plugin_info_get_pref_request_cb(info)); |
|
35690
5ef990c032ad
Fix Finch clang scan-build warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35475
diff
changeset
|
174 | |
| 36929 | 175 | return ret; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
176 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
177 | |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
178 | static void |
| 15884 | 179 | decide_conf_button(PurplePlugin *plugin) |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
180 | { |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
181 | if (has_prefs(plugin)) |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
182 | gnt_widget_set_visible(plugins.conf, TRUE); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
183 | else |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
184 | gnt_widget_set_visible(plugins.conf, FALSE); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
185 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
186 | gnt_box_readjust(GNT_BOX(plugins.window)); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
187 | gnt_widget_draw(plugins.window); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
188 | } |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
189 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
190 | static void |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
191 | finch_plugin_pref_close(PurplePlugin *plugin) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
192 | { |
| 36929 | 193 | PurplePluginInfo *info; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
194 | FinchPluginUiData *ui_data; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
195 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
196 | g_return_if_fail(plugin != NULL); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
197 | |
| 36929 | 198 | info = purple_plugin_get_info(plugin); |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
199 | ui_data = g_object_get_data(G_OBJECT(info), "finch-ui-data"); |
| 36929 | 200 | |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
201 | if (ui_data == NULL) { |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
202 | return; |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
203 | } |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
204 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
205 | if (ui_data->type == FINCH_PLUGIN_UI_DATA_TYPE_REQUEST) { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
206 | purple_request_close(PURPLE_REQUEST_FIELDS, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
207 | ui_data->u.request_handle); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
208 | return; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
209 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
210 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
211 | g_return_if_fail(ui_data->type == FINCH_PLUGIN_UI_DATA_TYPE_WINDOW); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
212 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
213 | gnt_widget_destroy(ui_data->u.window); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
214 | |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
215 | g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
216 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
217 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
218 | static void |
| 15884 | 219 | plugin_toggled_cb(GntWidget *tree, PurplePlugin *plugin, gpointer null) |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
220 | { |
|
36510
c00f65ba575f
Refactored finch to report plugin load/unload errors
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
221 | GError *error = NULL; |
|
c00f65ba575f
Refactored finch to report plugin load/unload errors
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
222 | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
223 | if (gnt_tree_get_choice(GNT_TREE(tree), plugin)) |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
224 | { |
|
36510
c00f65ba575f
Refactored finch to report plugin load/unload errors
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
225 | if (!purple_plugin_load(plugin, &error)) { |
| 36782 | 226 | purple_notify_error(NULL, _("ERROR"), _("loading plugin failed"), error->message, NULL); |
|
16313
ae9787338382
If a plugin failed to load/unload, don't pretend that it worked
Richard Nelson <wabz@pidgin.im>
parents:
16255
diff
changeset
|
227 | gnt_tree_set_choice(GNT_TREE(tree), plugin, FALSE); |
|
36510
c00f65ba575f
Refactored finch to report plugin load/unload errors
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
228 | g_error_free(error); |
|
16313
ae9787338382
If a plugin failed to load/unload, don't pretend that it worked
Richard Nelson <wabz@pidgin.im>
parents:
16255
diff
changeset
|
229 | } |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
230 | } |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
231 | else |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
232 | { |
|
36510
c00f65ba575f
Refactored finch to report plugin load/unload errors
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
233 | if (!purple_plugin_unload(plugin, &error)) { |
| 36782 | 234 | purple_notify_error(NULL, _("ERROR"), _("unloading plugin failed"), error->message, NULL); |
|
20873
1f6a88082ca0
Use purple_plugin_disable() to get the right behavior with plugins that
Richard Laager <rlaager@pidgin.im>
parents:
20778
diff
changeset
|
235 | purple_plugin_disable(plugin); |
|
16313
ae9787338382
If a plugin failed to load/unload, don't pretend that it worked
Richard Nelson <wabz@pidgin.im>
parents:
16255
diff
changeset
|
236 | gnt_tree_set_choice(GNT_TREE(tree), plugin, TRUE); |
|
36510
c00f65ba575f
Refactored finch to report plugin load/unload errors
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
237 | g_error_free(error); |
|
16313
ae9787338382
If a plugin failed to load/unload, don't pretend that it worked
Richard Nelson <wabz@pidgin.im>
parents:
16255
diff
changeset
|
238 | } |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
239 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
240 | finch_plugin_pref_close(plugin); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
241 | } |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
242 | decide_conf_button(plugin); |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15357
diff
changeset
|
243 | finch_plugins_save_loaded(); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
244 | } |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
245 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
246 | /* Xerox */ |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
247 | void |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15357
diff
changeset
|
248 | finch_plugins_save_loaded(void) |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
249 | { |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
16383
diff
changeset
|
250 | purple_plugins_save_loaded("/finch/plugins/loaded"); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
251 | } |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
252 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
253 | static void |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
254 | selection_changed(GntWidget *widget, gpointer old, gpointer current, gpointer null) |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
255 | { |
| 15884 | 256 | PurplePlugin *plugin = current; |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
257 | const gchar *filename; |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
258 | GPluginPluginInfo *info; |
|
36643
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
259 | char *text, *authors = NULL; |
|
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
260 | const char * const *authorlist; |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
261 | GList *list = NULL, *iter = NULL; |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
262 | |
|
18172
20d180ee829e
Let's not crash if there's no plugin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17207
diff
changeset
|
263 | if (!plugin) |
|
20d180ee829e
Let's not crash if there's no plugin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17207
diff
changeset
|
264 | return; |
|
20d180ee829e
Let's not crash if there's no plugin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17207
diff
changeset
|
265 | |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
266 | filename = gplugin_plugin_get_filename(GPLUGIN_PLUGIN(plugin)); |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
267 | info = GPLUGIN_PLUGIN_INFO(purple_plugin_get_info(plugin)); |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
268 | authorlist = gplugin_plugin_info_get_authors(info); |
|
36643
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
269 | |
|
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
270 | if (authorlist) |
|
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
271 | authors = g_strjoinv(", ", (gchar **)authorlist); |
|
36421
42c3ae9b96d7
Better placed calls to gplugin_plugin_get_info() and its unref
Ankit Vani <a@nevitus.org>
parents:
36419
diff
changeset
|
272 | |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
273 | /* If the selected plugin was unseen before, mark it as seen. But save the list |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
274 | * only when the plugin list is closed. So if the user enables a plugin, and it |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
275 | * crashes, it won't get marked as seen so the user can fix the bug and still |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
276 | * quickly find the plugin in the list. |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
277 | * I probably mean 'plugin developers' by 'users' here. */ |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
278 | list = g_object_get_data(G_OBJECT(widget), "seen-list"); |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
279 | if (list) { |
|
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
280 | iter = g_list_find_custom(list, filename, (GCompareFunc)strcmp); |
|
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
281 | } |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
282 | if (!iter) { |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
283 | list = g_list_prepend(list, g_strdup(filename)); |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
284 | g_object_set_data(G_OBJECT(widget), "seen-list", list); |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
285 | } |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
286 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
287 | /* XXX: Use formatting and stuff */ |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
288 | gnt_text_view_clear(GNT_TEXT_VIEW(plugins.aboot)); |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
289 | text = g_strdup_printf( |
|
39904
4787df20fdc4
finch: Fix possible use-of-NULL variable.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39897
diff
changeset
|
290 | (authorlist && g_strv_length((gchar **)authorlist) > 1 |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
291 | ? _("Name: %s\nVersion: %s\nDescription: %s\nAuthors: " |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
292 | "%s\nWebsite: %s\nFilename: %s\n") |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
293 | : _("Name: %s\nVersion: %s\nDescription: %s\nAuthor: " |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
294 | "%s\nWebsite: %s\nFilename: %s\n")), |
|
40028
001c4e774da0
Fix Finch build with latest libgnt.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39904
diff
changeset
|
295 | _(gplugin_plugin_info_get_name(info)), |
|
001c4e774da0
Fix Finch build with latest libgnt.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39904
diff
changeset
|
296 | _(gplugin_plugin_info_get_version(info)), |
|
001c4e774da0
Fix Finch build with latest libgnt.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39904
diff
changeset
|
297 | _(gplugin_plugin_info_get_description(info)), authors, |
|
001c4e774da0
Fix Finch build with latest libgnt.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39904
diff
changeset
|
298 | _(gplugin_plugin_info_get_website(info)), filename); |
|
36398
8a349ab2993c
Refactored some of gntplugin. Some more plugin API changes are needed for this to build.
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
299 | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
300 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(plugins.aboot), |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
301 | text, GNT_TEXT_FLAG_NORMAL); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
302 | gnt_text_view_scroll(GNT_TEXT_VIEW(plugins.aboot), 0); |
|
36643
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
303 | |
|
14167
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
304 | g_free(text); |
|
36643
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
305 | g_free(authors); |
|
f5d0db1dc2ed
Refactored finch to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36510
diff
changeset
|
306 | |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
307 | decide_conf_button(plugin); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
308 | } |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
309 | |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
310 | static void |
|
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
311 | reset_plugin_window(GntWidget *window, gpointer null) |
|
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
312 | { |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
313 | GList *list = g_object_get_data(G_OBJECT(plugins.tree), "seen-list"); |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
314 | purple_prefs_set_path_list("/finch/plugins/seen", list); |
|
39897
16b440d4ab36
Use g_list_free_full instead of g_list_foreach+g_list_free.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39887
diff
changeset
|
315 | g_list_free_full(list, g_free); |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
316 | |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
317 | plugins.window = NULL; |
|
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
318 | plugins.tree = NULL; |
|
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
319 | plugins.aboot = NULL; |
|
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
320 | } |
|
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
321 | |
|
14167
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
322 | static int |
| 15884 | 323 | plugin_compare(PurplePlugin *p1, PurplePlugin *p2) |
|
14167
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
324 | { |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
325 | char *s1 = |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
326 | g_utf8_strup(gplugin_plugin_info_get_name(GPLUGIN_PLUGIN_INFO( |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
327 | purple_plugin_get_info(p1))), |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
328 | -1); |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
329 | char *s2 = |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
330 | g_utf8_strup(gplugin_plugin_info_get_name(GPLUGIN_PLUGIN_INFO( |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
331 | purple_plugin_get_info(p2))), |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
332 | -1); |
|
14167
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
333 | int ret = g_utf8_collate(s1, s2); |
|
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
334 | g_free(s1); |
|
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
335 | g_free(s2); |
|
36398
8a349ab2993c
Refactored some of gntplugin. Some more plugin API changes are needed for this to build.
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
336 | |
|
14167
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
337 | return ret; |
|
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
338 | } |
|
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
339 | |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
340 | static void |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
341 | remove_confwin(GntWidget *window, gpointer _plugin) |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
342 | { |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
343 | PurplePlugin *plugin = _plugin; |
| 36929 | 344 | PurplePluginInfo *info = purple_plugin_get_info(plugin); |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
345 | |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
346 | g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); |
|
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
347 | } |
|
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
348 | |
|
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
349 | static void |
|
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
350 | close_plugin_info_request_cb(PurplePluginInfo *info) |
|
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
351 | { |
|
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
352 | g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
353 | } |
|
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
354 | |
|
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
355 | static void |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
356 | configure_plugin_cb(GntWidget *button, gpointer null) |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
357 | { |
| 15884 | 358 | PurplePlugin *plugin; |
|
36398
8a349ab2993c
Refactored some of gntplugin. Some more plugin API changes are needed for this to build.
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
359 | PurplePluginInfo *info; |
|
8a349ab2993c
Refactored some of gntplugin. Some more plugin API changes are needed for this to build.
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
360 | FinchPluginInfoPrivate *priv = NULL; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
361 | FinchPluginUiData *ui_data; |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
362 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
363 | g_return_if_fail(plugins.tree != NULL); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
364 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
365 | plugin = gnt_tree_get_selection_data(GNT_TREE(plugins.tree)); |
| 15884 | 366 | if (!purple_plugin_is_loaded(plugin)) |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
367 | { |
| 15884 | 368 | purple_notify_error(plugin, _("Error"), |
|
34449
bbcb198650b7
Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34333
diff
changeset
|
369 | _("Plugin need to be loaded before you can configure it."), NULL, NULL); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
370 | return; |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
371 | } |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
372 | |
| 36929 | 373 | info = purple_plugin_get_info(plugin); |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
374 | |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
375 | if (g_object_get_data(G_OBJECT(info), "finch-ui-data")) { |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
376 | return; |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
377 | } |
| 36929 | 378 | ui_data = g_new0(FinchPluginUiData, 1); |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
379 | g_object_set_data_full(G_OBJECT(info), "finch-ui-data", ui_data, g_free); |
|
35690
5ef990c032ad
Fix Finch clang scan-build warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35475
diff
changeset
|
380 | |
|
36398
8a349ab2993c
Refactored some of gntplugin. Some more plugin API changes are needed for this to build.
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
381 | if (FINCH_IS_PLUGIN_INFO(info)) |
|
39248
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
382 | priv = finch_plugin_info_get_instance_private( |
|
9541bd9eed1f
Port Finch away from deprecated g_type_class_add_private()
Mike Ruprecht <cmaiku@gmail.com>
parents:
38798
diff
changeset
|
383 | FINCH_PLUGIN_INFO(info)); |
|
36398
8a349ab2993c
Refactored some of gntplugin. Some more plugin API changes are needed for this to build.
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
384 | |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
385 | if (priv && priv->pref_frame_cb != NULL) |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
386 | { |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
387 | GntWidget *window = gnt_vbox_new(FALSE); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
388 | GntWidget *box, *button; |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
389 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
390 | gnt_box_set_toplevel(GNT_BOX(window), TRUE); |
|
36398
8a349ab2993c
Refactored some of gntplugin. Some more plugin API changes are needed for this to build.
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
391 | gnt_box_set_title(GNT_BOX(window), |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
392 | gplugin_plugin_info_get_name( |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
393 | GPLUGIN_PLUGIN_INFO(info))); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
394 | gnt_box_set_alignment(GNT_BOX(window), GNT_ALIGN_MID); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
395 | |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
396 | box = priv->pref_frame_cb(); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
397 | gnt_box_add_widget(GNT_BOX(window), box); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
398 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
399 | box = gnt_hbox_new(FALSE); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
400 | gnt_box_add_widget(GNT_BOX(window), box); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
401 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
402 | button = gnt_button_new(_("Close")); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
403 | gnt_box_add_widget(GNT_BOX(box), button); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
404 | g_signal_connect_swapped(G_OBJECT(button), "activate", |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
405 | G_CALLBACK(gnt_widget_destroy), window); |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
406 | g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(remove_confwin), plugin); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
407 | |
|
14210
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
408 | gnt_widget_show(window); |
|
4823798a92a0
[gaim-migrate @ 16793]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
409 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
410 | ui_data->type = FINCH_PLUGIN_UI_DATA_TYPE_WINDOW; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
411 | ui_data->u.window = window; |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
412 | } |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
413 | else if (purple_plugin_info_get_pref_request_cb(info)) |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
414 | { |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
415 | PurplePluginPrefRequestCb pref_request_cb = purple_plugin_info_get_pref_request_cb(info); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
416 | gpointer handle; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
417 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
418 | ui_data->type = FINCH_PLUGIN_UI_DATA_TYPE_REQUEST; |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
419 | ui_data->u.request_handle = handle = pref_request_cb(plugin); |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
420 | purple_request_add_close_notify( |
|
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
421 | handle, (GDestroyNotify)close_plugin_info_request_cb, info); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
422 | } |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
423 | else if (purple_plugin_info_get_pref_frame_cb(info)) |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
424 | { |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
425 | PurplePluginPrefFrameCb pref_frame_cb = purple_plugin_info_get_pref_frame_cb(info); |
|
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
426 | GntWidget *win = process_pref_frame(pref_frame_cb(plugin)); |
|
18301
1988607deed3
Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18273
diff
changeset
|
427 | g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(remove_confwin), plugin); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
428 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
429 | ui_data->type = FINCH_PLUGIN_UI_DATA_TYPE_WINDOW; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
430 | ui_data->u.window = win; |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
431 | } |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
432 | else |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
433 | { |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
434 | purple_notify_info(plugin, _("Error"), _("No configuration " |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34449
diff
changeset
|
435 | "options for this plugin."), NULL, NULL); |
|
40544
a144fe8ec06f
Remove PurplePluginInfo->ui_data.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40511
diff
changeset
|
436 | g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
437 | } |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
438 | } |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
439 | |
|
36403
7141a2166848
Refactored gntplugin to use the initial GObject plugin API.
Ankit Vani <a@nevitus.org>
parents:
36398
diff
changeset
|
440 | void finch_plugins_show_all(void) |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
441 | { |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
442 | GntWidget *window, *tree, *box, *aboot, *button; |
|
36403
7141a2166848
Refactored gntplugin to use the initial GObject plugin API.
Ankit Vani <a@nevitus.org>
parents:
36398
diff
changeset
|
443 | GList *plugin_list, *iter; |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
444 | GList *seen; |
|
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
445 | |
|
18400
549820f4725c
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18332
diff
changeset
|
446 | if (plugins.window) { |
|
549820f4725c
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18332
diff
changeset
|
447 | gnt_window_present(plugins.window); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
448 | return; |
|
18400
549820f4725c
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18332
diff
changeset
|
449 | } |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
450 | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
451 | purple_plugins_refresh(); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
452 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
453 | plugins.window = window = gnt_vbox_new(FALSE); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
454 | gnt_box_set_toplevel(GNT_BOX(window), TRUE); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
455 | gnt_box_set_title(GNT_BOX(window), _("Plugins")); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
456 | gnt_box_set_pad(GNT_BOX(window), 0); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
457 | gnt_box_set_alignment(GNT_BOX(window), GNT_ALIGN_MID); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
458 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
459 | gnt_box_add_widget(GNT_BOX(window), |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
460 | gnt_label_new(_("You can (un)load plugins from the following list."))); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
461 | gnt_box_add_widget(GNT_BOX(window), gnt_hline_new()); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
462 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
463 | box = gnt_hbox_new(FALSE); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
464 | gnt_box_add_widget(GNT_BOX(window), box); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
465 | gnt_box_add_widget(GNT_BOX(window), gnt_hline_new()); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
466 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
467 | gnt_box_set_pad(GNT_BOX(box), 0); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
468 | plugins.tree = tree = gnt_tree_new(); |
|
14167
ca6027c33d2c
[gaim-migrate @ 16739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
469 | gnt_tree_set_compare_func(GNT_TREE(tree), (GCompareFunc)plugin_compare); |
|
39617
1d0453799f73
Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39248
diff
changeset
|
470 | gnt_widget_set_has_border(tree, FALSE); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
471 | gnt_box_add_widget(GNT_BOX(box), tree); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
472 | gnt_box_add_widget(GNT_BOX(box), gnt_vline_new()); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
473 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
474 | plugins.aboot = aboot = gnt_text_view_new(); |
|
20775
899e30b22bd5
Translate plugin information, and top-align them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20147
diff
changeset
|
475 | gnt_text_view_set_flag(GNT_TEXT_VIEW(aboot), GNT_TEXT_VIEW_TOP_ALIGN); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
476 | gnt_widget_set_size(aboot, 40, 20); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
477 | gnt_box_add_widget(GNT_BOX(box), aboot); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
478 | |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
479 | seen = purple_prefs_get_path_list("/finch/plugins/seen"); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
480 | |
|
36403
7141a2166848
Refactored gntplugin to use the initial GObject plugin API.
Ankit Vani <a@nevitus.org>
parents:
36398
diff
changeset
|
481 | plugin_list = purple_plugins_find_all(); |
|
7141a2166848
Refactored gntplugin to use the initial GObject plugin API.
Ankit Vani <a@nevitus.org>
parents:
36398
diff
changeset
|
482 | for (iter = plugin_list; iter; iter = iter->next) |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
483 | { |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
484 | PurplePlugin *plug = PURPLE_PLUGIN(iter->data); |
|
18332
47aab2f8e07f
Load new non-native plugins when the plugins window opens.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
485 | |
|
36467
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36464
diff
changeset
|
486 | if (purple_plugin_is_internal(plug)) |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
487 | continue; |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
488 | |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
489 | gnt_tree_add_choice( |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
490 | GNT_TREE(tree), plug, |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
491 | gnt_tree_create_row( |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
492 | GNT_TREE(tree), |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
493 | gplugin_plugin_info_get_name( |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
494 | GPLUGIN_PLUGIN_INFO( |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
495 | purple_plugin_get_info(plug)))), |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39617
diff
changeset
|
496 | NULL, NULL); |
| 15884 | 497 | gnt_tree_set_choice(GNT_TREE(tree), plug, purple_plugin_is_loaded(plug)); |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
498 | if (!g_list_find_custom(seen, gplugin_plugin_get_filename(plug), |
|
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
499 | (GCompareFunc)strcmp)) { |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
500 | gnt_tree_set_row_flags(GNT_TREE(tree), plug, GNT_TEXT_FLAG_BOLD); |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
501 | } |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
502 | } |
|
36430
559d5d9d8a6c
Refactored the codebase to remove purple_plugins_free_found_list()
Ankit Vani <a@nevitus.org>
parents:
36421
diff
changeset
|
503 | g_list_free(plugin_list); |
|
36403
7141a2166848
Refactored gntplugin to use the initial GObject plugin API.
Ankit Vani <a@nevitus.org>
parents:
36398
diff
changeset
|
504 | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
505 | gnt_tree_set_col_width(GNT_TREE(tree), 0, 30); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
506 | g_signal_connect(G_OBJECT(tree), "toggled", G_CALLBACK(plugin_toggled_cb), NULL); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
507 | g_signal_connect(G_OBJECT(tree), "selection_changed", G_CALLBACK(selection_changed), NULL); |
|
16999
2d66b5256b1b
I liked Etan's suggestion in devel. Now, Finch will bold unseen plugins in the plugin dialog. A plugin is considered 'seen' only after the details of the plugin is viewed by the user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16490
diff
changeset
|
508 | g_object_set_data(G_OBJECT(tree), "seen-list", seen); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
509 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
510 | box = gnt_hbox_new(FALSE); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
511 | gnt_box_add_widget(GNT_BOX(window), box); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
512 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
513 | button = gnt_button_new(_("Close")); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
514 | gnt_box_add_widget(GNT_BOX(box), button); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
515 | g_signal_connect_swapped(G_OBJECT(button), "activate", |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
516 | G_CALLBACK(gnt_widget_destroy), window); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
517 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
518 | plugins.conf = button = gnt_button_new(_("Configure Plugin")); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
519 | gnt_box_add_widget(GNT_BOX(box), button); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
520 | g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(configure_plugin_cb), NULL); |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
521 | |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
522 | g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(reset_plugin_window), NULL); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
523 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
524 | gnt_widget_show(window); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
525 | |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14167
diff
changeset
|
526 | decide_conf_button(gnt_tree_get_selection_data(GNT_TREE(tree))); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
527 | } |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
528 | |
|
18301
1988607deed3
Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18273
diff
changeset
|
529 | static GntWidget* |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
530 | process_pref_frame(PurplePluginPrefFrame *frame) |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
531 | { |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
532 | PurpleRequestField *field; |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
533 | PurpleRequestFields *fields; |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
534 | PurpleRequestFieldGroup *group = NULL; |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
535 | GList *prefs; |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
536 | GList *stringlist = NULL; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
537 | GntWidget *ret = NULL; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
538 | |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
539 | fields = purple_request_fields_new(); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
540 | |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
541 | for (prefs = purple_plugin_pref_frame_get_prefs(frame); prefs; prefs = prefs->next) { |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
542 | PurplePluginPref *pref = prefs->data; |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
543 | PurplePrefType type; |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
544 | const char *name = purple_plugin_pref_get_name(pref); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
545 | const char *label = purple_plugin_pref_get_label(pref); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
546 | if(name == NULL) { |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
547 | if(label == NULL) |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
548 | continue; |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
549 | |
|
35378
5d9e2581005b
gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents:
34479
diff
changeset
|
550 | if(purple_plugin_pref_get_pref_type(pref) == PURPLE_PLUGIN_PREF_INFO) { |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
551 | field = purple_request_field_label_new("*", purple_plugin_pref_get_label(pref)); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
552 | purple_request_field_group_add_field(group, field); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
553 | } else { |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
554 | group = purple_request_field_group_new(label); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
555 | purple_request_fields_add_group(fields, group); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
556 | } |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
557 | continue; |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
558 | } |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
559 | |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
560 | field = NULL; |
|
35378
5d9e2581005b
gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents:
34479
diff
changeset
|
561 | type = purple_prefs_get_pref_type(name); |
|
5d9e2581005b
gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents:
34479
diff
changeset
|
562 | if(purple_plugin_pref_get_pref_type(pref) == PURPLE_PLUGIN_PREF_CHOICE) { |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
563 | gpointer current_value = NULL; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
564 | |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
565 | switch(type) { |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
566 | case PURPLE_PREF_BOOLEAN: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
567 | current_value = g_strdup_printf("%d", (int)purple_prefs_get_bool(name)); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
568 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
569 | case PURPLE_PREF_INT: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
570 | current_value = g_strdup_printf("%d", (int)purple_prefs_get_int(name)); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
571 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
572 | case PURPLE_PREF_STRING: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
573 | current_value = g_strdup(purple_prefs_get_string(name)); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
574 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
575 | default: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
576 | continue; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
577 | } |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
578 | |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
579 | field = purple_request_field_list_new(name, label); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
580 | purple_request_field_list_set_multi_select(field, FALSE); |
|
40326
cdca03a74387
Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents:
40028
diff
changeset
|
581 | for (GList *list = purple_plugin_pref_get_choices(pref); list != NULL; list = list->next) { |
|
40329
b5e0f65a5d9c
Replace PurpleNamedValue with PurpleKeyValuePair
qarkai <qarkai@gmail.com>
parents:
40326
diff
changeset
|
582 | const PurpleKeyValuePair *choice = list->data; |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
583 | char *value = NULL; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
584 | switch(type) { |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
585 | case PURPLE_PREF_BOOLEAN: |
|
40326
cdca03a74387
Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents:
40028
diff
changeset
|
586 | value = g_strdup_printf("%d", GPOINTER_TO_INT(choice->value)); |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
587 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
588 | case PURPLE_PREF_INT: |
|
40326
cdca03a74387
Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents:
40028
diff
changeset
|
589 | value = g_strdup_printf("%d", GPOINTER_TO_INT(choice->value)); |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
590 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
591 | case PURPLE_PREF_STRING: |
|
40326
cdca03a74387
Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents:
40028
diff
changeset
|
592 | value = g_strdup(choice->value); |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
593 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
594 | default: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
595 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
596 | } |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
597 | stringlist = g_list_prepend(stringlist, value); |
|
40329
b5e0f65a5d9c
Replace PurpleNamedValue with PurpleKeyValuePair
qarkai <qarkai@gmail.com>
parents:
40326
diff
changeset
|
598 | purple_request_field_list_add_icon(field, choice->key, NULL, value); |
|
38259
c593fc9f5438
Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents:
31294
diff
changeset
|
599 | if (purple_strequal(value, current_value)) |
|
40329
b5e0f65a5d9c
Replace PurpleNamedValue with PurpleKeyValuePair
qarkai <qarkai@gmail.com>
parents:
40326
diff
changeset
|
600 | purple_request_field_list_add_selected(field, choice->key); |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
601 | } |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
602 | g_free(current_value); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
603 | } else { |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
604 | switch(type) { |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
605 | case PURPLE_PREF_BOOLEAN: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
606 | field = purple_request_field_bool_new(name, label, purple_prefs_get_bool(name)); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
607 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
608 | case PURPLE_PREF_INT: |
|
33935
e740bbb8350c
Request API: fix integer fields, add bounds to them
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
31294
diff
changeset
|
609 | field = purple_request_field_int_new(name, label, purple_prefs_get_int(name), INT_MIN, INT_MAX); |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
610 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
611 | case PURPLE_PREF_STRING: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
612 | field = purple_request_field_string_new(name, label, purple_prefs_get_string(name), |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
613 | purple_plugin_pref_get_format_type(pref) & PURPLE_STRING_FORMAT_TYPE_MULTILINE); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
614 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
615 | default: |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
616 | break; |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
617 | } |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
618 | } |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
619 | |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
620 | if (field) { |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
621 | if (group == NULL) { |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
622 | group = purple_request_field_group_new(_("Preferences")); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
623 | purple_request_fields_add_group(fields, group); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
624 | } |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
625 | purple_request_field_group_add_field(group, field); |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
626 | } |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
627 | } |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
628 | |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
629 | ret = purple_request_fields(NULL, _("Preferences"), NULL, NULL, fields, |
|
16490
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16478
diff
changeset
|
630 | _("Save"), G_CALLBACK(finch_request_save_in_prefs), _("Cancel"), NULL, |
|
34332
876483829700
Request API refactoring: switch purple_request_fields to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
33935
diff
changeset
|
631 | NULL, NULL); |
|
21924
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
632 | g_signal_connect_swapped(G_OBJECT(ret), "destroy", G_CALLBACK(free_stringlist), stringlist); |
|
4124e7b8ff63
Create a 'list' request-field for a 'choice' plugin pref.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21630
diff
changeset
|
633 | return ret; |
|
16383
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
634 | } |
|
af8d75120347
Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16313
diff
changeset
|
635 |