| import QtQuick 2.0 |
| |
| Rectangle { |
| id: root |
| width: 500 |
| height: 600 |
| |
| // time to pause between each add, remove, etc. |
| // (obviously, must be less than 'duration' value to actually test that |
| // interrupting transitions will still produce the correct result) |
| property int timeBetweenActions: duration / 2 |
| |
| property int duration: 100 |
| |
| property int count: grid.count |
| |
| Component { |
| id: myDelegate |
| Rectangle { |
| id: wrapper |
| objectName: "wrapper" |
| width: 80 |
| height: 60 |
| border.width: 1 |
| Column { |
| Text { text: index } |
| Text { |
| text: wrapper.x + ", " + wrapper.y |
| } |
| Text { |
| id: textName |
| objectName: "textName" |
| text: name |
| } |
| } |
| color: GridView.isCurrentItem ? "lightsteelblue" : "white" |
| } |
| } |
| |
| GridView { |
| id: grid |
| |
| property bool populateDone |
| |
| property bool runningAddTargets: false |
| property bool runningAddDisplaced: false |
| property bool runningMoveTargets: false |
| property bool runningMoveDisplaced: false |
| property bool runningRemoveTargets: false |
| property bool runningRemoveDisplaced: false |
| |
| objectName: "grid" |
| width: 240 |
| height: 320 |
| cellWidth: 80 |
| cellHeight: 60 |
| anchors.centerIn: parent |
| cacheBuffer: 0 |
| model: testModel |
| delegate: myDelegate |
| |
| add: Transition { |
| id: addTargets |
| enabled: enableAddTransitions |
| SequentialAnimation { |
| ScriptAction { script: grid.runningAddTargets = true } |
| ParallelAnimation { |
| NumberAnimation { properties: "x"; from: addTargets_transitionFrom.x; duration: root.duration } |
| NumberAnimation { properties: "y"; from: addTargets_transitionFrom.y; duration: root.duration } |
| } |
| ScriptAction { script: grid.runningAddTargets = false } |
| } |
| } |
| |
| addDisplaced: Transition { |
| id: addDisplaced |
| enabled: enableAddTransitions |
| SequentialAnimation { |
| ScriptAction { script: grid.runningAddDisplaced = true } |
| ParallelAnimation { |
| NumberAnimation { properties: "x"; from: addDisplaced_transitionFrom.x; duration: root.duration } |
| NumberAnimation { properties: "y"; from: addDisplaced_transitionFrom.y; duration: root.duration } |
| } |
| ScriptAction { script: grid.runningAddDisplaced = false } |
| } |
| } |
| |
| move: Transition { |
| id: moveTargets |
| enabled: enableMoveTransitions |
| SequentialAnimation { |
| ScriptAction { script: grid.runningMoveTargets = true } |
| ParallelAnimation { |
| NumberAnimation { properties: "x"; from: moveTargets_transitionFrom.x; duration: root.duration } |
| NumberAnimation { properties: "y"; from: moveTargets_transitionFrom.y; duration: root.duration } |
| } |
| ScriptAction { script: grid.runningMoveTargets = false } |
| } |
| } |
| |
| moveDisplaced: Transition { |
| id: moveDisplaced |
| enabled: enableMoveTransitions |
| SequentialAnimation { |
| ScriptAction { script: grid.runningMoveDisplaced = true } |
| ParallelAnimation { |
| NumberAnimation { properties: "x"; from: moveDisplaced_transitionFrom.x; duration: root.duration } |
| NumberAnimation { properties: "y"; from: moveDisplaced_transitionFrom.y; duration: root.duration } |
| } |
| ScriptAction { script: grid.runningMoveDisplaced = false } |
| } |
| } |
| |
| remove: Transition { |
| id: removeTargets |
| enabled: enableRemoveTransitions |
| SequentialAnimation { |
| ScriptAction { script: grid.runningRemoveTargets = true } |
| ParallelAnimation { |
| NumberAnimation { properties: "x"; to: removeTargets_transitionTo.x; duration: root.duration } |
| NumberAnimation { properties: "y"; to: removeTargets_transitionTo.y; duration: root.duration } |
| } |
| ScriptAction { script: grid.runningRemoveTargets = false } |
| } |
| } |
| |
| removeDisplaced: Transition { |
| id: removeDisplaced |
| enabled: enableRemoveTransitions |
| SequentialAnimation { |
| ScriptAction { script: grid.runningRemoveDisplaced = true } |
| ParallelAnimation { |
| NumberAnimation { properties: "x"; from: removeDisplaced_transitionFrom.x; duration: root.duration } |
| NumberAnimation { properties: "y"; from: removeDisplaced_transitionFrom.y; duration: root.duration } |
| } |
| ScriptAction { script: grid.runningRemoveDisplaced = false } |
| } |
| } |
| } |
| |
| Rectangle { |
| anchors.fill: grid |
| color: "lightsteelblue" |
| opacity: 0.2 |
| } |
| |
| Rectangle { |
| anchors.bottom: parent.bottom |
| width: 20; height: 20 |
| color: "white" |
| NumberAnimation on x { loops: Animation.Infinite; from: 0; to: 300; duration: 100000 } |
| } |
| } |
| |
| |
| |