From 774eebf9978ac3bf68b124a9e88729cd21068433 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Mon, 21 Nov 2011 10:34:40 +0100 Subject: qmlplugindump: Fix QObject dump. * Hide deleteLater and the destroyed signal. * Add destroy and toString functions. Task-number: QTCREATORBUG-4903 Change-Id: Icbae3e1c82605baa84ac9cc8f38cd747e4dcf687 Reviewed-by: Michael Brasser --- tools/qmlplugindump/main.cpp | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp index 4dd3fe9871..d52469a5c5 100644 --- a/tools/qmlplugindump/main.cpp +++ b/tools/qmlplugindump/main.cpp @@ -374,8 +374,36 @@ public: implicitSignals.insert(QString("%1Changed").arg(QString::fromUtf8(property.name()))); } - for (int index = meta->methodOffset(); index < meta->methodCount(); ++index) - dump(meta->method(index), implicitSignals); + if (meta == &QObject::staticMetaObject) { + // for QObject, hide deleteLater() and onDestroyed + for (int index = meta->methodOffset(); index < meta->methodCount(); ++index) { + QMetaMethod method = meta->method(index); + const char *signature(method.signature()); + if (signature == QLatin1String("destroyed(QObject*)") + || signature == QLatin1String("destroyed()") + || signature == QLatin1String("deleteLater()")) + continue; + dump(method, implicitSignals); + } + + // and add toString(), destroy() and destroy(int) + qml->writeStartObject(QLatin1String("Method")); + qml->writeScriptBinding(QLatin1String("name"), enquote(QLatin1String("toString"))); + qml->writeEndObject(); + qml->writeStartObject(QLatin1String("Method")); + qml->writeScriptBinding(QLatin1String("name"), enquote(QLatin1String("destroy"))); + qml->writeEndObject(); + qml->writeStartObject(QLatin1String("Method")); + qml->writeScriptBinding(QLatin1String("name"), enquote(QLatin1String("destroy"))); + qml->writeStartObject(QLatin1String("Parameter")); + qml->writeScriptBinding(QLatin1String("name"), enquote(QLatin1String("delay"))); + qml->writeScriptBinding(QLatin1String("type"), enquote(QLatin1String("int"))); + qml->writeEndObject(); + qml->writeEndObject(); + } else { + for (int index = meta->methodOffset(); index < meta->methodCount(); ++index) + dump(meta->method(index), implicitSignals); + } qml->writeEndObject(); } -- cgit v1.2.3