On 31/01/2011, at 10:20 AM, ext Francesco Nwokeka wrote:

> On Sunday 30 January 2011 18:19:25 [email protected] wrote:
>> Use the setProperty
>> http://doc.qt.nokia.com/4.7-snapshot/qml-listmodel.html#setProperty-method
>> It's not an ordinary JavaScript object.
>> 
>> I.e.  Instead of
>> "tagColumnModel.get( pos ).tagState = "newState"; "
>> Do
>> "tagColumnModel.setProperty(pos, "tagState", "newState"); "
> 
> Tried that, but it was a bit buggy. I solved the issue by going 100% on a c++ 
> model and checking the 
> "state" ( a Q_PROPERTY ) from  there.


Using get() and setProperty() should both work. However, some bugs were fixed 
in ListModel recently relating to setting properties via these methods, so it's 
possible that you were seeing these issues.

The following code works fine with the latest source:


ListView {
    width: 200; height: 200

    model: ListModel {
        id: tagColumnModel
        ListElement { tagName: "apple"; tagState: "" }
        ListElement { tagName: "pear"; tagState: "" }
    }

    delegate: Rectangle {
        id: rect
        width: 200; height: 80
        Text { text: tagName }
        state: tagState
        states: State {
            name: "blah"
            PropertyChanges { target: rect; color: "red" }
        }
    }

    Component.onCompleted: {
        tagColumnModel.get(0).tagState = "blah";
    }
}


regards,

Bea

_______________________________________________
Qt-qml mailing list
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt-qml

Reply via email to