pidgin/gtkdialogs.c

branch
soc.2013.gobjectification.plugins
changeset 36644
e06a238d2864
parent 36626
18fc361b3704
child 36655
c4c1e8d8918a
equal deleted inserted replaced
36643:f5d0db1dc2ed 36644:e06a238d2864
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

mercurial