JSON property "X-KDevelop-Interfaces" messages

René J.V. Bertin rjvbertin at gmail.com
Thu Apr 7 18:04:52 UTC 2016


On Thursday April 07 2016 17:36:47 Milian Wolff wrote:
> Or just "break qt_message_output", or QT_FATAL_WARNINGS=1 if it's a warning.

That one is useful ... except of course one has to remember running KDevelop without it before trying with it again, otherwise the abort happens on the "cache maybe corrupted" warning :)

Anyway, I found the warning message, and it's caused by a call to KPluginMetaData::readStringList() in PluginControllerPrivate::foreachEnabledPlugin(). I've added some debug output in both functions; fortunately Qt knows how to print QJsonObject instances. Apparently the Plasma Project Manager is to blame (and correctly so, IIUC):

void KDevelop::PluginControllerPrivate::foreachEnabledPlugin(F, const QString &, const QVariantMap &, const QString &) [F = (lambda at /Volumes/Debian/MP9/var/macports/build/_Volumes_Debian_MP9_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/plugincontroller.cpp:637:29)] pluginName "" | "KDevPlasmaManager" extension= "IStatus" key= "X-KDevelop-Interfaces"
static QStringList KPluginMetaData::readStringList(const QJsonObject &, const QString &) Expected JSON property "X-KDevelop-Interfaces" to be a string list. Treating it as a list with a single entry: "org.kdevelop.IProjectFileManager" 
	QJson= QJsonObject({"GenericName":"Plasma Project Manager","GenericName[ast]":"Xestor de proyeutos de plasma","GenericName[ca at valencia]":"Gestor de projectes Plasma","GenericName[ca]":"Gestor de projectes Plasma","GenericName[de]":"Plasma-Projektverwaltung","GenericName[en_GB]":"Plasma Project Manager","GenericName[es]":"Gestor de proyectos de Plasma","GenericName[et]":"Plasma projektihaldur","GenericName[fi]":"Plasma-projektinhallinta","GenericName[gl]":"Xestor de proxectos de Plasma","GenericName[it]":"Gestore progetto Plasma","GenericName[ko]":"Plasma 프로젝트 관리자","GenericName[nl]":"Plasma projectbeheerder","GenericName[nn]":"Plasma prosjekthandsamar","GenericName[pl]":"Zarządzanie projektami Plazmy","GenericName[pt]":"Gestor de Projectos do Plasma","GenericName[pt_BR]":"Gerenciador de Projetos do Plasma","GenericName[sk]":"Správca projektov Plasma","GenericName[sl]":"Upravljalnik projektov za Plasmo","GenericName[sr at ijekavian]":"Менаџер плазма пројеката","GenericName[sr at ijekavianlatin]":"Menadžer plasma projekata","GenericName[sr at latin]":"Menadžer plasma projekata","GenericName[sr]":"Менаџер плазма пројеката","GenericName[sv]":"Plasma-projekthanterare","GenericName[uk]":"Керування проектами Плазми","GenericName[x-test]":"xxPlasma Project Managerxx","GenericName[zh_CN]":"Plasma 工程管理器","KPlugin":{"Authors":[{"Name":"Giorgos Tsiapaliokas"}],"Category":"Project Management","Description":"Allow KDevPlatform to manage plasma projects","Description[ast]":"Permite a KDevPlatform xestionar los proyeutos de plasma","Description[ca at valencia]":"Permet al KDevPlatform gestionar els projectes de plasma","Description[ca]":"Permet al KDevPlatform gestionar els projectes de plasma","Description[de]":"Verwaltung von Plasma-Projekten mit KDevPlatform","Description[en_GB]":"Allow KDevPlatform to manage plasma projects","Description[es]":"Permite a KDevPlatform gestionar proyectos de Plasma","Description[et]":"Võimaldab KDevPlatformil hallata Plasma projekte","Description[fi]":"Mahdollistaa KDevPlatformin hallitsemaan Plasma-projekteja","Description[gl]":"Permitir que KDevPlatform xestione proxectos de Plasma.","Description[it]":"Permette a KDevPlatform di gestire i progetti di plasma","Description[ko]":"KDevPlatform으로 Plasma 프로젝트 관리 허용","Description[nl]":"KDevPlatform toestaan plasma-projecten te beheren","Description[nn]":"Tillet KDevPlatform å handtera Plasma-prosjekt","Description[pl]":"Zezwól KDevPlatform na zarządzanie projektami plazmy","Description[pt]":"Permite ao KDevPlatform gerir projectos do Plasma","Description[pt_BR]":"Permite ao KDevPlatform gerenciar projetos do Plasma","Description[sk]":"Umožniť KDevPlatform spracovať projekty plasma","Description[sl]":"Omogoči, da KDevPlatform upravlja s projekti Plasme","Description[sr at ijekavian]":"Дозволите К‑девелопу да управља плазма пројектима","Description[sr at ijekavianlatin]":"Dozvolite KDevelopu da upravlja plasma projektima","Description[sr at latin]":"Dozvolite KDevelopu da upravlja plasma projektima","Description[sr]":"Дозволите К‑девелопу да управља плазма пројектима","Description[sv]":"Tillåter att KDevelop hanterar Plasma-projekt","Description[uk]":"Дозволяє KDevPlatform керувати проектами Плазми","Description[x-test]":"xxAllow KDevPlatform to manage plasma projectsxx","Description[zh_CN]":"允许 KDevPlatform 管理 plasma 项目","Icon":"plasmagik","Id":"KDevPlasmaManager","Name":"Plasma Project Manager","Name[ast]":"Xestor de proyeutos de plasma","Name[ca at valencia]":"Gestor de projectes Plasma","Name[ca]":"Gestor de projectes Plasma","Name[de]":"Plasma-Projektverwaltung","Name[en_GB]":"Plasma Project Manager","Name[es]":"Gestor de proyectos de Plasma","Name[et]":"Plasma projektihaldur","Name[fi]":"Plasma-projektinhallinta","Name[gl]":"Xestor de proxectos de Plasma","Name[it]":"Gestore progetto Plasma","Name[ko]":"Plasma 프로젝트 관리자","Name[nl]":"Plasma projectbeheerder","Name[nn]":"Plasma prosjekthandsamar","Name[pl]":"Zarządzanie projektami Plazmy","Name[pt]":"Gestor de Projectos do Plasma","Name[pt_BR]":"Gerenciador de Projetos do Plasma","Name[sk]":"Správca projektov Plasma","Name[sl]":"Upravljalnik projektov za Plasmo","Name[sr at ijekavian]":"Менаџер плазма пројеката","Name[sr at ijekavianlatin]":"Menadžer plasma projekata","Name[sr at latin]":"Menadžer plasma projekata","Name[sr]":"Менаџер плазма пројеката","Name[sv]":"Plasma-projekthanterare","Name[uk]":"Керування проектами Плазми","Name[x-test]":"xxPlasma Project Managerxx","Name[zh_CN]":"Plasma 工程管理器","ServiceTypes":["KDevelop/Plugin"]},"X-KDevelop-Category":"Project","X-KDevelop-FileManager":"None","X-KDevelop-Interfaces":"org.kdevelop.IProjectFileManager","X-KDevelop-Mode":"GUI","X-KDevelop-Version":"25"})
