diff options
author | Scott Murray <scott.murray@konsulko.com> | 2021-11-04 14:35:55 -0400 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2021-11-04 14:44:37 -0400 |
commit | 2b7ca7a6eeb79e03507abb7a16b0503591d2b064 (patch) | |
tree | d372e518e3eae711d9c867de1c1731154d069400 /homescreen/src/main.cpp | |
parent | 187fffa9f0a05359678887f30b58091cf7c5fc47 (diff) |
Initial rework to run without the app framework
Changes:
- Remove application framework build scripts, and update the
application qmake file to just build a "homescreen" binary
and support installing it to /usr/bin.
- Remove voice API related code. Some of the associated QML
and images for the UI have been retained in case equivalent
functionality is re-added in the future.
- Remove or stub out various app framework API access for the
homescreen and launcher bindings, and comment out usage of
the Qt wrappers from libqtappfw (e.g. Bluetooth). The aim is
to provide a replacement library or libraries for the latter
that provide the same functionality.
- Remove the old homescreen API documentation and do an initial
update of the build instructions in README.md.
Bug-AGL: SPEC-4121
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: Iab979c8e1341f2da0384f88f163a977b03664600
Diffstat (limited to 'homescreen/src/main.cpp')
-rw-r--r-- | homescreen/src/main.cpp | 50 |
1 files changed, 10 insertions, 40 deletions
diff --git a/homescreen/src/main.cpp b/homescreen/src/main.cpp index 376644f..75ed97c 100644 --- a/homescreen/src/main.cpp +++ b/homescreen/src/main.cpp @@ -26,14 +26,15 @@ #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(); } |