![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
A value type that references any element of the Dom. More...
#include <qqmldomitem_p.h>
Public Types | |
enum class | CopyOption { EnvConnected , EnvDisconnected } |
using | Callback = function<void(const Path &, const DomItem &, const DomItem &)> |
using | InternalKind = DomType |
using | Visitor = function_ref<bool(const Path &, const DomItem &)> |
using | ChildrenVisitor = function_ref<bool(const Path &, const DomItem &, bool)> |
Static Public Member Functions | |
static ErrorGroups | myErrors () |
static ErrorGroups | myResolveErrors () |
static DomItem | fromCode (const QString &code, DomType fileType=DomType::QmlFile) |
Creates a new document with the given code. |
Static Public Attributes | |
static ErrorGroup | domErrorGroup = NewErrorGroup("Dom") |
static DomItem | empty = DomItem() |
Friends | |
class | DomBase |
class | DomElement |
class | Map |
class | List |
class | QmlObject |
class | DomUniverse |
class | DomEnvironment |
class | ExternalItemInfoBase |
class | ConstantData |
class | MutableDomItem |
class | ScriptExpression |
class | AstComments |
class | FileLocations::Node |
class | TestDomItem |
QMLDOM_EXPORT bool | operator== (const DomItem &o1, const DomItem &o2) |
A value type that references any element of the Dom.
This class is the central element in the Dom, it is how any element can be identfied in a uniform way, and provides the API to explore the Dom, and Path based operations.
The DomItem (unless it is Empty) keeps a pointer to the element, and a shared pointer to its owner and to the DomEnvironment or DomUniverse that contains them. This means that: \list
One of the goals of the DomItem is to allow one to use real typed objects, as one is used to in C++, and also let one use modern C++ patterns, meaning container that contain the actual object (without pointer indirection). Exposed OwningItems are basically immutable, but during construction, objects can be modified. This will typically happen from a single thread, so there aren't locking issues, but pointers to inner elements might become invalid. In this case the use of the MutableDomItem is required. It does not keep any pointers to internal elements, but rather the path to them, and it resolves it every time it needs.
Definition at line 856 of file qqmldomitem_p.h.
using QQmlJS::Dom::DomItem::Callback = function<void(const Path &, const DomItem &, const DomItem &)> |
Definition at line 859 of file qqmldomitem_p.h.
using QQmlJS::Dom::DomItem::ChildrenVisitor = function_ref<bool(const Path &, const DomItem &, bool)> |
Definition at line 863 of file qqmldomitem_p.h.
Definition at line 861 of file qqmldomitem_p.h.
using QQmlJS::Dom::DomItem::Visitor = function_ref<bool(const Path &, const DomItem &)> |
Definition at line 862 of file qqmldomitem_p.h.
|
strong |
Enumerator | |
---|---|
EnvConnected | |
EnvDisconnected |
Definition at line 870 of file qqmldomitem_p.h.
|
default |
Referenced by annotations(), component(), containingFile(), QQmlJS::Dom::DomTop::containingObject(), QQmlJS::Dom::OwningItem::containingObject(), containingScriptExpression(), environment(), QQmlJS::Dom::QmlObject::field(), QQmlJS::Dom::Reference::field(), filterUp(), fromCode(), QQmlJS::Dom::Map::fromMapRef(), QQmlJS::Dom::List::fromQList(), QQmlJS::Dom::List::fromQListRef(), get(), globalScope(), goUp(), QQmlJS::Dom::ListPT< T >::index(), QQmlJS::Dom::Reference::index(), QQmlJS::Dom::Binding::iterateDirectSubpaths(), QQmlJS::Dom::Reference::key(), QQmlJS::Dom::keyMultiMapHelper(), proceedToScope(), qmlObject(), resolve(), universe(), QQmlJS::Dom::BindingValue::value(), QQmlJS::Dom::Binding::valueItem(), and wrap().
DomItem::DomItem | ( | const std::shared_ptr< DomEnvironment > & | envPtr | ) |
Definition at line 2478 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::Path().
DomItem::DomItem | ( | const std::shared_ptr< DomUniverse > & | universePtr | ) |
Definition at line 2483 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::Path().
void DomItem::addError | ( | ErrorMessage && | msg | ) | const |
Definition at line 2361 of file qqmldomitem.cpp.
Referenced by QQmlJS::Dom::LoadInfo::addError(), QQmlJS::Dom::MutableDomItem::addError(), QQmlJS::Dom::DomEnvironment::addLoadInfo(), and errorHandler().
|
inline |
Definition at line 939 of file qqmldomitem_p.h.
References DomItem(), and hasAnnotations().
Referenced by QQmlJS::Dom::MutableDomItem::annotations().
|
inline |
Definition at line 1188 of file qqmldomitem_p.h.
|
inline |
Definition at line 1200 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsObjWrap(), and QQmlJS::Dom::domTypeIsValueWrap().
|
inline |
Definition at line 934 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::bindings().
QString DomItem::canonicalFilePath | ( | ) | const |
Definition at line 2061 of file qqmldomitem.cpp.
Path DomItem::canonicalPath | ( | ) | const |
Definition at line 401 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::headKind(), and QQmlJS::Dom::PathEls::Root.
Referenced by QQmlJS::Dom::ImportScope::allSources(), QQmlJS::Dom::ModuleScope::canonicalPath(), container(), QQmlJS::Dom::OwningItem::containingObject(), QQmlJS::Dom::DomBase::dump(), dump(), filterUp(), QQmlJS::Dom::Reference::get(), goUp(), isCanonicalChild(), makeCopy(), QQmlJS::Dom::DomEnvironment::moduleIndexWithUri(), proceedToScope(), refreshed(), resolve(), QQmlJS::Dom::QmlObject::resolveAlias(), QQmlJS::Dom::FileLocations::treeOf(), visitPrototypeChain(), QQmlJS::Dom::visitPrototypeIndex(), visitUp(), QQmlJS::Dom::Binding::writeOut(), and QQmlJS::Dom::QmlObject::writeOutAttributes().
|
inline |
Definition at line 938 of file qqmldomitem_p.h.
|
inline |
Definition at line 937 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::children().
void DomItem::clearErrors | ( | const ErrorGroups & | groups = ErrorGroups({}), |
bool | iterate = true ) const |
Definition at line 2377 of file qqmldomitem.cpp.
bool DomItem::commitToBase | ( | const std::shared_ptr< DomEnvironment > & | validPtr = nullptr | ) | const |
Definition at line 2150 of file qqmldomitem.cpp.
References environment().
Referenced by QQmlJS::Dom::MutableDomItem::commitToBase().
DomItem DomItem::component | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 722 of file qqmldomitem.cpp.
References DomItem(), containingObject(), internalKind(), QQmlJS::Dom::List, QQmlJS::Dom::Map, and QQmlJS::Dom::QmlFile.
DomItem DomItem::container | ( | ) | const |
Definition at line 463 of file qqmldomitem.cpp.
References canonicalPath(), containingObject(), path(), pathFromOwner(), and QQmlJS::Dom::Path::split().
Referenced by QQmlJS::Dom::MutableDomItem::container(), QQmlJS::Dom::OwningItem::iterateSubOwners(), and QQmlJS::Dom::FileLocations::treeOf().
DomItem DomItem::containingFile | ( | ) | const |
Shorthand to obtain the QmlFile DomItem, in which this DomItem is defined. Returns an empty DomItem if the item is not defined in a QML file.
Definition at line 552 of file qqmldomitem.cpp.
References DomItem().
DomItem DomItem::containingObject | ( | ) | const |
Definition at line 412 of file qqmldomitem.cpp.
Referenced by component(), container(), fileObject(), resolve(), visitLookup(), and QQmlJS::Dom::QmlObject::writeOut().
DomItem DomItem::containingScriptExpression | ( | ) | const |
Shorthand to obtain the ScriptExpression DomItem, in which this DomItem is defined. Returns an empty DomItem if the item is not defined inside a ScriptExpression.
Definition at line 538 of file qqmldomitem.cpp.
References DomItem().
|
inline |
Definition at line 1221 of file qqmldomitem_p.h.
|
inline |
Definition at line 1213 of file qqmldomitem_p.h.
|
inline |
Definition at line 1228 of file qqmldomitem_p.h.
QDateTime DomItem::createdAt | ( | ) | const |
Definition at line 2331 of file qqmldomitem.cpp.
int DomItem::derivedFrom | ( | ) | const |
Definition at line 2311 of file qqmldomitem.cpp.
DomItem DomItem::directParent | ( | ) | const |
In the DomItem hierarchy, go 1 level up to get the direct parent.
Definition at line 592 of file qqmldomitem.cpp.
References goUp().
Referenced by filterUp().
|
inline |
Definition at line 883 of file qqmldomitem_p.h.
FileWriter::Status DomItem::dump | ( | const QString & | path, |
function_ref< bool(const DomItem &, const PathEls::PathComponent &, const DomItem &)> | filter = noFilter, | ||
int | nBackups = 2, | ||
int | indent = 0, | ||
FileWriter * | fw = nullptr ) const |
Definition at line 2281 of file qqmldomitem.cpp.
References canonicalPath().
void DomItem::dump | ( | const Sink & | s, |
int | indent = 0, | ||
function_ref< bool(const DomItem &, const PathEls::PathComponent &, const DomItem &)> | filter = noFilter ) const |
Definition at line 2273 of file qqmldomitem.cpp.
Definition at line 2260 of file qqmldomitem.cpp.
|
inline |
Definition at line 1130 of file qqmldomitem_p.h.
|
inline |
Definition at line 1134 of file qqmldomitem_p.h.
|
inline |
Definition at line 1109 of file qqmldomitem_p.h.
|
inline |
Definition at line 1122 of file qqmldomitem_p.h.
|
inline |
Definition at line 1115 of file qqmldomitem_p.h.
|
inline |
Definition at line 1126 of file qqmldomitem_p.h.
bool DomItem::dvValue | ( | DirectVisitor | visitor, |
const PathEls::PathComponent & | c, | ||
const T & | value, | ||
ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 2044 of file qqmldomitem_p.h.
|
inline |
Definition at line 1087 of file qqmldomitem_p.h.
bool DomItem::dvValueLazy | ( | DirectVisitor | visitor, |
const PathEls::PathComponent & | c, | ||
F | valueF, | ||
ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 2054 of file qqmldomitem_p.h.
|
inline |
Definition at line 1096 of file qqmldomitem_p.h.
bool DomItem::dvWrap | ( | DirectVisitor | visitor, |
const PathEls::PathComponent & | c, | ||
T & | obj ) const |
Definition at line 2138 of file qqmldomitem_p.h.
|
inline |
Definition at line 1169 of file qqmldomitem_p.h.
|
inline |
Definition at line 936 of file qqmldomitem_p.h.
DomItem DomItem::environment | ( | ) | const |
Definition at line 514 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::DomEnvironment, internalKind(), and top().
Referenced by QQmlJS::Dom::RefCacheEntry::addForPath(), QQmlJS::Dom::LoadInfo::advanceLoad(), QQmlJS::Dom::ImportScope::allSources(), QQmlJS::Dom::ModuleIndex::autoExports(), commitToBase(), QQmlJS::Dom::MutableDomItem::environment(), QQmlJS::Dom::RefCacheEntry::forPath(), QQmlJS::Dom::Reference::get(), QQmlJS::Dom::Reference::getAll(), globalScope(), makeCopy(), QQmlJS::Dom::ModuleIndex::qmldirsToLoad(), resolve(), and visitLookup().
ErrorHandler DomItem::errorHandler | ( | ) | const |
Definition at line 2371 of file qqmldomitem.cpp.
References addError().
Referenced by QQmlJS::Dom::LoadInfo::advanceLoad().
DomItem DomItem::field | ( | QStringView | name | ) | const |
Definition at line 1136 of file qqmldomitem.cpp.
Definition at line 1131 of file qqmldomitem.cpp.
DomItem DomItem::fileObject | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 435 of file qqmldomitem.cpp.
References containingObject(), QQmlJS::Dom::Empty, internalKind(), QQmlJS::Dom::JsFile, QQmlJS::Dom::List, QQmlJS::Dom::Map, owner(), QQmlJS::Dom::QmldirFile, QQmlJS::Dom::QmlFile, and QQmlJS::Dom::QmltypesFile.
DomItem DomItem::filterUp | ( | function_ref< bool(DomType k, const DomItem &)> | filter, |
FilterUpOptions | options ) const |
Finds the first element in the DomItem hierarchy that satisfies filter. Use options to set the search direction, see also \l{FilterUpOptions}.
Definition at line 602 of file qqmldomitem.cpp.
References DomItem(), canonicalPath(), directParent(), internalKind(), QQmlJS::Dom::operator!=(), path(), QQmlJS::Dom::ReturnInner, QQmlJS::Dom::ReturnOuter, QQmlJS::Dom::ReturnOuterNoSelf, and top().
|
static |
Creates a new document with the given code.
This is mostly useful for testing or loading a single code snippet without any dependency. The fileType should normally be QmlFile, but you might want to load a qmltypes file for example and interpret it as qmltypes file (not plain Qml), or as JsFile. In those case set the file type accordingly.
Definition at line 2496 of file qqmldomitem.cpp.
References DomItem(), and QQmlJS::Dom::DomEnvironment::NoDependencies.
QDateTime DomItem::frozenAt | ( | ) | const |
Definition at line 2341 of file qqmldomitem.cpp.
DomItem DomItem::get | ( | const ErrorHandler & | h = nullptr, |
QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 676 of file qqmldomitem.cpp.
References DomItem(), and QQmlJS::Dom::Reference::kindValue.
QList< DomItem > DomItem::getAll | ( | const ErrorHandler & | h = nullptr, |
QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 683 of file qqmldomitem.cpp.
References QQmlJS::Dom::Reference::kindValue.
DomItem DomItem::globalScope | ( | ) | const |
Definition at line 474 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::Path::Path(), environment(), QQmlJS::Dom::GlobalScope, and internalKind().
Referenced by QQmlJS::Dom::MutableDomItem::globalScope().
Shorthand to obtain the QmlFile DomItem from a canonicalPath.
Definition at line 565 of file qqmldomitem.cpp.
References top().
DomItem DomItem::goUp | ( | int | n | ) | const |
In the DomItem hierarchy, go n
levels up.
Definition at line 577 of file qqmldomitem.cpp.
References DomItem(), canonicalPath(), QQmlJS::Dom::Path::dropTail(), QQmlJS::Dom::Path::length(), path(), and top().
Referenced by directParent().
bool DomItem::hasAnnotations | ( | ) | const |
Definition at line 1371 of file qqmldomitem.cpp.
References QQmlJS::Dom::Binding, QQmlJS::Dom::Id, internalKind(), QQmlJS::Dom::QmlObject::kindValue, QQmlJS::Dom::MethodInfo, QQmlJS::Dom::PropertyDefinition, and QQmlJS::Dom::QmlObject.
Referenced by annotations(), and writeOutPre().
quintptr DomItem::id | ( | ) | const |
Definition at line 2051 of file qqmldomitem.cpp.
|
inline |
Definition at line 928 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::ids().
|
inline |
Definition at line 929 of file qqmldomitem_p.h.
DomItem DomItem::index | ( | index_type | i | ) | const |
Definition at line 1146 of file qqmldomitem.cpp.
index_type DomItem::indexes | ( | ) | const |
Definition at line 1141 of file qqmldomitem.cpp.
|
inline |
Definition at line 879 of file qqmldomitem_p.h.
Referenced by component(), QQmlJS::Dom::MutableDomItem::containingObject(), environment(), fileObject(), filterUp(), QQmlJS::Dom::getFileItemOwner(), globalScope(), hasAnnotations(), QQmlJS::Dom::MutableDomItem::internalKind(), isContainer(), isExternalItem(), isOwningItem(), isScope(), isTopItem(), makeCopy(), QQmlJS::Dom::FieldFilter::operator()(), proceedToScope(), resolve(), QQmlJS::Dom::QmlObject::resolveAlias(), QQmlJS::Dom::AstRangesVisitor::shouldSkipRegion(), subReferenceItem(), universe(), visitDirectAccessibleScopes(), QQmlJS::Dom::visitForLookupType(), visitLocalSymbolsNamed(), visitLookup(), QQmlJS::Dom::visitPrototypeIndex(), and visitScopeChain().
|
inline |
Definition at line 882 of file qqmldomitem_p.h.
bool DomItem::isCanonicalChild | ( | const DomItem & | child | ) | const |
Definition at line 1358 of file qqmldomitem.cpp.
References canonicalPath(), QQmlJS::Dom::Path::dropTail(), isOwningItem(), operator==, QQmlJS::Dom::operator==(), owner(), and pathFromOwner().
Referenced by QQmlJS::Dom::domCompare(), and QQmlJS::Dom::DomBase::dump().
|
inline |
Definition at line 922 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsContainer(), and internalKind().
|
inline |
Definition at line 920 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsExternalItem(), and internalKind().
|
inline |
Definition at line 919 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsOwningItem(), and internalKind().
Referenced by isCanonicalChild(), and makeCopy().
|
inline |
Definition at line 923 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsScope(), and internalKind().
Referenced by visitDirectAccessibleScopes(), and visitLocalSymbolsNamed().
|
inline |
Definition at line 921 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsTopItem(), and internalKind().
bool DomItem::iterateDirectSubpaths | ( | DirectVisitor | v | ) | const |
Definition at line 2424 of file qqmldomitem.cpp.
bool DomItem::iterateErrors | ( | function_ref< bool(const DomItem &, const ErrorMessage &)> | visitor, |
bool | iterate, | ||
Path | inPath = Path() ) const |
Definition at line 2392 of file qqmldomitem.cpp.
bool DomItem::iterateSubOwners | ( | function_ref< bool(const DomItem &owner)> | visitor | ) | const |
Definition at line 2414 of file qqmldomitem.cpp.
Definition at line 1176 of file qqmldomitem.cpp.
|
inline |
Definition at line 977 of file qqmldomitem_p.h.
Definition at line 1163 of file qqmldomitem.cpp.
QDateTime DomItem::lastDataUpdateAt | ( | ) | const |
Definition at line 2351 of file qqmldomitem.cpp.
|
inline |
Definition at line 961 of file qqmldomitem_p.h.
QList< DomItem > DomItem::lookup | ( | const QString & | symbolName, |
LookupType | type = LookupType::Symbol, | ||
LookupOptions | opts = LookupOption::Normal, | ||
const ErrorHandler & | errorHandler = nullptr ) const |
Definition at line 2023 of file qqmldomitem.cpp.
DomItem DomItem::lookupFirst | ( | const QString & | symbolName, |
LookupType | type = LookupType::Symbol, | ||
LookupOptions | opts = LookupOption::Normal, | ||
const ErrorHandler & | errorHandler = nullptr ) const |
Definition at line 2037 of file qqmldomitem.cpp.
MutableDomItem DomItem::makeCopy | ( | DomItem::CopyOption | option = CopyOption::EnvConnected | ) | const |
Definition at line 2066 of file qqmldomitem.cpp.
References QQmlJS::Dom::MutableDomItem::MutableDomItem(), canonicalPath(), QQmlJS::Dom::Default, QQmlJS::Dom::Empty, EnvDisconnected, environment(), QQmlJS::Dom::GlobalScope, internalKind(), isOwningItem(), QQmlJS::Dom::JsFile, QQmlJS::Dom::DomEnvironment::NoDependencies, QQmlJS::Dom::Overwrite, owner(), path(), pathFromOwner(), QQmlJS::Dom::QmlDirectory, QQmlJS::Dom::QmlFile, QQmlJS::Dom::QmltypesFile, and QQmlJS::Dom::DomEnvironment::SingleThreaded.
Referenced by QQmlJS::Dom::MutableDomItem::makeCopy().
|
inline |
Definition at line 935 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::methods().
|
static |
Definition at line 389 of file qqmldomitem.cpp.
References domErrorGroup.
Referenced by visitPrototypeChain(), and QQmlJS::Dom::visitPrototypeIndex().
|
static |
Definition at line 395 of file qqmldomitem.cpp.
References domErrorGroup.
Referenced by QQmlJS::Dom::CppTypeInfo::fromString(), resolve(), and visitScopeChain().
|
inline |
Definition at line 926 of file qqmldomitem_p.h.
QQmlJSScope::ConstPtr DomItem::nearestSemanticScope | ( | ) | const |
Definition at line 639 of file qqmldomitem.cpp.
References scope().
|
inlineexplicit |
Definition at line 878 of file qqmldomitem_p.h.
References QQmlJS::Dom::Empty.
|
inline |
Definition at line 954 of file qqmldomitem_p.h.
Referenced by resolve().
Definition at line 2250 of file qqmldomitem.cpp.
References path().
Referenced by QQmlJS::Dom::ExternalItemInfoBase::lastRevision(), QQmlJS::Dom::ExternalItemInfoBase::lastValidRevision(), and QQmlJS::Dom::MutableDomItem::operator[]().
Definition at line 2236 of file qqmldomitem.cpp.
|
inline |
Definition at line 958 of file qqmldomitem_p.h.
|
inline |
Definition at line 959 of file qqmldomitem_p.h.
DomItem DomItem::operator[] | ( | QStringView | component | ) | const |
Definition at line 2243 of file qqmldomitem.cpp.
DomItem DomItem::owner | ( | ) | const |
The owner of an element, for an qmlObject this is the containing qml file.
Definition at line 490 of file qqmldomitem.cpp.
References QQmlJS::Dom::domTypeIsOwningItem(), and QQmlJS::Dom::Empty.
Referenced by QQmlJS::Dom::ModuleScope::canonicalPath(), QQmlJS::Dom::DomBase::containingObject(), QQmlJS::Dom::MutableDomItem::containingObject(), fileObject(), isCanonicalChild(), makeCopy(), QQmlJS::Dom::QmlComponent::subComponents(), QQmlJS::Dom::QmlComponent::subComponentsNames(), QQmlJS::Dom::FileLocations::treeOf(), visitLookup(), visitScopeChain(), and QQmlJS::Dom::Import::writeOut().
std::shared_ptr< T > DomItem::ownerAs | ( | ) | const |
Definition at line 1522 of file qqmldomitem_p.h.
References QQmlJS::Dom::ExternalItemInfo, QQmlJS::Dom::ExternalItemPair, and QQmlJS::Dom::FileLocationsNode.
shared_ptr< OwningItem > DomItem::owningItemPtr | ( | ) | const |
Definition at line 2459 of file qqmldomitem.cpp.
DomItem DomItem::path | ( | const Path & | p, |
const ErrorHandler & | h = &defaultErrorHandler ) const |
Definition at line 1109 of file qqmldomitem.cpp.
Referenced by QQmlJS::Dom::LoadInfo::addEndCallback(), QQmlJS::Dom::LoadInfo::addError(), QQmlJS::Dom::AstRangesVisitor::addItemRanges(), QQmlJS::Dom::ImportScope::allSources(), container(), QQmlJS::Dom::DomBase::containingObject(), QQmlJS::Dom::OwningItem::containingObject(), QQmlJS::Dom::LoadInfo::execEnd(), QQmlJS::Dom::ModuleIndex::exportNames(), QQmlJS::Dom::ModuleIndex::exportsWithNameAndMinorVersion(), filterUp(), QQmlJS::Dom::Reference::get(), goUp(), makeCopy(), operator[](), path(), path(), QQmlJS::Dom::MutableDomItem::path(), refreshed(), visitScopeChain(), and visitUp().
DomItem DomItem::path | ( | const QString & | p, |
const ErrorHandler & | h = &defaultErrorHandler ) const |
Definition at line 1121 of file qqmldomitem.cpp.
References path().
DomItem DomItem::path | ( | QStringView | p, |
const ErrorHandler & | h = &defaultErrorHandler ) const |
Definition at line 1126 of file qqmldomitem.cpp.
References path().
Path DomItem::pathFromOwner | ( | ) | const |
Definition at line 2056 of file qqmldomitem.cpp.
Referenced by container(), QQmlJS::Dom::MutableDomItem::containingObject(), isCanonicalChild(), QQmlJS::Dom::FileLocations::Info::iterateDirectSubpaths(), QQmlJS::Dom::ImportScope::iterateDirectSubpaths(), QQmlJS::Dom::RegionComments::iterateDirectSubpaths(), QQmlJS::Dom::ScriptElements::ScriptList::iterateDirectSubpaths(), QQmlJS::Dom::keyMultiMapHelper(), makeCopy(), QQmlJS::Dom::QmlObject::orderOfAttributes(), QQmlJS::Dom::QmlComponent::subComponentsNames(), QQmlJS::Dom::FileLocations::treeOf(), visitScopeChain(), wrap(), wrap(), wrap(), and QQmlJS::Dom::EnumItem::writeOut().
|
inline |
Definition at line 927 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::pragmas().
DomItem DomItem::proceedToScope | ( | const ErrorHandler & | h = nullptr, |
QList< Path > * | visitedRefs = nullptr ) const |
Dereference DomItems pointing to other DomItems.
Dereferences DomItems with internalKind being References, Export and Id. Also does multiple rounds of resolving for nested DomItems. Prefer this over \l {DomItem::get}.
Definition at line 1998 of file qqmldomitem.cpp.
References DomItem(), canonicalPath(), QQmlJS::Dom::Export, QQmlJS::Dom::Id, internalKind(), QQmlJS::Dom::Reference, and scope().
|
inline |
Definition at line 933 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::propertyDefs().
Definition at line 711 of file qqmldomitem.cpp.
|
inline |
Definition at line 930 of file qqmldomitem_p.h.
PropertyInfo DomItem::propertyInfoWithName | ( | const QString & | name | ) | const |
Definition at line 690 of file qqmldomitem.cpp.
DomItem DomItem::qmlObject | ( | GoTo | options = GoTo::Strict, |
FilterUpOptions | filterOptions = FilterUpOptions::ReturnOuter ) const |
Returns the QmlObject that this belongs to.
qmlObject() might also return the object of a component if GoTo:MostLikely is used.
Definition at line 423 of file qqmldomitem.cpp.
References DomItem().
|
inline |
Definition at line 1040 of file qqmldomitem_p.h.
References canonicalPath(), path(), and top().
Referenced by QQmlJS::Dom::MutableDomItem::refreshed().
bool DomItem::resolve | ( | const Path & | path, |
DomItem::Visitor | visitor, | ||
const ErrorHandler & | errorHandler, | ||
ResolveOptions | options = ResolveOption::None, | ||
const Path & | fullPath = Path(), | ||
QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 770 of file qqmldomitem.cpp.
References DomItem(), canonicalPath(), QQmlJS::Dom::Component, containingObject(), QQmlJS::Dom::Cpp, QQmlJS::Dom::PathEls::Current, QQmlJS::Dom::PathEls::Empty, QQmlJS::Dom::Env, environment(), QQmlJS::Dom::ErrorGroups::error(), QQmlJS::Dom::PathEls::Field, QQmlJS::Dom::PathEls::Filter, QQmlJS::Dom::ErrorMessage::handle(), QQmlJS::Dom::Path::headCurrent(), QQmlJS::Dom::Path::headFilter(), QQmlJS::Dom::Path::headKind(), QQmlJS::Dom::Path::headRoot(), QQmlJS::Dom::Ids, QQmlJS::Dom::PathEls::Index, internalKind(), QQmlJS::Dom::PathEls::Key, QQmlJS::Dom::Reference::kindValue, QQmlJS::Dom::Path::length(), QQmlJS::Dom::Libs, QQmlJS::Dom::Lookup, QQmlJS::Dom::LookupDynamic, QQmlJS::Dom::LookupStrict, QQmlJS::Dom::Path::mid(), QQmlJS::Dom::Module, QQmlJS::Dom::Modules, myResolveErrors(), QQmlJS::Dom::None, QQmlJS::Dom::Normal, QQmlJS::Dom::Obj, QQmlJS::Dom::ObjChain, operator[](), QQmlJS::Dom::Path::operator[](), QQmlJS::Dom::Other, QQmlJS::Dom::ResolveToDo::pathIndex, QQmlJS::Dom::Reference, QQmlJS::Dom::PathEls::Root, QQmlJS::Dom::ScopeChain, QQmlJS::Dom::ScriptExpression, QQmlJS::Dom::Top, top(), QQmlJS::Dom::TraceVisit, QQmlJS::Dom::Types, QQmlJS::Dom::Universe, and QQmlJS::Dom::ErrorGroups::warning().
int DomItem::revision | ( | ) | const |
Definition at line 2321 of file qqmldomitem.cpp.
DomItem DomItem::rootQmlObject | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 458 of file qqmldomitem.cpp.
DomItem DomItem::scope | ( | FilterUpOptions | options = FilterUpOptions::ReturnOuter | ) | const |
Definition at line 633 of file qqmldomitem.cpp.
Referenced by nearestSemanticScope(), proceedToScope(), QQmlJS::Dom::MutableDomItem::scope(), semanticScope(), and visitScopeChain().
QQmlJSScope::ConstPtr DomItem::semanticScope | ( | ) | const |
Definition at line 649 of file qqmldomitem.cpp.
References scope().
|
inline |
Definition at line 960 of file qqmldomitem_p.h.
QStringList DomItem::sortedKeys | ( | ) | const |
Definition at line 1168 of file qqmldomitem.cpp.
DomItem DomItem::subDataItem | ( | const PathEls::PathComponent & | c, |
const T & | value, | ||
ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 2027 of file qqmldomitem_p.h.
|
inline |
Definition at line 1075 of file qqmldomitem_p.h.
Definition at line 2269 of file qqmldomitem_p.h.
Referenced by wrap(), and wrap().
|
inline |
Definition at line 1101 of file qqmldomitem_p.h.
Definition at line 2274 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::QmlObject::field(), QQmlJS::Dom::FileLocations::Info::iterateDirectSubpaths(), QQmlJS::Dom::ImportScope::iterateDirectSubpaths(), QQmlJS::Dom::RegionComments::iterateDirectSubpaths(), and wrap().
|
inline |
Definition at line 1140 of file qqmldomitem_p.h.
Referenced by wrap().
|
inline |
Definition at line 1152 of file qqmldomitem_p.h.
DomItem DomItem::subReferenceItem | ( | const PathEls::PathComponent & | c, |
const Path & | referencedObject ) const |
Definition at line 2439 of file qqmldomitem.cpp.
References QQmlJS::Dom::domTypeIsOwningItem(), and internalKind().
Referenced by QQmlJS::Dom::QmlObject::field().
DomItem DomItem::subReferencesItem | ( | const PathEls::PathComponent & | c, |
const QList< Path > & | paths ) const |
Definition at line 2430 of file qqmldomitem.cpp.
|
inline |
Definition at line 1145 of file qqmldomitem_p.h.
Referenced by wrap().
DomItem DomItem::subValueItem | ( | const PathEls::PathComponent & | c, |
const T & | value, | ||
ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 2000 of file qqmldomitem_p.h.
DomItem DomItem::top | ( | ) | const |
Definition at line 502 of file qqmldomitem.cpp.
References QQmlJS::Dom::domTypeIsTopItem(), and QQmlJS::Dom::Empty.
Referenced by QQmlJS::Dom::ImportScope::allSources(), environment(), filterUp(), goToFile(), goUp(), refreshed(), resolve(), QQmlJS::Dom::MutableDomItem::top(), universe(), and visitUp().
shared_ptr< DomTop > DomItem::topPtr | ( | ) | const |
Definition at line 2449 of file qqmldomitem.cpp.
QString DomItem::toString | ( | ) | const |
Definition at line 2306 of file qqmldomitem.cpp.
DomItem DomItem::universe | ( | ) | const |
Definition at line 522 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::DomEnvironment, QQmlJS::Dom::DomUniverse, internalKind(), and top().
Referenced by QQmlJS::Dom::ExternalItemInfoBase::lastRevision(), QQmlJS::Dom::ExternalItemInfoBase::lastValidRevision(), and QQmlJS::Dom::MutableDomItem::universe().
QCborValue DomItem::value | ( | ) | const |
Definition at line 2255 of file qqmldomitem.cpp.
Definition at line 1193 of file qqmldomitem.cpp.
bool DomItem::visitDirectAccessibleScopes | ( | function_ref< bool(const DomItem &)> | visitor, |
VisitPrototypesOptions | options = VisitPrototypesOption::Normal, | ||
const ErrorHandler & | h = nullptr, | ||
QSet< quintptr > * | visited = nullptr, | ||
QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 1580 of file qqmldomitem.cpp.
References QQmlJS::Dom::Binding, QQmlJS::Dom::Export, QQmlJS::Dom::Id, internalKind(), isScope(), QQmlJS::Dom::PropertyDefinition, QQmlJS::Dom::QmlObject, QQmlJS::Dom::Reference, and QQmlJS::Dom::SkipFirst.
Definition at line 873 of file qqmldomitem_p.h.
bool DomItem::visitIndexes | ( | function_ref< bool(const DomItem &)> | visitor | ) | const |
Definition at line 1151 of file qqmldomitem.cpp.
bool DomItem::visitKeys | ( | function_ref< bool(const QString &, const DomItem &)> | visitor | ) | const |
Definition at line 1181 of file qqmldomitem.cpp.
bool DomItem::visitLocalSymbolsNamed | ( | const QString & | name, |
function_ref< bool(const DomItem &)> | visitor ) const |
Definition at line 2159 of file qqmldomitem.cpp.
References QQmlJS::Dom::ImportScope, internalKind(), isScope(), QQmlJS::Dom::MethodInfo, QQmlJS::Dom::QmlFile, and QQmlJS::Dom::ScriptExpression.
bool DomItem::visitLookup | ( | const QString & | symbolName, |
function_ref< bool(const DomItem &)> | visitor, | ||
LookupType | type = LookupType::Symbol, | ||
LookupOptions | opts = LookupOption::Normal, | ||
const ErrorHandler & | errorHandler = nullptr, | ||
QSet< quintptr > * | visited = nullptr, | ||
QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 1924 of file qqmldomitem.cpp.
References containingObject(), environment(), internalKind(), owner(), and QQmlJS::Dom::QmltypesFile.
bool DomItem::visitLookup1 | ( | const QString & | symbolName, |
function_ref< bool(const DomItem &)> | visitor, | ||
LookupOptions | opts = LookupOption::Normal, | ||
const ErrorHandler & | h = nullptr, | ||
QSet< quintptr > * | visited = nullptr, | ||
QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 1782 of file qqmldomitem.cpp.
bool DomItem::visitPrototypeChain | ( | function_ref< bool(const DomItem &)> | visitor, |
VisitPrototypesOptions | options = VisitPrototypesOption::Normal, | ||
const ErrorHandler & | h = nullptr, | ||
QSet< quintptr > * | visited = nullptr, | ||
QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 1535 of file qqmldomitem.cpp.
References canonicalPath(), myErrors(), QQmlJS::Dom::RevisitWarn, QQmlJS::Dom::SkipFirst, and QQmlJS::Dom::ErrorGroups::warning().
bool DomItem::visitScopeChain | ( | function_ref< bool(const DomItem &)> | visitor, |
LookupOptions | options = LookupOption::Normal, | ||
const ErrorHandler & | h = nullptr, | ||
QSet< quintptr > * | visited = nullptr, | ||
QList< Path > * | visitedRefs = nullptr ) const |
Let the visitor visit the QML scope hierarchy of this DomItem.
Definition at line 1665 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::dropTail(), QQmlJS::Dom::GlobalComponent, QQmlJS::Dom::ImportScope, internalKind(), QQmlJS::Dom::JsResource, QQmlJS::Dom::MethodInfo, myResolveErrors(), QQmlJS::Dom::operator!=(), owner(), path(), pathFromOwner(), QQmlJS::Dom::QmlComponent, QQmlJS::Dom::QmlFile, QQmlJS::Dom::QmlObject, QQmlJS::Dom::QmltypesComponent, QQmlJS::Dom::ReturnOuterNoSelf, scope(), QQmlJS::Dom::ScriptExpression, QQmlJS::Dom::SkipFirst, and QQmlJS::Dom::ErrorGroups::warning().
bool DomItem::visitStaticTypePrototypeChains | ( | function_ref< bool(const DomItem &)> | visitor, |
VisitPrototypesOptions | options = VisitPrototypesOption::Normal, | ||
const ErrorHandler & | h = nullptr, | ||
QSet< quintptr > * | visited = nullptr, | ||
QList< Path > * | visitedRefs = nullptr ) const |
DomItem::visitStaticTypePrototypeChains.
visitor | |
visitFirst | |
visited |
visit the values JS reaches accessing a type directly: the values if it is a singleton or the attached type
Definition at line 1627 of file qqmldomitem.cpp.
References QQmlJS::Dom::SkipFirst.
bool QQmlJS::Dom::DomItem::visitSubSymbolsNamed | ( | const QString & | name, |
function_ref< bool(const DomItem &)> | visitor ) const |
bool DomItem::visitTree | ( | const Path & | basePath, |
DomItem::ChildrenVisitor | visitor, | ||
VisitOptions | options = VisitOption::Default, | ||
DomItem::ChildrenVisitor | openingVisitor = emptyChildrenVisitor, | ||
DomItem::ChildrenVisitor | closingVisitor = emptyChildrenVisitor, | ||
const FieldFilter & | filter = FieldFilter::noFilter() ) const |
Visits recursively all the children of this item using the given visitors.
First, the visitor is called and can continue or exit the visit by returning true or false.
Second, the openingVisitor is called and controls if the children of the current item needs to be visited or not by returning true or false. In either case, the visitation of all the other siblings is not affected. If both visitor and openingVisitor returned true, then the childrens of the current item will be recursively visited.
Finally, after all the children were visited by visitor and openingVisitor, the closingVisitor is called. Its return value is currently ignored.
Compared to the AST::Visitor*, openingVisitor and closingVisitor are called in the same order as the visit() and endVisit()-calls.
Filtering allows to not visit certain part of the trees, and is checked before(!) the lazy child is instantiated via its lambda. For example, visiting propertyInfos or defaultPropertyname takes a lot of time because it resolves and collects all properties inherited from base types, and might not even be relevant for the visitors.
Definition at line 1424 of file qqmldomitem.cpp.
bool DomItem::visitUp | ( | function_ref< bool(const DomItem &)> | visitor | ) | const |
Let the visitor visit the Dom Tree hierarchy of this DomItem.
Definition at line 1650 of file qqmldomitem.cpp.
References canonicalPath(), QQmlJS::Dom::Path::dropTail(), QQmlJS::Dom::Path::length(), path(), and top().
DomItem DomItem::wrap | ( | const PathEls::PathComponent & | c, |
const T & | obj ) const |
Definition at line 2064 of file qqmldomitem_p.h.
References DomItem(), pathFromOwner(), subListItem(), subMapItem(), subObjectWrapItem(), and QQmlJS::Dom::Path::withComponent().
|
inline |
Definition at line 1162 of file qqmldomitem_p.h.
bool DomItem::writeOut | ( | const QString & | path, |
int | nBackups = 2, | ||
const LineWriterOptions & | opt = LineWriterOptions(), | ||
FileWriter * | fw = nullptr, | ||
WriteOutChecks | extraChecks = WriteOutCheck::Default ) const |
Definition at line 1329 of file qqmldomitem.cpp.
Definition at line 1222 of file qqmldomitem.cpp.
References writeOutPost(), and writeOutPre().
Referenced by QQmlJS::Dom::ListPBase::writeOut(), QQmlJS::Dom::MutableDomItem::writeOut(), QQmlJS::Dom::MutableDomItem::writeOut(), writeOutForFile(), and QQmlJS::Dom::Binding::writeOutValue().
bool DomItem::writeOutForFile | ( | OutWriter & | ow, |
WriteOutChecks | extraChecks ) const |
Performes WriteOut of the FileItem and verifies the consistency of the DOM structure.
OutWriter is essentially a visitor traversing the DOM structure, starting from the current item representing a FileItem. While traversing it might be saving some intermediate information, used later for restoring written out item. Restoration is needed to validate that the DOM structure of the written item has not changed.
Definition at line 1317 of file qqmldomitem.cpp.
References writeOut().
Definition at line 1229 of file qqmldomitem.cpp.
Referenced by QQmlJS::Dom::Binding::writeOut(), writeOut(), QQmlJS::Dom::QmlObject::writeOutAttributes(), QQmlJS::Dom::QmlObject::writeOutId(), QQmlJS::Dom::MethodParameter::writeOutSignal(), and QQmlJS::Dom::Binding::writeOutValue().
Definition at line 1203 of file qqmldomitem.cpp.
References hasAnnotations().
Referenced by QQmlJS::Dom::Binding::writeOut(), writeOut(), QQmlJS::Dom::QmlObject::writeOutAttributes(), QQmlJS::Dom::QmlObject::writeOutId(), QQmlJS::Dom::MethodParameter::writeOutSignal(), and QQmlJS::Dom::Binding::writeOutValue().
|
friend |
Definition at line 1291 of file qqmldomitem_p.h.
|
friend |
Definition at line 1288 of file qqmldomitem_p.h.
|
friend |
Definition at line 1280 of file qqmldomitem_p.h.
|
friend |
Definition at line 1281 of file qqmldomitem_p.h.
|
friend |
Definition at line 1286 of file qqmldomitem_p.h.
|
friend |
Definition at line 1285 of file qqmldomitem_p.h.
|
friend |
Definition at line 1287 of file qqmldomitem_p.h.
|
friend |
Definition at line 1292 of file qqmldomitem_p.h.
|
friend |
Definition at line 1283 of file qqmldomitem_p.h.
|
friend |
Definition at line 1282 of file qqmldomitem_p.h.
|
friend |
Definition at line 1289 of file qqmldomitem_p.h.
|
friend |
Definition at line 3170 of file qqmldomitem.cpp.
References QQmlJS::Dom::operator!=().
Referenced by isCanonicalChild(), and QQmlJS::Dom::operator!=().
|
friend |
Definition at line 1284 of file qqmldomitem_p.h.
|
friend |
Definition at line 1290 of file qqmldomitem_p.h.
|
friend |
Definition at line 1293 of file qqmldomitem_p.h.
|
static |
Definition at line 865 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::domParsingErrors(), myErrors(), QQmlJS::Dom::DomUniverse::myErrors(), QQmlJS::Dom::myExportErrors(), myResolveErrors(), and QQmlJS::Dom::myVersioningErrors().
Definition at line 868 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::domCompare().