summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-10-06 12:12:34 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-06 12:19:51 +0200
commita6393f953eaf55ddc48b247cde2fae1bd9f09604 (patch)
tree34f4bdf10b75aa66443133d2ecf3b6cd9fcaeb66 /tools
parent121c32b54a5d06dee38d45825d483199facf113c (diff)
qmlplugindump: Don't dump implicit signals.
Every property automatically has a xyzChanged signal anyway. Change-Id: I470875a94792c0fc5a6378c8be1e0eddc24a1d5a Reviewed-on: http://codereview.qt-project.org/6144 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlplugindump/main.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp
index 6eadb39869..e7f183e798 100644
--- a/tools/qmlplugindump/main.cpp
+++ b/tools/qmlplugindump/main.cpp
@@ -306,11 +306,15 @@ public:
for (int index = meta->enumeratorOffset(); index < meta->enumeratorCount(); ++index)
dump(meta->enumerator(index));
- for (int index = meta->propertyOffset(); index < meta->propertyCount(); ++index)
- dump(meta->property(index));
+ QSet<QString> implicitSignals;
+ for (int index = meta->propertyOffset(); index < meta->propertyCount(); ++index) {
+ const QMetaProperty &property = meta->property(index);
+ dump(property);
+ implicitSignals.insert(QString("%1Changed").arg(QString::fromUtf8(property.name())));
+ }
for (int index = meta->methodOffset(); index < meta->methodCount(); ++index)
- dump(meta->method(index));
+ dump(meta->method(index), implicitSignals);
qml->writeEndObject();
}
@@ -378,7 +382,7 @@ private:
qml->writeEndObject();
}
- void dump(const QMetaMethod &meth)
+ void dump(const QMetaMethod &meth, const QSet<QString> &implicitSignals)
{
if (meth.methodType() == QMetaMethod::Signal) {
if (meth.access() != QMetaMethod::Protected)
@@ -393,6 +397,16 @@ private:
return; // invalid signature
}
name = name.left(lparenIndex);
+ const QString typeName = convertToId(meth.typeName());
+
+ if (implicitSignals.contains(name)
+ && !meth.revision()
+ && meth.methodType() == QMetaMethod::Signal
+ && meth.parameterNames().isEmpty()
+ && typeName.isEmpty()) {
+ // don't mention implicit signals
+ return;
+ }
if (meth.methodType() == QMetaMethod::Signal)
qml->writeStartObject(QLatin1String("Signal"));
@@ -406,7 +420,6 @@ private:
qml->writeScriptBinding(QLatin1String("revision"), QString::number(revision));
#endif
- const QString typeName = convertToId(meth.typeName());
if (! typeName.isEmpty())
qml->writeScriptBinding(QLatin1String("type"), enquote(typeName));