Improve output of multiple screen resolution 39/15939/1
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
Thu, 2 Aug 2018 09:51:52 +0000 (09:51 +0000)
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
Thu, 2 Aug 2018 09:51:52 +0000 (09:51 +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: Ic0b8538259a4e9949caa099cff475935af609d09
Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
app/Settings.qml
app/main.cpp

index b3a622a..256467b 100644 (file)
@@ -26,12 +26,21 @@ import 'version'
 
 ApplicationWindow {
     id: root
+    width: container.width * container.scale
+    height: container.height * container.scale
 
     onVisibleChanged: {
         if (!visible)
             stack.pop(settings)
     }
 
+    Item {
+        id: container
+        anchors.centerIn: parent
+        width: 1080
+        height: 1487
+        scale: screenInfo.scale_factor()
+
     StackView {
         id: stack
         anchors.fill: parent
@@ -66,3 +75,4 @@ ApplicationWindow {
         Version {}
     }
 }
+}
index 082c444..b4c5be3 100644 (file)
@@ -95,6 +95,7 @@ int main(int argc, char *argv[])
     if(qwm->init(port,secret) != 0) {
         exit(EXIT_FAILURE);
     }
+    AGLScreenInfo screenInfo(qwm->get_scale_factor());
     // Request a surface as described in layers.json windowmanager’s file
     if(qwm->requestSurface(myname) != 0) {
         exit(EXIT_FAILURE);
@@ -143,6 +144,7 @@ int main(int argc, char *argv[])
     DBus dbus;
     engine.rootContext()->setContextProperty("dbus", &dbus);
     engine.rootContext()->setContextProperty("bluetooth", new Bluetooth(bindingAddressWS));
+    engine.rootContext()->setContextProperty(QStringLiteral("screenInfo"), &screenInfo);
     engine.load(QUrl(QStringLiteral("qrc:/Settings.qml")));
     QObject *root = engine.rootObjects().first();
     QQuickWindow *window = qobject_cast<QQuickWindow *>(root);