| 830 GString *str; |
830 GString *str; |
| 831 GList *plugins, *l = NULL; |
831 GList *plugins, *l = NULL; |
| 832 PurplePlugin *plugin = NULL; |
832 PurplePlugin *plugin = NULL; |
| 833 PurplePluginInfo *info; |
833 PurplePluginInfo *info; |
| 834 char *title = g_strdup_printf(_("%s Plugin Information"), PIDGIN_NAME); |
834 char *title = g_strdup_printf(_("%s Plugin Information"), PIDGIN_NAME); |
| 835 char *pname = NULL, *pauthor = NULL; |
835 char *pname = NULL, *authors, *pauthors; |
| 836 const char *pver, *plicense, *pwebsite, *pid; |
836 const char *pver, *plicense, *pwebsite, *pid; |
| 837 gboolean ploaded, ploadable; |
837 gboolean ploaded, ploadable; |
| |
838 const char * const *authorlist; |
| 838 static GtkWidget *plugins_info = NULL; |
839 static GtkWidget *plugins_info = NULL; |
| 839 |
840 |
| 840 str = g_string_sized_new(4096); |
841 str = g_string_sized_new(4096); |
| 841 |
842 |
| 842 g_string_append_printf(str, "<h2>%s</h2><dl>", _("Plugin Information")); |
843 g_string_append_printf(str, "<h2>%s</h2><dl>", _("Plugin Information")); |
| 846 for(l = plugins; l; l = l->next) { |
847 for(l = plugins; l; l = l->next) { |
| 847 plugin = PURPLE_PLUGIN(l->data); |
848 plugin = PURPLE_PLUGIN(l->data); |
| 848 info = purple_plugin_get_info(plugin); |
849 info = purple_plugin_get_info(plugin); |
| 849 |
850 |
| 850 pname = g_markup_escape_text(purple_plugin_info_get_name(info), -1); |
851 pname = g_markup_escape_text(purple_plugin_info_get_name(info), -1); |
| 851 if ((pauthor = (char *)purple_plugin_info_get_author(info)) != NULL) |
852 authorlist = purple_plugin_info_get_authors(info); |
| 852 pauthor = g_markup_escape_text(pauthor, -1); |
853 |
| |
854 if (authorlist) |
| |
855 authors = g_strjoinv(", ", (gchar **)authorlist); |
| |
856 else |
| |
857 authors = NULL; |
| |
858 |
| |
859 if (authors) |
| |
860 pauthors = g_markup_escape_text(authors, -1); |
| |
861 else |
| |
862 pauthors = NULL; |
| |
863 |
| 853 pver = purple_plugin_info_get_version(info); |
864 pver = purple_plugin_info_get_version(info); |
| 854 plicense = purple_plugin_info_get_license(info); |
865 plicense = purple_plugin_info_get_license_id(info); |
| 855 pwebsite = purple_plugin_info_get_website(info); |
866 pwebsite = purple_plugin_info_get_website(info); |
| 856 pid = purple_plugin_info_get_id(info); |
867 pid = purple_plugin_info_get_id(info); |
| 857 ploadable = !purple_plugin_info_get_error(info); |
868 ploadable = !purple_plugin_info_get_error(info); |
| 858 ploaded = purple_plugin_is_loaded(plugin); |
869 ploaded = purple_plugin_is_loaded(plugin); |
| 859 |
870 |
| 860 g_string_append_printf(str, |
871 g_string_append_printf(str, |
| 861 "<dt>%s</dt><dd>" |
872 "<dt>%s</dt><dd>" |
| 862 "<b>Author:</b> %s<br/>" |
873 "<b>%s:</b> %s<br/>" |
| 863 "<b>Version:</b> %s<br/>" |
874 "<b>Version:</b> %s<br/>" |
| 864 "<b>License:</b> %s<br/>" |
875 "<b>License:</b> %s<br/>" |
| 865 "<b>Website:</b> %s<br/>" |
876 "<b>Website:</b> %s<br/>" |
| 866 "<b>ID String:</b> %s<br/>" |
877 "<b>ID String:</b> %s<br/>" |
| 867 "<b>Loadable:</b> %s<br/>" |
878 "<b>Loadable:</b> %s<br/>" |
| 868 "<b>Loaded:</b> %s" |
879 "<b>Loaded:</b> %s" |
| 869 "</dd><br/>", |
880 "</dd><br/>", |
| 870 pname ? pname : "", |
881 pname ? pname : "", |
| 871 pauthor ? pauthor : "", |
882 (g_strv_length((gchar **)authorlist) > 1 ? "Authors" : "Author"), |
| |
883 pauthors ? pauthors : "", |
| 872 pver ? pver : "", |
884 pver ? pver : "", |
| 873 plicense ? plicense : "", |
885 plicense ? plicense : "", |
| 874 pwebsite ? pwebsite : "", |
886 pwebsite ? pwebsite : "", |
| 875 pid, |
887 pid, |
| 876 ploadable ? "Yes" : "<span style=\"color: #FF0000;\"><b>No</b></span>", |
888 ploadable ? "Yes" : "<span style=\"color: #FF0000;\"><b>No</b></span>", |
| 877 ploaded ? "Yes" : "No"); |
889 ploaded ? "Yes" : "No"); |
| 878 |
890 |
| 879 g_free(pname); |
891 g_free(pname); |
| 880 g_free(pauthor); |
892 g_free(pauthors); |
| |
893 g_free(authors); |
| 881 } |
894 } |
| 882 g_list_free(plugins); |
895 g_list_free(plugins); |
| 883 |
896 |
| 884 g_string_append(str, "</dl>"); |
897 g_string_append(str, "</dl>"); |
| 885 |
898 |