![]() |
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 853 of file qqmldomitem_p.h.
| using QQmlJS::Dom::DomItem::Callback = function<void(const Path &, const DomItem &, const DomItem &)> |
Definition at line 856 of file qqmldomitem_p.h.
| using QQmlJS::Dom::DomItem::ChildrenVisitor = function_ref<bool(const Path &, const DomItem &, bool)> |
Definition at line 860 of file qqmldomitem_p.h.
Definition at line 858 of file qqmldomitem_p.h.
| using QQmlJS::Dom::DomItem::Visitor = function_ref<bool(const Path &, const DomItem &)> |
Definition at line 859 of file qqmldomitem_p.h.
|
strong |
| Enumerator | |
|---|---|
| EnvConnected | |
| EnvDisconnected | |
Definition at line 867 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(), 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 2490 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::Path().
| DomItem::DomItem | ( | const std::shared_ptr< DomUniverse > & | universePtr | ) |
Definition at line 2495 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::Path().
| void DomItem::addError | ( | ErrorMessage && | msg | ) | const |
Definition at line 2373 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::ModuleIndex::exportsWithNameAndMinorVersion(), QQmlJS::Dom::fileTypeForPath(), QQmlJS::Dom::DomUniverse::loadFile(), and QQmlJS::Dom::DomEnvironment::loadPendingDependencies().
|
inline |
Definition at line 936 of file qqmldomitem_p.h.
References DomItem(), and hasAnnotations().
Referenced by QQmlJS::Dom::MutableDomItem::annotations().
|
inline |
Definition at line 1156 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsObjWrap(), and QQmlJS::Dom::domTypeIsValueWrap().
|
inline |
Definition at line 1144 of file qqmldomitem_p.h.
|
inline |
Definition at line 931 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::bindings().
| QString DomItem::canonicalFilePath | ( | ) | const |
Definition at line 2073 of file qqmldomitem.cpp.
| Path DomItem::canonicalPath | ( | ) | const |
Definition at line 403 of file qqmldomitem.cpp.
References QQmlJS::Dom::Path::headKind(), and QQmlJS::Dom::PathEls::Root.
Referenced by QQmlJS::Dom::AstRangesVisitor::addItemRanges(), QQmlJS::Dom::ImportScope::allSources(), QQmlJS::Dom::DomElement::canonicalPath(), QQmlJS::Dom::ModuleScope::canonicalPath(), container(), QQmlJS::Dom::OwningItem::containingObject(), QQmlJS::Dom::DomBase::dump(), dump(), QQmlJS::Dom::ModuleIndex::exportsWithNameAndMinorVersion(), filterUp(), QQmlJS::Dom::RefCacheEntry::forPath(), 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(), visitScopeChain(), visitUp(), QQmlJS::Dom::Binding::writeOut(), and QQmlJS::Dom::QmlObject::writeOutAttributes().
|
inline |
Definition at line 935 of file qqmldomitem_p.h.
|
inline |
Definition at line 934 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 2389 of file qqmldomitem.cpp.
| bool DomItem::commitToBase | ( | const std::shared_ptr< DomEnvironment > & | validPtr = nullptr | ) | const |
Definition at line 2162 of file qqmldomitem.cpp.
References environment().
Referenced by QQmlJS::Dom::MutableDomItem::commitToBase().
| DomItem DomItem::component | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 724 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 465 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 554 of file qqmldomitem.cpp.
References DomItem().
| DomItem DomItem::containingObject | ( | ) | const |
Definition at line 414 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 540 of file qqmldomitem.cpp.
References DomItem().
|
inline |
Definition at line 1177 of file qqmldomitem_p.h.
|
inline |
Definition at line 1169 of file qqmldomitem_p.h.
|
inline |
Definition at line 1184 of file qqmldomitem_p.h.
| QDateTime DomItem::createdAt | ( | ) | const |
Definition at line 2343 of file qqmldomitem.cpp.
| int DomItem::derivedFrom | ( | ) | const |
Definition at line 2323 of file qqmldomitem.cpp.
| DomItem DomItem::directParent | ( | ) | const |
In the DomItem hierarchy, go 1 level up to get the direct parent.
Definition at line 594 of file qqmldomitem.cpp.
References goUp().
Referenced by filterUp().
|
inline |
Definition at line 880 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 | nBackups = 2, | ||
| int | indent = 0, | ||
| FileWriter * | fw = nullptr ) const |
Definition at line 2293 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 2285 of file qqmldomitem.cpp.
Definition at line 2272 of file qqmldomitem.cpp.
|
inline |
Definition at line 933 of file qqmldomitem_p.h.
| DomItem DomItem::environment | ( | ) | const |
Definition at line 516 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(), QQmlJS::Dom::resolveLookupOptions(), QQmlJS::Dom::rootFromContext(), and visitLookup().
| ErrorHandler DomItem::errorHandler | ( | ) | const |
Definition at line 2383 of file qqmldomitem.cpp.
References addError().
Referenced by QQmlJS::Dom::LoadInfo::advanceLoad().
| DomItem DomItem::field | ( | QStringView | name | ) | const |
Definition at line 1148 of file qqmldomitem.cpp.
Definition at line 1143 of file qqmldomitem.cpp.
| DomItem DomItem::fileObject | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 437 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 604 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 2508 of file qqmldomitem.cpp.
References DomItem(), and QQmlJS::Dom::DomEnvironment::NoDependencies.
| QDateTime DomItem::frozenAt | ( | ) | const |
Definition at line 2353 of file qqmldomitem.cpp.
| DomItem DomItem::get | ( | const ErrorHandler & | h = nullptr, |
| QList< Path > * | visitedRefs = nullptr ) const |
Definition at line 678 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 685 of file qqmldomitem.cpp.
References QQmlJS::Dom::Reference::kindValue.
| DomItem DomItem::globalScope | ( | ) | const |
Definition at line 476 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 567 of file qqmldomitem.cpp.
References top().
| DomItem DomItem::goUp | ( | int | n | ) | const |
In the DomItem hierarchy, go n levels up.
Definition at line 579 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 1383 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 2063 of file qqmldomitem.cpp.
|
inline |
Definition at line 925 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::ids().
|
inline |
Definition at line 926 of file qqmldomitem_p.h.
| DomItem DomItem::index | ( | index_type | i | ) | const |
Definition at line 1158 of file qqmldomitem.cpp.
| index_type DomItem::indexes | ( | ) | const |
Definition at line 1153 of file qqmldomitem.cpp.
|
inline |
Definition at line 876 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(), QQmlJS::Dom::visitQualifiedNameLookup(), and visitScopeChain().
|
inline |
Definition at line 879 of file qqmldomitem_p.h.
|
inline |
Definition at line 1123 of file qqmldomitem_p.h.
|
inline |
Definition at line 1078 of file qqmldomitem_p.h.
|
inline |
Definition at line 1089 of file qqmldomitem_p.h.
|
inline |
Definition at line 1097 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 1975 of file qqmldomitem_p.h.
| bool DomItem::isCanonicalChild | ( | const DomItem & | child | ) | const |
Definition at line 1370 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 919 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsContainer(), and internalKind().
|
inline |
Definition at line 917 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsExternalItem(), and internalKind().
|
inline |
Definition at line 916 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsOwningItem(), and internalKind().
Referenced by isCanonicalChild(), and makeCopy().
|
inline |
Definition at line 920 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsScope(), and internalKind().
Referenced by visitDirectAccessibleScopes(), and visitLocalSymbolsNamed().
|
inline |
Definition at line 918 of file qqmldomitem_p.h.
References QQmlJS::Dom::domTypeIsTopItem(), and internalKind().
| bool DomItem::iterateDirectSubpaths | ( | DirectVisitor | v | ) | const |
Definition at line 2436 of file qqmldomitem.cpp.
| bool DomItem::iterateErrors | ( | function_ref< bool(const DomItem &, const ErrorMessage &)> | visitor, |
| bool | iterate, | ||
| Path | inPath = Path() ) const |
Definition at line 2404 of file qqmldomitem.cpp.
References owner().
| bool DomItem::iterateSubOwners | ( | function_ref< bool(const DomItem &owner)> | visitor | ) | const |
Definition at line 2426 of file qqmldomitem.cpp.
References owner().
Definition at line 1188 of file qqmldomitem.cpp.
|
inline |
Definition at line 974 of file qqmldomitem_p.h.
Definition at line 1175 of file qqmldomitem.cpp.
| QDateTime DomItem::lastDataUpdateAt | ( | ) | const |
Definition at line 2363 of file qqmldomitem.cpp.
|
inline |
Definition at line 958 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 2035 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 2049 of file qqmldomitem.cpp.
| MutableDomItem DomItem::makeCopy | ( | DomItem::CopyOption | option = CopyOption::EnvConnected | ) | const |
Definition at line 2078 of file qqmldomitem.cpp.
References DomItem(), 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 932 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::methods().
|
static |
Definition at line 391 of file qqmldomitem.cpp.
References domErrorGroup.
Referenced by visitPrototypeChain(), and QQmlJS::Dom::visitPrototypeIndex().
|
static |
Definition at line 397 of file qqmldomitem.cpp.
References domErrorGroup.
Referenced by QQmlJS::Dom::CppTypeInfo::fromString(), resolve(), and visitScopeChain().
|
inline |
Definition at line 923 of file qqmldomitem_p.h.
| QQmlJSScope::ConstPtr DomItem::nearestSemanticScope | ( | ) | const |
Definition at line 641 of file qqmldomitem.cpp.
References scope().
|
inlineexplicit |
Definition at line 875 of file qqmldomitem_p.h.
References QQmlJS::Dom::Empty.
|
inline |
Definition at line 951 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::rootFromContext().
Definition at line 2262 of file qqmldomitem.cpp.
References path().
Referenced by QQmlJS::Dom::ExternalItemInfoBase::lastRevision(), QQmlJS::Dom::ExternalItemInfoBase::lastValidRevision(), and QQmlJS::Dom::MutableDomItem::operator[]().
Definition at line 2248 of file qqmldomitem.cpp.
|
inline |
Definition at line 955 of file qqmldomitem_p.h.
|
inline |
Definition at line 956 of file qqmldomitem_p.h.
| DomItem DomItem::operator[] | ( | QStringView | component | ) | const |
Definition at line 2255 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 492 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::domTypeIsOwningItem(), and QQmlJS::Dom::Empty.
Referenced by addError(), QQmlJS::Dom::DomElement::canonicalPath(), QQmlJS::Dom::ModuleScope::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(), visitLookup(), visitScopeChain(), and QQmlJS::Dom::Import::writeOut().
| std::shared_ptr< T > DomItem::ownerAs | ( | ) | const |
Definition at line 1453 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 2471 of file qqmldomitem.cpp.
| DomItem DomItem::path | ( | const Path & | p, |
| const ErrorHandler & | h = &defaultErrorHandler ) const |
Definition at line 1121 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 1133 of file qqmldomitem.cpp.
References path().
| DomItem DomItem::path | ( | QStringView | p, |
| const ErrorHandler & | h = &defaultErrorHandler ) const |
Definition at line 1138 of file qqmldomitem.cpp.
References path().
| Path DomItem::pathFromOwner | ( | ) | const |
Definition at line 2068 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(), and QQmlJS::Dom::EnumItem::writeOut().
|
inline |
Definition at line 924 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 2010 of file qqmldomitem.cpp.
References DomItem(), canonicalPath(), QQmlJS::Dom::Export, QQmlJS::Dom::Id, internalKind(), QQmlJS::Dom::Reference, and scope().
|
inline |
Definition at line 930 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::MutableDomItem::propertyDefs().
Definition at line 713 of file qqmldomitem.cpp.
|
inline |
Definition at line 927 of file qqmldomitem_p.h.
| PropertyInfo DomItem::propertyInfoWithName | ( | const QString & | name | ) | const |
Definition at line 692 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 425 of file qqmldomitem.cpp.
References DomItem().
|
inline |
Definition at line 1037 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 859 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::Normal, QQmlJS::Dom::Obj, QQmlJS::Dom::ObjChain, QQmlJS::Dom::Path::operator[](), QQmlJS::Dom::Other, QQmlJS::Dom::ResolveToDo::pathIndex, QQmlJS::Dom::Reference, QQmlJS::Dom::PathEls::Root, QQmlJS::Dom::rootFromContext(), QQmlJS::Dom::ScopeChain, QQmlJS::Dom::ScriptExpression, QQmlJS::Dom::TraceVisit, QQmlJS::Dom::Types, and QQmlJS::Dom::ErrorGroups::warning().
| int DomItem::revision | ( | ) | const |
Definition at line 2333 of file qqmldomitem.cpp.
| DomItem DomItem::rootQmlObject | ( | GoTo | option = GoTo::Strict | ) | const |
Definition at line 460 of file qqmldomitem.cpp.
| DomItem DomItem::scope | ( | FilterUpOptions | options = FilterUpOptions::ReturnOuter | ) | const |
Definition at line 635 of file qqmldomitem.cpp.
Referenced by nearestSemanticScope(), proceedToScope(), QQmlJS::Dom::MutableDomItem::scope(), semanticScope(), and visitScopeChain().
| QQmlJSScope::ConstPtr DomItem::semanticScope | ( | ) | const |
Definition at line 651 of file qqmldomitem.cpp.
References scope().
|
inline |
Definition at line 957 of file qqmldomitem_p.h.
| QStringList DomItem::sortedKeys | ( | ) | const |
Definition at line 1180 of file qqmldomitem.cpp.
| DomItem DomItem::subDataItem | ( | const PathEls::PathComponent & | c, |
| const T & | value, | ||
| ConstantData::Options | options = ConstantData::Options::MapIsMap ) const |
Definition at line 1958 of file qqmldomitem_p.h.
Definition at line 2184 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::ImportScope::iterateDirectSubpaths(), subReferencesItem(), subValueItem(), QQmlJS::Dom::BindingValue::value(), wrap(), and wrap().
Definition at line 2189 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 1113 of file qqmldomitem_p.h.
| DomItem DomItem::subReferenceItem | ( | const PathEls::PathComponent & | c, |
| const Path & | referencedObject ) const |
Definition at line 2451 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 2442 of file qqmldomitem.cpp.
References subListItem().
|
inline |
Definition at line 1106 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 1931 of file qqmldomitem_p.h.
References subListItem().
| DomItem DomItem::top | ( | ) | const |
Definition at line 504 of file qqmldomitem.cpp.
References DomItem(), QQmlJS::Dom::Path::Path(), QQmlJS::Dom::domTypeIsTopItem(), and QQmlJS::Dom::Empty.
Referenced by QQmlJS::Dom::ImportScope::allSources(), environment(), filterUp(), goToFile(), goUp(), refreshed(), QQmlJS::Dom::rootFromContext(), QQmlJS::Dom::MutableDomItem::top(), universe(), and visitUp().
| shared_ptr< DomTop > DomItem::topPtr | ( | ) | const |
Definition at line 2461 of file qqmldomitem.cpp.
| QString DomItem::toString | ( | ) | const |
Definition at line 2318 of file qqmldomitem.cpp.
| DomItem DomItem::universe | ( | ) | const |
Definition at line 524 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 2267 of file qqmldomitem.cpp.
Definition at line 1205 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 1592 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 870 of file qqmldomitem_p.h.
| bool DomItem::visitIndexes | ( | function_ref< bool(const DomItem &)> | visitor | ) | const |
Definition at line 1163 of file qqmldomitem.cpp.
| bool DomItem::visitKeys | ( | function_ref< bool(const QString &, const DomItem &)> | visitor | ) | const |
Definition at line 1193 of file qqmldomitem.cpp.
| bool DomItem::visitLocalSymbolsNamed | ( | const QString & | name, |
| function_ref< bool(const DomItem &)> | visitor ) const |
Definition at line 2171 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 1936 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 1794 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 1547 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 1677 of file qqmldomitem.cpp.
References canonicalPath(), QQmlJS::Dom::Path::dropTail(), QQmlJS::Dom::ErrorGroups::error(), 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 1639 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 1436 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 1662 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 1985 of file qqmldomitem_p.h.
References DomItem(), subListItem(), and subMapItem().
| bool DomItem::writeOut | ( | const QString & | path, |
| int | nBackups = 2, | ||
| const LineWriterOptions & | opt = LineWriterOptions(), | ||
| FileWriter * | fw = nullptr, | ||
| WriteOutChecks | extraChecks = WriteOutCheck::Default ) const |
Definition at line 1341 of file qqmldomitem.cpp.
Definition at line 1234 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 1329 of file qqmldomitem.cpp.
References writeOut().
Definition at line 1241 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 1215 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 1247 of file qqmldomitem_p.h.
|
friend |
Definition at line 1244 of file qqmldomitem_p.h.
|
friend |
Definition at line 1236 of file qqmldomitem_p.h.
|
friend |
Definition at line 1237 of file qqmldomitem_p.h.
|
friend |
Definition at line 1242 of file qqmldomitem_p.h.
|
friend |
Definition at line 1241 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 1239 of file qqmldomitem_p.h.
|
friend |
Definition at line 1238 of file qqmldomitem_p.h.
|
friend |
Definition at line 1245 of file qqmldomitem_p.h.
|
friend |
Definition at line 3183 of file qqmldomitem.cpp.
References QQmlJS::Dom::operator!=().
Referenced by isCanonicalChild(), and QQmlJS::Dom::operator!=().
|
friend |
Definition at line 1240 of file qqmldomitem_p.h.
|
friend |
Definition at line 1246 of file qqmldomitem_p.h.
|
friend |
Definition at line 1249 of file qqmldomitem_p.h.
|
static |
Definition at line 862 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 865 of file qqmldomitem_p.h.
Referenced by QQmlJS::Dom::domCompare().