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 <michael.brasser@nokia.com>
This commit is contained in:
Christian Kamm 2011-11-21 10:34:40 +01:00 committed by Qt by Nokia
parent 64b26c6bda
commit 774eebf997
1 changed files with 30 additions and 2 deletions

View File

@ -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();
}