Add gitlab issue/merge request templates
[apps/launcher.git] / launcher / src / main.cpp
index 22e600e..40110ef 100644 (file)
@@ -1,18 +1,8 @@
+// SPDX-License-Identifier: Apache-2.0
 /*
  * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
  * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright (C) 2022 Konsulko Group
  */
 
 #include <QGuiApplication>
 
 #include "applicationmodel.h"
 #include "appinfo.h"
-#include "homescreenhandler.h"
-#include "hmi-debug.h"
-#include "shell-desktop.h"
+#include "AppLauncherClient.h"
 
 int main(int argc, char *argv[])
 {
     QString myname = QString("launcher");
-    QGuiApplication a(argc, argv);
-
-    //QCoreApplication::setOrganizationDomain("LinuxFoundation");
-    //QCoreApplication::setOrganizationName("AutomotiveGradeLinux");
-    //QCoreApplication::setApplicationName(myname);
-    //QCoreApplication::setApplicationVersion("0.1.0");
+    QGuiApplication app(argc, argv);
 
     // necessary to identify correctly by app_id
-    a.setDesktopFileName(myname);
-
-    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();
+    app.setDesktopFileName(myname);
 
-    int port = 1700;
-    QString token = "wm";
+    QQmlApplicationEngine engine;
 
-    if (positionalArguments.length() == 2) {
-        port = positionalArguments.takeFirst().toInt();
-        token = positionalArguments.takeFirst();
+    AppLauncherClient* applauncher = new AppLauncherClient();
+    QList<QMap<QString, QString>> apps;
+    if (applauncher) {
+        applauncher->listApplications(apps);
+        engine.rootContext()->setContextProperty(QStringLiteral("applauncher"), applauncher);
+        engine.rootContext()->setContextProperty(QStringLiteral("apps_len"), apps.size());
+    } else {
+        qFatal("Could not create AppLauncherClient");
     }
 
-    HMI_DEBUG("launcher","port = %d, token = %s", port, token.toStdString().c_str());
-
-    // import C++ class to QML
-    qmlRegisterType<ApplicationModel>("AppModel", 1, 0, "ApplicationModel");
-
-    HomescreenHandler* homescreenHandler = new HomescreenHandler();
-    homescreenHandler->init(port, token.toStdString().c_str(), myname);
-
-    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);
-
-    // mail.qml loading
-    QQmlApplicationEngine engine;
-    engine.rootContext()->setContextProperty(QStringLiteral("homescreenHandler"), homescreenHandler);
+    ApplicationModel *appmodel = new ApplicationModel();
+    if (appmodel) {
+        appmodel->initAppList(apps);
+        qmlRegisterSingletonType<ApplicationModel>("AppModel", 1, 0, "ApplicationModel",
+                                                   [appmodel](QQmlEngine *, QJSEngine *) -> QObject * { return appmodel; });
+    } else {
+        qFatal("Could not create ApplicationModel");
+    }
     engine.load(QUrl(QStringLiteral("qrc:/Launcher.qml")));
-    homescreenHandler->getRunnables();
 
-    return a.exec();
+    return app.exec();
 }