summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2009-05-14 05:41:14 (GMT)
committerMartin Jones <martin.jones@nokia.com>2009-05-14 05:41:14 (GMT)
commit309e8a96af899c612ea26b73fc97d9d377bc9819 (patch)
tree4b4629a1a3ff7ccf63394e2d75029e3e87316eb7
parent875c4af96f094dad9158d77e926049dbf9a75475 (diff)
downloadQt-309e8a96af899c612ea26b73fc97d9d377bc9819.zip
Qt-309e8a96af899c612ea26b73fc97d9d377bc9819.tar.gz
Qt-309e8a96af899c612ea26b73fc97d9d377bc9819.tar.bz2
Flickr demo: Scale the image about the center of the visible area.
-rw-r--r--demos/declarative/flickr/content/ImageDetails.qml19
1 files changed, 17 insertions, 2 deletions
diff --git a/demos/declarative/flickr/content/ImageDetails.qml b/demos/declarative/flickr/content/ImageDetails.qml
index d575be9..b8091f2 100644
--- a/demos/declarative/flickr/content/ImageDetails.qml
+++ b/demos/declarative/flickr/content/ImageDetails.qml
@@ -12,6 +12,7 @@ Flipable {
property string photoDate
property string photoUrl
property int rating: 2
+ property var prevScale: 1.0
signal closed
@@ -93,7 +94,8 @@ Flipable {
// 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);
+ prevScale = Math.min(Slider.minimum, 1);
+ Slider.value = prevScale;
}
}
}
@@ -109,7 +111,20 @@ Flipable {
anchors.centeredIn: parent; color: "white"; font.bold: true
}
- Slider { id: Slider; x: 25; y: 374; visible: { BigImage.status == 0 && maximum > minimum } }
+ Slider {
+ id: Slider; x: 25; y: 374; visible: { BigImage.status == 0 && maximum > minimum }
+ onValueChanged: {
+ if (BigImage.width * value > Flick.width) {
+ var xoff = (Flick.width/2 + Flick.xPosition) * value / prevScale;
+ Flick.xPosition = xoff - Flick.width/2;
+ }
+ if (BigImage.height * value > Flick.height) {
+ var yoff = (Flick.height/2 + Flick.yPosition) * value / prevScale;
+ Flick.yPosition = yoff - Flick.height/2;
+ }
+ prevScale = value;
+ }
+ }
}
states: [