diff options
Diffstat (limited to 'src/declarative/qml/qdeclarativemetatype_p.h')
-rw-r--r-- | src/declarative/qml/qdeclarativemetatype_p.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/declarative/qml/qdeclarativemetatype_p.h b/src/declarative/qml/qdeclarativemetatype_p.h index aab1c31ef5..291bc38222 100644 --- a/src/declarative/qml/qdeclarativemetatype_p.h +++ b/src/declarative/qml/qdeclarativemetatype_p.h @@ -59,6 +59,7 @@ #include <QtCore/qvariant.h> #include <QtCore/qbitarray.h> #include <private/qdeclarativeglobal_p.h> +#include <QtScript/qscriptvalue.h> QT_BEGIN_NAMESPACE @@ -106,6 +107,25 @@ public: static bool isModule(const QByteArray &module, int versionMajor, int versionMinor); static QList<QDeclarativePrivate::AutoParentFunction> parentFunctions(); + + struct ModuleApiInstance { + ModuleApiInstance() + : scriptCallback(0), qobjectCallback(0), qobjectApi(0) {} + + QScriptValue (*scriptCallback)(QDeclarativeEngine *, QScriptEngine *); + QObject *(*qobjectCallback)(QDeclarativeEngine *, QScriptEngine *); + QScriptValue scriptApi; + QObject *qobjectApi; + }; + struct ModuleApi { + inline ModuleApi(); + inline bool operator==(const ModuleApi &) const; + int major; + int minor; + QScriptValue (*script)(QDeclarativeEngine *, QScriptEngine *); + QObject *(*qobject)(QDeclarativeEngine *, QScriptEngine *); + }; + static ModuleApi moduleApi(const QByteArray &, int, int); }; class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeType @@ -168,6 +188,25 @@ private: QDeclarativeTypePrivate *d; }; +QDeclarativeMetaType::ModuleApi::ModuleApi() +// : major(0), minor(0), script(0), qobject(0) +{ + major = 0; + minor = 0; + script = 0; + qobject = 0; +} + +bool QDeclarativeMetaType::ModuleApi::operator==(const ModuleApi &other) const +{ + return major == other.major && minor == other.minor && script == other.script && qobject == other.qobject; +} + +inline uint qHash(const QDeclarativeMetaType::ModuleApi &import) +{ + return import.major ^ import.minor ^ quintptr(import.script) ^ quintptr(import.qobject); +} + QT_END_NAMESPACE #endif // QDECLARATIVEMETATYPE_P_H |