hvac: switch to libqtappfw access for websocket data
[apps/hvac.git] / app / main.cpp
index b532b73..38ccfe1 100644 (file)
  * limitations under the License.
  */
 
-#include <QtCore/QDebug>
-#include <QtCore/QCommandLineParser>
-#include <QtCore/QUrlQuery>
-#include <QtGui/QGuiApplication>
+#include <QtAGLExtras/AGLApplication>
 #include <QtQml/QQmlApplicationEngine>
-#include <QtQml/QQmlContext>
-#include <QtQuickControls2/QQuickStyle>
+#include <hvac.h>
 
-#ifdef HAVE_LIBHOMESCREEN
-#include <libhomescreen.hpp>
-#endif
+#include "translator.h"
 
 int main(int argc, char *argv[])
 {
-#ifdef HAVE_LIBHOMESCREEN
-    LibHomeScreen libHomeScreen;
-
-    if (!libHomeScreen.renderAppToAreaAllowed(0, 1)) {
-        qWarning() << "renderAppToAreaAllowed is denied";
-        return -1;
-    }
-#endif
-
-    QGuiApplication app(argc, argv);
-    app.setApplicationName(QStringLiteral("HVAC"));
-    app.setApplicationVersion(QStringLiteral("0.1.0"));
-    app.setOrganizationDomain(QStringLiteral("automotivelinux.org"));
-    app.setOrganizationName(QStringLiteral("AutomotiveGradeLinux"));
-
-    QQuickStyle::setStyle("AGL");
-
-    QCommandLineParser parser;
-    parser.addPositionalArgument("port", app.translate("main", "port for binding"));
-    parser.addPositionalArgument("secret", app.translate("main", "secret for binding"));
-    parser.addHelpOption();
-    parser.addVersionOption();
-    parser.process(app);
-    QStringList positionalArguments = parser.positionalArguments();
-
-
-    QQmlApplicationEngine engine;
-    if (positionalArguments.length() == 2) {
-        int port = positionalArguments.takeFirst().toInt();
-        QString secret = positionalArguments.takeFirst();
-        QUrl bindingAddress;
-        bindingAddress.setScheme(QStringLiteral("ws"));
-        bindingAddress.setHost(QStringLiteral("localhost"));
-        bindingAddress.setPort(port);
-        bindingAddress.setPath(QStringLiteral("/api"));
-        QUrlQuery query;
-        query.addQueryItem(QStringLiteral("token"), secret);
-        bindingAddress.setQuery(query);
-        QQmlContext *context = engine.rootContext();
-        context->setContextProperty(QStringLiteral("bindingAddress"), bindingAddress);
+    AGLApplication app(argc, argv);
+    app.setApplicationName("HVAC");
+    app.setupApplicationRole("hvac");
+
+    QQmlApplicationEngine *engine = app.getQmlApplicationEngine();
+    QQmlContext *context = engine->rootContext();
+    QVariant v = context->contextProperty(QStringLiteral("bindingAddress"));
+    if(v.canConvert(QMetaType::QUrl)) {
+        QUrl bindingAddress = v.toUrl();
+        context->setContextProperty("hvac", new HVAC(bindingAddress));
+    } else {
+        qCritical("Cannot find bindingAddress property in context, SignalComposer unavailable");
     }
-    engine.load(QUrl(QStringLiteral("qrc:/HVAC.qml")));
 
+    qmlRegisterType<Translator>("Translator", 1, 0, "Translator");
+    app.load(QUrl(QStringLiteral("qrc:/HVAC.qml")));
     return app.exec();
 }