![]() |
Qt 6.x
The Qt SDK
|
The QQmlImports class encapsulates one QML document's import statements. More...
#include <qqmlimport_p.h>
Classes | |
struct | CompositeSingletonReference |
struct | ScriptReference |
Public Types | |
enum | ImportVersion { FullyVersioned , PartiallyVersioned , Unversioned } |
enum | ImportFlag : quint8 { ImportNoFlag = 0x0 , ImportIncomplete = 0x1 } |
Public Member Functions | |
QQmlImports (QQmlTypeLoader *loader) | |
~QQmlImports () | |
void | setBaseUrl (const QUrl &url, const QString &urlString=QString()) |
Sets the base URL to be used for all relative file imports added. | |
QUrl | baseUrl () const |
bool | resolveType (const QHashedStringRef &type, QQmlType *type_return, QTypeRevision *version_return, QQmlImportNamespace **ns_return, QList< QQmlError > *errors=nullptr, QQmlType::RegistrationType registrationType=QQmlType::AnyRegistrationType, bool *typeRecursionDetected=nullptr) const |
QTypeRevision | addImplicitImport (QQmlImportDatabase *importDb, QString *localQmldir, QList< QQmlError > *errors) |
bool | addInlineComponentImport (QQmlImportInstance *const importInstance, const QString &name, const QUrl importUrl) |
QTypeRevision | addFileImport (QQmlImportDatabase *importDb, const QString &uri, const QString &prefix, QTypeRevision version, ImportFlags flags, quint16 precedence, QString *localQmldir, QList< QQmlError > *errors) |
QTypeRevision | addLibraryImport (QQmlImportDatabase *importDb, const QString &uri, const QString &prefix, QTypeRevision version, const QString &qmldirIdentifier, const QString &qmldirUrl, ImportFlags flags, quint16 precedence, QList< QQmlError > *errors) |
QTypeRevision | updateQmldirContent (QQmlImportDatabase *importDb, const QString &uri, const QString &prefix, const QString &qmldirIdentifier, const QString &qmldirUrl, QList< QQmlError > *errors) |
void | populateCache (QQmlTypeNameCache *cache) const |
QList< ScriptReference > | resolvedScripts () const |
QList< CompositeSingletonReference > | resolvedCompositeSingletons () const |
![]() | |
void | release () const |
![]() | |
QQmlRefCount () | |
void | addref () const |
int | count () const |
Static Public Member Functions | |
static QStringList | completeQmldirPaths (const QString &uri, const QStringList &basePaths, QTypeRevision version) |
Forms complete paths to a qmldir file, from a base URL, a module URI and version specification. | |
static QString | versionString (QTypeRevision version, ImportVersion importVersion) |
static bool | isLocal (const QString &url) |
static bool | isLocal (const QUrl &url) |
static QUrl | urlFromLocalFileOrQrcOrUrl (const QString &) |
static void | setDesignerSupportRequired (bool b) |
static QTypeRevision | validVersion (QTypeRevision version=QTypeRevision()) |
Friends | |
class | QQmlImportDatabase |
Additional Inherited Members | |
![]() | |
~QQmlRefCounted () | |
The QQmlImports class encapsulates one QML document's import statements.
Definition at line 118 of file qqmlimport_p.h.
enum QQmlImports::ImportFlag : quint8 |
Enumerator | |
---|---|
ImportNoFlag | |
ImportIncomplete |
Definition at line 124 of file qqmlimport_p.h.
Enumerator | |
---|---|
FullyVersioned | |
PartiallyVersioned | |
Unversioned |
Definition at line 122 of file qqmlimport_p.h.
|
inline |
Definition at line 130 of file qqmlimport_p.h.
|
inline |
Definition at line 131 of file qqmlimport_p.h.
QTypeRevision QQmlImports::addFileImport | ( | QQmlImportDatabase * | database, |
const QString & | uri, | ||
const QString & | prefix, | ||
QTypeRevision | version, | ||
ImportFlags | flags, | ||
quint16 | precedence, | ||
QString * | localQmldir, | ||
QList< QQmlError > * | errors | ||
) |
Adds information to database such that subsequent calls to resolveType() will resolve types qualified by prefix by considering types found at the given uri.
The uri is either a directory (if importType is FileImport), or a URI resolved using paths added via addImportPath() (if importType is LibraryImport).
The prefix may be empty, in which case the import location is considered for unqualified types.
The base URL must already have been set with Import::setBaseUrl().
Optionally, the qmldir the import resolved to can be returned by providing the localQmldir parameter. Not all imports will have a local qmldir. If there is none, the localQmldir parameter won't be set.
Returns a valid QTypeRevision on success, and an invalid one on failure. In case of failure, the errors array will filled appropriately.
Definition at line 1286 of file qqmlimport.cpp.
References QQmlTypeLoader::absoluteFilePath(), arg, Backslash, baseUrl(), QString::chop(), Colon, QList< T >::constBegin(), QList< T >::constEnd(), dir, QQmlTypeLoader::directoryExists(), QString::endsWith(), QQmlTypeLoader::engine(), error, QQmlTypeLoaderQmldirContent::hasContent(), QQmlImportInstance::Implicit, QV4::CompiledData::Import::ImportFile, ImportIncomplete, QQmlImportNamespace::imports, QQmlEngine::interceptUrl(), QUrl::isEmpty(), QString::isEmpty(), QQmlFile::isLocalFile(), QTypeRevision::isValid(), it, QString::lastIndexOf(), lcQmlImport(), QString::left(), QQmlImportNamespace::prefix, QList< T >::prepend(), Q_ASSERT, qCDebug, QQmlAbstractUrlInterceptor::QmldirFile, qPrintable, QQmlImportInstance::setQmldirContent(), Slash, Slash_qmldir, QString::startsWith(), String_qmldir, toString(), QUrl::toString(), QQmlTypeLoaderQmldirContent::typeNamespace(), url, QQmlFile::urlToLocalFileOrQrc(), and validVersion().
|
inline |
Adds an implicit "." file import. This is equivalent to calling addFileImport(), but error messages related to the path or qmldir file not existing are suppressed.
Additionally, this will add the import with lowest instead of highest precedence.
Definition at line 146 of file qqmlimport_p.h.
References baseUrl, QQmlImportInstance::Implicit, lcQmlImport(), Q_ASSERT, qCDebug, qPrintable, and toString().
bool QQmlImports::addInlineComponentImport | ( | QQmlImportInstance *const | importInstance, |
const QString & | name, | ||
const QUrl | importUrl | ||
) |
Definition at line 1494 of file qqmlimport.cpp.
References QQmlImportNamespace::imports, QQmlImportInstance::isInlineComponent, QList< T >::push_back(), QQmlImportNamespace::setNeedsSorting(), QUrl::toString(), QQmlImportInstance::uri, QQmlImportInstance::url, QQmlImportInstance::version, and QTypeRevision::zero().
QTypeRevision QQmlImports::addLibraryImport | ( | QQmlImportDatabase * | importDb, |
const QString & | uri, | ||
const QString & | prefix, | ||
QTypeRevision | version, | ||
const QString & | qmldirIdentifier, | ||
const QString & | qmldirUrl, | ||
ImportFlags | flags, | ||
quint16 | precedence, | ||
QList< QQmlError > * | errors | ||
) |
Definition at line 1202 of file qqmlimport.cpp.
References baseUrl(), QQmlTypeLoaderQmldirContent::hasContent(), QQmlTypeLoaderQmldirContent::hasTypeInfo(), ImportIncomplete, QV4::CompiledData::Import::ImportLibrary, QQmlTypeLoaderQmldirContent::imports(), QString::isEmpty(), QMultiHash< Key, T >::isEmpty(), QList< T >::isEmpty(), QTypeRevision::isValid(), lcQmlImport(), QQmlMetaType::matchingModuleVersion(), QQmlTypeLoaderQmldirContent::plugins(), QList< T >::prepend(), Q_ASSERT, qCDebug, QQmlImportInstance::qmlDirComponents, QQmlImportInstance::qmlDirScripts, qPrintable, QQmlImportInstance::setQmldirContent(), toString(), and validVersion().
|
inline |
Returns the base URL to be used for all relative file imports added.
Definition at line 138 of file qqmlimport_p.h.
Referenced by addFileImport(), addLibraryImport(), QQmlTypeData::allDependenciesDone(), resolvedCompositeSingletons(), and updateQmldirContent().
|
static |
Forms complete paths to a qmldir file, from a base URL, a module URI and version specification.
For example, QtQml.Models 2.0:
Definition at line 418 of file qqmlimport.cpp.
References qQmlResolveImportPaths(), and Slash_qmldir.
Referenced by QQmlImportDatabase::locateLocalQmldir().
|
inlinestatic |
Definition at line 201 of file qqmlimport_p.h.
References QString::isEmpty(), url, and QQmlFile::urlToLocalFileOrQrc().
|
inlinestatic |
Definition at line 206 of file qqmlimport_p.h.
References QString::isEmpty(), url, and QQmlFile::urlToLocalFileOrQrc().
void QQmlImports::populateCache | ( | QQmlTypeNameCache * | cache | ) | const |
Definition at line 236 of file qqmlimport.cpp.
References cache, QFieldList< N, nextMember >::first(), QQmlImportRef::m_qualifier, QQmlImportRef::modules, QFieldList< N, nextMember >::next(), set, and QQmlMetaType::typeModule().
Referenced by QQmlScriptBlob::done().
QList< QQmlImports::CompositeSingletonReference > QQmlImports::resolvedCompositeSingletons | ( | ) | const |
Definition at line 337 of file qqmlimport.cpp.
References baseUrl(), QList< T >::begin(), QList< T >::end(), findCompositeSingletons(), QFieldList< N, nextMember >::first(), QFieldList< N, nextMember >::next(), and set.
QList< QQmlImports::ScriptReference > QQmlImports::resolvedScripts | ( | ) | const |
Definition at line 372 of file qqmlimport.cpp.
References QList< T >::append(), QFieldList< N, nextMember >::first(), QFieldList< N, nextMember >::next(), QUrl::resolved(), and set.
bool QQmlImports::resolveType | ( | const QHashedStringRef & | type, |
QQmlType * | type_return, | ||
QTypeRevision * | version_return, | ||
QQmlImportNamespace ** | ns_return, | ||
QList< QQmlError > * | errors = nullptr , |
||
QQmlType::RegistrationType | registrationType = QQmlType::AnyRegistrationType , |
||
bool * | typeRecursionDetected = nullptr |
||
) | const |
The given (namespace qualified) type is resolved to either \list
If any return pointer is 0, the corresponding search is not done.
Definition at line 452 of file qqmlimport.cpp.
References QQmlType::isComposite(), QQmlType::isCompositeSingleton(), QQmlType::isInlineComponentType(), QQmlType::isValid(), lcQmlImport(), RESOLVE_TYPE_DEBUG, resolveType(), QQmlType::sourceUrl(), and QQmlType::typeName().
Referenced by QQmlPropertyCacheCreator< ObjectContainer >::createMetaObject(), QQmlCustomParser::evaluateEnum(), QQmlPropertyCacheCreator< ObjectContainer >::metaTypeForParameter(), QQmlPropertyCacheCreator< ObjectContainer >::propertyCacheForObject(), resolveType(), QQmlCustomParser::resolveType(), and LoadHelper::resolveType().
Sets the base URL to be used for all relative file imports added.
Definition at line 209 of file qqmlimport.cpp.
References QString::isEmpty(), QUrl::toString(), and url.
|
static |
Definition at line 1515 of file qqmlimport.cpp.
References designerSupportRequired.
QTypeRevision QQmlImports::updateQmldirContent | ( | QQmlImportDatabase * | importDb, |
const QString & | uri, | ||
const QString & | prefix, | ||
const QString & | qmldirIdentifier, | ||
const QString & | qmldirUrl, | ||
QList< QQmlError > * | errors | ||
) |
Definition at line 1428 of file qqmlimport.cpp.
References arg, baseUrl(), error, QQmlImportNamespace::findImport(), QQmlTypeLoaderQmldirContent::hasContent(), QList< T >::isEmpty(), QTypeRevision::isValid(), lcQmlImport(), QQmlMetaType::matchingModuleVersion(), QList< T >::prepend(), Q_ASSERT, qDebug, qPrintable, toString(), and validVersion().
Definition at line 1505 of file qqmlimport.cpp.
References Colon, file, QUrl::fromLocalFile(), QUrl::scheme(), QString::size(), and url.
Referenced by QQmlImportDatabase::locateLocalQmldir(), and QQmlMetaType::registerPluginTypes().
|
static |
Definition at line 200 of file qqmlimport.cpp.
References QTypeRevision::fromMinorVersion(), and QTypeRevision::isValid().
Referenced by addFileImport(), addLibraryImport(), QQmlPluginImporter::importDynamicPlugin(), QQmlPluginImporter::importPlugins(), QQmlPluginImporter::importStaticPlugin(), and updateQmldirContent().
|
static |
Definition at line 427 of file qqmlimport.cpp.
References QString::asprintf(), FullyVersioned, QTypeRevision::majorVersion(), QTypeRevision::minorVersion(), and PartiallyVersioned.
Referenced by versionUriList().
|
friend |
Definition at line 218 of file qqmlimport_p.h.