diff --git a/shell/loadedpluginsdialog.cpp b/shell/loadedpluginsdialog.cpp --- a/shell/loadedpluginsdialog.cpp +++ b/shell/loadedpluginsdialog.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include "core.h" #include "plugincontroller.h" @@ -239,7 +240,32 @@ PluginsModel *m = static_cast(itemView()->model()); KDevelop::IPlugin *p = m->pluginForIndex(focusedIndex()); if (p) { +#if KCOREADDONS_VERSION < QT_VERSION_CHECK(5, 18, 0) + KPluginMetaData pInfo = pluginInfo(p); + KAboutData aboutData(pInfo.pluginId(), pInfo.name(), pInfo.version(), pInfo.description(), + KAboutLicense::byKeyword(pInfo.license()).key(), pInfo.copyrightText(), + pInfo.extraInformation(), pInfo.website()); + aboutData.setProgramIconName(pInfo.iconName()); + foreach(const KAboutPerson& person, pInfo.authors()) { + aboutData.addAuthor(person.name(), person.task(), + person.emailAddress(), person.webAddress(), + person.ocsUsername()); + } + foreach(const KAboutPerson& person, pInfo.otherContributors()) { + aboutData.addCredit(person.name(), person.task(), + person.emailAddress(), person.webAddress(), + person.ocsUsername()); + } + QStringList translatorName, translatorEmailAddress; + foreach(const KAboutPerson& person, pInfo.translators()) { + translatorName << person.name(); + translatorEmailAddress << person.emailAddress(); + } + aboutData.setTranslator(translatorName.join(QLatin1Char(',')), + translatorEmailAddress.join(QLatin1Char(','))); +#else KAboutData aboutData = KAboutData::fromPluginMetaData(pluginInfo(p)); +#endif if (!aboutData.componentName().isEmpty()) { // Be sure the about data is not completely empty KAboutApplicationDialog aboutPlugin(aboutData, itemView()); aboutPlugin.exec();