Rework to use launcher wrapper from libqtappfw
[apps/launcher.git] / launcher / src / main.cpp
index 77dee27..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 "AppLauncherClient.h"
 
 int main(int argc, char *argv[])
 {
     QString myname = QString("launcher");
-    QGuiApplication a(argc, argv);
+    QGuiApplication app(argc, argv);
 
     // necessary to identify correctly by app_id
-    a.setDesktopFileName(myname);
+    app.setDesktopFileName(myname);
 
-    // import C++ class to QML
-    qmlRegisterType<ApplicationModel>("AppModel", 1, 0, "ApplicationModel");
-
-    HomescreenHandler* homescreenHandler = new HomescreenHandler();
-
-    // mail.qml loading
     QQmlApplicationEngine engine;
-    int apps = homescreenHandler->getRunnablesCount();
-    engine.rootContext()->setContextProperty(QStringLiteral("homescreenHandler"), homescreenHandler);
-    engine.rootContext()->setContextProperty(QStringLiteral("apps_len"), apps);
+
+    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");
+    }
+
+    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();
 }