From f48bb2aab34273bd5b3cc1f9f9d88afbfb231d6b Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Mon, 14 Feb 2022 18:34:58 -0500 Subject: Update for app framework removal Changes: - Remove the autobuild scripts and config.xml used by the app framework widget build. - Update the qmake files to just build a "settings" binary and install it into /usr/bin by default. - Remove the code in main.cpp that handled reading the WebSocket command-line arguments and passing them to binding related code. - Add initial .desktop file and icon copied from the launcher source tree, and updated .pro files to install them. Bug-AGL: SPEC-4182 Change-Id: I479ca8f405f38d36e1f5f531581a07073d40005e Signed-off-by: Scott Murray --- app/app.pri | 3 -- app/app.pro | 19 +++++----- app/main.cpp | 117 +++++++++++++++++++++++------------------------------------ 3 files changed, 56 insertions(+), 83 deletions(-) delete mode 100644 app/app.pri (limited to 'app') diff --git a/app/app.pri b/app/app.pri deleted file mode 100644 index f22f540..0000000 --- a/app/app.pri +++ /dev/null @@ -1,3 +0,0 @@ -TEMPLATE = app - -DESTDIR = $${OUT_PWD}/../package/root/bin diff --git a/app/app.pro b/app/app.pro index fa912b4..837399c 100644 --- a/app/app.pro +++ b/app/app.pro @@ -1,18 +1,19 @@ +TEMPLATE = app TARGET = radio -QT = quickcontrols2 +QT = qml quickcontrols2 +CONFIG += c++11 link_pkgconfig -HEADERS = PresetDataObject.h -SOURCES = main.cpp PresetDataObject.cpp - -CONFIG += link_pkgconfig PKGCONFIG += qtappfw-radio -CONFIG(release, debug|release) { - QMAKE_POST_LINK = $(STRIP) --strip-unneeded $(TARGET) -} +HEADERS = PresetDataObject.h +SOURCES = main.cpp PresetDataObject.cpp RESOURCES += \ radio.qrc \ images/images.qrc -include(app.pri) +target.path = /usr/bin +target.files += $${OUT_PWD}/$${TARGET} +target.CONFIG = no_check_exist executable + +INSTALLS += target diff --git a/app/main.cpp b/app/main.cpp index a4cf1ee..d7cfd44 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -1,6 +1,6 @@ /* * Copyright (C) 2016 The Qt Company Ltd. - * Copyright (C) 2016, 2017 Konsulko Group + * Copyright (C) 2016,2017,2019,2022 Konsulko Group * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ */ #include -#include -#include #include #include #include @@ -34,78 +32,55 @@ int main(int argc, char *argv[]) { - QString graphic_role = QString("radio"); + QString graphic_role = QString("radio"); - QGuiApplication app(argc, argv); - app.setDesktopFileName(graphic_role); + QGuiApplication app(argc, argv); + app.setDesktopFileName(graphic_role); - QQuickStyle::setStyle("AGL"); + QQuickStyle::setStyle("AGL"); - QCommandLineParser parser; - parser.addPositionalArgument("port", app.translate("main", "port for binding")); - parser.addPositionalArgument("secret", app.translate("main", "secret for binding")); - parser.addHelpOption(); - parser.addVersionOption(); - parser.process(app); - QStringList positionalArguments = parser.positionalArguments(); - - // Read presets from configuration file - // - // If HOME is set, use $HOME/app-data/radio/presets.conf if it exists, - // else fall back to the QSettings default locations with organization - // "AGL" and a file name of radio-presets.conf. See: - // - // http://doc.qt.io/qt-5/qsettings.html#platform-specific-notes - // - // for details on the locations and their order of priority. - // - QSettings *pSettings = NULL; - char *p = getenv("HOME"); - bool settingsFound = false; - if(p) { - struct stat statbuf; - std::string presets(p); - presets += APP_DATA_PRESETS_PATH; - if(stat(presets.c_str(), &statbuf) == 0) { - QString confPath = p; - confPath.append(APP_DATA_PRESETS_PATH); - pSettings = new QSettings(confPath, QSettings::NativeFormat); - settingsFound = true; + // Read presets from configuration file + // + // If HOME is set, use $HOME/app-data/radio/presets.conf if it exists, + // else fall back to the QSettings default locations with organization + // "AGL" and a file name of radio-presets.conf. See: + // + // http://doc.qt.io/qt-5/qsettings.html#platform-specific-notes + // + // for details on the locations and their order of priority. + // + QSettings *pSettings = NULL; + char *p = getenv("HOME"); + bool settingsFound = false; + if(p) { + struct stat statbuf; + std::string presets(p); + presets += APP_DATA_PRESETS_PATH; + if(stat(presets.c_str(), &statbuf) == 0) { + QString confPath = p; + confPath.append(APP_DATA_PRESETS_PATH); + pSettings = new QSettings(confPath, QSettings::NativeFormat); + settingsFound = true; + } + } + if(!settingsFound) { + pSettings = new QSettings("AGL", "radio-presets"); } - } - if(!settingsFound) { - pSettings = new QSettings("AGL", "radio-presets"); - } - - QList presetDataList; - int size = pSettings->beginReadArray("fmPresets"); - for (int i = 0; i < size; ++i) { - pSettings->setArrayIndex(i); - presetDataList.append(new PresetDataObject(pSettings->value("title").toString(), - pSettings->value("frequency").toInt(), - 1)); - } - pSettings->endArray(); - - QQmlApplicationEngine engine; - QQmlContext *context = engine.rootContext(); - context->setContextProperty("presetModel", QVariant::fromValue(presetDataList)); - if (positionalArguments.length() == 2) { - int port = positionalArguments.takeFirst().toInt(); - QString secret = positionalArguments.takeFirst(); - QUrl bindingAddress; - bindingAddress.setScheme(QStringLiteral("ws")); - bindingAddress.setHost(QStringLiteral("localhost")); - bindingAddress.setPort(port); - bindingAddress.setPath(QStringLiteral("/api")); - QUrlQuery query; - query.addQueryItem(QStringLiteral("token"), secret); - bindingAddress.setQuery(query); - context->setContextProperty(QStringLiteral("bindingAddress"), bindingAddress); + QList presetDataList; + int size = pSettings->beginReadArray("fmPresets"); + for (int i = 0; i < size; ++i) { + pSettings->setArrayIndex(i); + presetDataList.append(new PresetDataObject(pSettings->value("title").toString(), + pSettings->value("frequency").toInt(), + 1)); + } + pSettings->endArray(); - context->setContextProperty("radio", new Radio(bindingAddress, context)); - engine.load(QUrl(QStringLiteral("qrc:/Radio.qml"))); - } - return app.exec(); + QQmlApplicationEngine engine; + QQmlContext *context = engine.rootContext(); + context->setContextProperty("presetModel", QVariant::fromValue(presetDataList)); + context->setContextProperty("radio", new Radio(context)); + engine.load(QUrl(QStringLiteral("qrc:/Radio.qml"))); + return app.exec(); } -- cgit 1.2.3-korg