diff options
Diffstat (limited to 'src/qml/qml/qqmlcompiler_p.h')
-rw-r--r-- | src/qml/qml/qqmlcompiler_p.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/qml/qml/qqmlcompiler_p.h b/src/qml/qml/qqmlcompiler_p.h index 516f6653ca..788def0288 100644 --- a/src/qml/qml/qqmlcompiler_p.h +++ b/src/qml/qml/qqmlcompiler_p.h @@ -65,6 +65,7 @@ #include <private/qqmlcodegenerator_p.h> #include "private/qv4identifier_p.h" #include <private/qqmljsastfwd_p.h> +#include "qqmlcustomparser_p.h" #include <QtCore/qbytearray.h> #include <QtCore/qset.h> @@ -144,9 +145,9 @@ public: QQmlPropertyCache *rootPropertyCache; QList<QString> primitives; - QList<QByteArray> datas; + QVector<QByteArray> datas; QByteArray bytecode; - QList<QQmlPropertyCache *> propertyCaches; + QVector<QQmlPropertyCache *> propertyCaches; QList<QVector<QQmlContextData::ObjectIdMapping> > contextCaches; QList<QQmlScriptData *> scripts; QList<QUrl> urls; @@ -157,6 +158,8 @@ public: // index in first hash is component index, hash inside maps from object index in that scope to integer id QHash<int, QHash<int, int> > objectIndexToIdPerComponent; QHash<int, int> objectIndexToIdForRoot; + // hash key is object index + QHash<int, QByteArray> customParserData; QVector<int> customParserBindings; // index is binding identifier, value is compiled function index. bool isComponent(int objectIndex) const { return objectIndexToIdPerComponent.contains(objectIndex); } @@ -330,7 +333,7 @@ namespace QQmlCompilerTypes { }; class QMetaObjectBuilder; -class Q_AUTOTEST_EXPORT QQmlCompiler +class Q_AUTOTEST_EXPORT QQmlCompiler : public QQmlCustomParserCompilerBackend { Q_DECLARE_TR_FUNCTIONS(QQmlCompiler) public: @@ -346,9 +349,10 @@ public: static bool isAttachedPropertyName(const QHashedStringRef &); static bool isSignalPropertyName(const QHashedStringRef &); - int evaluateEnum(const QHashedStringRef &scope, const QByteArray& enumValue, bool *ok) const; // for QQmlCustomParser::evaluateEnum - const QMetaObject *resolveType(const QString& name) const; // for QQmlCustomParser::resolveType int bindingIdentifier(const QString &name, const QQmlScript::Variant& value, const QQmlCompilerTypes::BindingContext &ctxt); // for QQmlCustomParser::bindingIndex + virtual QQmlBinding::Identifier bindingIdentifier(const QQmlScript::Variant&value, const QString&name, QQmlCustomParser *customParser); + + virtual const QQmlImports &imports() const { return unit->imports(); } private: typedef QQmlCompiledData::Instruction Instruction; |