diff options
author | David Faure <david.faure@kdab.com> | 2019-07-20 23:22:11 +0200 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2019-08-06 11:28:59 +0200 |
commit | f7fc0f1cf38b2d9dbacc52642d68af66882e2026 (patch) | |
tree | 6642e38e3bd8bf59d78955932efabbddb28b5334 | |
parent | b05d6b04e0527953983cc0451015efa27fa58580 (diff) | |
download | qttools-f7fc0f1cf38b2d9dbacc52642d68af66882e2026.tar.gz |
qtplugininfo: don't abort on missing userdata if we don't care
Plugins *for* Qt have a MetaData object with Keys, but application
plugins don't necessarily have that. Let's still make qtplugininfo
useful for those plugins as well.
Before:
$ qtplugininfo /usr/lib64/plugins/kcm_colors.so
qtplugininfo: /usr/lib64/plugins/kcm_colors.so: invalid metadata, user data is not a JSON object
After:
$ qtplugininfo /usr/lib64/plugins/kcm_colors.so
IID "org.kde.KPluginFactory" Qt 5.13.0 (release)
qtplugininfo: /usr/lib64/plugins/kcm_colors.so: invalid metadata, user data is not a JSON object
Change-Id: Icfe55e4d1749b5d31db1787883487f33987263b3
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r-- | src/qtplugininfo/qtplugininfo.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/qtplugininfo/qtplugininfo.cpp b/src/qtplugininfo/qtplugininfo.cpp index 2c3db2afd..dcda19aff 100644 --- a/src/qtplugininfo/qtplugininfo.cpp +++ b/src/qtplugininfo/qtplugininfo.cpp @@ -138,11 +138,6 @@ int main(int argc, char** argv) retval = 1; continue; } - if (!userData.isNull() && !userData.isObject()) { - std::cerr << "qtplugininfo: " << pluginNativeName.constData() << ": invalid metadata, user data is not a JSON object" << std::endl; - retval = 1; - continue; - } if (parser.positionalArguments().size() != 1) std::cout << pluginNativeName.constData() << ": "; @@ -159,8 +154,14 @@ int main(int argc, char** argv) std::cout << "Qt " << (version >> 16) << '.' << ((version >> 8) & 0xFF) << '.' << (version & 0xFF) << (debug.toBool() ? " (debug)" : " (release)"); std::cout << std::endl; - if (print & PrintUserData && userData.isObject()) - std::cout << "User Data: " << QJsonDocument(userData.toObject()).toJson().constData(); + if (print & PrintUserData) { + if (userData.isObject()) + std::cout << "User Data: " << QJsonDocument(userData.toObject()).toJson().constData(); + else if (!userData.isNull()) { + std::cerr << "qtplugininfo: " << pluginNativeName.constData() << ": invalid metadata, user data is not a JSON object" << std::endl; + retval = 1; + } + } } } |