4#ifndef QQMLTYPELOADER_P_H
5#define QQMLTYPELOADER_P_H
18#include <private/qqmldatablob_p.h>
19#include <private/qqmlimport_p.h>
20#include <private/qqmlmetatype_p.h>
21#include <private/qv4compileddata_p.h>
23#include <QtQml/qtqmlglobal.h>
24#include <QtQml/qqmlerror.h>
26#include <QtCore/qcache.h>
27#include <QtCore/qmutex.h>
76 QQmlImports::ImportFlags
flags);
84 QList<QQmlError> *errors);
88 bool updateQmldir(
const QQmlRefPointer<QQmlQmldirData> &
data,
const PendingImportPtr &
import, QList<QQmlError> *errors);
92 bool addFileImport(
const PendingImportPtr &
import, QList<QQmlError> *errors);
93 bool addLibraryImport(
const PendingImportPtr &
import, QList<QQmlError> *errors);
95 virtual bool qmldirDataAvailable(
const QQmlRefPointer<QQmlQmldirData> &, QList<QQmlError> *);
101 bool loadImportDependencies(
102 const PendingImportPtr ¤tImport,
const QString &qmldirUri,
103 QQmlImports::ImportFlags
flags, QList<QQmlError> *errors);
106 bool loadDependentImports(
107 const QList<QQmlDirParser::Import> &imports,
const QString &qualifier,
109 QList<QQmlError> *errors);
113 bool readCacheFile()
const;
114 bool writeCacheFile()
const;
129 typename = std::enable_if_t<std::is_same_v<Engine, QQmlEngine>>>
137 typename = std::enable_if_t<std::is_same_v<Engine, QQmlEnginePrivate>>>
140 return &
engine->typeLoader;
149 QQmlRefPointer<QQmlTypeData> getType(
const QUrl &unNormalizedUrl,
Mode mode = PreferSynchronous);
153 QQmlRefPointer<QQmlScriptBlob> injectedScript(
const QUrl &relativeUrl);
155 QQmlRefPointer<QQmlScriptBlob> getScript(
const QUrl &unNormalizedUrl);
156 QQmlRefPointer<QQmlQmldirData> getQmldir(
const QUrl &);
163 void setQmldirContent(
const QString &filePath,
const QString &content);
168 bool isTypeLoaded(
const QUrl &
url)
const;
169 bool isScriptLoaded(
const QUrl &
url)
const;
171 void lock() { m_mutex.lock(); }
183#if !QT_CONFIG(qml_debug)
187 QQmlProfiler *profiler()
const {
return m_profiler.data(); }
195#if QT_CONFIG(qml_network)
199 void shutdownThread();
204#if QT_CONFIG(qml_network)
208 typedef QHash<QNetworkReply *, QQmlDataBlob::Ptr> NetworkReplies;
216 typedef QHash<QUrl, QQmlTypeData *>
TypeCache;
226#if QT_CONFIG(qml_debug)
227 QScopedPointer<QQmlProfiler> m_profiler;
230#if QT_CONFIG(qml_network)
231 NetworkReplies m_networkReplies;
234 int m_typeCacheTrimThreshold;
241 template<
typename Loader>
243 void updateTypeCacheTrimThreshold();
The QNetworkReply class contains the data and headers for a request sent with QNetworkAccessManager.
The QQmlDataBlob encapsulates a data request that can be issued to a QQmlTypeLoader.
Type
This enum describes the type of the data blob.
The QQmlEngine class provides an environment for instantiating QML components.
The QQmlImportDatabase class manages the QML imports for a QQmlEngine.
The QQmlImports class encapsulates one QML document's import statements.
std::shared_ptr< PendingImport > PendingImportPtr
virtual void scriptImported(const QQmlRefPointer< QQmlScriptBlob > &, const QV4::CompiledData::Location &, const QString &, const QString &)
virtual QString stringAt(int) const
const QQmlImports * imports() const
void setCachedUnitStatus(QQmlMetaType::CachedUnitLookupError status)
QVector< QQmlRefPointer< QQmlQmldirData > > m_qmldirs
QVector< PendingImportPtr > m_unresolvedImports
QQmlRefPointer< QQmlImports > m_importCache
The QQmlTypeLoader class abstracts loading files and their dependencies over the network.
quintptr profiler() const
static QQmlTypeLoader * get(Engine *engine)
ChecksumCache * checksumCache()
const ChecksumCache * checksumCache() const
void setProfiler(quintptr)
static QQmlTypeLoader * get(Engine *engine)
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
#define Q_DECLARE_TR_FUNCTIONS(context)
static QDBusError::ErrorType get(const char *name)
static Q_CONSTINIT QBasicAtomicInt isDebugging
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static QT_BEGIN_NAMESPACE bool fileExists(const wchar_t *fileName)
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLsizei const GLchar *const * path
static void normalize(double &x, double &y)
static QString absoluteFilePath(const Options *options, const QString &relativeFileName)
QUrl url("example.com")
[constructor-url-reference]
mimeData setData("text/csv", csvData)
QQmlImports::ImportFlags flags
QV4::CompiledData::Location location