Tue, 15 Oct 2024 00:47:42 -0500
Port prefs to AdwSwitchRow
Now that we depend on Adwaita 1.4, we can flip the switch on using these (pun intended).
This also simplifies some extra tracking we needed to do for activations and focus, since the Adwaita widgets do that for us.
Testing Done:
Opened prefs, confirmed all the switches were there, and toggled them all without any warnings.
Also used the mnemonics to toggle the switches from the keyboard.
Reviewed at https://reviews.imfreedom.org/r/3582/
| 5205 | 1 | /* |
|
42594
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
2 | * Purple - Internet Messaging Library |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
| 5205 | 4 | * |
| 15884 | 5 | * Purple is the legal property of its developers, whose names are too numerous |
|
42594
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 8046 | 7 | * source distribution. |
| 5205 | 8 | * |
|
42594
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
9 | * This library is free software; you can redistribute it and/or modify it |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
10 | * under the terms of the GNU General Public License as published by the Free |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
11 | * Software Foundation; either version 2 of the License, or (at your option) |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
12 | * any later version. |
| 5205 | 13 | * |
|
42594
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
14 | * This library is distributed in the hope that it will be useful, but WITHOUT |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
17 | * more details. |
| 5205 | 18 | * |
|
42594
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License along with |
|
eddde70cedd8
Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents:
42557
diff
changeset
|
20 | * this library; if not, see <https://www.gnu.org/licenses/>. |
| 5205 | 21 | */ |
|
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
|
22 | |
|
42410
563e7a17c220
Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42193
diff
changeset
|
23 | #include <purpleconfig.h> |
|
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
|
24 | |
|
42410
563e7a17c220
Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42193
diff
changeset
|
25 | #include <glib/gi18n-lib.h> |
|
36372
5a1fe926f37b
Fixed build errors for plugins.c, and used gplugin_plugin_manager_free_plugin_list()
Ankit Vani <a@nevitus.org>
parents:
36370
diff
changeset
|
26 | |
|
36412
b57d4ad74b55
Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents:
36402
diff
changeset
|
27 | #include "core.h" |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
28 | #include "debug.h" |
|
36367
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
29 | #include "plugins.h" |
|
42557
e868bfcc092a
Only include headers when they're necessary for header files
Gary Kramlich <grim@reaperworld.com>
parents:
42440
diff
changeset
|
30 | #include "prefs.h" |
|
41007
90d2dee9b3dc
Fix the includes for the purpleenums rename
Gary Kramlich <grim@reaperworld.com>
parents:
40978
diff
changeset
|
31 | #include "purpleenums.h" |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
32 | #include "purplenotification.h" |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
33 | #include "purplenotificationmanager.h" |
|
42834
8c7bd2b5757e
Remove the notify API
Gary Kramlich <grim@reaperworld.com>
parents:
42638
diff
changeset
|
34 | #include "request.h" |
|
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:
40310
diff
changeset
|
35 | #include "util.h" |
|
41877
11e7400101d2
Fix libpurple compile on Windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41685
diff
changeset
|
36 | #ifdef _WIN32 |
|
11e7400101d2
Fix libpurple compile on Windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41685
diff
changeset
|
37 | #include "win32/win32dep.h" |
|
11e7400101d2
Fix libpurple compile on Windows
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41685
diff
changeset
|
38 | #endif |
| 5205 | 39 | |
|
36357
1a49a1a9ce18
Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents:
34821
diff
changeset
|
40 | /************************************************************************** |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
41 | * Globals |
|
36357
1a49a1a9ce18
Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents:
34821
diff
changeset
|
42 | **************************************************************************/ |
| 36397 | 43 | static GList *loaded_plugins = NULL; |
| 44 | static GList *plugins_to_disable = NULL; | |
|
10682
c293ad49121e
[gaim-migrate @ 12228]
Richard Laager <rlaager@pidgin.im>
parents:
10504
diff
changeset
|
45 | |
|
36357
1a49a1a9ce18
Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents:
34821
diff
changeset
|
46 | /************************************************************************** |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
47 | * Plugin API |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
48 | **************************************************************************/ |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
49 | static gboolean |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
50 | plugin_loading_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *plugin, |
|
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
51 | GError **error, G_GNUC_UNUSED gpointer data) |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
52 | { |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
53 | PurplePluginInfo *info; |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
54 | const gchar *info_error = NULL; |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
55 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
56 | g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), FALSE); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
57 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
58 | info = purple_plugin_get_info(plugin); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
59 | if (!info) |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
60 | return TRUE; /* a GPlugin internal plugin */ |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
61 | |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
62 | info_error = purple_plugin_info_get_error(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
63 | if(info_error != NULL) { |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
64 | gchar *filename = gplugin_plugin_get_filename(plugin); |
|
36511
1ebd4a8f2b4a
Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents:
36508
diff
changeset
|
65 | purple_debug_error("plugins", "Failed to load plugin %s: %s", |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
66 | filename, |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
67 | info_error); |
|
36511
1ebd4a8f2b4a
Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents:
36508
diff
changeset
|
68 | |
|
1ebd4a8f2b4a
Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents:
36508
diff
changeset
|
69 | g_set_error(error, PURPLE_PLUGINS_DOMAIN, 0, |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
70 | "Plugin is not loadable: %s", info_error); |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
71 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
72 | g_free(filename); |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
73 | return FALSE; |
|
36456
380500e9aff2
Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents:
36450
diff
changeset
|
74 | } |
|
36412
b57d4ad74b55
Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents:
36402
diff
changeset
|
75 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
76 | return TRUE; |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
77 | } |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
78 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
79 | static void |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
80 | plugin_loaded_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *plugin) |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
81 | { |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
82 | PurplePluginInfo *info; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
83 | gchar *filename; |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
84 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
85 | g_return_if_fail(PURPLE_IS_PLUGIN(plugin)); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
86 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
87 | info = purple_plugin_get_info(plugin); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
88 | if (!info) |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
89 | return; /* a GPlugin internal plugin */ |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
90 | |
|
37008
9dca610b3bf2
Prepend newly-loaded plugins to the loaded list
Ankit Vani <a@nevitus.org>
parents:
37001
diff
changeset
|
91 | loaded_plugins = g_list_prepend(loaded_plugins, plugin); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
92 | filename = gplugin_plugin_get_filename(plugin); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
93 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
94 | purple_debug_info("plugins", "Loaded plugin %s\n", filename); |
|
36456
380500e9aff2
Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents:
36450
diff
changeset
|
95 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
96 | g_free(filename); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
97 | } |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
98 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
99 | static gboolean |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
100 | plugin_unloading_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *plugin, |
|
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
101 | G_GNUC_UNUSED GError **error, G_GNUC_UNUSED gpointer data) |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
102 | { |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
103 | PurplePluginInfo *info; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
104 | gchar *filename; |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
105 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
106 | g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), FALSE); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
107 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
108 | info = purple_plugin_get_info(plugin); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
109 | if (info) { |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
110 | filename = gplugin_plugin_get_filename(plugin); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
111 | purple_debug_info("plugins", "Unloading plugin %s\n", |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
112 | filename); |
|
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
113 | g_free(filename); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
114 | } |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
115 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
116 | return TRUE; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
117 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
118 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
119 | static void |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
120 | plugin_unloaded_cb(G_GNUC_UNUSED GObject *manager, PurplePlugin *plugin) |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
121 | { |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
122 | PurplePluginInfo *info; |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
123 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
124 | g_return_if_fail(PURPLE_IS_PLUGIN(plugin)); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
125 | |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
126 | info = purple_plugin_get_info(plugin); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
127 | if (!info) |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
128 | return; /* a GPlugin internal plugin */ |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
129 | |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
130 | /* cancel any pending dialogs the plugin has */ |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
131 | purple_request_close_with_handle(plugin); |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
132 | |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
133 | purple_plugin_info_set_unloaded(info, TRUE); |
|
36469
304912384a5c
Free actions on plugin unload, and updated documentation
Ankit Vani <a@nevitus.org>
parents:
36468
diff
changeset
|
134 | |
| 36397 | 135 | loaded_plugins = g_list_remove(loaded_plugins, plugin); |
| 136 | plugins_to_disable = g_list_remove(plugins_to_disable, plugin); | |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
137 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
138 | purple_prefs_disconnect_by_handle(plugin); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
139 | } |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
140 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
141 | gboolean |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
142 | purple_plugin_load(PurplePlugin *plugin, GError **error) |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
143 | { |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
144 | GPluginManager *manager = NULL; |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
145 | GError *err = NULL; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
146 | gchar *filename; |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
147 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
148 | g_return_val_if_fail(plugin != NULL, FALSE); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
149 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
150 | if (purple_plugin_is_loaded(plugin)) |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
151 | return TRUE; |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
152 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
153 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
154 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
155 | if (!gplugin_manager_load_plugin(manager, plugin, &err)) { |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
156 | filename = gplugin_plugin_get_filename(plugin); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
157 | purple_debug_error("plugins", "Failed to load plugin %s: %s", |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
158 | filename, |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
159 | err ? err->message : "Unknown reason"); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
160 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
161 | g_propagate_error(error, err); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
162 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
163 | g_free(filename); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
164 | return FALSE; |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
165 | } |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
166 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
167 | return TRUE; |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
168 | } |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
169 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
170 | gboolean |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
171 | purple_plugin_unload(PurplePlugin *plugin, GError **error) |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
172 | { |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
173 | GError *err = NULL; |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
174 | gchar *filename; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
175 | GPluginManager *manager = NULL; |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
176 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
177 | g_return_val_if_fail(plugin != NULL, FALSE); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
178 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
179 | if (!purple_plugin_is_loaded(plugin)) |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
180 | return TRUE; |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
181 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
182 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
183 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
184 | if (!gplugin_manager_unload_plugin(manager, plugin, &err)) { |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
185 | filename = gplugin_plugin_get_filename(plugin); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
186 | purple_debug_error("plugins", "Failed to unload plugin %s: %s", |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
187 | filename, |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
188 | err ? err->message : "Unknown reason"); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
189 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
190 | g_propagate_error(error, err); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
191 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
192 | g_free(filename); |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
193 | |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
194 | return FALSE; |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
195 | } |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
196 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
197 | return TRUE; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
198 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
199 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
200 | gboolean |
|
39420
92213bd9538b
plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents:
39419
diff
changeset
|
201 | purple_plugin_is_loaded(PurplePlugin *plugin) |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
202 | { |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
203 | g_return_val_if_fail(plugin != NULL, FALSE); |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
204 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
205 | return (gplugin_plugin_get_state(plugin) == GPLUGIN_PLUGIN_STATE_LOADED); |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
206 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
207 | |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
208 | PurplePluginInfo * |
|
39420
92213bd9538b
plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents:
39419
diff
changeset
|
209 | purple_plugin_get_info(PurplePlugin *plugin) |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
210 | { |
| 36432 | 211 | GPluginPluginInfo *info; |
| 212 | ||
| 213 | g_return_val_if_fail(plugin != NULL, NULL); | |
| 214 | ||
| 215 | info = gplugin_plugin_get_info(plugin); | |
|
36990
b1471cc401a4
Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents:
36986
diff
changeset
|
216 | |
|
b1471cc401a4
Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents:
36986
diff
changeset
|
217 | /* GPlugin refs the plugin info object before returning it. This workaround |
|
b1471cc401a4
Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents:
36986
diff
changeset
|
218 | * is to avoid managing the reference counts everywhere in our codebase |
|
37001
e94e70e965e3
Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents:
36990
diff
changeset
|
219 | * where we use the plugin info. The plugin info instance is guaranteed to |
|
e94e70e965e3
Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents:
36990
diff
changeset
|
220 | * exist as long as the plugin exists. */ |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
221 | g_object_unref(info); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
222 | |
|
36654
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
223 | if (PURPLE_IS_PLUGIN_INFO(info)) |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
224 | return PURPLE_PLUGIN_INFO(info); |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
225 | else |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
226 | return NULL; |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
227 | } |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
228 | |
|
36396
add1d5e2314c
Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents:
36395
diff
changeset
|
229 | void |
|
36439
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
230 | purple_plugin_disable(PurplePlugin *plugin) |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
231 | { |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
232 | g_return_if_fail(plugin != NULL); |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
233 | |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
234 | if (!g_list_find(plugins_to_disable, plugin)) |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
235 | plugins_to_disable = g_list_prepend(plugins_to_disable, plugin); |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
236 | } |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
237 | |
|
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
238 | gboolean |
|
39420
92213bd9538b
plugins: Drop consts from arguments to mirror new GPlugin 0.28 API
Mike Ruprecht <cmaiku@gmail.com>
parents:
39419
diff
changeset
|
239 | purple_plugin_is_internal(PurplePlugin *plugin) |
|
36467
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
240 | { |
|
36653
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
241 | PurplePluginInfo *info; |
|
36467
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
242 | |
|
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
243 | g_return_val_if_fail(plugin != NULL, FALSE); |
|
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
244 | |
|
36653
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
245 | info = purple_plugin_get_info(plugin); |
|
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
246 | if (!info) |
|
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
247 | return TRUE; |
|
36472
1945ae79bbb3
Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents:
36469
diff
changeset
|
248 | |
|
36654
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
249 | return (purple_plugin_info_get_flags(info) & |
|
61014b39bac3
Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents:
36653
diff
changeset
|
250 | PURPLE_PLUGIN_INFO_FLAGS_INTERNAL); |
|
36467
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
251 | } |
|
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36463
diff
changeset
|
252 | |
|
36439
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
253 | GSList * |
|
41960
c8a4853205e3
Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41877
diff
changeset
|
254 | purple_plugin_get_dependent_plugins(G_GNUC_UNUSED PurplePlugin *plugin) |
|
36439
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
255 | { |
|
42440
0459fca48457
Change #warning to #pragma message
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42410
diff
changeset
|
256 | #pragma message("TODO: Implement this when GPlugin can return dependent plugins.") |
|
36439
7f8921ef1bfc
Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents:
36437
diff
changeset
|
257 | return NULL; |
| 36397 | 258 | } |
| 259 | ||
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
260 | /************************************************************************** |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
261 | * Plugins API |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
262 | **************************************************************************/ |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
263 | GList * |
|
36400
2ccd829171ec
Renamed purple_plugins_get_all() to purple_plugins_find_all() since the list is generated.
Ankit Vani <a@nevitus.org>
parents:
36399
diff
changeset
|
264 | purple_plugins_find_all(void) |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
265 | { |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
266 | GList *ret = NULL, *ids, *l; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
267 | GSList *plugins, *ll; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
268 | GPluginManager *manager = gplugin_manager_get_default(); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
269 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
270 | ids = gplugin_manager_list_plugins(manager); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
271 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
272 | for (l = ids; l; l = l->next) { |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
273 | plugins = gplugin_manager_find_plugins(manager, l->data); |
|
36806
c55849ed482d
Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
274 | |
|
c55849ed482d
Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
275 | for (ll = plugins; ll; ll = ll->next) { |
|
c55849ed482d
Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
276 | PurplePlugin *plugin = PURPLE_PLUGIN(ll->data); |
|
c55849ed482d
Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
277 | if (purple_plugin_get_info(plugin)) |
|
c55849ed482d
Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
278 | ret = g_list_append(ret, plugin); |
|
c55849ed482d
Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
279 | } |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
280 | |
|
40310
d981cc89bf37
gplugin_manager_free_plugin_list was removed in favor of g_slist_free_full
Gary Kramlich <grim@reaperworld.com>
parents:
40264
diff
changeset
|
281 | g_slist_free_full(plugins, g_object_unref); |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
282 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
283 | g_list_free(ids); |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
284 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
285 | return ret; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
286 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
287 | |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
288 | GList * |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
289 | purple_plugins_get_loaded(void) |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
290 | { |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
291 | return loaded_plugins; |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
292 | } |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
293 | |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
294 | void |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
295 | purple_plugins_add_search_path(const gchar *path) |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
296 | { |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
297 | GPluginManager *manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
298 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
299 | gplugin_manager_append_path(manager, path); |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
300 | } |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
301 | |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
302 | void |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
303 | purple_plugins_refresh(void) |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
304 | { |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
305 | GList *plugins, *l; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
306 | GPluginManager *manager = gplugin_manager_get_default(); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
307 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
308 | gplugin_manager_refresh(manager); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
309 | |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
310 | plugins = purple_plugins_find_all(); |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
311 | for (l = plugins; l != NULL; l = l->next) { |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
312 | PurplePlugin *plugin = PURPLE_PLUGIN(l->data); |
|
36653
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
313 | PurplePluginInfo *info; |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
314 | PurplePluginInfoFlags flags; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
315 | gboolean unloaded; |
|
36474
e4f3c025cb62
Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents:
36472
diff
changeset
|
316 | |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
317 | if (purple_plugin_is_loaded(plugin)) |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
318 | continue; |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
319 | |
|
36653
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
320 | info = purple_plugin_get_info(plugin); |
|
36474
e4f3c025cb62
Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents:
36472
diff
changeset
|
321 | |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
322 | unloaded = purple_plugin_info_get_unloaded(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
323 | flags = purple_plugin_info_get_flags(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
40945
diff
changeset
|
324 | if (!unloaded && flags & PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD) { |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
325 | gchar *filename = gplugin_plugin_get_filename(plugin); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
326 | purple_debug_info("plugins", "Auto-loading plugin %s\n", |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
327 | filename); |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
328 | purple_plugin_load(plugin, NULL); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
329 | g_free(filename); |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
330 | } |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
331 | } |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
332 | |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
333 | g_list_free(plugins); |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
334 | } |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
335 | |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
336 | PurplePlugin * |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
337 | purple_plugins_find_plugin(const gchar *id) |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
338 | { |
| 36432 | 339 | PurplePlugin *plugin; |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
340 | GPluginManager *manager = NULL; |
| 36432 | 341 | |
| 342 | g_return_val_if_fail(id != NULL && *id != '\0', NULL); | |
| 343 | ||
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
344 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
345 | |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
346 | plugin = gplugin_manager_find_plugin(manager, id); |
|
36990
b1471cc401a4
Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents:
36986
diff
changeset
|
347 | |
|
37178
b6865740b29c
Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
37146
diff
changeset
|
348 | if (!plugin) |
|
b6865740b29c
Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
37146
diff
changeset
|
349 | return NULL; |
|
b6865740b29c
Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
37146
diff
changeset
|
350 | |
|
36990
b1471cc401a4
Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents:
36986
diff
changeset
|
351 | /* GPlugin refs the plugin object before returning it. This workaround is |
|
b1471cc401a4
Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents:
36986
diff
changeset
|
352 | * to avoid managing the reference counts everywhere in our codebase where |
|
37001
e94e70e965e3
Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents:
36990
diff
changeset
|
353 | * we use plugin instances. A plugin object will exist till the plugins |
|
e94e70e965e3
Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents:
36990
diff
changeset
|
354 | * subsystem is uninitialized. */ |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
355 | g_object_unref(plugin); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
356 | |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36429
diff
changeset
|
357 | return plugin; |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
358 | } |
|
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
359 | |
|
36428
ba8ead8477cb
Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents:
36412
diff
changeset
|
360 | PurplePlugin * |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
361 | purple_plugins_find_by_filename(const char *filename) |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
362 | { |
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36400
diff
changeset
|
363 | GList *plugins, *l; |
| 36432 | 364 | |
| 365 | g_return_val_if_fail(filename != NULL && *filename != '\0', NULL); | |
| 366 | ||
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36400
diff
changeset
|
367 | plugins = purple_plugins_find_all(); |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
368 | |
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36400
diff
changeset
|
369 | for (l = plugins; l != NULL; l = l->next) { |
|
36428
ba8ead8477cb
Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents:
36412
diff
changeset
|
370 | PurplePlugin *plugin = PURPLE_PLUGIN(l->data); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
371 | gchar *plugin_filename = gplugin_plugin_get_filename(plugin); |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
372 | |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
373 | if (purple_strequal(plugin_filename, filename)) { |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
374 | g_list_free(plugins); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
375 | g_free(plugin_filename); |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
376 | return plugin; |
|
36402
a0d82b6f4081
Removed referencing of plugin from PurplePluginAction, since it is a part of the plugin.
Ankit Vani <a@nevitus.org>
parents:
36401
diff
changeset
|
377 | } |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
378 | g_free(plugin_filename); |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
379 | } |
|
36429
5c2bc13927b0
Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents:
36428
diff
changeset
|
380 | g_list_free(plugins); |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
381 | |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
382 | return NULL; |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
383 | } |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
384 | |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
385 | void |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
386 | purple_plugins_save_loaded(const char *key) |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
387 | { |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
388 | GList *pl; |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
389 | GList *files = NULL; |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
390 | |
| 36432 | 391 | g_return_if_fail(key != NULL && *key != '\0'); |
| 392 | ||
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
393 | for (pl = purple_plugins_get_loaded(); pl != NULL; pl = pl->next) { |
|
36428
ba8ead8477cb
Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents:
36412
diff
changeset
|
394 | PurplePlugin *plugin = PURPLE_PLUGIN(pl->data); |
|
36653
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
395 | PurplePluginInfo *info = purple_plugin_get_info(plugin); |
|
36472
1945ae79bbb3
Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents:
36469
diff
changeset
|
396 | if (!info) |
|
1945ae79bbb3
Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents:
36469
diff
changeset
|
397 | continue; |
|
1945ae79bbb3
Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents:
36469
diff
changeset
|
398 | |
|
36653
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
399 | if (purple_plugin_info_get_flags(info) & |
|
4084c34c051d
Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents:
36642
diff
changeset
|
400 | PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD) |
|
36463
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
401 | continue; |
|
b1ce7f2998e4
Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents:
36460
diff
changeset
|
402 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
403 | if (!g_list_find(plugins_to_disable, plugin)) |
|
39835
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
404 | files = g_list_append( |
|
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
405 | files, |
|
c28a375781dd
Remove purple_plugin_get_filename wrapper as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
406 | (gchar *)gplugin_plugin_get_filename(plugin)); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
407 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
408 | |
|
36456
380500e9aff2
Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents:
36450
diff
changeset
|
409 | purple_prefs_set_path_list(key, files); |
|
40264
d253f767f6cc
fix various memory leaks
Fabrice Bellet <fabrice@bellet.info>
parents:
39894
diff
changeset
|
410 | g_list_free_full(files, g_free); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
411 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
412 | |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
413 | void |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
414 | purple_plugins_load_saved(const char *key) |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
415 | { |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
416 | GList *l, *files; |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
417 | |
| 36432 | 418 | g_return_if_fail(key != NULL && *key != '\0'); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
419 | |
|
36456
380500e9aff2
Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents:
36450
diff
changeset
|
420 | files = purple_prefs_get_path_list(key); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
421 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
422 | for (l = files; l; l = l->next) |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
423 | { |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
424 | PurplePlugin *plugin; |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
425 | GError *error = NULL; |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
426 | char *file; |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
427 | |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
428 | if (l->data == NULL) |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
429 | continue; |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
430 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
431 | file = l->data; |
|
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
432 | plugin = purple_plugins_find_by_filename(file); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
433 | |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
434 | if (plugin) { |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
435 | purple_debug_info("plugins", "Loading saved plugin %s", file); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
436 | purple_plugin_load(plugin, &error); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
437 | } else { |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
438 | error = g_error_new(PURPLE_PLUGINS_DOMAIN, 0, |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
439 | _("Unable to find saved plugin %s"), file); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
440 | purple_debug_error("plugins", "Unable to find saved plugin %s", file); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
441 | } |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
442 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
443 | if(error != NULL) { |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
444 | PurpleNotification *notification = NULL; |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
445 | PurpleNotificationManager *manager = NULL; |
|
42945
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
446 | char *basename = NULL; |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
447 | char *title = NULL; |
|
42945
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
448 | char *subtitle = NULL; |
|
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
449 | |
|
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
450 | basename = g_path_get_basename(file); |
|
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
451 | title = g_strdup_printf(_("Failed to load saved plugin %s"), basename); |
|
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
452 | g_free(basename); |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
453 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
454 | if(error->message != NULL) { |
|
42945
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
455 | subtitle = g_strdup_printf(_("Failed to load saved plugin %s:\n%s"), |
|
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
456 | file, error->message); |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
457 | } else { |
|
42945
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
458 | subtitle = g_strdup_printf(_("Failed to load saved plugin %s:\nUnknown error"), |
|
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
459 | file); |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
460 | } |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
461 | |
|
42988
c2357ee36551
Replace Purple.Notification.new_generic with Purple.Notification.new
Gary Kramlich <grim@reaperworld.com>
parents:
42945
diff
changeset
|
462 | notification = purple_notification_new(NULL, title); |
|
42945
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
463 | purple_notification_set_subtitle(notification, subtitle); |
|
42193
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
464 | purple_notification_set_icon_name(notification, |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
465 | "dialog-error-symbolic"); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
466 | |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
467 | manager = purple_notification_manager_get_default(); |
|
9a7a47cdd0ba
Add notifications when a saved plugin fails to load
Gary Kramlich <grim@reaperworld.com>
parents:
41960
diff
changeset
|
468 | purple_notification_manager_add(manager, notification); |
|
42638
81ef32d85e5a
Fix transfer annotation of purple_notification_manager_add
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42594
diff
changeset
|
469 | g_clear_object(¬ification); |
|
42931
9e8b9ee3cfbb
Update libpurple for the Purple.Notification deprecations
Gary Kramlich <grim@reaperworld.com>
parents:
42834
diff
changeset
|
470 | |
|
42945
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
471 | g_free(title); |
|
0a654297e2f6
Shorten plugin load error notification title
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42931
diff
changeset
|
472 | g_free(subtitle); |
|
42931
9e8b9ee3cfbb
Update libpurple for the Purple.Notification deprecations
Gary Kramlich <grim@reaperworld.com>
parents:
42834
diff
changeset
|
473 | g_clear_error(&error); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
474 | } |
|
36386
d402ca995746
Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents:
36383
diff
changeset
|
475 | |
|
d402ca995746
Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents:
36383
diff
changeset
|
476 | g_free(l->data); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
477 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
478 | |
|
36399
f5d2c9da9ea0
Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents:
36397
diff
changeset
|
479 | g_list_free(files); |
|
36377
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
480 | } |
|
28ec73fbb37d
Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents:
36374
diff
changeset
|
481 | |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
482 | /************************************************************************** |
|
36367
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
483 | * Plugins Subsystem API |
|
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
484 | **************************************************************************/ |
|
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
485 | void |
|
36370
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
486 | purple_plugins_init(void) |
|
04a6a552bee4
Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents:
36368
diff
changeset
|
487 | { |
|
40978
2cb285cacbfd
Fix warnings about changing types on assignment.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40963
diff
changeset
|
488 | GPluginManager *manager = NULL; |
|
36367
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
489 | |
|
40532
1079a910beff
Update for new gplugin_init signature
Gary Kramlich <grim@reaperworld.com>
parents:
40441
diff
changeset
|
490 | gplugin_init(GPLUGIN_CORE_FLAGS_NONE); |
|
37495
f28a27411235
Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents:
37178
diff
changeset
|
491 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
492 | manager = gplugin_manager_get_default(); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
493 | |
|
41169
4103b3869912
Upgrade to gplugin 0.37.0
Gary Kramlich <grim@reaperworld.com>
parents:
41008
diff
changeset
|
494 | gplugin_manager_append_paths_from_environment(manager, |
|
4103b3869912
Upgrade to gplugin 0.37.0
Gary Kramlich <grim@reaperworld.com>
parents:
41008
diff
changeset
|
495 | "PURPLE_PLUGIN_PATH"); |
|
37495
f28a27411235
Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents:
37178
diff
changeset
|
496 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
497 | gplugin_manager_add_default_paths(manager); |
|
36937
c6a5ce2be21b
Call gplugin_manager_add_default_paths() from purple_plugins_init
Ankit Vani <a@nevitus.org>
parents:
36934
diff
changeset
|
498 | |
|
38834
e4144efa975e
Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents:
38358
diff
changeset
|
499 | if(!g_getenv("PURPLE_PLUGINS_SKIP")) { |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
500 | gplugin_manager_append_path(manager, PURPLE_LIBDIR); |
|
38834
e4144efa975e
Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents:
38358
diff
changeset
|
501 | } else { |
|
e4144efa975e
Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents:
38358
diff
changeset
|
502 | purple_debug_info("plugins", "PURPLE_PLUGINS_SKIP environment variable set, skipping normal plugin paths"); |
|
e4144efa975e
Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents:
38358
diff
changeset
|
503 | } |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
504 | |
|
41008
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
505 | g_signal_connect(manager, "loading-plugin", |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
506 | G_CALLBACK(plugin_loading_cb), NULL); |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
507 | g_signal_connect(manager, "loaded-plugin", |
|
dc06703548a1
Update everything for GPlugin 0.33.0
Gary Kramlich <grim@reaperworld.com>
parents:
41007
diff
changeset
|
508 | G_CALLBACK(plugin_loaded_cb), NULL); |
|
40940
f8b982789e1e
Remove purple_plugins_get_handle and the associated signals
Gary Kramlich <grim@reaperworld.com>
parents:
40544
diff
changeset
|
509 | g_signal_connect(manager, "unloading-plugin", |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
510 | G_CALLBACK(plugin_unloading_cb), NULL); |
|
40940
f8b982789e1e
Remove purple_plugins_get_handle and the associated signals
Gary Kramlich <grim@reaperworld.com>
parents:
40544
diff
changeset
|
511 | g_signal_connect(manager, "unloaded-plugin", |
|
36859
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
512 | G_CALLBACK(plugin_unloaded_cb), NULL); |
|
6775d88f996a
Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents:
36847
diff
changeset
|
513 | |
|
36503
bdaf9e0edf5c
Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents:
36499
diff
changeset
|
514 | purple_plugins_refresh(); |
|
36367
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
515 | } |
|
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
516 | |
|
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
517 | void |
|
36511
1ebd4a8f2b4a
Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents:
36508
diff
changeset
|
518 | purple_plugins_uninit(void) |
|
36367
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
519 | { |
|
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
520 | purple_debug_info("plugins", "Unloading all plugins\n"); |
|
36468
64d359bbe6f6
Removed purple_plugins_unload_all() from the API
Ankit Vani <a@nevitus.org>
parents:
36467
diff
changeset
|
521 | while (loaded_plugins != NULL) |
|
36508
88400e054286
Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents:
36507
diff
changeset
|
522 | purple_plugin_unload(loaded_plugins->data, NULL); |
|
36367
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
523 | |
|
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
524 | gplugin_uninit(); |
|
891eea799578
Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents:
36357
diff
changeset
|
525 | } |