summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLasse Räihä <lasse.raiha@digia.com>2013-04-18 14:33:22 +0300
committerKimmo Ollila <kimmo.ollila@digia.com>2013-04-18 14:46:41 +0300
commit0f0b203a21f2c5b962aca5992df4d278be2b0847 (patch)
tree033eab7f57eacecf5bb877ada6d8ce95cf62a68f
parente24b16c50642f0baa238bde3b29d75e95d1048a7 (diff)
Fixed scaling of the device objects.
Change-Id: I9c8ee14db359c37501cad3c3efe03a7fa97f1e25 Reviewed-by: Kimmo Ollila <kimmo.ollila@digia.com>
-rw-r--r--QtDemo/android/AndroidManifest.xml6
-rw-r--r--QtDemo/qml/QtDemo/Slide.qml10
-rw-r--r--QtDemo/qml/QtDemo/engine.js15
-rw-r--r--QtDemo/qml/QtDemo/main.qml6
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()