summaryrefslogtreecommitdiffstats
path: root/examples/declarative/flowview/flowview.qml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/declarative/flowview/flowview.qml')
-rw-r--r--examples/declarative/flowview/flowview.qml147
1 files changed, 147 insertions, 0 deletions
diff --git a/examples/declarative/flowview/flowview.qml b/examples/declarative/flowview/flowview.qml
new file mode 100644
index 0000000..ca31bcc
--- /dev/null
+++ b/examples/declarative/flowview/flowview.qml
@@ -0,0 +1,147 @@
+import Qt 4.6
+
+Rectangle {
+ width: 800
+ height: 800
+ color: "black"
+
+ Rectangle {
+ id: MyPhone
+ transformOrigin: "Center"
+ anchors.centerIn: parent
+ width: 800
+ height: 480
+ clip: true
+
+ states: State {
+ name: "rotated"
+ PropertyChanges { target: ListView; z: 2 }
+ PropertyChanges { target: TopBar; y: -30 }
+ PropertyChanges { target: BottomBar; y: 480 }
+ PropertyChanges { target: LeftBar; x: 0 }
+ PropertyChanges { target: RightBar; x: 770 }
+ }
+ transitions: Transition {
+ from: "" ; to: "rotated"
+ reversible: true
+ SequentialAnimation {
+ NumberAnimation { targets: [TopBar, BottomBar]; properties: "x,y"; easing: "easeInOutQuad" }
+ NumberAnimation { targets: [LeftBar, RightBar]; properties: "x,y"; easing: "easeInOutQuad"}
+ }
+ }
+
+ color: "lightsteelblue"
+
+ VisualDataModel {
+ id: Model
+ model: ListModel {
+ ListElement { background: "red"; weblet: "rect.qml" }
+ ListElement { background: "yellow"; weblet: "rect.qml" }
+ ListElement { background: "blue"; weblet: "rect.qml" }
+ ListElement { background: "green"; weblet: "flickr.qml" }
+ ListElement { background: "orange"; weblet: "rect.qml" }
+ ListElement { background: "lightblue"; weblet: "rect.qml" }
+ }
+ delegate: Package {
+ Item { id: List; Package.name: "list"; width:120; height: 400; }
+ Item { id: Grid; Package.name: "grid"; width:400; height: 120; }
+ Loader { id: MyContent; width:400; height: 120; source: weblet }
+
+ StateGroup {
+ states: [
+ State {
+ name: "InList"
+ when: MyPhone.state == "rotated"
+ ParentChange { target: MyContent; parent: List }
+ PropertyChanges { target: MyContent; x: 120; y: 0; rotation: 90}
+ },
+ State {
+ name: "InGrid"
+ when: MyPhone.state != "rotated"
+ ParentChange { target: MyContent; parent: Grid }
+ PropertyChanges { target: MyContent; x: 0; y: 0; }
+ }
+ ]
+ transitions: [
+ Transition {
+ from: "*"; to: "InGrid"
+ SequentialAnimation {
+ ParentAction{}
+ PauseAnimation { duration: 50 * List.FlowView.column }
+ NumberAnimation { properties: "x,y,rotation"; easing: "easeInOutQuad" }
+ }
+ },
+ Transition {
+ from: "*"; to: "InList"
+ SequentialAnimation {
+ ParentAction{}
+ PauseAnimation { duration: 50 * (Grid.FlowView.row * 2 + Grid.FlowView.column) }
+ NumberAnimation { properties: "x,y,rotation"; easing: "easeInOutQuad" }
+ }
+ }
+ ]
+ }
+
+ }
+ }
+
+ Item {
+ FlowView {
+ id: ListView
+ vertical: true
+ y: 40
+ x: 40
+ width: 800
+ height: 400
+ column: 1
+ model: Model.parts.list
+ }
+
+ FlowView {
+ z: 1
+ y: 60
+ width: 800
+ height: 400
+ column: 2
+ model: Model.parts.grid
+ }
+ }
+
+ Rectangle {
+ id: TopBar
+ width: 800
+ height: 30
+ }
+ Rectangle {
+ id: BottomBar
+ width: 800
+ height: 30
+ y: 450
+ }
+ Rectangle {
+ id: LeftBar
+ x: -30
+ width: 30
+ height: 480
+ }
+ Rectangle {
+ id: RightBar
+ x: 800
+ width: 30
+ height: 480
+ }
+ }
+
+ Rectangle {
+ width: 80
+ height: 80
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ Text { text: "Switch" }
+ MouseRegion {
+ anchors.fill: parent
+ onClicked: if(MyPhone.state == "rotated") MyPhone.state=""; else MyPhone.state = "rotated";
+ }
+ }
+
+}