summaryrefslogtreecommitdiffstats
path: root/demos/declarative/webbrowser/webbrowser.qml
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-09-02 01:27:10 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-09-02 01:27:10 (GMT)
commitd76c52133160f4394df2d6dc4d239c54833c1ab3 (patch)
tree4abdd21fbd6190a9a86609f99cf90cd04ff1090d /demos/declarative/webbrowser/webbrowser.qml
parentb52bfac9d05de835682b9c2b2e1d79e0246e708a (diff)
downloadQt-d76c52133160f4394df2d6dc4d239c54833c1ab3.zip
Qt-d76c52133160f4394df2d6dc4d239c54833c1ab3.tar.gz
Qt-d76c52133160f4394df2d6dc4d239c54833c1ab3.tar.bz2
Fix animation-after-zooming problem.
Ensures final viewport XY is set and that setting it always clears animations (even if the position is coincidentally unchanged). Case is changing width/height twice - once too small, then large enough again, first change starts correction animation, which must be stopped by second change.
Diffstat (limited to 'demos/declarative/webbrowser/webbrowser.qml')
-rw-r--r--demos/declarative/webbrowser/webbrowser.qml29
1 files changed, 23 insertions, 6 deletions
diff --git a/demos/declarative/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/webbrowser.qml
index 4c4ad7c..6217019 100644
--- a/demos/declarative/webbrowser/webbrowser.qml
+++ b/demos/declarative/webbrowser/webbrowser.qml
@@ -215,14 +215,14 @@ Item {
property: "scale"
from: 1
to: 0 // set before calling
- easing: "easeInOutQuad"
+ easing: "easeLinear"
duration: 200
}
NumberAnimation {
id: FlickVX
target: Flick
property: "viewportX"
- easing: "easeInOutQuad"
+ easing: "easeLinear"
duration: 200
from: 0 // set before calling
to: 0 // set before calling
@@ -231,21 +231,36 @@ Item {
id: FlickVY
target: Flick
property: "viewportY"
- easing: "easeInOutQuad"
+ easing: "easeLinear"
duration: 200
from: 0 // set before calling
to: 0 // set before calling
}
}
PropertyAction {
+ id: FinalZoom
+ target: MyWebView
+ property: "zoomFactor"
+ }
+ PropertyAction {
target: MyWebView
property: "scale"
value: 1.0
}
+ // Have to set the viewportXY, since the above 2
+ // size changes may have started a correction if
+ // zoomFactor < 1.0.
PropertyAction {
- id: FinalZoom
- target: MyWebView
- property: "zoomFactor"
+ id: FinalX
+ target: Flick
+ property: "viewportX"
+ value: 0 // set before calling
+ }
+ PropertyAction {
+ id: FinalY
+ target: Flick
+ property: "viewportY"
+ value: 0 // set before calling
}
PropertyAction {
target: MyWebView
@@ -259,8 +274,10 @@ Item {
ScaleAnim.to = sc;
FlickVX.from = Flick.viewportX
FlickVX.to = Math.min(Math.max(0,centerX-Flick.width/2),MyWebView.width*sc-Flick.width)
+ FinalX.value = Math.min(Math.max(0,centerX-Flick.width/2),MyWebView.width*sc-Flick.width)
FlickVY.from = Flick.viewportY
FlickVY.to = Math.min(Math.max(0,centerY-Flick.height/2),MyWebView.height*sc-Flick.height)
+ FinalY.value = Math.min(Math.max(0,centerY-Flick.height/2),MyWebView.height*sc-Flick.height)
FinalZoom.value = zoom
QuickZoom.start()
}