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

Reply via email to