Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqmltypeloader.cpp File Reference

(b106695affcc3558cc5b7467fc66c61e0619ccfc)

#include <private/qqmltypeloader_p.h>
#include <private/qqmldirdata_p.h>
#include <private/qqmlprofiler_p.h>
#include <private/qqmlscriptblob_p.h>
#include <private/qqmlscriptdata_p.h>
#include <private/qqmlsourcecoordinate_p.h>
#include <private/qqmltypedata_p.h>
#include <private/qqmltypeloaderqmldircontent_p.h>
#include <private/qqmltypeloaderthread_p.h>
#include <private/qv4compiler_p.h>
#include <private/qv4compilercontext_p.h>
#include <private/qv4runtimecodegen_p.h>
#include <QtQml/qqmlabstracturlinterceptor.h>
#include <QtQml/qqmlengine.h>
#include <QtQml/qqmlextensioninterface.h>
#include <QtQml/qqmlfile.h>
#include <QtQml/qqmlnetworkaccessmanagerfactory.h>
#include <qtqml_tracepoints_p.h>
#include <QtCore/qdir.h>
#include <QtCore/qdirlisting.h>
#include <QtCore/qfile.h>
#include <QtCore/qlibraryinfo.h>
#include <QtCore/qthread.h>
#include <functional>
Include dependency graph for qqmltypeloader.cpp:

Go to the source code of this file.

Classes

struct  PlainLoader
struct  StaticLoader
struct  CachedLoader

Macros

#define ASSERT_LOADTHREAD()
#define ASSERT_ENGINETHREAD()
#define DATALOADER_MAXIMUM_REDIRECT_RECURSION   16
#define ERROR(description)
#define NOT_READABLE_ERROR   QString(QLatin1String("module \"$$URI$$\" definition \"%1\" not readable"))
#define NOT_FOUND_ERROR   QString(QLatin1String("cannot load module \"$$URI$$\": File \"%1\" not found"))

Functions

static QUrl doInterceptUrl (const QUrl &url, QQmlAbstractUrlInterceptor::DataType type, const QList< QQmlAbstractUrlInterceptor * > &urlInterceptors)
template<class Interface>
void doInitializeEngine (Interface *iface, QQmlTypeLoaderThread *thread, QQmlTypeLoaderLockedData *data, const char *uri)
static bool isPathAbsolute (const QString &path)
static bool isPathQrcOrAbsolute (const QString &path)
static QString localPathForUrlOrPath (const QString &urlOrPath)
static void initializeConfiguredData (const QQmlTypeLoaderConfiguredDataPtr &data, QV4::ExecutionEngine *engine)
template<typename URL>
void postProcessQmldir (QQmlTypeLoader::Blob *self, const QQmlTypeLoader::Blob::PendingImportPtr &import, const QString &qmldirFilePath, const URL &qmldirUrl)
static void addDependencyImportError (const QQmlTypeLoader::Blob::PendingImportPtr &import, QList< QQmlError > *errors)
static QQmlTypeLoaderConfiguredDataConstPtr configuredData (QQmlTypeLoaderLockedData *m_data)
static QStringList parseEnvPath (const QString &envImportPath)
template<typename Blob>
QQmlRefPointer< Blob > handleExisting (const QQmlTypeLoaderSharedDataPtr &data, QQmlRefPointer< Blob > &&blob, QQmlTypeLoader::Mode mode)
static bool isModuleUrl (const QUrl &url)
static bool isResource (const QString &path)
static QString stripTrailingSlashes (const QString &path)
template<typename Blob>
void clearBlobs (QHash< QUrl, QQmlRefPointer< Blob > > *blobs)
static QString pathToUrl (const QString &path)

Macro Definition Documentation

◆ ASSERT_ENGINETHREAD

#define ASSERT_ENGINETHREAD ( )
Value:
Q_ASSERT(!engine()->jsEngine() || engine()->jsEngine()->thread()->isCurrentThread())
#define Q_ASSERT(cond)
Definition qrandom.cpp:52
QJSEngine engine
[0]

Definition at line 37 of file qqmltypeloader.cpp.

◆ ASSERT_LOADTHREAD

#define ASSERT_LOADTHREAD ( )
Value:
Q_ASSERT(thread() && thread()->isThisThread())

