![]() |
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 = std::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 851 of file qqmldomitem_p.h.
| using QQmlJS::Dom::DomItem::Callback = std::function<void(const Path &, const DomItem &, const DomItem &)> |
Definition at line 854 of file qqmldomitem_p.h.
| using QQmlJS::Dom::DomItem::ChildrenVisitor = function_ref<bool(const Path &, const DomItem &, bool)> |
Definition at line 858 of file qqmldomitem_p.h.
Definition at line 856 of file qqmldomitem_p.h.
| using QQmlJS::Dom::DomItem::Visitor = function_ref<bool(const Path &, const DomItem &)> |
Definition at line 857 of file qqmldomitem_p.h.
|
strong |
| Enumerator | |
|---|---|
| EnvConnected | |
| EnvDisconnected | |
Definition at line 865 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(), goUp(), QQmlJS::Dom::ListPT< T >::index(), QQmlJS::Dom::Reference::index(), QQmlJS::Dom::Binding::iterateDirectSubpaths(), QQmlJS::Dom::Reference::key(), QQmlJS::Dom::keyMultiMapHelper(), makeCopy(), owner(), proceedToScope(), qmlObject(), QQmlJS::Dom::resolveReference(), QQmlJS::Dom::rootFromContext(), top(), universe(), QQmlJS::Dom::BindingValue::value(), QQmlJS::Dom::Binding::valueItem(), and wrap().
| DomItem::DomItem | ( | const std::shared_ptr< DomEnvironment > & | envPtr | ) |
Definition at line 2341 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::Path().
| DomItem::DomItem | ( | const std::shared_ptr< DomUniverse > & | universePtr | ) |
Definition at line 2346 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::Path().
| void DomItem::addError | ( | ErrorMessage && | msg | ) | const |
Definition at line 2224 of file qqmldomitem.cpp.
References QQmlJS::Dom::defaultErrorHandler(), owner(), and QQmlJS::Dom::ErrorMessage::withItem().
Referenced by QQmlJS::Dom::LoadInfo::addError(), QQmlJS::Dom::MutableDomItem::addError(), QQmlJS::Dom::DomEnvironment::addLoadInfo(), errorHandler(), QQmlJS::Dom::fileTypeForPath(), QQmlJS::Dom::DomUniverse::loadFile(), and QQmlJS::Dom::DomEnvironment::loadPendingDependencies().
|
inline |
Definition at line 933 of file qqmldomitem_p.h.
References DomItem(), and hasAnnotations().
Referenced by QQmlJS::Dom::MutableDomItem::annotations().
|
inline |
Definition at line 1154 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsObjWrap(), and QQmlJS::Dom::domTypeIsValueWrap().
|
inline |
Definition at line 1142 of file qqmldomitem_p.h.
|
inline |
Definition at line 928 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::bindings().
| QString DomItem::canonicalFilePath | ( | ) | const |
Definition at line 1954 of file qqmldomitem.cpp.
| Path DomItem::canonicalPath | ( | ) | const |
Definition at line 398 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::headKind(), and QQmlJS::Dom::PathEls::Root.
Referenced by QQmlJS::Dom::AstRangesVisitor::addItemRanges(), QQmlJS::Dom::DomElement::canonicalPath(), container(), QQmlJS::Dom::OwningItem::containingObject(), QQmlJS::Dom::DomBase::dump(), dump(), filterUp(), QQmlJS::Dom::RefCacheEntry::forPath(), QQmlJS::Dom::Reference::get(), goUp(), isCanonicalChild(), makeCopy(), proceedToScope(), refreshed(), resolve(), QQmlJS::Dom::QmlObject::resolveAlias(), QQmlJS::Dom::FileLocations::treeOf(), visitPrototypeChain(), QQmlJS::Dom::visitPrototypeIndex(), visitScopeChain(), visitUp(), QQmlJS::Dom::Binding::writeOut(), and QQmlJS::Dom::QmlObject::writeOutAttributes().
|
inline |
Definition at line 932 of file qqmldomitem_p.h.
|
inline |
Definition at line 931 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 2240 of file qqmldomitem.cpp.
| bool DomItem::commitToBase | ( | const std::shared_ptr< DomEnvironment > & | validPtr = nullptr | ) | const |
Definition at line 2033 of file qqmldomitem.cpp.
References environment().
Referenced by QQmlJS::Dom::MutableDomItem::commitToBase().
| DomItem DomItem::component | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 704 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 459 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 536 of file qqmldomitem.cpp.
References DomItem().
| DomItem DomItem::containingObject | ( | ) | const |
Definition at line 409 of file qqmldomitem.cpp.
Referenced by component(), container(), fileObject(), resolve(), 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 522 of file qqmldomitem.cpp.
References DomItem().
|
inline |
Definition at line 1175 of file qqmldomitem_p.h.
|
inline |
Definition at line 1167 of file qqmldomitem_p.h.
|
inline |
Definition at line 1182 of file qqmldomitem_p.h.
| QDateTime DomItem::createdAt | ( | ) | const |
Definition at line 2194 of file qqmldomitem.cpp.
| int DomItem::derivedFrom | ( | ) | const |
Definition at line 2174 of file qqmldomitem.cpp.
| DomItem DomItem::directParent | ( | ) | const |
In the DomItem hierarchy, go 1 level up to get the direct parent.
Definition at line 576 of file qqmldomitem.cpp.
References goUp().
Referenced by filterUp().
|
inline |
Definition at line 878 of file qqmldomitem_p.h.
References QQmlJS::Dom::ConstantData.
| FileWriter::Status DomItem::dump | ( | const QString & | path, |
| function_ref< bool(const DomItem &, const PathEls::PathComponent &, const DomItem &)> | filter = noFilter, | ||
| int | indent = 0, | ||
| FileWriter * | fw = nullptr ) const |
Definition at line 2146 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 2139 of file qqmldomitem.cpp.
Definition at line 2126 of file qqmldomitem.cpp.
|
inline |
Definition at line 930 of file qqmldomitem_p.h.
| DomItem DomItem::environment | ( | ) | const |
Definition at line 498 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::DomEnvironment, internalKind(), and top().
Referenced by QQmlJS::Dom::RefCacheEntry::addForPath(), QQmlJS::Dom::LoadInfo::advanceLoad(), commitToBase(), QQmlJS::Dom::MutableDomItem::environment(), QQmlJS::Dom::RefCacheEntry::forPath(), QQmlJS::Dom::Reference::get(), QQmlJS::Dom::Reference::getAll(), makeCopy(), QQmlJS::Dom::resolveLookupOptions(), and QQmlJS::Dom::rootFromContext().
| ErrorHandler DomItem::errorHandler | ( | ) | const |
Definition at line 2234 of file qqmldomitem.cpp.
References addError().
Referenced by QQmlJS::Dom::LoadInfo::advanceLoad().
| DomItem DomItem::field | ( | QStringView | name | ) | const |
Definition at line 1070 of file qqmldomitem.cpp.
Definition at line 1065 of file qqmldomitem.cpp.
| DomItem DomItem::fileObject | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 432 of file qqmldomitem.cpp.
References containingObject(), QQmlJS::Dom::Empty, internalKind(), QQmlJS::Dom::JsFile, QQmlJS::Dom::List, QQmlJS::Dom::Map, owner(), and QQmlJS::Dom::QmlFile.
| 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 586 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 2359 of file qqmldomitem.cpp.
References DomItem(), and QQmlJS::Dom::DomEnvironment::NoDependencies.
| QDateTime DomItem::frozenAt | ( | ) | const |
Definition at line 2204 of file qqmldomitem.cpp.
| DomItem DomItem::get | ( | const ErrorHandler & | h = nullptr, |
| QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 658 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 665 of file qqmldomitem.cpp.
References QQmlJS::Dom::Reference::kindValue.
Shorthand to obtain the QmlFile DomItem from a canonicalPath.
Definition at line 549 of file qqmldomitem.cpp.
References top().
| DomItem DomItem::goUp | ( | int | n | ) | const |
In the DomItem hierarchy, go n levels up.
Definition at line 561 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 1302 of file qqmldomitem.cpp.
References QQmlJS::Dom::Binding, QQmlJS::Dom::Id, internalKind(), QQmlJS::Dom::MethodInfo, QQmlJS::Dom::PropertyDefinition, and QQmlJS::Dom::QmlObject.
Referenced by annotations(), and writeOutPre().
| quintptr DomItem::id | ( | ) | const |
Definition at line 1944 of file qqmldomitem.cpp.
|
inline |
Definition at line 922 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::ids().
|
inline |
Definition at line 923 of file qqmldomitem_p.h.
| DomItem DomItem::index | ( | index_type | i | ) | const |
Definition at line 1080 of file qqmldomitem.cpp.
| index_type DomItem::indexes | ( | ) | const |
Definition at line 1075 of file qqmldomitem.cpp.
|
inline |
Definition at line 874 of file qqmldomitem_p.h.
Referenced by component(), QQmlJS::Dom::MutableDomItem::containingObject(), environment(), fileObject(), filterUp(), QQmlJS::Dom::getFileItemOwner(), 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(), QQmlJS::Dom::visitPrototypeIndex(), QQmlJS::Dom::visitQualifiedNameLookup(), and visitScopeChain().
|
inline |
Definition at line 877 of file qqmldomitem_p.h.
|
inline |
Definition at line 1121 of file qqmldomitem_p.h.
|
inline |
Definition at line 1076 of file qqmldomitem_p.h.
|
inline |
Definition at line 1087 of file qqmldomitem_p.h.
|
inline |
Definition at line 1095 of file qqmldomitem_p.h.
| bool DomItem::invokeVisitorOnValue | ( | DirectVisitor | visitor, |
| const PathEls::PathComponent & | c, | ||
| const T & | value, | ||
| ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 1958 of file qqmldomitem_p.h.
| bool DomItem::isCanonicalChild | ( | const DomItem & | child | ) | const |
Definition at line 1289 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 916 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsContainer(), and internalKind().
|
inline |
Definition at line 914 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsExternalItem(), and internalKind().
|
inline |
Definition at line 913 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsOwningItem(), and internalKind().
Referenced by isCanonicalChild(), and makeCopy().
|
inline |
Definition at line 917 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsScope(), and internalKind().
Referenced by visitDirectAccessibleScopes(), and visitLocalSymbolsNamed().
|
inline |
Definition at line 915 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsTopItem(), and internalKind().
| bool DomItem::iterateDirectSubpaths | ( | DirectVisitor | v | ) | const |
Definition at line 2287 of file qqmldomitem.cpp.
| bool DomItem::iterateErrors | ( | function_ref< bool(const DomItem &, const ErrorMessage &)> | visitor, |
| bool | iterate, | ||
| Path | inPath = Path() ) const |
Definition at line 2255 of file qqmldomitem.cpp.
References owner().
| bool DomItem::iterateSubOwners | ( | function_ref< bool(const DomItem &owner)> | visitor | ) | const |
Definition at line 2277 of file qqmldomitem.cpp.
References owner().
Definition at line 1110 of file qqmldomitem.cpp.
|
inline |
Definition at line 971 of file qqmldomitem_p.h.
Definition at line 1097 of file qqmldomitem.cpp.
| QDateTime DomItem::lastDataUpdateAt | ( | ) | const |
Definition at line 2214 of file qqmldomitem.cpp.
|
inline |
Definition at line 955 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 1916 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 1930 of file qqmldomitem.cpp.
| MutableDomItem DomItem::makeCopy | ( | DomItem::CopyOption | option = CopyOption::EnvConnected | ) | const |
Definition at line 1959 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::MutableDomItem::MutableDomItem(), canonicalPath(), QQmlJS::Dom::Default, QQmlJS::Dom::Empty, EnvDisconnected, environment(), internalKind(), isOwningItem(), QQmlJS::Dom::JsFile, QQmlJS::Dom::DomEnvironment::NoDependencies, QQmlJS::Dom::Overwrite, owner(), path(), pathFromOwner(), QQmlJS::Dom::QmlFile, and QQmlJS::Dom::DomEnvironment::SingleThreaded.
Referenced by QQmlJS::Dom::MutableDomItem::makeCopy().
|
inline |
Definition at line 929 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::methods().
|
static |
Definition at line 386 of file qqmldomitem.cpp.
References domErrorGroup.
Referenced by visitPrototypeChain(), and QQmlJS::Dom::visitPrototypeIndex().
|
static |
Definition at line 392 of file qqmldomitem.cpp.
References domErrorGroup.
Referenced by QQmlJS::Dom::CppTypeInfo::fromString(), resolve(), and visitScopeChain().
|
inline |
Definition at line 920 of file qqmldomitem_p.h.
| QQmlJSScope::ConstPtr DomItem::nearestSemanticScope | ( | ) | const |
Definition at line 623 of file qqmldomitem.cpp.
References scope().
|
inlineexplicit |
Definition at line 873 of file qqmldomitem_p.h.
References QQmlJS::Dom::Empty.
|
inline |
Definition at line 948 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::rootFromContext().
Definition at line 2116 of file qqmldomitem.cpp.
References path().
Referenced by QQmlJS::Dom::ExternalItemInfoBase::lastRevision(), QQmlJS::Dom::ExternalItemInfoBase::lastValidRevision(), and QQmlJS::Dom::MutableDomItem::operator[]().
Definition at line 2102 of file qqmldomitem.cpp.
|
inline |
Definition at line 952 of file qqmldomitem_p.h.
|
inline |
Definition at line 953 of file qqmldomitem_p.h.
| DomItem DomItem::operator[] | ( | QStringView | component | ) | const |
Definition at line 2109 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 474 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::domTypeIsOwningItem(), and QQmlJS::Dom::Empty.
Referenced by addError(), QQmlJS::Dom::DomElement::canonicalPath(), QQmlJS::Dom::DomBase::containingObject(), QQmlJS::Dom::MutableDomItem::containingObject(), fileObject(), isCanonicalChild(), iterateErrors(), iterateSubOwners(), makeCopy(), QQmlJS::Dom::QmlComponent::subComponents(), QQmlJS::Dom::QmlComponent::subComponentsNames(), QQmlJS::Dom::FileLocations::treeOf(), visitScopeChain(), and QQmlJS::Dom::Import::writeOut().
| std::shared_ptr< T > DomItem::ownerAs | ( | ) | const |
Definition at line 1459 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 2322 of file qqmldomitem.cpp.
| DomItem DomItem::path | ( | const Path & | p, |
| const ErrorHandler & | h = &defaultErrorHandler ) const |
Definition at line 1043 of file qqmldomitem.cpp.
Referenced by QQmlJS::Dom::LoadInfo::addEndCallback(), QQmlJS::Dom::LoadInfo::addError(), QQmlJS::Dom::AstRangesVisitor::addItemRanges(), container(), QQmlJS::Dom::DomBase::containingObject(), QQmlJS::Dom::OwningItem::containingObject(), QQmlJS::Dom::LoadInfo::execEnd(), 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 1055 of file qqmldomitem.cpp.
References path().
| DomItem DomItem::path | ( | QStringView | p, |
| const ErrorHandler & | h = &defaultErrorHandler ) const |
Definition at line 1060 of file qqmldomitem.cpp.
References path().
| Path DomItem::pathFromOwner | ( | ) | const |
Definition at line 1949 of file qqmldomitem.cpp.
Referenced by container(), QQmlJS::Dom::MutableDomItem::containingObject(), isCanonicalChild(), QQmlJS::Dom::FileLocations::Info::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(), and QQmlJS::Dom::EnumItem::writeOut().
|
inline |
Definition at line 921 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 1891 of file qqmldomitem.cpp.
References DomItem(), canonicalPath(), QQmlJS::Dom::Export, QQmlJS::Dom::Id, internalKind(), QQmlJS::Dom::Reference, and scope().
|
inline |
Definition at line 927 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::propertyDefs().
Definition at line 693 of file qqmldomitem.cpp.
|
inline |
Definition at line 924 of file qqmldomitem_p.h.
| PropertyInfo DomItem::propertyInfoWithName | ( | const QString & | name | ) | const |
Definition at line 672 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 420 of file qqmldomitem.cpp.
References DomItem().
|
inline |
Definition at line 1034 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 836 of file qqmldomitem.cpp.
References canonicalPath(), QQmlJS::Dom::Component, containingObject(), QQmlJS::Dom::PathEls::Current, QQmlJS::Dom::PathEls::Empty, QQmlJS::Dom::ErrorGroups::error(), QQmlJS::Dom::PathEls::Field, QQmlJS::Dom::PathEls::Filter, 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::Path::length(), QQmlJS::Dom::Lookup, QQmlJS::Dom::LookupDynamic, QQmlJS::Dom::LookupStrict, QQmlJS::Dom::Path::mid(), QQmlJS::Dom::Module, myResolveErrors(), QQmlJS::Dom::Obj, QQmlJS::Dom::Path::operator[](), QQmlJS::Dom::Other, QQmlJS::Dom::ResolveToDo::pathIndex, QQmlJS::Dom::Reference, QQmlJS::Dom::PathEls::Root, QQmlJS::Dom::rootFromContext(), QQmlJS::Dom::ScriptExpression, QQmlJS::Dom::TraceVisit, QQmlJS::Dom::Types, and QQmlJS::Dom::ErrorGroups::warning().
| int DomItem::revision | ( | ) | const |
Definition at line 2184 of file qqmldomitem.cpp.
| DomItem DomItem::rootQmlObject | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 454 of file qqmldomitem.cpp.
| DomItem DomItem::scope | ( | FilterUpOptions | options = FilterUpOptions::ReturnOuter | ) | const |
Definition at line 617 of file qqmldomitem.cpp.
Referenced by nearestSemanticScope(), proceedToScope(), QQmlJS::Dom::MutableDomItem::scope(), semanticScope(), and visitScopeChain().
| QQmlJSScope::ConstPtr DomItem::semanticScope | ( | ) | const |
Definition at line 633 of file qqmldomitem.cpp.
References scope().
|
inline |
Definition at line 954 of file qqmldomitem_p.h.
| QStringList DomItem::sortedKeys | ( | ) | const |
Definition at line 1102 of file qqmldomitem.cpp.
| DomItem DomItem::subDataItem | ( | const PathEls::PathComponent & | c, |
| const T & | value, | ||
| ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 1941 of file qqmldomitem_p.h.
Definition at line 2167 of file qqmldomitem_p.h.
Referenced by subReferencesItem(), subValueItem(), QQmlJS::Dom::BindingValue::value(), wrap(), and wrap().
Definition at line 2172 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::QmlObject::field(), QQmlJS::Dom::FileLocations::Info::iterateDirectSubpaths(), QQmlJS::Dom::RegionComments::iterateDirectSubpaths(), and wrap().
|
inline |
Definition at line 1111 of file qqmldomitem_p.h.
| DomItem DomItem::subReferenceItem | ( | const PathEls::PathComponent & | c, |
| const Path & | referencedObject ) const |
Definition at line 2302 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 2293 of file qqmldomitem.cpp.
References subListItem().
|
inline |
Definition at line 1104 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::QmlObject::field(), and wrap().
| DomItem DomItem::subValueItem | ( | const PathEls::PathComponent & | c, |
| const T & | value, | ||
| ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 1914 of file qqmldomitem_p.h.
References subListItem().
| DomItem DomItem::top | ( | ) | const |
Definition at line 486 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::Path::Path(), QQmlJS::Dom::domTypeIsTopItem(), and QQmlJS::Dom::Empty.
Referenced by environment(), filterUp(), goToFile(), goUp(), refreshed(), QQmlJS::Dom::rootFromContext(), QQmlJS::Dom::MutableDomItem::top(), universe(), and visitUp().
| shared_ptr< DomTop > DomItem::topPtr | ( | ) | const |
Definition at line 2312 of file qqmldomitem.cpp.
| QString DomItem::toString | ( | ) | const |
Definition at line 2169 of file qqmldomitem.cpp.
| DomItem DomItem::universe | ( | ) | const |
Definition at line 506 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 2121 of file qqmldomitem.cpp.
Definition at line 1127 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 1511 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 868 of file qqmldomitem_p.h.
| bool DomItem::visitIndexes | ( | function_ref< bool(const DomItem &)> | visitor | ) | const |
Definition at line 1085 of file qqmldomitem.cpp.
| bool DomItem::visitKeys | ( | function_ref< bool(const QString &, const DomItem &)> | visitor | ) | const |
Definition at line 1115 of file qqmldomitem.cpp.
| bool DomItem::visitLocalSymbolsNamed | ( | const QString & | name, |
| function_ref< bool(const DomItem &)> | visitor ) const |
Definition at line 2042 of file qqmldomitem.cpp.
References QQmlJS::Dom::GlobalComponent, internalKind(), isScope(), QQmlJS::Dom::JsResource, 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 1847 of file qqmldomitem.cpp.
| 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 1705 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 1466 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 1596 of file qqmldomitem.cpp.
References canonicalPath(), QQmlJS::Dom::Path::dropTail(), QQmlJS::Dom::ErrorGroups::error(), QQmlJS::Dom::GlobalComponent, 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::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 1558 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 1355 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 1581 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 1968 of file qqmldomitem_p.h.
References DomItem(), subListItem(), and subMapItem().
| bool DomItem::writeOut | ( | const QString & | path, |
| const LineWriterOptions & | opt = LineWriterOptions(), | ||
| FileWriter * | fw = nullptr, | ||
| WriteOutChecks | extraChecks = WriteOutCheck::Default ) const |
Definition at line 1263 of file qqmldomitem.cpp.
Definition at line 1156 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 1251 of file qqmldomitem.cpp.
References writeOut().
Definition at line 1163 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 1137 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 1253 of file qqmldomitem_p.h.
|
friend |
Definition at line 1250 of file qqmldomitem_p.h.
|
friend |
Definition at line 1242 of file qqmldomitem_p.h.
|
friend |
Definition at line 1243 of file qqmldomitem_p.h.
|
friend |
Definition at line 1248 of file qqmldomitem_p.h.
|
friend |
Definition at line 1247 of file qqmldomitem_p.h.
|
friend |
Definition at line 1249 of file qqmldomitem_p.h.
|
friend |
Definition at line 1254 of file qqmldomitem_p.h.
|
friend |
Definition at line 1245 of file qqmldomitem_p.h.
|
friend |
Definition at line 1244 of file qqmldomitem_p.h.
|
friend |
Definition at line 1251 of file qqmldomitem_p.h.
|
friend |
Definition at line 3032 of file qqmldomitem.cpp.
References QQmlJS::Dom::operator!=().
Referenced by isCanonicalChild(), and QQmlJS::Dom::operator!=().
|
friend |
Definition at line 1246 of file qqmldomitem_p.h.
|
friend |
Definition at line 1252 of file qqmldomitem_p.h.
|
friend |
Definition at line 1255 of file qqmldomitem_p.h.
|
static |
Definition at line 860 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::domParsingErrors(), myErrors(), QQmlJS::Dom::DomUniverse::myErrors(), and myResolveErrors().
Definition at line 863 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::domCompare().