diff options
author | Ian Walters <ian.walters@nokia.com> | 2009-05-14 03:17:54 (GMT) |
---|---|---|
committer | Ian Walters <ian.walters@nokia.com> | 2009-05-14 03:17:54 (GMT) |
commit | 19e5cdcbada9be89121055852f4600fba3c432d1 (patch) | |
tree | eff3ddf3709ab9f274813fdaf09ece68c03d6723 /demos/declarative | |
parent | f038283bd01426a7a9d6b2b8fc677b0205481aa3 (diff) | |
parent | 46e7c3f7132aac3838bca4510675f8ad7f70a115 (diff) | |
download | Qt-19e5cdcbada9be89121055852f4600fba3c432d1.zip Qt-19e5cdcbada9be89121055852f4600fba3c432d1.tar.gz Qt-19e5cdcbada9be89121055852f4600fba3c432d1.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'demos/declarative')
-rw-r--r-- | demos/declarative/flickr/content/ImageDetails.qml | 33 | ||||
-rw-r--r-- | demos/declarative/flickr/content/Slider.qml | 10 | ||||
-rw-r--r-- | demos/declarative/flickr/flickr.qml | 27 |
3 files changed, 31 insertions, 39 deletions
diff --git a/demos/declarative/flickr/content/ImageDetails.qml b/demos/declarative/flickr/content/ImageDetails.qml index 5c2d885..d575be9 100644 --- a/demos/declarative/flickr/content/ImageDetails.qml +++ b/demos/declarative/flickr/content/ImageDetails.qml @@ -2,8 +2,6 @@ Flipable { id: Container property var frontContainer: ContainerFront - property var flickableArea: Flickable - property var slider: Slider property string photoTitle: "" property string photoDescription: "" property string photoTags: "" @@ -77,13 +75,28 @@ Flipable { Progress { anchors.centeredIn: parent; width: 200; height: 18; progress: BigImage.progress; visible: BigImage.status } Flickable { id: Flick; width: Container.width - 10; height: Container.height - 10 - x: 5; y: 5; clip: true; viewportWidth: (BigImage.width * BigImage.scale) + BigImage.x; - viewportHeight: BigImage.height * BigImage.scale - - Image { - id: BigImage; source: Container.photoUrl; scale: Slider.value - x:Math.max(0, ((Flick.width/2)-(width * scale / 2))); - y:Math.max(0, (Flick.height/2)-(height * scale / 2)); + x: 5; y: 5; clip: true; + viewportWidth: ImageContainer.width; viewportHeight: ImageContainer.height + + Item { + id: ImageContainer + width: Math.max(BigImage.width * BigImage.scale, Flick.width); + height: Math.max(BigImage.height * BigImage.scale, Flick.height); + + Image { + id: BigImage; source: Container.photoUrl; scale: Slider.value + // Center image if it is smaller than the flickable area. + x: ImageContainer.width > width*scale ? (ImageContainer.width - width*scale) / 2 : 0 + y: ImageContainer.height > height*scale ? (ImageContainer.height - height*scale) / 2 : 0 + anchors.centeredIn: parent + onStatusChanged : { + // Default scale shows the entire image. + if (status == 0 && width != 0) { + Slider.minimum = Math.min(Flick.width / width, Flick.height / height); + Slider.value = Math.min(Slider.minimum, 1); + } + } + } } } @@ -96,7 +109,7 @@ Flipable { anchors.centeredIn: parent; color: "white"; font.bold: true } - Slider { id: Slider; x: 25; y: 374; visible: BigImage.status == 0; imageWidth: Container.photoWidth; imageHeight: Container.photoHeight } + Slider { id: Slider; x: 25; y: 374; visible: { BigImage.status == 0 && maximum > minimum } } } states: [ diff --git a/demos/declarative/flickr/content/Slider.qml b/demos/declarative/flickr/content/Slider.qml index c6a3e5e..92f4993 100644 --- a/demos/declarative/flickr/content/Slider.qml +++ b/demos/declarative/flickr/content/Slider.qml @@ -1,11 +1,12 @@ Item { id: Slider; width: 400; height: 16 - property var value: Handle.x / Slider.xMax + // value is read/write. + property real value + onValueChanged: { Handle.x = (value - minimum) * Slider.xMax / (maximum - minimum); } + property real maximum: 1 + property real minimum: 1 property int xMax: Slider.width - Handle.width - 2 - property var handle: Handle - property int imageWidth - property int imageHeight Rect { id: Container; anchors.fill: parent; gradientColor: "#66000000"; @@ -20,6 +21,7 @@ Item { MouseRegion { anchors.fill: parent; drag.target: parent drag.axis: "x"; drag.xmin: 2; drag.xmax: Slider.xMax + onPositionChanged: { value = (maximum - minimum) * Handle.x / Slider.xMax + minimum; } } } } diff --git a/demos/declarative/flickr/flickr.qml b/demos/declarative/flickr/flickr.qml index b33b00f..b113f56 100644 --- a/demos/declarative/flickr/flickr.qml +++ b/demos/declarative/flickr/flickr.qml @@ -48,7 +48,6 @@ Item { Script { function photoClicked() { ImageDetails.photoTitle = title; - ImageDetails.flickableArea.yPosition = 0; ImageDetails.photoDescription = description; ImageDetails.photoTags = tags; ImageDetails.photoWidth = photoWidth; @@ -58,7 +57,6 @@ Item { ImageDetails.photoDate = photoDate; ImageDetails.photoUrl = url; ImageDetails.rating = 0; - ImageDetails.slider.handle.x = ImageDetails.slider.xMax; Wrapper.state = "Details"; } } @@ -194,7 +192,7 @@ Item { transitions: [ Transition { fromState: "*"; toState: "*" - NumericAnimation { properties: "y"; duration: 650; easing: "easeOutBounce(amplitude:0.1)" } + NumericAnimation { properties: "y"; duration: 1000; easing: "easeOutBounce(amplitude:0.5)" } } ] } @@ -203,27 +201,6 @@ Item { id: CategoryText; anchors.horizontalCenter: parent.horizontalCenter; y: 15; text: "Flickr - " + (FeedModel.tags=="" ? "Uploads from everyone" : "Recent Uploads tagged " + FeedModel.tags) - font.size: 16; font.bold: true; color: "white"; style: "Raised"; styleColor: "black" - } - - Image { - source: "content/pics/fingerpoint.png" - opacity: finger.pressed ? 0 : 1 - x: finger.mouseX-16 - y: finger.mouseY-16 - } - - Image { - source: "content/pics/fingerpoint-pressed.png" - opacity: finger.pressed ? 1.0 : 0.0 - x: finger.mouseX-16 - y: finger.mouseY-16 - } - - MouseRegion { - // this region is just to show where the finger is (good for videos) - id: finger - absorb: false - anchors.fill: parent + font.size: 20; font.bold: true; color: "white"; style: "Raised"; styleColor: "black" } } |