Improve output of multiple screen resolution 31/15931/1
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
Wed, 1 Aug 2018 07:07:49 +0000 (07:07 +0000)
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
Thu, 2 Aug 2018 07:31:27 +0000 (07:31 +0000)
To improve output on various monitor with various resolution,
use scale_factor from WM to fit various screen resolution.

Bug-AGL: SPEC-1568, SPEC-1569, SPEC-1611

Change-Id: I6e71fd0a2c9cf5fbcf23ea529a094b74da6c1841
Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
launcher/qml/Launcher.qml
launcher/src/main.cpp

index ccca186..6caad1e 100644 (file)
  * limitations under the License.
  */
 import QtQuick 2.6
+import QtQuick.Window 2.1
 import QtQuick.Layouts 1.1
 import QtQuick.Controls 2.0
 import AppModel 1.0
 
-ApplicationWindow {
-    id: root
-    // Layout.fillWidth: true
-    // Layout.fillHeight: true
-    // width: 1080
-    // Layout.preferredHeight: 1487
+Window {
+    visible: true
+    flags: Qt.FramelessWindowHint
+    width: container.width * container.scale
+    height: container.height * container.scale
 
     property int pid: -1
-    Image {
-        y: 218
+
+    Item {
+        id: container
         anchors.centerIn: parent
-        source: './images/AGL_HMI_Blue_Background_Car-01.png'
-    }
+        width: 1080
+        height: 1487
+        scale: screenInfo.scale_factor()
 
+        Image {
+          anchors.centerIn: parent
+          source: './images/AGL_HMI_Blue_Background_Car-01.png'
+        }
 
     GridView {
         id: grid
-        x: 60
-        y: 100
-        width: 960
-        height: 1280
-        anchors.horizontalCenter: parent.horizontalCenter
-        anchors.verticalCenter: parent.verticalCenter
+        anchors {
+          topMargin: 60; bottomMargin: 0 
+          leftMargin: 60; rightMargin: 60
+          fill: parent
+        }
         contentHeight: 320
         flickableDirection: Flickable.AutoFlickDirection
         snapMode: GridView.SnapOneRow
@@ -65,10 +70,6 @@ ApplicationWindow {
             property int index: grid.indexAt(loc.mouseX, loc.mouseY)
             x: 62
             y: 264
-            anchors.rightMargin: 0
-            anchors.bottomMargin: 0
-            anchors.leftMargin: 0
-            anchors.topMargin: 0
             onPressAndHold: currentId = applicationModel.id(newIndex = index)
             onReleased: {
                 if (currentId === '') {
@@ -92,3 +93,4 @@ ApplicationWindow {
         }
     }
 }
+}
index ea3ed74..91a1d80 100644 (file)
@@ -100,6 +100,8 @@ int main(int argc, char *argv[])
         exit(EXIT_FAILURE);
     }
 
+    AGLScreenInfo screenInfo(layoutHandler->get_scale_factor());
+
     if (layoutHandler->requestSurface(myname) != 0) {
         exit(EXIT_FAILURE);
     }
@@ -156,9 +158,10 @@ int main(int argc, char *argv[])
 
     // mail.qml loading
     QQmlApplicationEngine engine;
-    engine.rootContext()->setContextProperty("layoutHandler", layoutHandler);
-    engine.rootContext()->setContextProperty("homescreenHandler", homescreenHandler);
-    engine.rootContext()->setContextProperty("launcher", launcher);
+    engine.rootContext()->setContextProperty(QStringLiteral("layoutHandler"), layoutHandler);
+    engine.rootContext()->setContextProperty(QStringLiteral("homescreenHandler"), homescreenHandler);
+    engine.rootContext()->setContextProperty(QStringLiteral("launcher"), launcher);
+    engine.rootContext()->setContextProperty(QStringLiteral("screenInfo"), &screenInfo);
     engine.load(QUrl(QStringLiteral("qrc:/Launcher.qml")));
 
     QObject *root = engine.rootObjects().first();