Initial rework to run without the app framework
[apps/homescreen.git] / homescreen / src / main.cpp
index 376644f..75ed97c 100644 (file)
 #include <QQuickWindow>
 #include <QTimer>
 
+#if 0
 #include <weather.h>
 #include <bluetooth.h>
+#endif
 #include "applicationlauncher.h"
 #include "statusbarmodel.h"
 #include "mastervolume.h"
 #include "homescreenhandler.h"
 #include "hmi-debug.h"
-#include "chromecontroller.h"
 
 #include <qpa/qplatformnativeinterface.h>
 #include <wayland-client.h>
@@ -137,8 +138,9 @@ find_screen(const char *screen_name)
 static void
 load_agl_shell_app(QPlatformNativeInterface *native,
                   QQmlApplicationEngine *engine,
-                  struct agl_shell *agl_shell, QUrl &bindingAddress,
-                  const char *screen_name, bool is_demo)
+                  struct agl_shell *agl_shell,
+                  const char *screen_name,
+                   bool is_demo)
 {
        struct wl_surface *bg, *top, *bottom;
        struct wl_output *output;
@@ -182,12 +184,11 @@ load_agl_shell_app(QPlatformNativeInterface *native,
                "first screen " << qApp->screens().first()->name();
        output = getWlOutput(native, screen);
 
-
        /* engine.rootObjects() works only if we had a load() */
        StatusBarModel *statusBar = qobj_top->findChild<StatusBarModel *>("statusBar");
        if (statusBar) {
                qDebug() << "got statusBar objectname, doing init()";
-               statusBar->init(bindingAddress, engine->rootContext());
+               statusBar->init(engine->rootContext());
        }
 
        agl_shell_set_panel(agl_shell, top, output, AGL_SHELL_EDGE_TOP);
@@ -225,25 +226,6 @@ int main(int argc, char *argv[])
     /* we need to have an app_id */
     a.setDesktopFileName("homescreen");
 
-    QCommandLineParser parser;
-    parser.addPositionalArgument("port", a.translate("main", "port for binding"));
-    parser.addPositionalArgument("secret", a.translate("main", "secret for binding"));
-    parser.addHelpOption();
-    parser.addVersionOption();
-    parser.process(a);
-    QStringList positionalArguments = parser.positionalArguments();
-
-    int port = 1700;
-    QString token = "wm";
-    QString graphic_role = "homescreen"; // defined in layers.json in Window Manager
-
-    if (positionalArguments.length() == 2) {
-        port = positionalArguments.takeFirst().toInt();
-        token = positionalArguments.takeFirst();
-    }
-
-    HMI_DEBUG("HomeScreen","port = %d, token = %s", port, token.toStdString().c_str());
-
     agl_shell = register_agl_shell(native);
     if (!agl_shell) {
            fprintf(stderr, "agl_shell extension is not advertised. "
@@ -257,40 +239,28 @@ int main(int argc, char *argv[])
     // import C++ class to QML
     qmlRegisterType<StatusBarModel>("HomeScreen", 1, 0, "StatusBarModel");
     qmlRegisterType<MasterVolume>("MasterVolume", 1, 0, "MasterVolume");
-    qmlRegisterUncreatableType<ChromeController>("SpeechChrome", 1, 0, "SpeechChromeController",
-                                                 QLatin1String("SpeechChromeController is uncreatable."));
 
     ApplicationLauncher *launcher = new ApplicationLauncher();
     launcher->setCurrent(QStringLiteral("launcher"));
     HomescreenHandler* homescreenHandler = new HomescreenHandler(aglShell, launcher);
-    homescreenHandler->init(port, token.toStdString().c_str());
-
-    QUrl bindingAddress;
-    bindingAddress.setScheme(QStringLiteral("ws"));
-    bindingAddress.setHost(QStringLiteral("localhost"));
-    bindingAddress.setPort(port);
-    bindingAddress.setPath(QStringLiteral("/api"));
-
-    QUrlQuery query;
-    query.addQueryItem(QStringLiteral("token"), token);
-    bindingAddress.setQuery(query);
+    homescreenHandler->init();
 
     QQmlApplicationEngine engine;
     QQmlContext *context = engine.rootContext();
-    context->setContextProperty("bindingAddress", bindingAddress);
 
     context->setContextProperty("homescreenHandler", homescreenHandler);
     context->setContextProperty("launcher", launcher);
+#if 0
     context->setContextProperty("weather", new Weather(bindingAddress));
     context->setContextProperty("bluetooth", new Bluetooth(bindingAddress, context));
-    context->setContextProperty("speechChromeController", new ChromeController(bindingAddress, &engine));
+#endif
     // we add it here even if we don't use it
     context->setContextProperty("shell", aglShell);
 
     /* instead of loading main.qml we load one-by-one each of the QMLs,
      * divided now between several surfaces: panels, background.
      */
-    load_agl_shell_app(native, &engine, agl_shell, bindingAddress, screen_name, is_demo_val);
+    load_agl_shell_app(native, &engine, agl_shell, screen_name, is_demo_val);
 
     return a.exec();
 }