diff options
author | Lasse Räihä <lasse.raiha@digia.com> | 2013-04-18 14:33:22 +0300 |
---|---|---|
committer | Kimmo Ollila <kimmo.ollila@digia.com> | 2013-04-18 14:46:41 +0300 |
commit | 0f0b203a21f2c5b962aca5992df4d278be2b0847 (patch) | |
tree | 033eab7f57eacecf5bb877ada6d8ce95cf62a68f | |
parent | e24b16c50642f0baa238bde3b29d75e95d1048a7 (diff) |
Fixed scaling of the device objects.
Change-Id: I9c8ee14db359c37501cad3c3efe03a7fa97f1e25
Reviewed-by: Kimmo Ollila <kimmo.ollila@digia.com>
-rw-r--r-- | QtDemo/android/AndroidManifest.xml | 6 | ||||
-rw-r--r-- | QtDemo/qml/QtDemo/Slide.qml | 10 | ||||
-rw-r--r-- | QtDemo/qml/QtDemo/engine.js | 15 | ||||
-rw-r--r-- | QtDemo/qml/QtDemo/main.qml | 6 |
4 files changed, 19 insertions, 18 deletions
diff --git a/QtDemo/android/AndroidManifest.xml b/QtDemo/android/AndroidManifest.xml index 20fee87..68c1b45 100644 --- a/QtDemo/android/AndroidManifest.xml +++ b/QtDemo/android/AndroidManifest.xml @@ -1,11 +1,7 @@ <?xml version='1.0' encoding='utf-8'?> <manifest android:versionCode="1" package="org.qtproject.example.QtDemo" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0"> <application android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@string/app_name"> - <activity android:name="org.qtproject.qt5.android.bindings.QtActivity" - android:configChanges="orientation|locale|fontScale|keyboard|keyboardHidden" - android:screenOrientation="landscape" - android:theme="@android:style/Theme.NoTitleBar.Fullscreen" - android:label="@string/app_name"> + <activity android:name="org.qtproject.qt5.android.bindings.QtActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation|locale|fontScale|keyboard|keyboardHidden" android:screenOrientation="landscape" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> diff --git a/QtDemo/qml/QtDemo/Slide.qml b/QtDemo/qml/QtDemo/Slide.qml index 94d41ae..544e32f 100644 --- a/QtDemo/qml/QtDemo/Slide.qml +++ b/QtDemo/qml/QtDemo/Slide.qml @@ -17,6 +17,7 @@ Rectangle { property int device: 0 property bool loaded: false property real targetScale: 1 + property real targetAngle: device === 0 ? -90 : 0 property int maskWidth: device === 0 ? 375 : device === 1 ? 900 : device === 2 ? 840 : 867 property int maskHeight: device === 0 ? 835 : device === 1 ? 661 : device === 2 ? 763 : 520 @@ -27,6 +28,15 @@ Rectangle { property int maskVerticalOffset: device === 0 ? 44 : device === 1 ? 37 : device === 2 ? 91 : 51 property int maskHorizontalOffset: device === 0 ? -2 : device === 1 ? -5 : device === 2 ? 0 : 1 + function targetWidth() + { + return device == 0 ? height*scale: width*scale; + } + + function targetHeight() + { + return device == 0 ? width*scale : height*scale; + } Rectangle{ id: demoContainer diff --git a/QtDemo/qml/QtDemo/engine.js b/QtDemo/qml/QtDemo/engine.js index 91585c6..61c1adf 100644 --- a/QtDemo/qml/QtDemo/engine.js +++ b/QtDemo/qml/QtDemo/engine.js @@ -110,7 +110,9 @@ function selectTarget(uid){ } if (idx !== -1){ currentDemoId = idx - return {"x": positions[idx].x, "y": positions[idx].y, "angle": positions[idx].angle, "targetScale": objects[idx].targetScale} + return {"x": positions[idx].x, "y": positions[idx].y, + "angle": positions[idx].angle, "targetScale": objects[idx].targetScale, + "targetAngle": objects[idx].targetAngle} } return null; @@ -144,18 +146,11 @@ function boundingBox(){ function scaleToBox(destWidth, destHeight, sourceWidth, sourceHeight) { - var xscale = destWidth / sourceWidth; - var yscale = destHeight / sourceHeight; - - var scale = Math.max(xscale, yscale); - if (sourceWidth > destWidth || sourceHeight > destHeight) - scale = Math.min(xscale,yscale); - - return scale; + return Math.min(destWidth / sourceWidth, destHeight / sourceHeight); } function updateObjectScales(destWidth, destHeight) { for (var i=0; i<objects.length; i++) - objects[i].targetScale = scaleToBox(destWidth, destHeight, objects[i].width*objects[i].scale, objects[i].height*objects[i].scale); + objects[i].targetScale = scaleToBox(destWidth, destHeight, objects[i].targetWidth(), objects[i].targetHeight()); } diff --git a/QtDemo/qml/QtDemo/main.qml b/QtDemo/qml/QtDemo/main.qml index 85a9a5f..d6d5280 100644 --- a/QtDemo/qml/QtDemo/main.qml +++ b/QtDemo/qml/QtDemo/main.qml @@ -15,8 +15,8 @@ Rectangle{ function calculateScales(){ if (app.width > 0 && app.height > 0){ - var appWidth = app.width * 0.90; - var appHeight = app.height * 0.90; + var appWidth = app.width*0.9; + var appHeight = app.height*0.9; var bbox = Engine.boundingBox(); app.homeScaleFactor = Engine.scaleToBox(appWidth, appHeight, bbox.width, bbox.height); @@ -181,7 +181,7 @@ Rectangle{ yOffset = -target.y; rotationOriginX = target.x; rotationOriginY = target.y; - angle = -target.angle; + angle = -target.angle + target.targetAngle; zoomInTarget = target.targetScale; zoomAnimation.restart() |