diff options
Diffstat (limited to 'src/declarative/qml/qdeclarativemetatype_p.h')
-rw-r--r-- | src/declarative/qml/qdeclarativemetatype_p.h | 68 |
1 files changed, 58 insertions, 10 deletions
diff --git a/src/declarative/qml/qdeclarativemetatype_p.h b/src/declarative/qml/qdeclarativemetatype_p.h index 429aa7a98f..2a6ce20bbb 100644 --- a/src/declarative/qml/qdeclarativemetatype_p.h +++ b/src/declarative/qml/qdeclarativemetatype_p.h @@ -66,6 +66,7 @@ QT_BEGIN_NAMESPACE class QDeclarativeType; class QDeclarativeCustomParser; class QDeclarativeTypePrivate; +class QDeclarativeTypeModule; class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeMetaType { @@ -73,12 +74,12 @@ public: static bool canCopy(int type); static bool copy(int type, void *data, const void *copy = 0); - static QList<QByteArray> qmlTypeNames(); + static QList<QString> qmlTypeNames(); static QList<QDeclarativeType*> qmlTypes(); - static QDeclarativeType *qmlType(const QByteArray &, int, int); + static QDeclarativeType *qmlType(const QString &, int, int); static QDeclarativeType *qmlType(const QMetaObject *); - static QDeclarativeType *qmlType(const QMetaObject *metaObject, const QByteArray &module, int version_major, int version_minor); + static QDeclarativeType *qmlType(const QMetaObject *metaObject, const QString &module, int version_major, int version_minor); static QDeclarativeType *qmlType(int); static QMetaProperty defaultProperty(const QMetaObject *); @@ -104,8 +105,9 @@ public: static void registerCustomStringConverter(int, StringConverter); static StringConverter customStringConverter(int); - static bool isAnyModule(const QByteArray &module); - static bool isModule(const QByteArray &module, int versionMajor, int versionMinor); + static bool isAnyModule(const QString &uri); + static bool isModule(const QString &module, int versionMajor, int versionMinor); + static QDeclarativeTypeModule *typeModule(const QString &uri, int majorVersion); static QList<QDeclarativePrivate::AutoParentFunction> parentFunctions(); @@ -126,21 +128,24 @@ public: QJSValue (*script)(QDeclarativeEngine *, QJSEngine *); QObject *(*qobject)(QDeclarativeEngine *, QJSEngine *); }; - static ModuleApi moduleApi(const QByteArray &, int, int); + static ModuleApi moduleApi(const QString &, int, int); }; +class QHashedStringRef; +class QHashedV8String; class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeType { public: QByteArray typeName() const; - QByteArray qmlTypeName() const; + const QByteArray &qmlTypeName() const; + const QString &elementName() const; - QByteArray module() const; + QString module() const; int majorVersion() const; int minorVersion() const; bool availableInVersion(int vmajor, int vminor) const; - bool availableInVersion(const QByteArray &module, int vmajor, int vminor) const; + bool availableInVersion(const QString &module, int vmajor, int vminor) const; QObject *create() const; void create(QObject **, void **, size_t) const; @@ -176,6 +181,8 @@ public: int index() const; + int enumValue(const QHashedStringRef &) const; + int enumValue(const QHashedV8String &) const; private: QDeclarativeType *superType() const; friend class QDeclarativeTypePrivate; @@ -189,8 +196,49 @@ private: QDeclarativeTypePrivate *d; }; +class QDeclarativeTypeModulePrivate; +class QDeclarativeTypeModule +{ +public: + QString module() const; + int majorVersion() const; + + int minimumMinorVersion() const; + int maximumMinorVersion() const; + + QList<QDeclarativeType *> types(); + QList<QDeclarativeType *> type(const QString &); + + QDeclarativeType *type(const QHashedStringRef &, int); + QDeclarativeType *type(const QHashedV8String &, int); + +private: + friend int registerType(const QDeclarativePrivate::RegisterType &); + QDeclarativeTypeModule(); + ~QDeclarativeTypeModule(); + QDeclarativeTypeModulePrivate *d; +}; + +class QDeclarativeTypeModuleVersion +{ +public: + QDeclarativeTypeModuleVersion(); + QDeclarativeTypeModuleVersion(QDeclarativeTypeModule *, int); + QDeclarativeTypeModuleVersion(const QDeclarativeTypeModuleVersion &); + QDeclarativeTypeModuleVersion &operator=(const QDeclarativeTypeModuleVersion &); + + QDeclarativeTypeModule *module() const; + int minorVersion() const; + + QDeclarativeType *type(const QHashedStringRef &) const; + QDeclarativeType *type(const QHashedV8String &) const; + +private: + QDeclarativeTypeModule *m_module; + int m_minor; +}; + QDeclarativeMetaType::ModuleApi::ModuleApi() -// : major(0), minor(0), script(0), qobject(0) { major = 0; minor = 0; |