summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2019-07-20 23:22:11 +0200
committerDavid Faure <david.faure@kdab.com>2019-08-06 11:28:59 +0200
commitf7fc0f1cf38b2d9dbacc52642d68af66882e2026 (patch)
tree6642e38e3bd8bf59d78955932efabbddb28b5334
parentb05d6b04e0527953983cc0451015efa27fa58580 (diff)
downloadqttools-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.cpp15
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;
+ }
+ }
}
}