summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@nokia.com>2010-08-18 11:31:47 -0400
committerZeno Albisser <zeno.albisser@nokia.com>2010-08-18 11:31:47 -0400
commitec0d23d20ef959beade4e470f3ebefa71adf73ab (patch)
tree3aadfccbc495e47826fe052371826e930f746ffe
parentdc3454f7d4cdf5245c6a3be22e212921b8847504 (diff)
parent0c36a9e306f3559eef902d4fe13b5f6e96896b16 (diff)
Merge branch 'master' of gitorious.org:stuff/qml-dashboard
-rw-r--r--multilayer-dashboard/ColumnFour.qml112
-rw-r--r--multilayer-dashboard/ColumnOne.qml (renamed from multilayer-dashboard/RowOne.qml)0
-rw-r--r--multilayer-dashboard/ColumnThree.qml (renamed from multilayer-dashboard/RowThree.qml)0
-rw-r--r--multilayer-dashboard/ColumnTwo.qml (renamed from multilayer-dashboard/RowTwo.qml)0
-rwxr-xr-xmultilayer-dashboard/MainWidget.qml10
-rw-r--r--multilayer-dashboard/RotatableImage.qml38
-rw-r--r--multilayer-dashboard/RowFour.qml207
7 files changed, 144 insertions, 223 deletions
diff --git a/multilayer-dashboard/ColumnFour.qml b/multilayer-dashboard/ColumnFour.qml
new file mode 100644
index 0000000..a64906a
--- /dev/null
+++ b/multilayer-dashboard/ColumnFour.qml
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module 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 Qt 4.7
+import Qt.labs.gestures 1.0
+
+Rectangle {
+ id: myRow
+
+ width: 160
+ height: 340
+
+ property variant reparentWidget: myRow
+ property variant topLevel: myRow
+
+ Column {
+ id: tapWidgetContainer
+ width: parent.width
+ height: parent.height
+ spacing: 2
+
+ Repeater {
+ model: [
+ "../animals/images/ArtFavor_Cartoon_Sheep.png",
+ "../animals/images/danko_Friendly_rabbit.png",
+ "../animals/images/Gerald_G_Rubber_Duck.png",
+ "../animals/images/molumen_Green_sitting_frog.png",
+ "../animals/images/bugmenot_Happy_Pig.png",
+ "../animals/images/lemmling_Cartoon_cow.png",
+ "../animals/images/PeterM_Sad_cat.png",
+ "../animals/images/carlitos_Green_Worm.png",
+ "../animals/images/Gerald_G_Crawfish.png",
+ "../animals/images/Machovka_lady_bug.png",
+ "../animals/images/qt-logo.png"
+ ]
+ ExpandableWidget {
+ id: me
+ widget: RotatableImage {
+ source: modelData
+ GestureArea {
+ anchors.fill: parent
+ Tap { onFinished: me.fullScreen = !me.fullScreen }
+ }
+ }
+ fullScreenWidget: myRow.reparentWidget
+ }
+ }
+
+ property int maxY : (tapWidgetContainer.childrenRect.height > topLevel.height) ?
+ 0 :
+ (topLevel.height - tapWidgetContainer.childrenRect.height)
+ property int minY : (tapWidgetContainer.childrenRect.height > topLevel.height) ?
+ -(tapWidgetContainer.childrenRect.height - topLevel.height) :
+ 0
+ }
+
+ GestureArea {
+ id: rowGestureArea
+ anchors.fill: parent
+
+ Pan {
+ when: Math.abs(gesture.delta.y) > Math.abs(gesture.delta.x)
+ onUpdated: {
+ tapWidgetContainer.pos.y = tapWidgetContainer.pos.y + gesture.delta.y;
+
+ if (tapWidgetContainer.pos.y > tapWidgetContainer.maxY) { // limit pan down
+ tapWidgetContainer.pos.y = tapWidgetContainer.maxY;
+ }
+ else if (tapWidgetContainer.pos.y < tapWidgetContainer.minY) {// limit pan up
+ tapWidgetContainer.pos.y = tapWidgetContainer.minY;
+ }
+ }
+ }
+ }
+}
diff --git a/multilayer-dashboard/RowOne.qml b/multilayer-dashboard/ColumnOne.qml
index 8d049f4..8d049f4 100644
--- a/multilayer-dashboard/RowOne.qml
+++ b/multilayer-dashboard/ColumnOne.qml
diff --git a/multilayer-dashboard/RowThree.qml b/multilayer-dashboard/ColumnThree.qml
index 6af378d..6af378d 100644
--- a/multilayer-dashboard/RowThree.qml
+++ b/multilayer-dashboard/ColumnThree.qml
diff --git a/multilayer-dashboard/RowTwo.qml b/multilayer-dashboard/ColumnTwo.qml
index ab68490..ab68490 100644
--- a/multilayer-dashboard/RowTwo.qml
+++ b/multilayer-dashboard/ColumnTwo.qml
diff --git a/multilayer-dashboard/MainWidget.qml b/multilayer-dashboard/MainWidget.qml
index 940a76b..68da504 100755
--- a/multilayer-dashboard/MainWidget.qml
+++ b/multilayer-dashboard/MainWidget.qml
@@ -51,7 +51,7 @@ Rectangle {
width: parent.width
height: parent.height
- RowOne {
+ ColumnOne {
id: firstRow
anchors.left: parent.left
anchors.top: parent.top
@@ -60,7 +60,7 @@ Rectangle {
topLevel: dashboard
}
- RowTwo {
+ ColumnTwo {
id: secondRow
anchors.left : firstRow.right
anchors.top: parent.top
@@ -69,7 +69,7 @@ Rectangle {
topLevel: dashboard
}
- RowThree {
+ ColumnThree {
id: thirdRow
anchors.left : secondRow.right
anchors.top: parent.top
@@ -79,7 +79,7 @@ Rectangle {
}
- RowFour {
+ ColumnFour {
id: fourthRow
anchors.left : thirdRow.right
anchors.top: parent.top
@@ -88,7 +88,7 @@ Rectangle {
topLevel: dashboard
}
- RowFour {
+ ColumnFour {
id: fifthRow
anchors.left : fourthRow.right
anchors.top: parent.top
diff --git a/multilayer-dashboard/RotatableImage.qml b/multilayer-dashboard/RotatableImage.qml
index 5938252..59df4e2 100644
--- a/multilayer-dashboard/RotatableImage.qml
+++ b/multilayer-dashboard/RotatableImage.qml
@@ -42,6 +42,8 @@ import Qt 4.7
import Qt.labs.gestures 1.0
Rectangle {
+ id: me
+
property string source : "images/qt-logo.png"
width: 160
@@ -58,15 +60,13 @@ Rectangle {
}
function pinch(gesture) {
- if (parent.fullScreen) {
- if (gesture.changeFlags & PinchGesture.RotationAngleChanged)
- img.rotation += gesture.rotationAngle - gesture.lastRotationAngle
- if (gesture.changeFlags & PinchGesture.ScaleFactorChanged)
- img.scale *= gesture.scaleFactor
- if (gesture.changeFlags & PinchGesture.CenterPointChanged) {
- img.x += gesture.centerPoint.x - gesture.lastCenterPoint.x
- img.y += gesture.centerPoint.y - gesture.lastCenterPoint.y
- }
+ if (gesture.changeFlags & PinchGesture.RotationAngleChanged)
+ img.rotation += gesture.rotationAngle - gesture.lastRotationAngle
+ if (gesture.changeFlags & PinchGesture.ScaleFactorChanged)
+ img.scale *= gesture.scaleFactor
+ if (gesture.changeFlags & PinchGesture.CenterPointChanged) {
+ img.x += gesture.centerPoint.x - gesture.lastCenterPoint.x
+ img.y += gesture.centerPoint.y - gesture.lastCenterPoint.y
}
}
@@ -74,8 +74,24 @@ Rectangle {
anchors.fill: parent
Pinch {
- onStarted: pinch(gesture)
- onUpdated: pinch(gesture)
+ when: me.parent.fullScreen
+ onUpdated: {
+ if (gesture.changeFlags & PinchGesture.RotationAngleChanged)
+ img.rotation += gesture.rotationAngle - gesture.lastRotationAngle
+ if (gesture.changeFlags & PinchGesture.ScaleFactorChanged)
+ img.scale *= gesture.scaleFactor
+ if (gesture.changeFlags & PinchGesture.CenterPointChanged) {
+ img.x += gesture.centerPoint.x - gesture.lastCenterPoint.x
+ img.y += gesture.centerPoint.y - gesture.lastCenterPoint.y
+ }
+ }
+ }
+ Pan {
+ when: me.parent.fullScreen
+ onUpdated: {
+ img.x += gesture.delta.x
+ img.y += gesture.delta.y
+ }
}
}
}
diff --git a/multilayer-dashboard/RowFour.qml b/multilayer-dashboard/RowFour.qml
deleted file mode 100644
index 13c2d07..0000000
--- a/multilayer-dashboard/RowFour.qml
+++ /dev/null
@@ -1,207 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module 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 Qt 4.7
-import Qt.labs.gestures 1.0
-
-Rectangle {
- id: myRow
-
- width: 160
- height: 340
-
- property variant reparentWidget: myRow
- property variant topLevel: myRow
-
- Column {
- id: tapWidgetContainer
- width: parent.width
- height: parent.height
- spacing: 2
-
- ExpandableWidget {
- id: firstWidget
- widget: RotatableImage {
- source: "../animals/images/ArtFavor_Cartoon_Sheep.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: firstWidget.fullScreen = !firstWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: secondWidget
- widget: RotatableImage {
- source: "../animals/images/bugmenot_Happy_Pig.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: secondWidget.fullScreen = !secondWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: thirdWidget
- widget: RotatableImage {
- source: "../animals/images/carlitos_Green_Worm.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: thirdWidget.fullScreen = !thirdWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: fourthWidget
- widget: RotatableImage {
- source: "../animals/images/danko_Friendly_rabbit.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: fourthWidget.fullScreen = !fourthWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: fifthWidget
- widget: RotatableImage {
- source: "../animals/images/Gerald_G_Crawfish.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: fifthWidget.fullScreen = !fifthWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: sixthWidget
- widget: RotatableImage {
- source: "../animals/images/Gerald_G_Rubber_Duck.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: sixthWidget.fullScreen = !sixthWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: seventhWidget
- widget: RotatableImage {
- source: "../animals/images/lemmling_Cartoon_cow.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: seventhWidget.fullScreen = !seventhWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: eighthWidget
- widget: RotatableImage {
- source: "../animals/images/Machovka_lady_bug.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: eighthWidget.fullScreen = !eighthWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: ninthWidget
- widget: RotatableImage {
- source: "../animals/images/molumen_Green_sitting_frog.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: ninthWidget.fullScreen = !ninthWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: tenthWidget
- widget: RotatableImage {
- source: "../animals/images/PeterM_Sad_cat.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: tenthWidget.fullScreen = !tenthWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
- ExpandableWidget {
- id: eleventhWidget
- widget: RotatableImage {
- source: "../animals/images/qt-logo.png"
- GestureArea {
- anchors.fill: parent
- Tap { onFinished: eleventhWidget.fullScreen = !eleventhWidget.fullScreen }
- }
- }
- fullScreenWidget: myRow.reparentWidget
- }
-
- property int maxY : (tapWidgetContainer.childrenRect.height > topLevel.height) ?
- 0 :
- (topLevel.height - tapWidgetContainer.childrenRect.height)
- property int minY : (tapWidgetContainer.childrenRect.height > topLevel.height) ?
- -(tapWidgetContainer.childrenRect.height - topLevel.height) :
- 0
- }
-
- GestureArea {
- id: rowGestureArea
- anchors.fill: parent
-
- Pan {
- when: Math.abs(gesture.delta.y) > Math.abs(gesture.delta.x)
- onUpdated: {
- tapWidgetContainer.pos.y = tapWidgetContainer.pos.y + gesture.delta.y;
-
- if (tapWidgetContainer.pos.y > tapWidgetContainer.maxY) { // limit pan down
- tapWidgetContainer.pos.y = tapWidgetContainer.maxY;
- }
- else if (tapWidgetContainer.pos.y < tapWidgetContainer.minY) {// limit pan up
- tapWidgetContainer.pos.y = tapWidgetContainer.minY;
- }
- }
- }
- }
-}