summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2011-01-28 15:40:51 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2011-02-06 19:25:48 (GMT)
commitfd2e832657a38d4dba9b86ce190f7736a837d53d (patch)
tree31d6fa6bf0596b4bf175d1e1f5ec4557592c3220 /tools
parent4f29c5d5381a76f24e13628da3edc5b19c6b1cd2 (diff)
downloadQt-fd2e832657a38d4dba9b86ce190f7736a837d53d.zip
Qt-fd2e832657a38d4dba9b86ce190f7736a837d53d.tar.gz
Qt-fd2e832657a38d4dba9b86ce190f7736a837d53d.tar.bz2
Make qdbus show all types, even those that it doesn't know about
Diffstat (limited to 'tools')
-rw-r--r--tools/qdbus/qdbus/qdbus.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/qdbus/qdbus/qdbus.cpp b/tools/qdbus/qdbus/qdbus.cpp
index 6ec8224..4e5cf9a 100644
--- a/tools/qdbus/qdbus/qdbus.cpp
+++ b/tools/qdbus/qdbus/qdbus.cpp
@@ -50,6 +50,8 @@
#include <QtDBus/QtDBus>
#include <private/qdbusutil_p.h>
+Q_DBUS_EXPORT extern bool qt_dbus_metaobject_skip_annotations;
+
static QDBusConnection connection(QLatin1String(""));
static bool printArgumentsLiterally = false;
@@ -99,7 +101,7 @@ static void printArg(const QVariant &v)
else if (arg.currentSignature() == QLatin1String("a{sv}"))
printArg(qdbus_cast<QVariantMap>(arg));
else
- printf("qdbus: I don't know how to display an argument of type '%s'\n",
+ printf("qdbus: I don't know how to display an argument of type '%s', run with --literal.\n",
qPrintable(arg.currentSignature()));
} else {
printf("%s\n", qPrintable(v.toString()));
@@ -311,7 +313,11 @@ static int placeCall(const QString &service, const QString &path, const QString
int id = QVariant::nameToType(types.at(i));
if (id == QVariant::UserType)
id = QMetaType::type(types.at(i));
- Q_ASSERT(id);
+ if (!id) {
+ fprintf(stderr, "Cannot call method '%s' because type '%s' is unknown to this tool\n",
+ qPrintable(member), types.at(i).constData());
+ return 1;
+ }
QVariant p;
QString argument;
@@ -435,6 +441,7 @@ static void printAllServices(QDBusConnectionInterface *bus)
int main(int argc, char **argv)
{
+ qt_dbus_metaobject_skip_annotations = true;
QCoreApplication app(argc, argv);
QStringList args = app.arguments();
args.takeFirst();