[Qt-qml] problem with transitions

Ivan De Marino ivan.de.marino at gmail.com
Wed Apr 21 19:51:04 CEST 2010


And here is a corrected version (with a diff).
Let me know if it works now.

On 20 April 2010 11:06, Gianni Valdambrini <aleister at develer.com> wrote:

> Hi all,
> I wrote a custom element that looks like a text element with a slide
> effect on the text change.
> The problem is in the transition. The element works in this way:
> there are 2 text elements, one placed on the left and the other on the
> right of the element. The latter has the same left and right anchor in
> order to hide the element.
> When the text changes the transition expands the text on the right
> changing its left anchor and shrinks the left one.
> Everything seems to work fine if I disable the transition, with the text
> on the right not visibile. Using the old version of Qml from Qt Creator Qml
> 1.3.8 everything works fine even with transition enable (replacing
> "properties" with "matchProperties" and the easing syntax), so I cannot
> figure out what is wrong with this code.
> Any help is appreciated.
>
> Thanks,
> Gianni
>
>
> import Qt 4.7
>
> Rectangle {
>        id: slidetext
>        property string text: ""
>        property int duration: 2000
>        property string easing: "Linear"
>        property string horizontalAlignment: "AlignLeft"
>        property string verticalAlignment: "AlignTop"
>
>        Text {
>                id: text1
>                anchors.left: parent.left
>                anchors.right: parent.right
>                anchors.top: parent.top
>                anchors.bottom: parent.bottom
>                text: ""
>                text: {
>                        if (parent.state == "" || parent.state == "State1")
>                                text
>                        else
>                                parent.text
>                }
>                horizontalAlignment: parent.horizontalAlignment
>                verticalAlignment: parent.verticalAlignment
>        }
>
>        Text {
>                id: text2
>                anchors.left: parent.right
>                anchors.right: parent.right
>                anchors.top: parent.top
>                anchors.bottom: parent.bottom
>                text: ""
>                text: {
>                        if (parent.state == "State2" || parent.state ==
> "State3")
>                                text
>                        else
>                                parent.text
>                }
>                horizontalAlignment: parent.horizontalAlignment
>                verticalAlignment: parent.verticalAlignment
>        }
>
>        Item {
>                id: privateProps
>                property bool isSliding: false
>        }
>
>        text: Behavior {
>                enabled: !privateProps.isSliding
>                PropertyAction { target: slidetext; property: "state";
> value: {
>                        if (state == "")
>                                "State1"
>                        else
>                                "State3"
>                        }
>                }
>        }
>
>        states: [
>                State {
>                        AnchorChanges { target: text1; right:
> slidetext.left; }
>                        AnchorChanges { target: text2; left: slidetext.left;
> }
>                        PropertyChanges { target: privateProps; isSliding:
> true }
>                        name: "State1"
>                },
>                State {
>                        AnchorChanges { target: text1; left:
> slidetext.right; right: slidetext.right; }
>                        AnchorChanges { target: text2; left: slidetext.left;
> right: slidetext.right; }
>                        PropertyChanges { target: privateProps; isSliding:
> false }
>                        name: "State2"
>                },
>                State {
>                        AnchorChanges { target: text1; left: slidetext.left;
> }
>                        AnchorChanges { target: text2; right:
> slidetext.left; }
>                        PropertyChanges { target: privateProps; isSliding:
> true }
>                        name: "State3"
>                }
>        ]
>        transitions: [
>                Transition {
>                        from: ""; to: "State1"
>                        SequentialAnimation {
>                                NumberAnimation { properties: "x,width";
>                                        easing.type: slidetext.easing;
> duration: slidetext.duration; }
>                                PropertyAction { target: slidetext;
> property: "state"; value: "State2"; }
>                        }
>                },
>                Transition {
>                        from: "State2"; to: "State3"
>                        SequentialAnimation {
>                                NumberAnimation { properties: "x,width";
>                                        easing.type: slidetext.easing;
> duration: slidetext.duration; }
>                                PropertyAction { target: slidetext;
> property: "state"; value: ""; }
>                        }
>                }
>        ]
> }
>
>
> _______________________________________________
> Qt-qml mailing list
> Qt-qml at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-qml
>
>


-- 
Ivan De Marino | Software Engineer | France Telecom R&D UK - Orange Labs
w. +44 20 8849 5806 | m. +44 7515 955 861 | m. +44 7974 156 216
ivan[dot]demarino[at]orange-ftgroup.com |
ivan[dot]de[dot]marino[at]gmail[dot]com
www.detronizator.org | www.linkedin.com/in/ivandemarino
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt.nokia.com/pipermail/qt-qml/attachments/20100421/aa910150/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SlidingText-correct.qml
Type: application/octet-stream
Size: 2425 bytes
Desc: not available
Url : http://lists.qt.nokia.com/pipermail/qt-qml/attachments/20100421/aa910150/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SlidingText.qml.diff
Type: text/x-patch
Size: 1433 bytes
Desc: not available
Url : http://lists.qt.nokia.com/pipermail/qt-qml/attachments/20100421/aa910150/attachment.bin 


More information about the Qt-qml mailing list