[Development] List all components within a QML package

Thiago Macieira thiago.macieira at intel.com
Thu Nov 2 19:01:52 CET 2017


On quinta-feira, 2 de novembro de 2017 09:20:59 PDT Ben Lau wrote:
> On 3 November 2017 at 00:14, Aleix Pol <aleixpol at kde.org> wrote:
> > On Thu, Nov 2, 2017 at 5:12 PM, Ben Lau <xbenlau at gmail.com> wrote:
> > > Hi,
> > > 
> > > Is there any API available (include private) to list all the components
> > > within a QML package? I am developing a testing tool and need the
> > > information (only the name is needed).
> > 
> > There's the qmlplugindump application, it should give you everything you
> > need.
> > 
> > Aleix
> 
> Hi Aleix,
> 
> Excellent && thx. I will digest the source code.

Related: there's the qplugininfo tool too, for regular plugins.

Looks like KDE uses the JSON feature as it was intended:
$ qtplugininfo /usr/lib64/qt5/plugins/kmail/kmail_antispamplugin.so 
IID "org.kde.KPluginFactory" Qt 5.9.2 (release)
User Data: {
    "KPlugin": {
        "Description": "This plugin allows you to configure Anti Spam in 
KMail.",
        "Description[ca at valencia]": "Este connector permet comprovar el correu 
brossa en el KMail.",
        "Description[ca]": "Aquest connector permet comprovar el correu brossa 
en el KMail.",
        "Description[de]": "Mit diesem Modul können Sie die Anti-Spam-Funktion 
in KMail einrichten.",
        "Description[es]": "Este complemento le permite configurar un filtro 
anti correo basura en KMail.",
        "Description[et]": "See plugin võimaldab seadistada KMaili 
rämpspostivastast filtrit.",
        "Description[fi]": "Tällä liitännäisellä voit muuttaa KMailin 
roskapostiasetuksia.",
        "Description[fr]": "Ce module permet de configurer l'anti pourriel dans 
KMail.",
        "Description[it]": "Questa estensione permette di configurare il 
servizio anti-spam in KMail.",
        "Description[nl]": "Deze plugin stelt u in staat om Anti-spam in KMail 
in te stellen.",
        "Description[pl]": "Ta wtyczka umożliwia ustawienie programu 
antyspamowego w KMail.",
        "Description[pt]": "Este 'plugin' permite configurar o módulo Anti-Lixo 
Electrónico no KMail.",
        "Description[ru]": "Этот модуль позволяет настроить антиспам в 
KMail.",
        "Description[sk]": "Tento plugin vám umožní nastaviť antispam v 
KMail.",
        "Description[sl]": "Ta vstavek omogoča nastavitev programa proti 
neželeni pošti v KMail-u.",
        "Description[sr at ijekavian]": "Овај прикључак омогућава подешавање 
заштите од спама у К‑пошти",
        "Description[sr at ijekavianlatin]": "Ovaj priključak omogućava 
podešavanje zaštite od spama u K‑pošti",
        "Description[sr at latin]": "Ovaj priključak omogućava podešavanje 
zaštite od spama u K‑pošti",
        "Description[sr]": "Овај прикључак омогућава подешавање заштите од 
спама у К‑пошти",
        "Description[sv]": "Insticksprogrammet gör det möjligt att anpassa 
skräpposthantering i Kmail.",
        "Description[tr]": "Bu eklenti, KMail içinde Anti Spam 
yapılandırmanıza imkan verir.",
        "Description[uk]": "За допомогою цього додатка можна налаштувати засіб 
боротьби зі спамом у KMail.",
        "Description[x-test]": "xxThis plugin allows you to configure Anti Spam 
in KMail.xx",
        "Description[zh_CN]": "此插件允许您配置 KMail 反垃圾邮件机制。",
        "EnabledByDefault": "true",
        "Id": "kmailantispam",
        "Name": "Antispam",
        "Name[ca at valencia]": "Contra el correu brossa",
        "Name[ca]": "Contra el correu brossa",
        "Name[de]": "Anti-Spam",
        "Name[es]": "Anti correo basura",
        "Name[et]": "Võitlus rämpspostiga",
        "Name[fi]": "Roskapostin suodatus",
        "Name[fr]": "Anti pourriel",
        "Name[gl]": "Anti correo lixo",
        "Name[pl]": "Antyspam",
        "Name[pt]": "Anti-Lixo Electrónico",
        "Name[ru]": "Антиспам",
        "Name[sl]": "Proti neželeni pošti",
        "Name[sr at ijekavian]": "Противспам",
        "Name[sr at ijekavianlatin]": "Protivspam",
        "Name[sr at latin]": "Protivspam",
        "Name[sr]": "Противспам",
        "Name[sv]": "Antiskräppost",
        "Name[uk]": "Антиспам",
        "Name[x-test]": "xxAntispamxx",
        "Name[zh_CN]": "垃圾防御",
        "ServiceTypes": [
            "KMail/MainViewPlugin"
        ],
        "Version": "1.0"
    }
}

But sometimes drops non-plugins to the plugin dir (at least, not QPlugin):

$ qtplugininfo /usr/lib64/qt5/plugins/*thumbnail.so    
qtplugininfo: /usr/lib64/qt5/plugins/audiothumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
audiothumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/comicbookthumbnail.so: No plug-in meta-
data found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
comicbookthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/djvuthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
djvuthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/exrthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
exrthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/fontthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
fontthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/gsthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
gsthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/htmlthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
htmlthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/imagethumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
imagethumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/jpegthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
jpegthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/kritathumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
kritathumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/mobithumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
mobithumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/rawthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
rawthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/svgthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
svgthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/textthumbnail.so: No plug-in meta-data 
found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
textthumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/webarchivethumbnail.so: No plug-in meta-
data found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
webarchivethumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/windowsexethumbnail.so: No plug-in meta-
data found: Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/
windowsexethumbnail.so'
qtplugininfo: /usr/lib64/qt5/plugins/windowsimagethumbnail.so: No plug-in 
meta-data found: Failed to extract plugin meta data from '/usr/lib64/qt5/
plugins/windowsimagethumbnail.so'


-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list