aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2011-08-01 18:26:57 +1000
committerQt by Nokia <qt-info@nokia.com>2011-08-02 04:55:55 +0200
commitaa0448cf1882ddb6e4a959718a6fcc399c36990b (patch)
treea8153bc3786f0eca518d9807e61a52618a83fefd /src/declarative
parent0412055322cf44c1127246ff817ab7a75b735680 (diff)
Allow custom parser types to still get signal handlers generated
Specifically, QDeclarativeListModelParser ought to have this behaviour. Task-number: QTBUG-19763 Change-Id: I9d6ee07d1e17a027b254b87d20d1a93795c55744 Reviewed-on: http://codereview.qt.nokia.com/2431 Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp3
-rw-r--r--src/declarative/qml/qdeclarativecustomparser_p.h3
-rw-r--r--src/declarative/util/qdeclarativelistmodel_p.h1
3 files changed, 6 insertions, 1 deletions
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index 5e1d3f60a9..5018abeeaa 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -856,6 +856,9 @@ bool QDeclarativeCompiler::buildObject(QDeclarativeParser::Object *obj, const Bi
int ids = compileState.ids.count();
COMPILE_CHECK(buildProperty(prop, obj, objCtxt));
canDefer = ids == compileState.ids.count();
+ } else if (isSignalPropertyName(prop->name) &&
+ (cp->flags() & QDeclarativeCustomParser::AcceptsSignalHandlers)) {
+ COMPILE_CHECK(buildSignal(prop,obj,objCtxt));
} else {
customProps << QDeclarativeCustomParserNodePrivate::fromProperty(prop);
}
diff --git a/src/declarative/qml/qdeclarativecustomparser_p.h b/src/declarative/qml/qdeclarativecustomparser_p.h
index ab66b9fcdc..31452836bd 100644
--- a/src/declarative/qml/qdeclarativecustomparser_p.h
+++ b/src/declarative/qml/qdeclarativecustomparser_p.h
@@ -116,7 +116,8 @@ class Q_DECLARATIVE_EXPORT QDeclarativeCustomParser
public:
enum Flag {
NoFlag = 0x00000000,
- AcceptsAttachedProperties = 0x00000001
+ AcceptsAttachedProperties = 0x00000001,
+ AcceptsSignalHandlers = 0x00000002
};
Q_DECLARE_FLAGS(Flags, Flag)
diff --git a/src/declarative/util/qdeclarativelistmodel_p.h b/src/declarative/util/qdeclarativelistmodel_p.h
index 94a7e65bfb..e7c5632ce3 100644
--- a/src/declarative/util/qdeclarativelistmodel_p.h
+++ b/src/declarative/util/qdeclarativelistmodel_p.h
@@ -125,6 +125,7 @@ Q_OBJECT
class QDeclarativeListModelParser : public QDeclarativeCustomParser
{
public:
+ QDeclarativeListModelParser() : QDeclarativeCustomParser(QDeclarativeCustomParser::AcceptsSignalHandlers) {}
QByteArray compile(const QList<QDeclarativeCustomParserProperty> &);
void setCustomData(QObject *, const QByteArray &);