Definition at line 35 of file qqmltypeloader.cpp.

◆ DATALOADER_MAXIMUM_REDIRECT_RECURSION

#define DATALOADER_MAXIMUM_REDIRECT_RECURSION   16

Definition at line 342 of file qqmltypeloader.cpp.

◆ ERROR

#define ERROR ( description)
Value:
{ QQmlError e; e.setDescription(description); qmldir->setError(e); }
The QQmlError class encapsulates a QML error.
Definition qqmlerror.h:19
void setDescription(const QString &)
Sets the error description.

◆ NOT_FOUND_ERROR

#define NOT_FOUND_ERROR   QString(QLatin1String("cannot load module \"$$URI$$\": File \"%1\" not found"))

◆ NOT_READABLE_ERROR

#define NOT_READABLE_ERROR   QString(QLatin1String("module \"$$URI$$\" definition \"%1\" not readable"))

Function Documentation

◆ addDependencyImportError()

void addDependencyImportError ( const QQmlTypeLoader::Blob::PendingImportPtr & import,
QList< QQmlError > * errors )
static

Definition at line 829 of file qqmltypeloader.cpp.

◆ clearBlobs()

template<typename Blob>
void clearBlobs ( QHash< QUrl, QQmlRefPointer< Blob > > * blobs)

Definition at line 1713 of file qqmltypeloader.cpp.

◆ configuredData()

Definition at line 1199 of file qqmltypeloader.cpp.

◆ doInitializeEngine()

template<class Interface>
void doInitializeEngine ( Interface * iface,
QQmlTypeLoaderThread * thread,
QQmlTypeLoaderLockedData * data,
const char * uri )

Call the initializeEngine() method on iface. Used by QQmlTypeLoader to ensure it gets called in the correct thread.

Definition at line 407 of file qqmltypeloader.cpp.

◆ doInterceptUrl()

QUrl doInterceptUrl ( const QUrl & url,
QQmlAbstractUrlInterceptor::DataType type,
const QList< QQmlAbstractUrlInterceptor * > & urlInterceptors )
static

Definition at line 111 of file qqmltypeloader.cpp.

◆ handleExisting()

template<typename Blob>
QQmlRefPointer< Blob > handleExisting ( const QQmlTypeLoaderSharedDataPtr & data,
QQmlRefPointer< Blob > && blob,
QQmlTypeLoader::Mode mode )

Definition at line 1340 of file qqmltypeloader.cpp.

◆ initializeConfiguredData()

void initializeConfiguredData ( const QQmlTypeLoaderConfiguredDataPtr & data,
QV4::ExecutionEngine * engine )
static

Definition at line 692 of file qqmltypeloader.cpp.

◆ isModuleUrl()

bool isModuleUrl ( const QUrl & url)
static

Definition at line 1412 of file qqmltypeloader.cpp.

◆ isPathAbsolute()

bool isPathAbsolute ( const QString & path)
static

Definition at line 499 of file qqmltypeloader.cpp.

◆ isPathQrcOrAbsolute()

bool isPathQrcOrAbsolute ( const QString & path)
static

Definition at line 509 of file qqmltypeloader.cpp.

◆ isResource()

bool isResource ( const QString & path)
static

Definition at line 1526 of file qqmltypeloader.cpp.

◆ localPathForUrlOrPath()

QString localPathForUrlOrPath ( const QString & urlOrPath)
static

Definition at line 519 of file qqmltypeloader.cpp.

◆ parseEnvPath()

QStringList parseEnvPath ( const QString & envImportPath)
static

Definition at line 1241 of file qqmltypeloader.cpp.

◆ pathToUrl()

QString pathToUrl ( const QString & path)
static

Definition at line 1849 of file qqmltypeloader.cpp.

◆ postProcessQmldir()

template<typename URL>
void postProcessQmldir ( QQmlTypeLoader::Blob * self,
const QQmlTypeLoader::Blob::PendingImportPtr & import,
const QString & qmldirFilePath,
const URL & qmldirUrl )

Definition at line 806 of file qqmltypeloader.cpp.

◆ stripTrailingSlashes()

QString stripTrailingSlashes ( const QString & path)
static

Definition at line 1564 of file qqmltypeloader.cpp.