X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=launcher%2Fsrc%2Fmain.cpp;h=5a44cc76ff5fd5d9f6e706d17bfcca637224c193;hb=aa8e593bf3d5138d007619048eeac0e4b9863b7a;hp=91a1d80ea6f338f26104c1c2335503f18180c3fb;hpb=9430d170c235ff75268db06d1ba32692dea0a65f;p=apps%2Flauncher.git diff --git a/launcher/src/main.cpp b/launcher/src/main.cpp index 91a1d80..5a44cc7 100644 --- a/launcher/src/main.cpp +++ b/launcher/src/main.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -25,44 +26,16 @@ #include #include -#include "applicationlauncher.h" #include "applicationmodel.h" #include "appinfo.h" -#include "afm_user_daemon_proxy.h" -#include "qlibhomescreen.h" +#include "homescreenhandler.h" #include "hmi-debug.h" -// XXX: We want this DBus connection to be shared across the different -// QML objects, is there another way to do this, a nice way, perhaps? -org::AGL::afm::user *afm_user_daemon_proxy; - -namespace { - -struct Cleanup { - static inline void cleanup(org::AGL::afm::user *p) { - delete p; - afm_user_daemon_proxy = Q_NULLPTR; - } -}; - -void noOutput(QtMsgType, const QMessageLogContext &, const QString &) -{ -} - -} - int main(int argc, char *argv[]) { QString myname = QString("launcher"); QGuiApplication a(argc, argv); - // use launch process - QScopedPointer afm_user_daemon_proxy(new org::AGL::afm::user("org.AGL.afm.user", - "/org/AGL/afm/user", - QDBusConnection::sessionBus(), - 0)); - ::afm_user_daemon_proxy = afm_user_daemon_proxy.data(); - QCoreApplication::setOrganizationDomain("LinuxFoundation"); QCoreApplication::setOrganizationName("AutomotiveGradeLinux"); QCoreApplication::setApplicationName(myname); @@ -89,12 +62,6 @@ int main(int argc, char *argv[]) // import C++ class to QML qmlRegisterType("AppModel", 1, 0, "ApplicationModel"); - // DBus - qDBusRegisterMetaType(); - qDBusRegisterMetaType >(); - - QLibHomeScreen* homescreenHandler = new QLibHomeScreen(); - ApplicationLauncher *launcher = new ApplicationLauncher(); QLibWindowmanager* layoutHandler = new QLibWindowmanager(); if(layoutHandler->init(port,token) != 0){ exit(EXIT_FAILURE); @@ -110,31 +77,8 @@ int main(int argc, char *argv[]) layoutHandler->endDraw(myname); }); - layoutHandler->set_event_handler(QLibWindowmanager::Event_Visible, [layoutHandler, launcher](json_object *object) { - QString label = QString(json_object_get_string( json_object_object_get(object, "drawing_name") )); - qDebug() << label; - QMetaObject::invokeMethod(launcher, "setCurrent", Qt::QueuedConnection, Q_ARG(QString, label == "HomeScreen" ? "Home" : label)); - }); - - layoutHandler->set_event_handler(QLibWindowmanager::Event_Invisible, [layoutHandler, launcher](json_object *object) { - const char* label = json_object_get_string( json_object_object_get(object, "drawing_name") ); - HMI_DEBUG("launch", "surface %s Event_Invisible", label); - }); - - homescreenHandler->init(port, token.toStdString().c_str()); - - homescreenHandler->set_event_handler(QLibHomeScreen::Event_TapShortcut, [layoutHandler, 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); - layoutHandler->activateSurface(myname); - } - } - }); + HomescreenHandler* homescreenHandler = new HomescreenHandler(); + homescreenHandler->init(port, token.toStdString().c_str(), layoutHandler, myname); QUrl bindingAddress; bindingAddress.setScheme(QStringLiteral("ws")); @@ -160,9 +104,9 @@ int main(int argc, char *argv[]) QQmlApplicationEngine engine; engine.rootContext()->setContextProperty(QStringLiteral("layoutHandler"), layoutHandler); engine.rootContext()->setContextProperty(QStringLiteral("homescreenHandler"), homescreenHandler); - engine.rootContext()->setContextProperty(QStringLiteral("launcher"), launcher); engine.rootContext()->setContextProperty(QStringLiteral("screenInfo"), &screenInfo); engine.load(QUrl(QStringLiteral("qrc:/Launcher.qml"))); + homescreenHandler->getRunnables(); QObject *root = engine.rootObjects().first(); QQuickWindow *window = qobject_cast(root);