17#include <private/qjsvalue_p.h> 
   18#include <private/qv4functionobject_p.h> 
   19#include <private/qv4qobjectwrapper_p.h> 
   20#include <private/qqmlbuiltinfunctions_p.h> 
   21#include <private/qqmlirbuilder_p.h> 
   22#include <QtQml/private/qqmllist_p.h> 
   26#include <private/qmetaobject_p.h> 
   27#include <private/qqmlvaluetypewrapper_p.h> 
   28#include <QtCore/qdebug.h> 
   30#include <QtQml/QQmlPropertyMap> 
   31#include <QtCore/private/qproperty_p.h> 
   32#include <QtCore/qsequentialiterable.h> 
  197                                         QQmlPropertyPrivate::InitFlags 
flags)
 
  215    return ::compatResolveUrlsOnAssigment();
 
  230                                       QQmlPropertyPrivate::InitFlags 
flags)
 
  240        if (
path.isEmpty()) 
return;
 
  243        for (
int ii = 0; ii < 
path.size() - 1; ++ii) {
 
  251                    if (
r.type.isValid()) {
 
  257                        if (!currentObject) 
return; 
 
  258                    } 
else if (
r.importNamespace) {
 
  259                        if (++ii == 
path.size())
 
  264                                    path.at(ii), 
r.importNamespace);
 
  266                        if (!
r.type.isValid())
 
  278                    } 
