54 inline bool isEmpty()
const;
63 inline Result(
int scriptIndex);
65 inline bool isValid()
const;
76 template<QQmlImport::RecursionRestriction recursionRestriction = QQmlImport::PreventRecursion>
79 return doQuery<const QHashedStringRef &, recursionRestriction>(
key, typeLoader);
82 template<QueryNamespaced queryNamespaced = QueryNamespaced::Yes>
86 return doQuery<const QHashedStringRef &, queryNamespaced>(
key, importNamespace, typeLoader);
89 template<QQmlImport::RecursionRestriction recursionRestriction = QQmlImport::PreventRecursion>
92 return doQuery<const QV4::String *, recursionRestriction>(
key, typeLoader);
95 template<QueryNamespaced queryNamespaced = QueryNamespaced::Yes>
99 return doQuery<const QV4::String *, queryNamespaced>(
key, importNamespace, typeLoader);
126 template<
typename Key, QQmlImport::RecursionRestriction recursionRestriction>
129 Result
result = doQuery(m_namedImports,
name);
132 result = typeSearch(m_anonymousImports,
name);
135 result = doQuery(m_anonymousCompositeSingletons,
name);
142 QList<QQmlError> errors;
144 bool typeRecursionDetected =
false;
145 const bool typeFound = m_imports->resolveType(
146 typeLoader, toHashedStringRef(
name), &
t,
nullptr, &typeNamespace, &errors,
149 ? &typeRecursionDetected
159 template<
typename Key, QueryNamespaced queryNamespaced>
164 if constexpr (queryNamespaced == QueryNamespaced::Yes) {
165 QMap<const QQmlImportRef *, QStringHash<QQmlImportRef> >::const_iterator
it
166 = m_namespacedImports.
constFind(importNamespace);
185 QList<QQmlError> errors;
187 bool typeFound = m_imports->resolveType(
188 typeLoader, qualifiedTypeName, &
t,
nullptr, &typeNamespace, &errors);
196 template<
typename Key>
197 Result doQuery(
const QStringHash<QQmlImportRef> &imports,
Key key)
const
202 if (
i->scriptIndex != -1) {
203 return Result(
i->scriptIndex);
212 template<
typename Key>
213 Result doQuery(
const QStringHash<QUrl> &urls,
Key key)
const
224 template<
typename Key>
225 Result typeSearch(
const QVector<QQmlTypeModuleVersion> &modules,
Key key)
const
237 QStringHash<QQmlImportRef> m_namedImports;
238 QMap<const QQmlImportRef *, QStringHash<QQmlImportRef> > m_namespacedImports;
239 QVector<QQmlTypeModuleVersion> m_anonymousImports;
240 QStringHash<QUrl> m_anonymousCompositeSingletons;
241 QQmlRefPointer<QQmlImports> m_imports;