propertyFlags |= QQmlPropertyData::IsQList;
}
- if ((!p->flags & QV4::CompiledData::Property::IsReadOnly) && p->type != QV4::CompiledData::Property::CustomList)
+ if (!(p->flags & QV4::CompiledData::Property::IsReadOnly) && p->type != QV4::CompiledData::Property::CustomList)
propertyFlags |= QQmlPropertyData::IsWritable;
continue;
quint32 propertyFlags = QQmlPropertyData::IsVarProperty;
- if (!p->flags & QV4::CompiledData::Property::IsReadOnly)
+ if (!(p->flags & QV4::CompiledData::Property::IsReadOnly))
propertyFlags |= QQmlPropertyData::IsWritable;
VMD *vmd = (QQmlVMEMetaData *)dynamicData.data();
void warnOnInvalidBinding();
void registeredCompositeTypeProperty();
void deeplyNestedObject();
+ void readOnlyDynamicProperties();
void copy();
private:
QCOMPARE(p.read(), QVariant(14));
}
+void tst_qqmlproperty::readOnlyDynamicProperties()
+{
+ QQmlComponent comp(&engine, testFileUrl("readonlyPrimitiveVsVar.qml"));
+ QObject *obj = comp.create();
+ QVERIFY(obj != 0);
+
+ QVERIFY(!obj->metaObject()->property(obj->metaObject()->indexOfProperty("r_var")).isWritable());
+ QVERIFY(!obj->metaObject()->property(obj->metaObject()->indexOfProperty("r_int")).isWritable());
+ QVERIFY(obj->metaObject()->property(obj->metaObject()->indexOfProperty("w_var")).isWritable());
+ QVERIFY(obj->metaObject()->property(obj->metaObject()->indexOfProperty("w_int")).isWritable());
+
+ delete obj;
+}
+
void tst_qqmlproperty::initTestCase()
{
QQmlDataTest::initTestCase();