diff options
Diffstat (limited to 'src/qml/qml/qqmltypenamecache_p.h')
-rw-r--r-- | src/qml/qml/qqmltypenamecache_p.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/qml/qml/qqmltypenamecache_p.h b/src/qml/qml/qqmltypenamecache_p.h index 094bd5c777..6be9aadf29 100644 --- a/src/qml/qml/qqmltypenamecache_p.h +++ b/src/qml/qml/qqmltypenamecache_p.h @@ -74,6 +74,7 @@ public: inline bool isEmpty() const; void add(const QHashedString &name, int sciptIndex = -1, const QHashedString &nameSpace = QHashedString()); + void add(const QHashedString &name, const QUrl &url, const QHashedString &nameSpace = QHashedString()); struct Result { inline Result(); @@ -103,6 +104,9 @@ private: // Or, imported script int scriptIndex; + + // Or, imported compositeSingletons + QStringHash<QUrl> compositeSingletons; }; template<typename Key> @@ -121,6 +125,19 @@ private: } template<typename Key> + Result query(const QStringHash<QUrl> &urls, Key key) + { + QUrl *url = urls.value(key); + if (url) { + QQmlType *type = QQmlMetaType::qmlType(*url); + if (type) + return Result(type); + } + + return Result(); + } + + template<typename Key> Result typeSearch(const QVector<QQmlTypeModuleVersion> &modules, Key key) { QVector<QQmlTypeModuleVersion>::const_iterator end = modules.constEnd(); @@ -135,8 +152,7 @@ private: QStringHash<Import> m_namedImports; QMap<const Import *, QStringHash<Import> > m_namespacedImports; QVector<QQmlTypeModuleVersion> m_anonymousImports; - - QQmlEngine *engine; + QStringHash<QUrl> m_anonymousCompositeSingletons; }; QQmlTypeNameCache::Result::Result() @@ -176,7 +192,8 @@ QQmlTypeNameCache::Import::Import() bool QQmlTypeNameCache::isEmpty() const { - return m_namedImports.isEmpty() && m_anonymousImports.isEmpty(); + return m_namedImports.isEmpty() && m_anonymousImports.isEmpty() + && m_anonymousCompositeSingletons.isEmpty(); } QT_END_NAMESPACE |