22#include <QtCore/QQueue>
23#include <QtCore/QString>
24#include <QtCore/QDateTime>
26#include <QtCore/QCborValue>
27#include <QtCore/QCborMap>
42 constexpr static DomType kindValue = DomType::ExternalItemPair;
50 validExposedAt(validExposedAt),
51 currentExposedAt(currentExposedAt)
54 OwningItem(
o), validExposedAt(
o.validExposedAt), currentExposedAt(
o.currentExposedAt)
56 virtual std::shared_ptr<ExternalOwningItem>
validItem()
const = 0;
58 virtual std::shared_ptr<ExternalOwningItem>
currentItem()
const = 0;
66 return OwningItem::field(self,
name);
69 bool currentIsValid()
const;
73 return std::static_pointer_cast<ExternalItemPairBase>(doCopy(self));
79 return currentItem()->lastDataUpdateAt();
80 return ExternalItemPairBase::lastDataUpdateAt();
86 currentItem()->refreshedDataAt(tNew);
87 return OwningItem::refreshedDataAt(tNew);
102 return std::make_shared<ExternalItemPair>(*
this);
106 constexpr static DomType kindValue = DomType::ExternalItemPair;
109 const std::shared_ptr<T> &valid = {},
const std::shared_ptr<T> ¤t = {},
114 : ExternalItemPairBase(validExposedAt, currentExposedAt, derivedFrom, lastDataUpdateAt),
122 std::shared_ptr<ExternalOwningItem>
validItem()
const override {
return valid; }
124 std::shared_ptr<ExternalOwningItem>
currentItem()
const override {
return current; }
128 return std::static_pointer_cast<ExternalItemPair>(doCopy(self));
137 DomTop(QMap<QString, OwnerT> extraOwningItems = {},
int derivedFrom = 0)
138 :
OwningItem(derivedFrom), m_extraOwningItems(extraOwningItems)
143 QMap<QString, OwnerT>
items =
o.extraOwningItems();
146 m_extraOwningItems =
items;
161 m_extraOwningItems.remove(fieldName);
163 m_extraOwningItems.insert(fieldName,
item);
166 void clearExtraOwningItems();
167 QMap<QString, OwnerT> extraOwningItems()
const;
170 QMap<QString, OwnerT> m_extraOwningItems;
174 public std::enable_shared_from_this<DomUniverse>
179 std::shared_ptr<OwningItem> doCopy(
const DomItem &self)
const override;
182 constexpr static DomType kindValue = DomType::DomUniverse;
189 static std::shared_ptr<DomUniverse> guaranteeUniverse(
const std::shared_ptr<DomUniverse> &univ);
193 using DomTop::canonicalPath;
197 return std::static_pointer_cast<DomUniverse>(doCopy(self));
211 DomCreationOptions creationOptions = {});
218 return m_globalScopeWithName.value(
name);
223 if (
auto current = globalScopeWithName(
name))
225 auto newScope = std::make_shared<GlobalScope>(
name);
226 auto newValue = std::make_shared<ExternalItemPair<GlobalScope>>(
229 if (
auto current = m_globalScopeWithName.value(
name))
231 m_globalScopeWithName.insert(
name, newValue);
237 QMap<QString, std::shared_ptr<ExternalItemPair<GlobalScope>>>
map;
240 map = m_globalScopeWithName;
248 return m_qmlDirectoryWithPath.value(
path);
252 QMap<QString, std::shared_ptr<ExternalItemPair<QmlDirectory>>>
map;
255 map = m_qmlDirectoryWithPath;
263 return m_qmldirFileWithPath.value(
path);
267 QMap<QString, std::shared_ptr<ExternalItemPair<QmldirFile>>>
map;
270 map = m_qmldirFileWithPath;
278 return m_qmlFileWithPath.value(
path);
282 QMap<QString, std::shared_ptr<ExternalItemPair<QmlFile>>>
map;
285 map = m_qmlFileWithPath;
293 return m_jsFileWithPath.value(
path);
297 QMap<QString, std::shared_ptr<ExternalItemPair<JsFile>>>
map;
300 map = m_jsFileWithPath;
308 return m_qmltypesFileWithPath.value(
path);
312 QMap<QString, std::shared_ptr<ExternalItemPair<QmltypesFile>>>
map;
315 map = m_qmltypesFileWithPath;
325 struct ContentWithDate
331 using ReadResult = std::variant<ContentWithDate, ErrorMessage>;
334 LoadResult
load(
const ContentWithDate &codeWithDate,
const FileToLoad &
file, DomType fType,
335 DomCreationOptions creationOptions = {});
338 using PreloadResult = std::variant<ContentWithDate, LoadResult>;
339 PreloadResult preload(
const DomItem &univ,
const FileToLoad &
file, DomType fType)
const;
341 std::shared_ptr<QmlFile> parseQmlFile(
const QString &code,
const FileToLoad &
file,
343 DomCreationOptions creationOptions);
344 std::shared_ptr<JsFile> parseJsFile(
const QString &code,
const FileToLoad &
file,
346 std::shared_ptr<ExternalItemPairBase> getPathValueOrNull(DomType fType,
348 std::optional<DomItem> getItemIfMostRecent(
const DomItem &univ, DomType fType,
350 std::optional<DomItem> getItemIfHasSameCode(
const DomItem &univ, DomType fType,
352 const ContentWithDate &codeWithDate)
const;
353 static bool valueHasMostRecentItem(
const ExternalItemPairBase *
value,
355 static bool valueHasSameContent(
const ExternalItemPairBase *
value,
const QString &content);
358 template <
typename T>
359 QMap<QString, std::shared_ptr<ExternalItemPair<T>>> &getMutableRefToMap()
362 if constexpr (std::is_same_v<T, QmlDirectory>) {
363 return m_qmlDirectoryWithPath;
365 if constexpr (std::is_same_v<T, QmldirFile>) {
366 return m_qmldirFileWithPath;
368 if constexpr (std::is_same_v<T, QmlFile>) {
369 return m_qmlFileWithPath;
371 if constexpr (std::is_same_v<T, JsFile>) {
372 return m_jsFileWithPath;
374 if constexpr (std::is_same_v<T, QmltypesFile>) {
375 return m_qmltypesFileWithPath;
377 if constexpr (std::is_same_v<T, GlobalScope>) {
378 return m_globalScopeWithName;
387 template <
typename T>
388 QPair<std::shared_ptr<ExternalItemPair<T>>, std::shared_ptr<ExternalItemPair<T>>>
389 insertOrUpdateEntry(std::shared_ptr<T> newItem)
391 std::shared_ptr<ExternalItemPair<T>> curValue;
392 std::shared_ptr<ExternalItemPair<T>> newCurValue;
397 auto &
map = getMutableRefToMap<T>();
401 if (valueHasSameContent(curValue.get(), newItem->code())) {
403 newCurValue = curValue;
404 if (newCurValue->current->lastDataUpdateAt() < newItem->lastDataUpdateAt()) {
407 newCurValue->current->refreshedDataAt(newItem->lastDataUpdateAt());
409 }
else if (curValue->current->lastDataUpdateAt() > newItem->lastDataUpdateAt()) {
411 newCurValue = curValue;
414 curValue->current = std::move(newItem);
415 curValue->currentExposedAt =
now;
416 if (curValue->current->isValid()) {
417 curValue->valid = curValue->current;
418 curValue->validExposedAt = std::move(
now);
420 newCurValue = curValue;
424 newCurValue = std::make_shared<ExternalItemPair<T>>(
425 (newItem->isValid() ? newItem : std::shared_ptr<T>()), newItem,
now,
now);
434 template <
typename T>
435 LoadResult insertOrUpdateExternalItem(std::shared_ptr<T> extItem)
437 auto change = insertOrUpdateEntry<T>(std::move(extItem));
438 DomItem univ(shared_from_this());
439 return { univ.copy(change.first), univ.copy(change.second) };
444 QMap<QString, std::shared_ptr<ExternalItemPair<GlobalScope>>> m_globalScopeWithName;
445 QMap<QString, std::shared_ptr<ExternalItemPair<QmlDirectory>>> m_qmlDirectoryWithPath;
446 QMap<QString, std::shared_ptr<ExternalItemPair<QmldirFile>>> m_qmldirFileWithPath;
447 QMap<QString, std::shared_ptr<ExternalItemPair<QmlFile>>> m_qmlFileWithPath;
448 QMap<QString, std::shared_ptr<ExternalItemPair<JsFile>>> m_jsFileWithPath;
449 QMap<QString, std::shared_ptr<ExternalItemPair<QmltypesFile>>> m_qmltypesFileWithPath;
455 constexpr static DomType kindValue = DomType::ExternalItemInfo;
464 m_currentExposedAt(currentExposedAt)
468 virtual std::shared_ptr<ExternalOwningItem>
currentItem()
const = 0;
477 return OwningItem::field(self,
name);
480 int currentRevision(
const DomItem &self)
const;
481 int lastRevision(
const DomItem &self)
const;
482 int lastValidRevision(
const DomItem &self)
const;
486 return std::static_pointer_cast<ExternalItemInfoBase>(doCopy(self));
492 return currentItem()->lastDataUpdateAt();
493 return OwningItem::lastDataUpdateAt();
499 currentItem()->refreshedDataAt(tNew);
500 return OwningItem::refreshedDataAt(tNew);
505 if (!m_logicalFilePaths.contains(
path))
506 m_logicalFilePaths.append(
path);
511 return m_currentExposedAt;
516 m_currentExposedAt =
d;
522 return m_logicalFilePaths;
527 Path m_canonicalPath;
538 return std::make_shared<ExternalItemInfo>(*
this);
544 const std::shared_ptr<T> &
current = std::shared_ptr<T>(),
560 return std::static_pointer_cast<ExternalItemInfo>(
doCopy(self));
563 std::shared_ptr<ExternalOwningItem>
currentItem()
const override {
590 std::shared_ptr<OwningItem> doCopy(
const DomItem &self)
const override;
593 constexpr static DomType kindValue = DomType::LoadInfo;
608 m_elementCanonicalPath(elPath),
617 m_status =
o.m_status;
618 m_nLoaded =
o.m_nLoaded;
620 m_inProgress =
o.m_inProgress;
621 m_endCallbacks =
o.m_endCallbacks;
630 return std::static_pointer_cast<LoadInfo>(doCopy(self));
634 self.path(elementCanonicalPath()).addError(std::move(msg));
639 void advanceLoad(
const DomItem &self);
641 void execEnd(
const DomItem &self);
658 return m_elementCanonicalPath;
664 return m_toDo.size() + m_inProgress.size();
682 return m_endCallbacks.size();
686 void doAddDependencies(
const DomItem &self);
689 Path m_elementCanonicalPath;
692 QQueue<Dependency> m_toDo;
693 QList<Dependency> m_inProgress;
710 AddOption addOption = AddOption::KeepExisting);
717 public std::enable_shared_from_this<DomEnvironment>
722 std::shared_ptr<OwningItem> doCopy(
const DomItem &self)
const override;
731 SingleThreaded = 0x10,
732 NoDependencies = 0x20
792 DomCreationOptions domCreationOptions =
None,
796 DomCreationOptions domCreationOptions =
None);
820 void addDependenciesToLoad(const
Path &
path);
826 void loadPendingDependencies();
827 bool finishLoadingDependencies(
int waitMSec = 30000);
828 void addWorkForLoadInfo(const
Path &elementCanonicalPath);
837 QString globalScopeName() const;
844 void clearReferenceCache();
857 template <
typename T>
861 DomItem env(shared_from_this());
863 if (
auto curValue = lookup<T>(
path, EnvLookup::NoBase)) {
865 return { env.
copy(curValue), env.
copy(curValue) };
867 std::shared_ptr<ExternalItemInfo<T>> newCurValue;
869 auto valueInBase = lookup<T>(
path, EnvLookup::BaseOnly);
872 newCurValue = std::make_shared<ExternalItemInfo<T>>(std::move(extItem),
876 newCurValue = valueInBase->makeCopy(env);
877 if (newCurValue->current != extItem) {
878 newCurValue->current = std::move(extItem);
887 auto &
map = getMutableRefToMap<T>();
894 return { env.
copy(valueInBase), env.
copy(newCurValue) };
897 template <
typename T>
902 std::shared_ptr<T> newItemPtr;
903 if (options() & DomEnvironment::Option::KeepValid)
904 newItemPtr = newExtItem.field(Fields::validItem).ownerAs<T>();
906 newItemPtr = newExtItem.field(Fields::currentItem).ownerAs<T>();
907 Q_ASSERT(newItemPtr &&
"envCallbackForFile reached without current file");
909 auto loadResult = insertOrUpdateExternalItemInfo(newExtItem.canonicalFilePath(),
910 std::move(newItemPtr));
911 Path p = loadResult.currentItem.canonicalPath();
914 addDependenciesToLoad(
p);
919 addAllLoadedCallback(
922 endCallback(
p,
el,
el);
928 loadCallback(
p, loadResult.formerItem, loadResult.currentItem);
939 std::optional<DomType>
fileType = std::optional<DomType>(),
946 template <
typename T>
947 QSet<QString> getStrings(
function_ref<QSet<QString>()> getBase,
const QMap<QString, T> &selfMap,
950 template <
typename T>
951 const QMap<QString, std::shared_ptr<ExternalItemInfo<T>>> &getConstRefToMap()
const
954 if constexpr (std::is_same_v<T, GlobalScope>) {
955 return m_globalScopeWithName;
957 if constexpr (std::is_same_v<T, QmlDirectory>) {
958 return m_qmlDirectoryWithPath;
960 if constexpr (std::is_same_v<T, QmldirFile>) {
961 return m_qmldirFileWithPath;
963 if constexpr (std::is_same_v<T, QmlFile>) {
964 return m_qmlFileWithPath;
966 if constexpr (std::is_same_v<T, JsFile>) {
967 return m_jsFileWithPath;
969 if constexpr (std::is_same_v<T, QmltypesFile>) {
970 return m_qmltypesFileWithPath;
975 template <
typename T>
976 std::shared_ptr<ExternalItemInfo<T>> lookup(
const QString &
path, EnvLookup options)
const
978 if (options != EnvLookup::BaseOnly) {
980 const auto &
map = getConstRefToMap<T>();
985 if (options != EnvLookup::NoBase && m_base)
986 return m_base->lookup<T>(
path, options);
990 template <
typename T>
991 QMap<QString, std::shared_ptr<ExternalItemInfo<T>>> &getMutableRefToMap()
994 if constexpr (std::is_same_v<T, QmlDirectory>) {
995 return m_qmlDirectoryWithPath;
997 if constexpr (std::is_same_v<T, QmldirFile>) {
998 return m_qmldirFileWithPath;
1000 if constexpr (std::is_same_v<T, QmlFile>) {
1001 return m_qmlFileWithPath;
1003 if constexpr (std::is_same_v<T, JsFile>) {
1004 return m_jsFileWithPath;
1006 if constexpr (std::is_same_v<T, QmltypesFile>) {
1007 return m_qmltypesFileWithPath;
1009 if constexpr (std::is_same_v<T, GlobalScope>) {
1010 return m_globalScopeWithName;
1015 template <
typename T>
1025 auto &
map = getMutableRefToMap<T>();
1033 QPair<std::shared_ptr<ExternalItemInfoBase>, std::shared_ptr<ExternalItemInfoBase>>;
1037 template <
typename T>
1038 FetchResult fetchFileFromEnvs(
const FileToLoad &
file)
1040 const auto &
path =
file.canonicalPath();
1042 if (
auto value = lookup<T>(
path, EnvLookup::NoBase)) {
1046 if (options() & Option::NoReload) {
1047 if (
auto baseV = lookup<T>(
path, EnvLookup::BaseOnly)) {
1052 auto curV = std::make_shared<ExternalItemInfo<T>>(
1054 baseV->lastDataUpdateAt());
1059 auto &
map = getMutableRefToMap<T>();
1072 Callback getLoadCallbackFor(DomType
fileType,
const Callback &loadCallback);
1074 std::shared_ptr<ModuleIndex> lookupModuleInEnv(
const QString &uri,
int majorVersion)
const;
1077 struct ModuleLookupResult {
1078 enum Origin :
bool {FromBase, FromGlobal};
1079 std::shared_ptr<ModuleIndex>
module;
1080 Origin fromBase = FromGlobal;
1083 ModuleLookupResult moduleIndexWithUriHelper(
const DomItem &self,
const QString &uri,
int majorVersion,
1084 EnvLookup lookup = EnvLookup::Normal)
const;
1087 const std::shared_ptr<DomEnvironment> m_base;
1088 std::shared_ptr<DomEnvironment> m_lastValidBase;
1089 const std::shared_ptr<DomUniverse> m_universe;
1092 QMap<QString, QMap<int, std::shared_ptr<ModuleIndex>>> m_moduleIndexWithUri;
1093 QMap<QString, std::shared_ptr<ExternalItemInfo<GlobalScope>>> m_globalScopeWithName;
1094 QMap<QString, std::shared_ptr<ExternalItemInfo<QmlDirectory>>> m_qmlDirectoryWithPath;
1095 QMap<QString, std::shared_ptr<ExternalItemInfo<QmldirFile>>> m_qmldirFileWithPath;
1096 QMap<QString, std::shared_ptr<ExternalItemInfo<QmlFile>>> m_qmlFileWithPath;
1097 QMap<QString, std::shared_ptr<ExternalItemInfo<JsFile>>> m_jsFileWithPath;
1098 QMap<QString, std::shared_ptr<ExternalItemInfo<QmltypesFile>>> m_qmltypesFileWithPath;
1099 QQueue<Path> m_loadsWithWork;
1100 QQueue<Path> m_inProgress;
1101 QHash<Path, std::shared_ptr<LoadInfo>> m_loadInfos;
1102 QList<Import> m_implicitImports;
1103 QList<Callback> m_allLoadedCallback;
1104 QHash<Path, RefCacheEntry> m_referenceCache;
1105 DomCreationOptions m_domCreationOptions;
1107 struct SemanticAnalysis
1112 std::shared_ptr<QQmlJSResourceFileMapper> m_mapper;
1113 std::shared_ptr<QQmlJSImporter> m_importer;
1115 std::optional<SemanticAnalysis> m_semanticAnalysis;
1116 SemanticAnalysis &semanticAnalysis();
\inmodule QtCore\reentrant
static QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone)
static QDateTime currentDateTimeUtc()
iterator insert(const Key &key, const T &value)
const_iterator cend() const
iterator find(const Key &key)
key_iterator keyBegin() const
key_iterator keyEnd() const
bool operator==(Dependency const &o) const
Represents a consistent set of types organized in modules, it is the top level of the DOM.
LoadResult insertOrUpdateExternalItemInfo(const QString &path, std::shared_ptr< T > extItem)
void addExternalItemInfo(const DomItem &newExtItem, const Callback &loadCallback, const Callback &endCallback)
DomCreationOptions domCreationOptions() const
function< void(const Path &, const DomItem &, const DomItem &)> Callback
DomItem path(const Path &p, const ErrorHandler &h=&defaultErrorHandler) const
DomItem copy(const Owner &owner, const Path &ownerPath, const T &base) const
DomTop(QMap< QString, OwnerT > extraOwningItems={}, int derivedFrom=0)
virtual Path canonicalPath() const =0
DomItem::Callback Callback
void setExtraOwningItem(const QString &fieldName, const std::shared_ptr< T > &item)
Represents a set of parsed/loaded modules libraries and a plugins.
QSet< QString > globalScopeNames() const
std::shared_ptr< ExternalItemPair< GlobalScope > > ensureGlobalScopeWithName(const QString &name)
std::shared_ptr< ExternalItemPair< JsFile > > jsFileWithPath(const QString &path) const
QSet< QString > qmltypesFilePaths() const
std::shared_ptr< ExternalItemPair< QmldirFile > > qmldirFileWithPath(const QString &path) const
DomUniverse(const DomUniverse &)=delete
std::shared_ptr< ExternalItemPair< GlobalScope > > globalScopeWithName(const QString &name) const
std::shared_ptr< ExternalItemPair< QmlFile > > qmlFileWithPath(const QString &path) const
QSet< QString > qmlDirectoryPaths() const
QSet< QString > jsFilePaths() const
std::shared_ptr< ExternalItemPair< QmltypesFile > > qmltypesFileWithPath(const QString &path) const
QSet< QString > qmldirFilePaths() const
std::shared_ptr< ExternalItemPair< QmlDirectory > > qmlDirectoryWithPath(const QString &path) const
DomType kind() const override
std::shared_ptr< DomUniverse > makeCopy(const DomItem &self) const
QSet< QString > qmlFilePaths() const
Represents a set of tags grouping a set of related error messages.
Represents an error message connected to the dom.
ExternalItemInfoBase(const ExternalItemInfoBase &o)=default
void setCurrentExposedAt(QDateTime d)
std::shared_ptr< ExternalItemInfoBase > makeCopy(const DomItem &self) const
DomType kind() const final override
QDateTime currentExposedAt() const
ExternalItemInfoBase(const Path &canonicalPath, const QDateTime ¤tExposedAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC), int derivedFrom=0, const QDateTime &lastDataUpdateAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC))
QStringList logicalFilePaths() const
virtual std::shared_ptr< ExternalOwningItem > currentItem() const =0
DomItem field(const DomItem &self, QStringView name) const final override
Path canonicalPath(const DomItem &) const final override
void refreshedDataAt(QDateTime tNew) final override
Path canonicalPath() const
virtual DomItem currentItem(const DomItem &) const =0
void ensureLogicalFilePath(const QString &path)
QDateTime lastDataUpdateAt() const final override
std::shared_ptr< OwningItem > doCopy(const DomItem &) const override
static constexpr DomType kindValue
ExternalItemInfo(const std::shared_ptr< T > ¤t=std::shared_ptr< T >(), const QDateTime ¤tExposedAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC), int derivedFrom=0, const QDateTime &lastDataUpdateAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC))
std::shared_ptr< T > current
ExternalItemInfo(const QString &canonicalPath)
std::shared_ptr< ExternalItemInfo > makeCopy(const DomItem &self) const
DomItem currentItem(const DomItem &self) const override
ExternalItemInfo(const ExternalItemInfo &o)
std::shared_ptr< ExternalOwningItem > currentItem() const override
QDateTime currentExposedAt
ExternalItemPairBase(const ExternalItemPairBase &o)
DomType kind() const final override
void refreshedDataAt(QDateTime tNew) final override
virtual DomItem validItem(const DomItem &self) const =0
ExternalItemPairBase(const QDateTime &validExposedAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC), const QDateTime ¤tExposedAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC), int derivedFrom=0, const QDateTime &lastDataUpdateAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC))
QDateTime lastDataUpdateAt() const final override
std::shared_ptr< ExternalItemPairBase > makeCopy(const DomItem &self) const
virtual std::shared_ptr< ExternalOwningItem > currentItem() const =0
virtual std::shared_ptr< ExternalOwningItem > validItem() const =0
virtual DomItem currentItem(const DomItem &self) const =0
DomItem field(const DomItem &self, QStringView name) const final override
std::shared_ptr< T > valid
std::shared_ptr< T > current
std::shared_ptr< OwningItem > doCopy(const DomItem &) const override
std::shared_ptr< ExternalOwningItem > validItem() const override
DomItem validItem(const DomItem &self) const override
DomItem currentItem(const DomItem &self) const override
ExternalItemPair(const ExternalItemPair &o)
ExternalItemPair(const std::shared_ptr< T > &valid={}, const std::shared_ptr< T > ¤t={}, const QDateTime &validExposedAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC), const QDateTime ¤tExposedAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC), int derivedFrom=0, const QDateTime &lastDataUpdateAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC))
std::shared_ptr< ExternalOwningItem > currentItem() const override
std::shared_ptr< ExternalItemPair > makeCopy(const DomItem &self) const
void addError(const DomItem &self, ErrorMessage &&msg) override
DomType kind() const override
LoadInfo(const Path &elPath=Path(), Status status=Status::NotStarted, int nLoaded=0, int derivedFrom=0, const QDateTime &lastDataUpdateAt=QDateTime::fromMSecsSinceEpoch(0, QTimeZone::UTC))
Path elementCanonicalPath() const
QList< Dependency > toDo() const
std::shared_ptr< LoadInfo > makeCopy(const DomItem &self) const
LoadInfo(const LoadInfo &o)
QList< Dependency > inProgress() const
A QmlFile, when loaded in a DomEnvironment that has the DomCreationOption::WithSemanticAnalysis,...
QList< Path > canonicalPaths
\macro QT_RESTRICTED_CAST_FROM_ASCII
QMap< QString, QString > map
[6]
QSet< QString >::iterator it
std::function< void(const ErrorMessage &)> ErrorHandler
Combined button and popup list for selecting options.
SharedPointerFileDialogOptions m_options
#define Q_DECLARE_TR_FUNCTIONS(context)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
GLsizei const GLfloat * v
[13]
GLfloat GLfloat GLfloat GLfloat h
GLsizei const GLchar *const * path
QT_BEGIN_NAMESPACE constexpr decltype(auto) qMakePair(T1 &&value1, T2 &&value2) noexcept(noexcept(std::make_pair(std::forward< T1 >(value1), std::forward< T2 >(value2))))
QQmlJS::Dom::DomItem DomItem
QScopeGuard< typename std::decay< F >::type > qScopeGuard(F &&f)
[qScopeGuard]
static QT_BEGIN_NAMESPACE const uint Default
static QString canonicalPath(const QString &rootPath)
static FileType fileType(const QFileInfo &fi)
mutex tryLock(deadline.remainingTime())
[4]
void readFileContent(QStringList *content, const QString &url, Predicate filter)