Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
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 ()=default | |
~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 (QQmlTypeLoader *typeLoader, 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 (QQmlTypeLoader *typeLoader, QString *localQmldir, QList< QQmlError > *errors) |
bool | addInlineComponentImport (QQmlImportInstance *const importInstance, const QString &name, const QUrl importUrl) |
QTypeRevision | addFileImport (QQmlTypeLoader *typeLoader, const QString &uri, const QString &prefix, QTypeRevision version, ImportFlags flags, quint16 precedence, QString *localQmldir, QList< QQmlError > *errors) |
QTypeRevision | addLibraryImport (QQmlTypeLoader *typeLoader, const QString &uri, const QString &prefix, QTypeRevision version, const QString &qmldirIdentifier, const QString &qmldirUrl, ImportFlags flags, quint16 precedence, QList< QQmlError > *errors) |
QTypeRevision | updateQmldirContent (QQmlTypeLoader *typeLoader, 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 |
Public Member Functions inherited from QQmlRefCounted< QQmlImports > | |
void | release () const |
Public Member Functions inherited from QQmlRefCount | |
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 | |
Protected Member Functions inherited from QQmlRefCounted< QQmlImports > | |
~QQmlRefCounted () | |
The QQmlImports class encapsulates one QML document's import statements.
Definition at line 117 of file qqmlimport_p.h.
enum QQmlImports::ImportFlag : quint8 |
Enumerator | |
---|---|
ImportNoFlag | |
ImportIncomplete |
Definition at line 123 of file qqmlimport_p.h.
Enumerator | |
---|---|
FullyVersioned | |
PartiallyVersioned | |
Unversioned |
Definition at line 121 of file qqmlimport_p.h.
|
default |
|
inline |
Definition at line 130 of file qqmlimport_p.h.
QTypeRevision QQmlImports::addFileImport | ( | QQmlTypeLoader * | typeLoader, |
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 1236 of file qqmlimport.cpp.
References QQmlTypeLoader::absoluteFilePath(), addImportToNamespace(), arg, Backslash, baseUrl(), QString::chop(), Colon, QList< T >::constBegin(), QList< T >::constEnd(), dir, QQmlTypeLoader::directoryExists(), QString::endsWith(), QQmlTypeLoader::engine(), error, QQmlTypeLoaderQmldirContent::hasContent(), QQmlTypeLoaderQmldirContent::hasRedirection(), QQmlImportInstance::Implicit, QQmlTypeLoader::importDatabase(), QV4::CompiledData::Import::ImportFile, ImportIncomplete, QQmlImportNamespace::imports, QQmlEngine::interceptUrl(), QUrl::isEmpty(), QString::isEmpty(), QQmlFile::isLocalFile(), QTypeRevision::isValid(), it, lcQmlImport(), QString::left(), QQmlImportNamespace::prefix, Q_ASSERT, qCDebug, QQmlAbstractUrlInterceptor::QmldirFile, qPrintable, 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 1451 of file qqmlimport.cpp.
References QQmlImportNamespace::imports, QList< T >::push_back(), QQmlImportNamespace::setNeedsSorting(), and QTypeRevision::zero().
QTypeRevision QQmlImports::addLibraryImport | ( | QQmlTypeLoader * | typeLoader, |
const QString & | uri, | ||
const QString & | prefix, | ||
QTypeRevision | version, | ||
const QString & | qmldirIdentifier, | ||
const QString & | qmldirUrl, | ||
ImportFlags | flags, | ||
quint16 | precedence, | ||
QList< QQmlError > * | errors ) |
Definition at line 1148 of file qqmlimport.cpp.
References addImportToNamespace(), baseUrl(), QQmlTypeLoaderQmldirContent::hasContent(), QQmlTypeLoaderQmldirContent::hasRedirection(), QQmlTypeLoaderQmldirContent::hasTypeInfo(), ImportIncomplete, QV4::CompiledData::Import::ImportLibrary, QQmlTypeLoaderQmldirContent::imports(), QList< T >::isEmpty(), QTypeRevision::isValid(), lcQmlImport(), QQmlMetaType::matchingModuleVersion(), QQmlTypeLoaderQmldirContent::plugins(), Q_ASSERT, qCDebug, qPrintable, resolvedUrl(), toString(), and validVersion().
|
inline |
Returns the base URL to be used for all relative file imports added.
Definition at line 137 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 url, and QQmlFile::urlToLocalFileOrQrc().
|
inlinestatic |
Definition at line 206 of file qqmlimport_p.h.
References url, and QQmlFile::urlToLocalFileOrQrc().
void QQmlImports::populateCache | ( | QQmlTypeNameCache * | cache | ) | const |
Definition at line 236 of file qqmlimport.cpp.
References cache, QFieldList< N, nextMember >::first(), QFieldList< N, nextMember >::next(), and set.
Referenced by QQmlScriptBlob::done().
QList< QQmlImports::CompositeSingletonReference > QQmlImports::resolvedCompositeSingletons | ( | ) | const |
Definition at line 337 of file qqmlimport.cpp.
References baseUrl(), 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 QFieldList< N, nextMember >::first(), QQmlImports::ScriptReference::nameSpace, QFieldList< N, nextMember >::next(), QUrl::resolved(), and set.
bool QQmlImports::resolveType | ( | QQmlTypeLoader * | typeLoader, |
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 lcQmlImport(), RESOLVE_TYPE_DEBUG, and resolveType().
Referenced by QQmlPropertyCacheCreator< ObjectContainer >::createMetaObject(), QQmlCustomParser::evaluateEnum(), QQmlPropertyCacheCreator< ObjectContainer >::metaTypeForParameter(), QQmlPropertyCacheCreator< ObjectContainer >::propertyCacheForObject(), QQmlCustomParser::resolveType(), LoadHelper::resolveType(), and 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 1472 of file qqmlimport.cpp.
References designerSupportRequired.
QTypeRevision QQmlImports::updateQmldirContent | ( | QQmlTypeLoader * | typeLoader, |
const QString & | uri, | ||
const QString & | prefix, | ||
const QString & | qmldirIdentifier, | ||
const QString & | qmldirUrl, | ||
QList< QQmlError > * | errors ) |
Definition at line 1381 of file qqmlimport.cpp.
References arg, baseUrl(), error, QQmlImportNamespace::findImport(), QQmlTypeLoaderQmldirContent::hasContent(), QQmlTypeLoaderQmldirContent::hasRedirection(), QTypeRevision::isValid(), lcQmlImport(), QQmlMetaType::matchingModuleVersion(), Q_ASSERT, qDebug, qPrintable, resolvedUrl(), toString(), and validVersion().
Definition at line 1462 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.