libpurple/plugins.c

Tue, 15 Oct 2024 00:47:42 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Tue, 15 Oct 2024 00:47:42 -0500
changeset 43011
ce3144e2bc33
parent 42999
5a506dee26d2
child 43286
1861a365a664
permissions
-rw-r--r--

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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15523
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
7 * source distribution.
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
43 static GList *loaded_plugins = NULL;
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
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
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
135 loaded_plugins = g_list_remove(loaded_plugins, plugin);
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
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
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
211 GPluginPluginInfo *info;
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
212
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
213 g_return_val_if_fail(plugin != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
214
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
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
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
258 }
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
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
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
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
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
341
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
342 g_return_val_if_fail(id != NULL && *id != '\0', NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
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
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
364
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
365 g_return_val_if_fail(filename != NULL && *filename != '\0', NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
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
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
391 g_return_if_fail(key != NULL && *key != '\0');
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
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
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
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(&notification);
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 }

mercurial