Hi Jan,
>
> The "unit" is still a C++ object that gets assigned as soon as the Image is
> created. I still get warnings like these for every line that contains a
> "unit". The properties do work, but something is clearly wrong here:
>
> file:///.../qml/Unit.qml:27: TypeError: Result of expression 'unit'
> [undefined] is not an object.
> file:///.../qml/Unit.qml:20: Unable to assign [undefined] to QObject* target
> file:///.../qml/Unit.qml:16: TypeError: Result of expression 'unit'
> [undefined] is not an object.
> file:///.../qml/Unit.qml:15: TypeError: Result of expression 'unit'
> [undefined] is not an object.
> file:///.../qml/Unit.qml:14: TypeError: Result of expression 'unit'
> [undefined] is not an object.
Usually the bindings are not set until the property is set to a proper value.
I'm not sure why this is not happening in your case - perhaps the errors are
occurring when the unit is destroyed.
If this is the case you could use states to ensure the bindings are only set
when the unit has a proper value, e.g.
Image {
id: img
property variant unit
// don't set x, y, source here
Text { id: label }
states: State {
name: "hasUnit"; when: unit != undefined
PropertyChanges { target: img; x: unit.x * 48 + ( unit.y % 2 )
* 24; y: unit.y * 36; source: unit.icon }
}
}
regards,
Bea
_______________________________________________
Qt-qml mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt-qml