| 163 { |
163 { |
| 164 GString *str; |
164 GString *str; |
| 165 GList *plugins, *l = NULL; |
165 GList *plugins, *l = NULL; |
| 166 PurplePlugin *plugin = NULL; |
166 PurplePlugin *plugin = NULL; |
| 167 PurplePluginInfo *info; |
167 PurplePluginInfo *info; |
| |
168 GPluginPluginInfo *ginfo; |
| 168 PurplePluginExtraCb extra_cb; |
169 PurplePluginExtraCb extra_cb; |
| 169 char *title = g_strdup_printf(_("%s Plugin Information"), PIDGIN_NAME); |
170 char *title = g_strdup_printf(_("%s Plugin Information"), PIDGIN_NAME); |
| 170 char *pname = NULL, *authors, *pauthors, *pextra; |
171 char *pname = NULL, *authors, *pauthors, *pextra; |
| 171 const char *pver, *plicense, *pwebsite, *pid; |
172 const char *pver, *plicense, *pwebsite, *pid; |
| 172 gboolean ploaded, ploadable; |
173 gboolean ploaded, ploadable; |
| 181 plugins = purple_plugins_find_all(); |
182 plugins = purple_plugins_find_all(); |
| 182 |
183 |
| 183 for(l = plugins; l; l = l->next) { |
184 for(l = plugins; l; l = l->next) { |
| 184 plugin = PURPLE_PLUGIN(l->data); |
185 plugin = PURPLE_PLUGIN(l->data); |
| 185 info = purple_plugin_get_info(plugin); |
186 info = purple_plugin_get_info(plugin); |
| |
187 ginfo = GPLUGIN_PLUGIN_INFO(info); |
| 186 extra_cb = purple_plugin_info_get_extra_cb(info); |
188 extra_cb = purple_plugin_info_get_extra_cb(info); |
| 187 |
189 |
| 188 pname = g_markup_escape_text(purple_plugin_info_get_name(info), -1); |
190 pname = g_markup_escape_text( |
| 189 authorlist = purple_plugin_info_get_authors(info); |
191 gplugin_plugin_info_get_name(ginfo), -1); |
| |
192 authorlist = gplugin_plugin_info_get_authors(ginfo); |
| 190 |
193 |
| 191 if (authorlist) { |
194 if (authorlist) { |
| 192 authors = g_strjoinv(", ", (gchar **)authorlist); |
195 authors = g_strjoinv(", ", (gchar **)authorlist); |
| 193 n_authors = g_strv_length((gchar **)authorlist); |
196 n_authors = g_strv_length((gchar **)authorlist); |
| 194 } else { |
197 } else { |
| 199 if (authors) |
202 if (authors) |
| 200 pauthors = g_markup_escape_text(authors, -1); |
203 pauthors = g_markup_escape_text(authors, -1); |
| 201 else |
204 else |
| 202 pauthors = NULL; |
205 pauthors = NULL; |
| 203 |
206 |
| 204 pver = purple_plugin_info_get_version(info); |
207 pver = gplugin_plugin_info_get_version(ginfo); |
| 205 plicense = purple_plugin_info_get_license_id(info); |
208 plicense = gplugin_plugin_info_get_license_id(ginfo); |
| 206 pwebsite = purple_plugin_info_get_website(info); |
209 pwebsite = gplugin_plugin_info_get_website(ginfo); |
| 207 pid = purple_plugin_info_get_id(info); |
210 pid = gplugin_plugin_info_get_id(ginfo); |
| 208 ploadable = !purple_plugin_info_get_error(info); |
211 ploadable = !purple_plugin_info_get_error(info); |
| 209 ploaded = purple_plugin_is_loaded(plugin); |
212 ploaded = purple_plugin_is_loaded(plugin); |
| 210 |
213 |
| 211 if (ploaded && extra_cb) |
214 if (ploaded && extra_cb) |
| 212 pextra = extra_cb(plugin); |
215 pextra = extra_cb(plugin); |