diff options
author | Zeno Albisser <zeno.albisser@nokia.com> | 2010-08-18 11:31:47 -0400 |
---|---|---|
committer | Zeno Albisser <zeno.albisser@nokia.com> | 2010-08-18 11:31:47 -0400 |
commit | ec0d23d20ef959beade4e470f3ebefa71adf73ab (patch) | |
tree | 3aadfccbc495e47826fe052371826e930f746ffe | |
parent | dc3454f7d4cdf5245c6a3be22e212921b8847504 (diff) | |
parent | 0c36a9e306f3559eef902d4fe13b5f6e96896b16 (diff) |
Merge branch 'master' of gitorious.org:stuff/qml-dashboard
-rw-r--r-- | multilayer-dashboard/ColumnFour.qml | 112 | ||||
-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-x | multilayer-dashboard/MainWidget.qml | 10 | ||||
-rw-r--r-- | multilayer-dashboard/RotatableImage.qml | 38 | ||||
-rw-r--r-- | multilayer-dashboard/RowFour.qml | 207 |
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; - } - } - } - } -} |