void KDevelop::PluginControllerPrivate::foreachEnabledPlugin(F, const QString &, const QVariantMap &, const QString &) [F = (lambda at /Volumes/Debian/MP9/var/macports/build/_Volumes_Debian_MP9_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/plugincontroller.cpp:579:33)] pluginName "" | "KDevPlasmaManager" extension= "" key= "X-KDevelop-Interfaces"
static QStringList KPluginMetaData::readStringList(const QJsonObject &, const QString &) Expected JSON property "X-KDevelop-Interfaces" to be a string list. Treating it as a list with a single entry: "org.kdevelop.IProjectFileManager" 
	QJson= QJsonObject({"GenericName":"Plasma Project Manager","GenericName[ast]":"Xestor de proyeutos de plasma","GenericName[ca at valencia]":"Gestor de projectes Plasma","GenericName[ca]":"Gestor de projectes Plasma","GenericName[de]":"Plasma-Projektverwaltung","GenericName[en_GB]":"Plasma Project Manager","GenericName[es]":"Gestor de proyectos de Plasma","GenericName[et]":"Plasma projektihaldur","GenericName[fi]":"Plasma-projektinhallinta","GenericName[gl]":"Xestor de proxectos de Plasma","GenericName[it]":"Gestore progetto Plasma","GenericName[ko]":"Plasma 프로젝트 관리자","GenericName[nl]":"Plasma projectbeheerder","GenericName[nn]":"Plasma prosjekthandsamar","GenericName[pl]":"Zarządzanie projektami Plazmy","GenericName[pt]":"Gestor de Projectos do Plasma","GenericName[pt_BR]":"Gerenciador de Projetos do Plasma","GenericName[sk]":"Správca projektov Plasma","GenericName[sl]":"Upravljalnik projektov za Plasmo","GenericName[sr at ijekavian]":"Менаџер плазма пројеката","GenericName[sr at ijekavianlatin]":"Menadžer plasma projekata","GenericName[sr at latin]":"Menadžer plasma projekata","GenericName[sr]":"Менаџер плазма пројеката","GenericName[sv]":"Plasma-projekthanterare","GenericName[uk]":"Керування проектами Плазми","GenericName[x-test]":"xxPlasma Project Managerxx","GenericName[zh_CN]":"Plasma 工程管理器","KPlugin":{"Authors":[{"Name":"Giorgos Tsiapaliokas"}],"Category":"Project Management","Description":"Allow KDevPlatform to manage plasma projects","Description[ast]":"Permite a KDevPlatform xestionar los proyeutos de plasma","Description[ca at valencia]":"Permet al KDevPlatform gestionar els projectes de plasma","Description[ca]":"Permet al KDevPlatform gestionar els projectes de plasma","Description[de]":"Verwaltung von Plasma-Projekten mit KDevPlatform","Description[en_GB]":"Allow KDevPlatform to manage plasma projects","Description[es]":"Permite a KDevPlatform gestionar proyectos de Plasma","Description[et]":"Võimaldab KDevPlatformil hallata Plasma projekte","Description[fi]":"Mahdollistaa KDevPlatformin hallitsemaan Plasma-projekteja","Description[gl]":"Permitir que KDevPlatform xestione proxectos de Plasma.","Description[it]":"Permette a KDevPlatform di gestire i progetti di plasma","Description[ko]":"KDevPlatform으로 Plasma 프로젝트 관리 허용","Description[nl]":"KDevPlatform toestaan plasma-projecten te beheren","Description[nn]":"Tillet KDevPlatform å handtera Plasma-prosjekt","Description[pl]":"Zezwól KDevPlatform na zarządzanie projektami plazmy","Description[pt]":"Permite ao KDevPlatform gerir projectos do Plasma","Description[pt_BR]":"Permite ao KDevPlatform gerenciar projetos do Plasma","Description[sk]":"Umožniť KDevPlatform spracovať projekty plasma","Description[sl]":"Omogoči, da KDevPlatform upravlja s projekti Plasme","Description[sr at ijekavian]":"Дозволите К‑девелопу да управља плазма пројектима","Description[sr at ijekavianlatin]":"Dozvolite KDevelopu da upravlja plasma projektima","Description[sr at latin]":"Dozvolite KDevelopu da upravlja plasma projektima","Description[sr]":"Дозволите К‑девелопу да управља плазма пројектима","Description[sv]":"Tillåter att KDevelop hanterar Plasma-projekt","Description[uk]":"Дозволяє KDevPlatform керувати проектами Плазми","Description[x-test]":"xxAllow KDevPlatform to manage plasma projectsxx","Description[zh_CN]":"允许 KDevPlatform 管理 plasma 项目","Icon":"plasmagik","Id":"KDevPlasmaManager","Name":"Plasma Project Manager","Name[ast]":"Xestor de proyeutos de plasma","Name[ca at valencia]":"Gestor de projectes Plasma","Name[ca]":"Gestor de projectes Plasma","Name[de]":"Plasma-Projektverwaltung","Name[en_GB]":"Plasma Project Manager","Name[es]":"Gestor de proyectos de Plasma","Name[et]":"Plasma projektihaldur","Name[fi]":"Plasma-projektinhallinta","Name[gl]":"Xestor de proxectos de Plasma","Name[it]":"Gestore progetto Plasma","Name[ko]":"Plasma 프로젝트 관리자","Name[nl]":"Plasma projectbeheerder","Name[nn]":"Plasma prosjekthandsamar","Name[pl]":"Zarządzanie projektami Plazmy","Name[pt]":"Gestor de Projectos do Plasma","Name[pt_BR]":"Gerenciador de Projetos do Plasma","Name[sk]":"Správca projektov Plasma","Name[sl]":"Upravljalnik projektov za Plasmo","Name[sr at ijekavian]":"Менаџер плазма пројеката","Name[sr at ijekavianlatin]":"Menadžer plasma projekata","Name[sr at latin]":"Menadžer plasma projekata","Name[sr]":"Менаџер плазма пројеката","Name[sv]":"Plasma-projekthanterare","Name[uk]":"Керування проектами Плазми","Name[x-test]":"xxPlasma Project Managerxx","Name[zh_CN]":"Plasma 工程管理器","ServiceTypes":["KDevelop/Plugin"]},"X-KDevelop-Category":"Project","X-KDevelop-FileManager":"None","X-KDevelop-Interfaces":"org.kdevelop.IProjectFileManager","X-KDevelop-Mode":"GUI","X-KDevelop-Version":"25"})

Rejoice, it looks like the bug is not in KDevelop but in the Plasma SDK! :)
OTOH, kdevplasmamanager.json is generated from a .desktop file, and it's unclear to me how to declare a single-item stringlist in that format.


R.


More information about the KDevelop-devel mailing list