else if (
r.scriptIndex != -1) {
 
  299                for (
auto idContext = 
context; idContext; idContext = idContext->
parent()) {
 
  300                    const int objectId = idContext->propertyIndex(pathName.
toString());
 
  301                    if (objectId != -1 && objectId < idContext->numIdValues()) {
 
  311            } 
else if (
property->isFunction()) {
 
  318                if (!valueTypeMetaObject) 
return; 
 
  321                if (idx == -1) 
return; 
 
  327                object = currentObject;
 
  336                    if (
auto asPropertyMap = qobject_cast<QQmlPropertyMap*>(currentObject))
 
  337                        currentObject = asPropertyMap->value(
path.at(ii).toString()).value<
QObject*>();
 
  341                    property->readProperty(currentObject, ¤tObject);
 
  344                if (!currentObject) 
return; 
 
  351    } 
else if (!currentObject) {
 
  355    auto findSignalInMetaObject = [&](
const QByteArray &signalName) {
 
  360        object = currentObject;
 
  366    auto findChangeSignal = [&](
QStringView signalName) {
 
  368        if (signalName.endsWith(changed)) {
 
  371            while (
d && 
d->isFunction())
 
  374            if (
d && 
d->notifyIndex() != -1) {
 
  375                object = currentObject;
 
  388        for (firstNon_ = 0; firstNon_ < 
length; ++firstNon_)
 
  389            if (signalName.
at(firstNon_) != u
'_')
 
  391        signalName[firstNon_] = signalName.
at(firstNon_).
toLower();
 
  396                        signalName, currentObject, 
context);
 
  401            while (
d && !
d->isFunction())
 
  405                object = currentObject;
 
  410            if (findChangeSignal(signalName))
 
  412        } 
else if (findSignalInMetaObject(signalName.
toUtf8())) {
 
  419                    terminal, currentObject, 
context);
 
  424                object = currentObject;
 
  437            object = currentObject;
 
  443        findChangeSignal(terminal);
 
  450            object = currentObject;
 
  456            findSignalInMetaObject(terminal.
toUtf8());
 
  646    return d ? d->
object : 
nullptr;
 
  825        if (!newBinding->
ref)
 
  834    int coreIndex = 
index.coreIndex();
 
  835    int valueTypeIndex = 
index.valueTypeIndex();
 
  839    if (!
data || !
data->hasBindingBit(coreIndex))
 
  843    oldBinding = 
data->bindings;
 
  860    oldBinding->removeFromObject();
 
  888    object = aliasTarget.targetObject;
 
  889    index = aliasTarget.targetIndex;
 
  895    const int coreIndex = 
index.coreIndex();
 
  896    const int valueTypeIndex = 
index.valueTypeIndex();
 
  898    if (coreIndex < 0 || !data->hasBindingBit(coreIndex))
 
  906    if (
binding && valueTypeIndex != -1) {
 
  924            data->propertyCache?
data->propertyCache->property(coreIndex):
nullptr;
 
  925        if (propertyData && propertyData->
isAlias()) {
 
  928            QObject *aObject = 
nullptr; 
int aCoreIndex = -1; 
int aValueTypeIndex = -1;
 
  929            if (vme->
aliasTarget(coreIndex, &aObject, &aCoreIndex, &aValueTypeIndex)) {
 
  931                Q_ASSERT(valueTypeIndex == -1 || aValueTypeIndex == -1);
 
  934                if (aValueTypeIndex != -1) {
 
  936                } 
else if (valueTypeIndex != -1) {
 
  940                findAliasTarget(aObject, aBindingIndex, targetObject, targetBindingIndex);
 
  970    if (
data->propertyCache) {
 
 1003        signalHandler = signalHandler->m_nextSignal;
 
 1044        signalHandler = signalHandler->m_nextSignal;
 
 1046    if (signalHandler) {
 
 1055        signal->takeExpression(expr);
 
 1157            return object->metaObject()->property(
core.
coreIndex()).read(
object);
 
 1161        void *
args[] = { 
nullptr, &
value, &status };
 
 1162        if (
core.
propType() == QMetaType::fromType<QVariant>()) {
 
 1183    if (
value.metaType() == QMetaType::fromType<QUrl>()) {
 
 1185    } 
else if (
value.metaType() == QMetaType::fromType<QString>()) {
 
 1187    } 
else if (
value.metaType() == QMetaType::fromType<QByteArray>()) {
 
 1189    } 
else if (
value.metaType() == QMetaType::fromType<QStringList>()) {
 
 1191        const int urlStringsSize = urlStrings.size();
 
 1193        for (
int i = 0; 
i < urlStringsSize; ++
i)
 
 1205    for (
auto urlIt = urls.
begin(); urlIt != urls.
end(); ++urlIt)
 
 1206        *urlIt = ctxt->resolvedUrl(*urlIt);
 
 1220        if (
v.userType() == QMetaType::QString) {
 
 1239    void *argv[] = { 
v.data(), &
v, &status, &
flags };
 
 1260template<
typename Op>
 
 1263            QQmlPropertyData::WriteFlags 
flags, 
int internalIndex, Op op)
 
 1265    wrapper->read(
object, coreIndex);
 
 1267    wrapper->write(
object, coreIndex, 
flags, internalIndex);
 
 1271template<
typename Op>
 
 1275        int internalIndex, Op op)
 
 1296            QQmlPropertyData::WriteFlags 
flags)
 
 1306        return write(wrapper, valueTypeData, value, context, flags);
 
 1322        return reset(wrapper, valueTypeData, flags);
 
 1332                 QQmlPropertyData::WriteFlags 
flags)
 
 1338        void *argv[] = {&bindable};
 
 1340        untypedBinding = bindable.
binding();
 
 1342            priv->setSticky(
true);
 
 1347        if (untypedBinding.
isNull())
 
 1350        priv->setSticky(
false);
 
 1370            || variantMetaType == QMetaType::fromType<QString>()
 
 1373        return {
false, 
false};
 
 1376    if (variantMetaType == QMetaType::fromType<QJSValue>()) {
 
 1380                = QJSValuePrivate::asManagedType<QV4::FunctionObject>(&jsValue);
 
 1381        if (
f && 
f->isBinding()) {
 
 1383                    f->engine(), 
object, &
property, 
f->asReturnedValue());
 
 1384            return {
true, 
true};
 
 1389    switch (propertyMetaType.
id()) {
 
 1390    case QMetaType::Bool:
 
 1391        if (
value.canConvert(propertyMetaType)) {
 
 1393            return {
true, 
property.writeProperty(
object, &
b, 
flags)};
 
 1395        return {
false, 
false};
 
 1396    case QMetaType::Int: {
 
 1399        return {
ok, 
ok && 
property.writeProperty(
object, &
i, 
flags)};
 
 1401    case QMetaType::UInt: {
 
 1404        return {
ok, 
ok && 
property.writeProperty(
object, &u, 
flags)};
 
 1406    case QMetaType::Double: {
 
 1409        return {
ok, 
ok && 
property.writeProperty(
object, &
d, 
flags)};
 
 1411    case QMetaType::Float: {
 
 1414        return {
ok, 
ok && 
property.writeProperty(
object, &
f, 
flags)};
 
 1416    case QMetaType::QString:
 
 1417        if (
value.canConvert(propertyMetaType)) {
 
 1419            return {
true, 
property.writeProperty(
object, &
s, 
flags)};
 
 1421        return {
false, 
false};
 
 1422    case QMetaType::QVariantMap:
 
 1423        if (
value.canConvert(propertyMetaType)) {
 
 1425            return {
true, 
property.writeProperty(
object, &
m, 
flags)};
 
 1427        return {
false, 
false};
 
 1435        converted = 
QVariant(propertyMetaType);
 
 1437                                propertyMetaType, converted.
data()))  {
 
 1438            return {
false, 
false};
 
 1441    return {
true, 
property.writeProperty(
object, converted.
data(), 
flags)};
 
 1444template<
typename Op>
 
 1461    const void *
end = metaSequence.
constEnd(container);
 
 1477    const QMetaType propertyMetaType = 
property.propType();
 
 1486        if (variantMetaType == QMetaType::fromType<double>()) {
 
 1488            double fractional = std::modf(
value.toDouble(), &integral);
 
 1490                v.convert(QMetaType::fromType<qint32>());
 
 1496    const bool isUrl = propertyMetaType == QMetaType::fromType<QUrl>(); 
 
 1499    if (propertyMetaType == variantMetaType && !isUrl
 
 1501        return property.writeProperty(
object, 
const_cast<void *
>(
value.constData()), 
flags);
 
 1505        if (variantMetaType == QMetaType::fromType<std::nullptr_t>()) {
 
 1508            varType = QMetaType::fromType<QObject*>();
 
 1511            varType = variantMetaType;
 
 1523            return property.writeProperty(
object, &
o, 
flags);
 
 1528            return property.writeProperty(
object, &
o, 
flags);
 
 1534        return result.couldWrite;
 
 1535    } 
else if (propertyMetaType == QMetaType::fromType<QVariant>()) {
 
 1539        if (variantMetaType == QMetaType::fromType<QUrl>()) {
 
 1544        else if (variantMetaType == QMetaType::fromType<QByteArray>())
 
 1546        else if (variantMetaType == QMetaType::fromType<QString>())
 
 1551        return property.writeProperty(
object, &u, 
flags);
 
 1553        QList<QUrl> urlSeq = compatResolveUrlsOnAssigment()
 
 1556        return property.writeProperty(
object, &urlSeq, 
flags);
 
 1561            if (valueMetaObject.
isNull())
 
 1565            property.readProperty(
object, &prop);
 
 1580            const auto doAppend = [&](
QObject *
o) {
 
 1583                propAppend(&prop, 
o);
 
 1586            if (variantMetaType == QMetaType::fromType<QQmlListReference>()) {
 
 1589                    doAppend(qdlr.
at(ii));
 
 1602            if (useNonsignalingListOps) {
 
 1606        } 
else if (variantMetaType == propertyMetaType) {
 
 1608            property.writeProperty(
object, 
v.data(), 
flags);
 
 1617    } 
else if (enginePriv && propertyMetaType == QMetaType::fromType<QJSValue>()) {
 
 1621        return property.writeProperty(
object, &jsValue, 
flags);
 
 1623        Q_ASSERT(variantMetaType != propertyMetaType);
 
 1627        if (variantMetaType == QMetaType::fromType<QString>())
 
 1632            if (
v.convert(propertyMetaType)) {
 
 1644                        propertyMetaType, 
v.data(),
 
 1645                        QMetaType::fromType<QSequentialIterable>(),
 
 1652                    if (variantMetaType == elementMetaType) {
 
 1655                    } 
else if (variantMetaType == QMetaType::fromType<QVariantList>()) {
 
 1658                            if (valueElement.metaType() == elementMetaType) {
 
 1660                                            propertyContainer, valueElement.constData());
 
 1662                                QVariant converted(elementMetaType);
 
 1664                                            valueElement.metaType(), valueElement.constData(),
 
 1665                                            elementMetaType, converted.
data());
 
 1667                                            propertyContainer, converted.
constData());
 
 1675                        const auto doAppend = [&](
QObject *
o) {
 
 1677                            propertyMetaSequence.
addValueAtEnd(propertyContainer, &casted);
 
 1681                            doAppend(*
static_cast<QObject *
const *
>(
value.data()));
 
 1683                        } 
else if (variantMetaType == QMetaType::fromType<QQmlListReference>()) {
 
 1691                                       variantMetaType, 
value.data(), doAppend)) {
 
 1696                        if (converted.
convert(elementMetaType)) {
 
 1706            auto valueAsQObject = qvariant_cast<QObject *>(
value);
 
 1708            if (
void *iface = valueAsQObject
 
 1714                return property.writeProperty(
object, &iface, 
flags);
 
 1719            return property.writeProperty(
object, 
const_cast<void *
>(
v.constData()), 
flags);
 
 1730        QQmlPropertyData::WriteFlags 
flags)
 
 1733    property.resetProperty(
object, 
flags);
 
 1822        void *
args[] = { 
nullptr };
 
 1934    prop.d->
engine = ctxt ? ctxt->engine() : 
nullptr;
 
 1950    for (
int ii = 
methods - 1; ii >= 2; --ii) { 
 
 1959    if (
name.endsWith(
"Changed")) {
 
 1961        int propIdx = 
mo->indexOfProperty(propName.
constData());
 
 1978    const int i = 
mo->indexOfProperty(
name);
 
 1996            if (indexInSignalRange)
 
 2013                                          const QObject *receiver, 
int method_index,
 
 2016    static const bool indexInSignalRange = 
false;
 
 2029    static const bool indexInSignalRange = 
true;
 
 2035#include "moc_qqmlproperty.cpp" 
static JNINativeMethod methods[]
const char * constData() const noexcept
Returns a pointer to the const data stored in the byte array.
QByteArray mid(qsizetype index, qsizetype len=-1) const
Returns a byte array containing len bytes from this byte array, starting at position pos.
QChar toLower() const noexcept
Returns the lowercase equivalent if the character is uppercase or titlecase; otherwise returns the ch...
constexpr bool isUpper() const noexcept
Returns true if the character is an uppercase letter, for example category() is Letter_Uppercase.
QChar toUpper() const noexcept
Returns the uppercase equivalent if the character is lowercase or titlecase; otherwise returns the ch...
T * data() const noexcept
Returns a pointer to the shared data object.
const void * constIterable() const
Container metaContainer() const
static QJSValue fromReturnedValue(QV4::ReturnedValue d)
The QJSValue class acts as a container for Qt/JavaScript data types.
qsizetype size() const noexcept
const_reference at(qsizetype i) const noexcept
T value(qsizetype i) const
void reserve(qsizetype size)
void append(parameter_type t)
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
QVariant property(const char *name) const
Returns the value of the object's name property.
static QPropertyBindingPrivate * get(const QUntypedPropertyBinding &binding)
QQmlPropertyIndex targetPropertyIndex() const
QQmlAbstractBinding * nextBinding() const
QObject * targetObject() const
virtual void setEnabled(bool e, QQmlPropertyData::WriteFlags f=QQmlPropertyData::DontRemoveBinding)=0
void addToObject()
Add this binding to object.
virtual Kind kind() const =0
void takeExpression(QQmlBoundSignalExpression *)
Sets the signal expression to e.
QQmlBoundSignalExpression * expression() const
Returns the signal expression.
QObject * idValue(int index) const
QQmlRefPointer< QQmlTypeNameCache > imports() const
static QQmlRefPointer< QQmlContextData > get(QQmlContext *context)
QUrl resolvedUrl(const QUrl &) const
QQmlRefPointer< QQmlContextData > parent() const
QQmlEngine * engine() const
The QQmlContext class defines a context within a QML engine.
QQmlEngine * engine() const
Return the context's QQmlEngine, or \nullptr if the context has no QQmlEngine or the QQmlEngine was d...
QQmlPropertyCache::ConstPtr propertyCache
static QQmlData * get(QObjectPrivate *priv, bool create)
static QQmlEnginePrivate * get(QQmlEngine *e)
QV4::ExecutionEngine * v4engine() const
The QQmlEngine class provides an environment for instantiating QML components.
QQmlContext * rootContext() const
Returns the engine's root context.
static QQmlGadgetPtrWrapper * instance(QQmlEngine *engine, QMetaType type)
QQmlEngine * engine() const
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
static QQmlListReference init(const QQmlListProperty< QObject > &, QMetaType)
The QQmlListReference class allows the manipulation of QQmlListProperty properties.
qsizetype count() const
Returns the number of objects in the list, or 0 if the operation failed.
QObject * at(qsizetype) const
Returns the list element at index, or 0 if the operation failed.
const QQmlPropertyData * property(const K &key, QObject *object, const QQmlRefPointer< QQmlContextData > &context) const
void readProperty(QObject *target, void *property) const
bool isResettable() const
void readPropertyWithArgs(QObject *target, void *args[]) const
QMetaType propType() const
void setCoreIndex(int idx)
void setPropType(QMetaType pt)
static Flags flagsForProperty(const QMetaProperty &)
void load(const QMetaProperty &)
QString name(QObject *) const
bool hasValueTypeIndex() const
static QQmlBoundSignalExpression * signalExpression(const QQmlProperty &that)
Returns the expression associated with this signal property, or 0 if no signal expression exists.
static void takeSignalExpression(const QQmlProperty &that, QQmlBoundSignalExpression *)
Set the signal expression associated with this signal property to expr.
static bool resolveUrlsOnAssignment()
QMetaType propertyType() const
static void setBinding(QQmlAbstractBinding *binding, BindingFlags flags=None, QQmlPropertyData::WriteFlags writeFlags=QQmlPropertyData::DontRemoveBinding)
static void findAliasTarget(QObject *, QQmlPropertyIndex, QObject **, QQmlPropertyIndex *)
static QQmlMetaObject rawMetaObjectForType(QMetaType metaType)
static QQmlProperty restore(QObject *, const QQmlPropertyData &, const QQmlPropertyData *, const QQmlRefPointer< QQmlContextData > &)
QQmlProperty::PropertyTypeCategory propertyTypeCategory() const
static QQmlProperty create(QObject *target, const QString &propertyName, const QQmlRefPointer< QQmlContextData > &context, QQmlPropertyPrivate::InitFlags flags)
static bool writeEnumProperty(const QMetaProperty &prop, int idx, QObject *object, const QVariant &value, int flags)
QQmlPropertyIndex encodedIndex() const
static void removeBinding(const QQmlProperty &that)
static bool write(QObject *, const QQmlPropertyData &, const QVariant &, const QQmlRefPointer< QQmlContextData > &, QQmlPropertyData::WriteFlags flags={})
static QQmlPropertyIndex propertyIndex(const QQmlProperty &that)
static bool reset(QObject *, const QQmlPropertyData &, QQmlPropertyData::WriteFlags flags={})
static QMetaProperty findPropertyByName(const QMetaObject *mo, const QByteArray &)
Return the property corresponding to name.
static bool connect(const QObject *sender, int signal_index, const QObject *receiver, int method_index, int type=0, int *types=nullptr)
Connect sender signal_index to receiver method_index with the specified type and types.
QQmlProperty::Type type() const
QVariant readValueProperty()
static void setSignalExpression(const QQmlProperty &that, QQmlBoundSignalExpression *)
Set the signal expression associated with this signal property to expr.
QQmlPropertyData valueTypeData
static QQmlPropertyPrivate * get(const QQmlProperty &p)
static QMetaMethod findSignalByName(const QMetaObject *mo, const QByteArray &)
Return the signal corresponding to name.
void initDefault(QObject *obj)
Initialize from the default property of obj.
static void flushSignal(const QObject *sender, int signal_index)
QQmlRefPointer< QQmlContextData > effectiveContext() const
static QQmlAbstractBinding * binding(QObject *, QQmlPropertyIndex index)
static QList< QUrl > urlSequence(const QVariant &value)
bool writeValueProperty(const QVariant &, QQmlPropertyData::WriteFlags)
void initProperty(QObject *obj, const QString &name, InitFlags flags=InitFlag::None)
QQmlRefPointer< QQmlContextData > context
static bool resetValueProperty(QObject *, const QQmlPropertyData &, const QQmlPropertyData &valueTypeData, const QQmlRefPointer< QQmlContextData > &, QQmlPropertyData::WriteFlags flags={})
QPointer< QQmlEngine > engine
QPointer< QObject > object
The QQmlProperty class abstracts accessing properties on objects created from QML.
bool isDesignable() const
Returns true if the property is designable, otherwise false.
QMetaType propertyMetaType() const
Returns the metatype of the property.
bool isValid() const
Returns true if the QQmlProperty refers to a valid property, otherwise false.
QMetaMethod method() const
Return the QMetaMethod for this property if it is a SignalProperty, otherwise returns an invalid QMet...
bool hasNotifySignal() const
Returns true if the property has a change notifier signal, otherwise false.
const char * propertyTypeName() const
Returns the type name of the property, or 0 if the property has no type name.
PropertyTypeCategory propertyTypeCategory() const
Returns the property category.
int index() const
Return the Qt metaobject index of the property.
QQmlProperty & operator=(const QQmlProperty &)
Assign other to this QQmlProperty.
QVariant read() const
Returns the property value.
bool operator==(const QQmlProperty &) const
Returns true if other and this QQmlProperty represent the same property.
QQmlProperty()
Create an invalid QQmlProperty.
bool isProperty() const
Returns true if this QQmlProperty represents a regular Qt property.
Type
This enum specifies a type of QML property.
Type type() const
Returns the type of the property.
QMetaProperty property() const
Returns the \l{QMetaProperty} {Qt property} associated with this QML property.
PropertyTypeCategory
This enum specifies a category of QML property.
QML_ANONYMOUSQObject * object
bool write(const QVariant &) const
Sets the property value to value.
bool needsNotifySignal() const
Returns true if the property needs a change notifier signal for bindings to remain upto date,...
bool isSignalProperty() const
Returns true if this QQmlProperty represents a QML signal property.
bool isWritable() const
Returns true if the property is writable, otherwise false.
bool connectNotifySignal(QObject *dest, const char *slot) const
Connects the property's change notifier signal to the specified slot of the dest object and returns t...
bool isResettable() const
Returns true if the property is resettable, otherwise false.
int propertyType() const
Returns the metatype id of the property, or QMetaType::UnknownType if the property has no metatype.
bool reset() const
Resets the property and returns true if the property is resettable.
void activateSignal() const
static QVariant createValueType(const QJSValue &, QMetaType)
The QSequentialIterable class is an iterable interface for a container in a QVariant.
QMetaType valueMetaType() const
constexpr bool isEmpty() const noexcept
Returns whether this string view is empty - that is, whether {size() == 0}.
constexpr QStringView first(qsizetype n) const noexcept
QByteArray toUtf8() const
Returns a UTF-8 representation of the string view as a QByteArray.
Q_CORE_EXPORT QList< QStringView > split(QStringView sep, Qt::SplitBehavior behavior=Qt::KeepEmptyParts, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Splits the view into substring views wherever sep occurs, and returns the list of those string views.
QString toString() const
Returns a deep copy of this string view's data as a QString.
constexpr QStringView last(qsizetype n) const noexcept
constexpr QChar at(qsizetype n) const noexcept
Returns the character at position n in this string view.
\macro QT_RESTRICTED_CAST_FROM_ASCII
qsizetype size() const
Returns the number of characters in this string.
static QString fromUtf8(QByteArrayView utf8)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QString mid(qsizetype position, qsizetype n=-1) const
Returns a string that contains n characters of this string, starting at the specified position index.
const QChar at(qsizetype i) const
Returns the character at the given index position in the string.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
QByteArray toUtf8() const &
QUntypedPropertyBinding binding() const
Returns the underlying property's binding if there is any, or a default constructed QUntypedPropertyB...
bool isNull() const
Returns true if the QUntypedPropertyBinding is null.
bool isRelative() const
Returns true if the URL is relative; otherwise returns false.
bool isEmpty() const
Returns true if the URL has no data; otherwise returns false.
void * data()
Returns a pointer to the contained object as a generic void* that can be written to.
bool convert(QMetaType type)
Casts the variant to the requested type, targetType.
bool isValid() const
Returns true if the storage type of this variant is not QMetaType::UnknownType; otherwise returns fal...
const char * typeName() const
Returns the name of the type stored in the variant.
static auto fromValue(T &&value) noexcept(std::is_nothrow_copy_constructible_v< T > &&Private::CanUseInternalSpace< T >) -> std::enable_if_t< std::conjunction_v< std::is_copy_constructible< T >, std::is_destructible< T > >, QVariant >
const void * constData() const
static void writeFlags(QTextStream &stream, const Provider &provider)
QSet< QString >::iterator it
Q_QML_PRIVATE_EXPORT QVariant variantFromString(const QString &, QMetaType preferredType, bool *ok=nullptr)
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char * method
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
bool qFuzzyIsNull(qfloat16 f) noexcept
GLboolean GLboolean GLboolean b
GLsizei const GLfloat * v
[13]
GLsizei GLenum GLenum * types
GLenum GLuint GLenum GLsizei length
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLsizei const GLchar *const  * path
QObject * qmlAttachedPropertiesObject(QObject *object, QQmlAttachedPropertiesFunc func, bool create)
#define DEFINE_BOOL_CONFIG_OPTION(name, var)
QQmlPrivate::QQmlAttachedPropertiesFunc< QObject > QQmlAttachedPropertiesFunc
bool changeThroughGadgetPtrWrapper(QObject *object, const QQmlPropertyData &core, const QQmlRefPointer< QQmlContextData > &context, QQmlPropertyData::WriteFlags flags, int internalIndex, Op op)
static ConvertAndAssignResult tryConvertAndAssign(QObject *object, const QQmlPropertyData &property, const QVariant &value, QQmlPropertyData::WriteFlags flags, QMetaType propertyMetaType, QMetaType variantMetaType, bool isUrl)
static void removeOldBinding(QObject *object, QQmlPropertyIndex index, QQmlPropertyPrivate::BindingFlags flags=QQmlPropertyPrivate::None)
static void flush_vme_signal(const QObject *object, int index, bool indexInSignalRange)
static void removeValuePropertyBinding(QObject *object, const QQmlPropertyData &core, const QQmlPropertyData &valueTypeData, QQmlPropertyData::WriteFlags flags)
bool changePropertyAndWriteBack(QObject *object, int coreIndex, QQmlGadgetPtrWrapper *wrapper, QQmlPropertyData::WriteFlags flags, int internalIndex, Op op)
bool iterateQObjectContainer(QMetaType metaType, const void *data, Op op)
#define QStringLiteral(str)
obj metaObject() -> className()
Q_DISABLE_COPY_MOVE(BindingFixer)
BindingFixer(QObject *object, const QQmlPropertyData &property, QQmlPropertyData::WriteFlags flags)
\inmodule QtCore \reentrant
QQmlPropertyIndex targetIndex
QV4::ReturnedValue metaTypeToJS(QMetaType type, const void *data)
static void setProperty(ExecutionEngine *engine, QObject *object, int propertyIndex, const Value &value)
static bool isSignalPropertyName(const QString &name)