change hs to qhs
[apps/hvac.git] / app / main.cpp
index b793ef3..f44dd72 100644 (file)
 #include <QtQml/QQmlContext>
 #include <QtQuick/QQuickWindow>
 
-#ifdef HAVE_LIBHOMESCREEN
-#include <libhomescreen.hpp>
+#include "translator.h"
+
+#ifdef HAVE_QLIBHOMESCREEN
+#include <qlibhomescreen.h>
 #endif
 #ifdef HAVE_QLIBWINDOWMANAGER
 #include <qlibwindowmanager.h>
@@ -46,13 +48,17 @@ int main(int argc, char *argv[])
     parser.process(app);
     QStringList positionalArguments = parser.positionalArguments();
 
+    qmlRegisterType<Translator>("Translator", 1, 0, "Translator");
+
     QQmlApplicationEngine engine;
     QQmlContext *context = engine.rootContext();
     QUrl bindingAddress;
 
+    int port;
+    QString secret;
     if (positionalArguments.length() == 2) {
-        int port = positionalArguments.takeFirst().toInt();
-        QString secret = positionalArguments.takeFirst();
+        port = positionalArguments.takeFirst().toInt();
+        secret = positionalArguments.takeFirst();
         bindingAddress.setScheme(QStringLiteral("ws"));
         bindingAddress.setHost(QStringLiteral("localhost"));
         bindingAddress.setPort(port);
@@ -69,6 +75,8 @@ int main(int argc, char *argv[])
     if(qwm->init(port,secret) != 0){
         exit(EXIT_FAILURE);
     }
+    AGLScreenInfo screenInfo(qwm->get_scale_factor());
+    engine.rootContext()->setContextProperty(QStringLiteral("screenInfo"), &screenInfo);
     // Request a surface as described in layers.json windowmanager’s file
     if (qwm->requestSurface(myname) != 0) {
         exit(EXIT_FAILURE);
@@ -80,24 +88,15 @@ int main(int argc, char *argv[])
     });
 #endif
 
-#ifdef HAVE_LIBHOMESCREEN
-    LibHomeScreen* hs = new LibHomeScreen();
+#ifdef HAVE_QLIBHOMESCREEN
+    QLibHomeScreen* qhs = new QLibHomeScreen();
 
     // HomeScreen
     std::string token = secret.toStdString();
-    hs->init(port, token.c_str());
+    qhs->init(port, token.c_str());
     // Set the event handler for Event_TapShortcut which will activate the surface for windowmanager
-    hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [qwm, myname](json_object *object){
-        json_object *appnameJ = nullptr;
-        if(json_object_object_get_ex(object, "application_name", &appnameJ))
-        {
-            const char *appname = json_object_get_string(appnameJ);
-            if(myname == appname)
-            {
-                qDebug("Surface %s got tapShortcut\n", appname);
-                qwm->activateSurface(myname);
-            }
-        }
+    qhs->set_event_handler(QLibHomeScreen::Event_ShowWindow, [qwm, myname](json_object *object){
+        qwm->activateSurface(myname);
     });
 #endif
 
@@ -105,9 +104,10 @@ int main(int argc, char *argv[])
     QObject *root = engine.rootObjects().first();
     QQuickWindow *window = qobject_cast<QQuickWindow *>(root);
 #ifdef HAVE_QLIBWINDOWMANAGER
-    QObject::connect(window, SIGNAL(frameSwapped()), qwm, SLOT(slotActivateSurface()));
+    // QObject::connect(window, SIGNAL(frameSwapped()), qwm, SLOT(slotActivateSurface()));
+    qhs->setQuickWindow(window);
 #else
-    window->resize(1080, 1920 - 218 - 215);
+    window->resize(1920, 720);
     window->setVisible(true);
 #endif