aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/positioners
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quick/positioners')
-rw-r--r--examples/quick/positioners/content/add.pngbin810 -> 0 bytes
-rw-r--r--examples/quick/positioners/content/del.pngbin488 -> 0 bytes
-rw-r--r--examples/quick/positioners/main.cpp (renamed from examples/quick/positioners/content/Button.qml)41
-rw-r--r--examples/quick/positioners/positioners-attachedproperties.qml43
-rw-r--r--examples/quick/positioners/positioners-transitions.qml243
-rw-r--r--examples/quick/positioners/positioners.pro10
-rw-r--r--examples/quick/positioners/positioners.qml239
-rw-r--r--examples/quick/positioners/positioners.qmlproject16
8 files changed, 326 insertions, 266 deletions
diff --git a/examples/quick/positioners/content/add.png b/examples/quick/positioners/content/add.png
deleted file mode 100644
index 1ee45423e3..0000000000
--- a/examples/quick/positioners/content/add.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/positioners/content/del.png b/examples/quick/positioners/content/del.png
deleted file mode 100644
index 8d2eaed523..0000000000
--- a/examples/quick/positioners/content/del.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/positioners/content/Button.qml b/examples/quick/positioners/main.cpp
index ee3aa9057e..cfe8db915d 100644
--- a/examples/quick/positioners/content/Button.qml
+++ b/examples/quick/positioners/main.cpp
@@ -37,42 +37,5 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: page
-
- property string text
- property string icon
- signal clicked
-
- border.color: "black"; color: "steelblue"; radius: 5
- width: pix.width + textelement.width + 13
- height: pix.height + 10
-
- Image { id: pix; x: 5; y:5; source: parent.icon }
-
- Text {
- id: textelement
- text: page.text; color: "white"
- x: pix.width + pix.x + 3
- anchors.verticalCenter: pix.verticalCenter
- }
-
- MouseArea {
- id: mr
- anchors.fill: parent
- onClicked: { parent.focus = true; page.clicked() }
- }
-
- states: State {
- name: "pressed"; when: mr.pressed
- PropertyChanges { target: textelement; x: 5 }
- PropertyChanges { target: pix; x: textelement.x + textelement.width + 3 }
- }
-
- transitions: Transition {
- NumberAnimation { properties: "x,left"; easing.type: Easing.InOutQuad; duration: 200 }
- }
-}
+#include "../../shared/shared.h"
+DECLARATIVE_EXAMPLE_MAIN(positioners)
diff --git a/examples/quick/positioners/positioners-attachedproperties.qml b/examples/quick/positioners/positioners-attachedproperties.qml
index a05927f5ea..af1124368d 100644
--- a/examples/quick/positioners/positioners-attachedproperties.qml
+++ b/examples/quick/positioners/positioners-attachedproperties.qml
@@ -41,12 +41,12 @@
import QtQuick 2.0
Rectangle {
- width: 400
- height: 100
+ width: 320
+ height: 480
- // Create row with four rectangles, the fourth one is hidden
- Row {
- id: row
+ // Create column with four rectangles, the fourth one is hidden
+ Column {
+ id: column
Rectangle {
id: red
@@ -54,10 +54,19 @@ Rectangle {
width: 100
height: 100
+ Text {
+ anchors.left: parent.right
+ anchors.leftMargin: 20
+ anchors.verticalCenter: parent.verticalCenter
+ text: "Index: " + parent.Positioner.index
+ + (parent.Positioner.isFirstItem ? " (First)" : "")
+ + (parent.Positioner.isLastItem ? " (Last)" : "")
+ }
+
// When mouse is clicked, display the values of the positioner
MouseArea {
anchors.fill: parent
- onClicked: row.showInfo(red.Positioner)
+ onClicked: column.showInfo(red.Positioner)
}
}
@@ -67,10 +76,19 @@ Rectangle {
width: 100
height: 100
+ Text {
+ anchors.left: parent.right
+ anchors.leftMargin: 20
+ anchors.verticalCenter: parent.verticalCenter
+ text: "Index: " + parent.Positioner.index
+ + (parent.Positioner.isFirstItem ? " (First)" : "")
+ + (parent.Positioner.isLastItem ? " (Last)" : "")
+ }
+
// When mouse is clicked, display the values of the positioner
MouseArea {
anchors.fill: parent
- onClicked: row.showInfo(green.Positioner)
+ onClicked: column.showInfo(green.Positioner)
}
}
@@ -80,10 +98,19 @@ Rectangle {
width: 100
height: 100
+ Text {
+ anchors.left: parent.right
+ anchors.leftMargin: 20
+ anchors.verticalCenter: parent.verticalCenter
+ text: "Index: " + parent.Positioner.index
+ + (parent.Positioner.isFirstItem ? " (First)" : "")
+ + (parent.Positioner.isLastItem ? " (Last)" : "")
+ }
+
// When mouse is clicked, display the values of the positioner
MouseArea {
anchors.fill: parent
- onClicked: row.showInfo(blue.Positioner)
+ onClicked: column.showInfo(blue.Positioner)
}
}
diff --git a/examples/quick/positioners/positioners-transitions.qml b/examples/quick/positioners/positioners-transitions.qml
new file mode 100644
index 0000000000..6081c9f8a8
--- /dev/null
+++ b/examples/quick/positioners/positioners-transitions.qml
@@ -0,0 +1,243 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ id: page
+ width: 320; height: 480
+ property int effectiveOpacity: 1.0
+ Timer {
+ interval: 2000
+ running: true
+ repeat: true
+ onTriggered: effectiveOpacity = (effectiveOpacity == 1.0 ? 0.0 : 1.0)
+ }
+
+ Column {
+ id: layout1
+ y: 0
+ move: Transition {
+ NumberAnimation { properties: "y"; easing.type: Easing.OutBounce }
+ }
+ add: Transition {
+ NumberAnimation { properties: "y"; easing.type: Easing.OutQuad }
+ }
+
+ Rectangle { color: "red"; width: 100; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueV1
+ visible: opacity != 0
+ width: 100; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "green"; width: 100; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueV2
+ visible: opacity != 0
+ width: 100; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "orange"; width: 100; height: 50; border.color: "black"; radius: 15 }
+ Rectangle { color: "red"; width: 100; height: 50; border.color: "black"; radius: 15 }
+ }
+
+ Row {
+ id: layout2
+ y: 320
+ move: Transition {
+ NumberAnimation { properties: "x"; easing.type: Easing.OutBounce }
+ }
+ add: Transition {
+ NumberAnimation { properties: "x"; easing.type: Easing.OutQuad }
+ }
+
+ Rectangle { color: "red"; width: 50; height: 100; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueH1
+ visible: opacity != 0
+ width: 50; height: 100
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "green"; width: 50; height: 100; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueH2
+ visible: opacity != 0
+ width: 50; height: 100
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "orange"; width: 50; height: 100; border.color: "black"; radius: 15 }
+ Rectangle { color: "red"; width: 50; height: 100; border.color: "black"; radius: 15 }
+ }
+
+ Grid {
+ x: 120; y: 0
+ columns: 3
+
+ move: Transition {
+ NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
+ }
+
+ add: Transition {
+ NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
+ }
+
+ Rectangle { color: "red"; width: 50; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueG1
+ visible: opacity != 0
+ width: 50; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "green"; width: 50; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueG2
+ visible: opacity != 0
+ width: 50; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "orange"; width: 50; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueG3
+ visible: opacity != 0
+ width: 50; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "red"; width: 50; height: 50; border.color: "black"; radius: 15 }
+ Rectangle { color: "green"; width: 50; height: 50; border.color: "black"; radius: 15 }
+ Rectangle { color: "orange"; width: 50; height: 50; border.color: "black"; radius: 15 }
+ }
+
+ Flow {
+ id: layout4
+ x: 120; y: 160; width: 150
+
+ move: Transition {
+ NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
+ }
+
+ add: Transition {
+ NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
+ }
+
+ Rectangle { color: "red"; width: 50; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueF1
+ visible: opacity != 0
+ width: 60; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "green"; width: 30; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueF2
+ visible: opacity != 0
+ width: 60; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "orange"; width: 50; height: 50; border.color: "black"; radius: 15 }
+
+ Rectangle {
+ id: blueF3
+ visible: opacity != 0
+ width: 40; height: 50
+ color: "lightsteelblue"
+ border.color: "black"
+ radius: 15
+ Behavior on opacity { NumberAnimation {} }
+ opacity: effectiveOpacity
+ }
+
+ Rectangle { color: "red"; width: 80; height: 50; border.color: "black"; radius: 15 }
+ }
+}
diff --git a/examples/quick/positioners/positioners.pro b/examples/quick/positioners/positioners.pro
new file mode 100644
index 0000000000..15530dc89f
--- /dev/null
+++ b/examples/quick/positioners/positioners.pro
@@ -0,0 +1,10 @@
+TEMPLATE = app
+
+QT += quick declarative
+SOURCES += main.cpp
+
+target.path = $$[QT_INSTALL_EXAMPLES]/qtdeclarative/quick/positioners
+qml.files = positioners.qml positioners-transitions.qml positioners-attachedproperties.qml
+qml.path = $$[QT_INSTALL_EXAMPLES]/qtdeclarative/quick/positioners
+INSTALLS += target qml
+
diff --git a/examples/quick/positioners/positioners.qml b/examples/quick/positioners/positioners.qml
index 6627ad7dd4..373fa28cae 100644
--- a/examples/quick/positioners/positioners.qml
+++ b/examples/quick/positioners/positioners.qml
@@ -39,230 +39,31 @@
****************************************************************************/
import QtQuick 2.0
-import "content"
+import "../../shared" as Examples
-Rectangle {
- id: page
- width: 320; height: 480
- Flickable {
- anchors.fill: parent
- contentWidth: 420; contentHeight: 420
-
- Column {
- id: layout1
- y: 0
- move: Transition {
- NumberAnimation { properties: "y"; easing.type: Easing.OutBounce }
- }
- add: Transition {
- NumberAnimation { properties: "y"; easing.type: Easing.OutQuad }
- }
-
- Rectangle { color: "red"; width: 100; height: 50; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueV1
- visible: opacity != 0
- width: 100; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
-
- Rectangle { color: "green"; width: 100; height: 50; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueV2
- visible: opacity != 0
- width: 100; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
-
- Rectangle { color: "orange"; width: 100; height: 50; border.color: "black"; radius: 15 }
- }
-
- Row {
- id: layout2
- y: 300
- move: Transition {
- NumberAnimation { properties: "x"; easing.type: Easing.OutBounce }
- }
- add: Transition {
- NumberAnimation { properties: "x"; easing.type: Easing.OutQuad }
- }
-
- Rectangle { color: "red"; width: 50; height: 100; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueH1
- visible: opacity != 0
- width: 50; height: 100
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
-
- Rectangle { color: "green"; width: 50; height: 100; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueH2
- visible: opacity != 0
- width: 50; height: 100
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
-
- Rectangle { color: "orange"; width: 50; height: 100; border.color: "black"; radius: 15 }
- }
-
- Button {
- x: 135; y: 90
- text: "Remove"
- icon: "del.png"
-
- onClicked: {
- blueH2.opacity = 0
- blueH1.opacity = 0
- blueV1.opacity = 0
- blueV2.opacity = 0
- blueG1.opacity = 0
- blueG2.opacity = 0
- blueG3.opacity = 0
- blueF1.opacity = 0
- blueF2.opacity = 0
- blueF3.opacity = 0
- }
- }
-
- Button {
- x: 145; y: 140
- text: "Add"
- icon: "add.png"
-
- onClicked: {
- blueH2.opacity = 1
- blueH1.opacity = 1
- blueV1.opacity = 1
- blueV2.opacity = 1
- blueG1.opacity = 1
- blueG2.opacity = 1
- blueG3.opacity = 1
- blueF1.opacity = 1
- blueF2.opacity = 1
- blueF3.opacity = 1
- }
- }
-
- Grid {
- x: 260; y: 0
- columns: 3
-
- move: Transition {
- NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
- }
-
- add: Transition {
- NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
- }
-
- Rectangle { color: "red"; width: 50; height: 50; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueG1
- visible: opacity != 0
- width: 50; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
-
- Rectangle { color: "green"; width: 50; height: 50; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueG2
- visible: opacity != 0
- width: 50; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
-
- Rectangle { color: "orange"; width: 50; height: 50; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueG3
- visible: opacity != 0
- width: 50; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
+/*!
+ \title QtQuick Examples - Positioners
+ \example quick/positioners
+ \brief This is a collection of QML Positioner examples.
+ \image qml-positioners-example.png
- Rectangle { color: "red"; width: 50; height: 50; border.color: "black"; radius: 15 }
- Rectangle { color: "green"; width: 50; height: 50; border.color: "black"; radius: 15 }
- Rectangle { color: "orange"; width: 50; height: 50; border.color: "black"; radius: 15 }
- }
-
- Flow {
- id: layout4
- x: 260; y: 250; width: 150
-
- move: Transition {
- NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
- }
+ This is a collection of small QML examples relating to positioners. Each example is
+ a small QML file emphasizing a particular element or feature.
- add: Transition {
- NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }
- }
-
- Rectangle { color: "red"; width: 50; height: 50; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueF1
- visible: opacity != 0
- width: 60; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
+ Transitions shows animated transistions when showing or hiding items in a positioner.
- Rectangle { color: "green"; width: 30; height: 50; border.color: "black"; radius: 15 }
+ Attached Properties show using the attached property to determine where in a positioner an item is.
+*/
- Rectangle {
- id: blueF2
- visible: opacity != 0
- width: 60; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
- }
-
- Rectangle { color: "orange"; width: 50; height: 50; border.color: "black"; radius: 15 }
-
- Rectangle {
- id: blueF3
- visible: opacity != 0
- width: 40; height: 50
- color: "lightsteelblue"
- border.color: "black"
- radius: 15
- Behavior on opacity { NumberAnimation {} }
+Item {
+ height: 480
+ width: 320
+ Examples.LauncherList {
+ id: ll
+ anchors.fill: parent
+ Component.onCompleted: {
+ addExample("Transitions", "Fluidly shows and hides elements", Qt.resolvedUrl("positioners-transitions.qml"));
+ addExample("Attached Properties", "Knows where it is in the positioner", Qt.resolvedUrl("positioners-attachedproperties.qml"));
}
-
- Rectangle { color: "red"; width: 80; height: 50; border.color: "black"; radius: 15 }
- }
-
}
}
diff --git a/examples/quick/positioners/positioners.qmlproject b/examples/quick/positioners/positioners.qmlproject
new file mode 100644
index 0000000000..03a2012225
--- /dev/null
+++ b/examples/quick/positioners/positioners.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.1
+
+Project {
+ mainFile: "positioners.qml"
+
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+}