diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-01-15 17:29:04 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-20 15:10:00 +0100 |
commit | ae0a2ea25714af603babe5aa0de364d1ebae1170 (patch) | |
tree | 91a0845dd397af79b30341aae64f6c24f0f43197 /src/qml/compiler/qqmltypecompiler_p.h | |
parent | f8176d72ac491469ccf0288cbb86c0ccc12fb47b (diff) |
[new compiler] Add support for QML list models
List model definitions make heavy use of custom parsers, which requires AST
access as well as a general port to the new QQmlCustomParser API.
Additional fixes in the custom parser support were needed to pass all tests:
* Fix support for AcceptsSignalHandlers and AcceptsAttachedProperties
* Don't call setCustomData unless the compiler generated data earlier
Change-Id: Ic42f8a890391267c94f63d35f055b60fdbf3c83d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/compiler/qqmltypecompiler_p.h')
-rw-r--r-- | src/qml/compiler/qqmltypecompiler_p.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/qml/compiler/qqmltypecompiler_p.h b/src/qml/compiler/qqmltypecompiler_p.h index e6a34fa376..4340279df8 100644 --- a/src/qml/compiler/qqmltypecompiler_p.h +++ b/src/qml/compiler/qqmltypecompiler_p.h @@ -92,6 +92,8 @@ struct QQmlTypeCompiler QHash<int, QHash<int, int> > *objectIndexToIdPerComponent(); QHash<int, QByteArray> *customParserData(); QQmlJS::MemoryPool *memoryPool(); + const QList<CompiledFunctionOrExpression> &functions() const; + void setCustomParserBindings(const QVector<int> &bindings); private: QList<QQmlError> errors; @@ -176,13 +178,14 @@ class QQmlPropertyValidator : public QQmlCompilePass, public QQmlCustomParserCom { Q_DECLARE_TR_FUNCTIONS(QQmlPropertyValidator) public: - QQmlPropertyValidator(QQmlTypeCompiler *typeCompiler); + QQmlPropertyValidator(QQmlTypeCompiler *typeCompiler, const QVector<int> &runtimeFunctionIndices); bool validate(); // Re-implemented for QQmlCustomParser virtual const QQmlImports &imports() const; - + virtual QQmlJS::AST::Node *astForBinding(int scriptIndex) const; + virtual QQmlBinding::Identifier bindingIdentifier(const QV4::CompiledData::Binding *binding, QQmlCustomParser *parser); private: bool validateObject(int objectIndex); @@ -194,6 +197,8 @@ private: const QVector<QQmlPropertyCache *> &propertyCaches; const QHash<int, QHash<int, int> > objectIndexToIdPerComponent; QHash<int, QByteArray> *customParserData; + QVector<int> customParserBindings; + const QVector<int> &runtimeFunctionIndices; }; QT_END_NAMESPACE |