Update for app framework removal 76/27176/1
authorScott Murray <scott.murray@konsulko.com>
Mon, 14 Feb 2022 23:29:54 +0000 (18:29 -0500)
committerScott Murray <scott.murray@konsulko.com>
Mon, 14 Feb 2022 23:29:54 +0000 (18:29 -0500)
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: I7e519aa963f6f22a37d083b2743ad5d42ead9684
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
app/app.pri [deleted file]
app/app.pro
app/main.cpp
autobuild/agl/autobuild [deleted file]
autobuild/linux/autobuild [deleted file]
mediaplayer.pro
package/mediaplayer.desktop [new file with mode: 0644]
package/mediaplayer.svg [new file with mode: 0644]
package/package.pro

diff --git a/app/app.pri b/app/app.pri
deleted file mode 100644 (file)
index 399d71f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-TEMPLATE = app
-QMAKE_LFLAGS += "-Wl,--hash-style=gnu -Wl,--as-needed"
-
-DESTDIR = $${OUT_PWD}/../package/root/bin
index f497fee..d14bdb6 100644 (file)
@@ -1,17 +1,18 @@
+TEMPLATE = app
 TARGET = mediaplayer
-QT = quickcontrols2 websockets
+QT = qml quickcontrols2
+CONFIG += c++11 link_pkgconfig
 
-SOURCES = main.cpp
-
-CONFIG += link_pkgconfig
 PKGCONFIG += qtappfw-mediaplayer
 
-CONFIG(release, debug|release) {
-    QMAKE_POST_LINK = $(STRIP) --strip-unneeded $(TARGET)
-}
+SOURCES = main.cpp
 
 RESOURCES += \
     mediaplayer.qrc \
     images/images.qrc
 
-include(app.pri)
+target.path = /usr/bin
+target.files += $${OUT_PWD}/$${TARGET}
+target.CONFIG = no_check_exist executable
+
+INSTALLS += target
index d72c492..771ce3a 100644 (file)
  * limitations under the License.
  */
 
-#include <QtCore/QCommandLineParser>
 #include <QtCore/QDebug>
-#include <QtCore/QDir>
-#include <QtCore/QStandardPaths>
-#include <QtCore/QUrlQuery>
 #include <QtGui/QGuiApplication>
 #include <QtQml/QQmlApplicationEngine>
 #include <QtQml/QQmlContext>
 int main(int argc, char *argv[])
 {
     QString graphic_role = QString("music");
-
     QGuiApplication app(argc, argv);
 
     QQuickStyle::setStyle("AGL");
 
     QQmlApplicationEngine engine;
     QQmlContext *context = engine.rootContext();
+    context->setContextProperty("AlbumArt", "");
+    context->setContextProperty("mediaplayer", new Mediaplayer(context));
 
-    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();
-
-    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);
-
-        context->setContextProperty("AlbumArt", "");
-        context->setContextProperty("mediaplayer", new Mediaplayer(bindingAddress, context));
+    engine.load(QUrl(QStringLiteral("qrc:/MediaPlayer.qml")));
 
-        engine.load(QUrl(QStringLiteral("qrc:/MediaPlayer.qml")));
-    }
     return app.exec();
 }
diff --git a/autobuild/agl/autobuild b/autobuild/agl/autobuild
deleted file mode 100755 (executable)
index bbbc13e..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/make -f
-# Copyright (C) 2015 - 2018 "IoT.bzh"
-# Copyright (C) 2020 Konsulko Group
-# Author "Romain Forlot" <romain.forlot@iot.bzh>
-#
-# 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.
-
-THISFILE  := $(lastword $(MAKEFILE_LIST))
-ROOT_DIR := $(abspath $(dir $(THISFILE))/../..)
-
-# Build directories
-# Note that the debug directory is defined in relation to the release
-# directory (BUILD_DIR), this needs to be kept in mind if over-riding
-# it and building that widget types, the specific widget type variable
-# (e.g. BUILD_DIR_DEBUG) may also need to be specified to yield the
-# desired output hierarchy.
-BUILD_DIR = $(ROOT_DIR)/build
-BUILD_DIR_DEBUG = $(abspath $(BUILD_DIR)/../build-debug)
-
-# Output directory variable for use in pattern rules.
-# This is intended for internal use only, hence the explicit override
-# definition.
-override OUTPUT_DIR = $(BUILD_DIR)
-
-# Final install directory for widgets
-DEST = $(OUTPUT_DIR)
-
-# Default build type for release builds
-BUILD_TYPE = release
-
-.PHONY: all help update install distclean
-.PHONY: clean clean-release clean-debug clean-all
-.PHONY: configure configure-release configure-debug
-.PHONY: build build-release build-debug build-all
-.PHONY: package package-release package-debug package-all
-
-help:
-       @echo "List of targets available:"
-       @echo ""
-       @echo "- all"
-       @echo "- help"
-       @echo "- clean"
-       @echo "- distclean"
-       @echo "- configure"
-       @echo "- build: compilation, link and prepare files for package into a widget"
-       @echo "- package: output a widget file '*.wgt'"
-       @echo "- install: install in $(DEST) directory"
-       @echo ""
-       @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt"
-       @echo "Don't use your build dir as DEST as wgt file is generated at this location"
-
-all: package-all
-
-# Target specific variable over-rides so static pattern rules can be
-# used for the various type-specific targets.
-
-configure-debug build-debug package-debug clean-debug: OUTPUT_DIR = $(BUILD_DIR_DEBUG)
-configure-debug build-debug package-debug: BUILD_TYPE = debug
-
-clean-release clean-debug:
-       @if [ -d $(OUTPUT_DIR) ]; then \
-               $(MAKE) -C $(OUTPUT_DIR) $(CLEAN_ARGS) clean; \
-       else \
-               echo Nothing to clean; \
-       fi
-
-clean: clean-release
-
-clean-all: clean-release clean-debug
-
-distclean: clean-all
-
-configure-release configure-debug:
-       @mkdir -p $(OUTPUT_DIR)
-       @if [ ! -f $(OUTPUT_DIR)/Makefile ]; then \
-               (cd $(OUTPUT_DIR) && qmake CONFIG+=$(BUILD_TYPE) $(CONFIGURE_ARGS) $(ROOT_DIR)); \
-       fi
-
-configure: configure-release
-
-build-release build-debug: build-%: configure-%
-       @$(MAKE) -C $(OUTPUT_DIR) $(BUILD_ARGS) all
-
-build: build-release
-
-build-all: build-release build-debug
-
-package-release package-debug: package-%: build-%
-       @cp $(OUTPUT_DIR)/package/*.wgt $(OUTPUT_DIR)/
-       @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \
-               mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \
-       fi
-
-
-package: package-release
-
-package-all: package-release package-debug
-
-install: build
-       @$(MAKE) -C $(BUILD_DIR) $(INSTALL_ARGS) install
diff --git a/autobuild/linux/autobuild b/autobuild/linux/autobuild
deleted file mode 100755 (executable)
index bbbc13e..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/make -f
-# Copyright (C) 2015 - 2018 "IoT.bzh"
-# Copyright (C) 2020 Konsulko Group
-# Author "Romain Forlot" <romain.forlot@iot.bzh>
-#
-# 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.
-
-THISFILE  := $(lastword $(MAKEFILE_LIST))
-ROOT_DIR := $(abspath $(dir $(THISFILE))/../..)
-
-# Build directories
-# Note that the debug directory is defined in relation to the release
-# directory (BUILD_DIR), this needs to be kept in mind if over-riding
-# it and building that widget types, the specific widget type variable
-# (e.g. BUILD_DIR_DEBUG) may also need to be specified to yield the
-# desired output hierarchy.
-BUILD_DIR = $(ROOT_DIR)/build
-BUILD_DIR_DEBUG = $(abspath $(BUILD_DIR)/../build-debug)
-
-# Output directory variable for use in pattern rules.
-# This is intended for internal use only, hence the explicit override
-# definition.
-override OUTPUT_DIR = $(BUILD_DIR)
-
-# Final install directory for widgets
-DEST = $(OUTPUT_DIR)
-
-# Default build type for release builds
-BUILD_TYPE = release
-
-.PHONY: all help update install distclean
-.PHONY: clean clean-release clean-debug clean-all
-.PHONY: configure configure-release configure-debug
-.PHONY: build build-release build-debug build-all
-.PHONY: package package-release package-debug package-all
-
-help:
-       @echo "List of targets available:"
-       @echo ""
-       @echo "- all"
-       @echo "- help"
-       @echo "- clean"
-       @echo "- distclean"
-       @echo "- configure"
-       @echo "- build: compilation, link and prepare files for package into a widget"
-       @echo "- package: output a widget file '*.wgt'"
-       @echo "- install: install in $(DEST) directory"
-       @echo ""
-       @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt"
-       @echo "Don't use your build dir as DEST as wgt file is generated at this location"
-
-all: package-all
-
-# Target specific variable over-rides so static pattern rules can be
-# used for the various type-specific targets.
-
-configure-debug build-debug package-debug clean-debug: OUTPUT_DIR = $(BUILD_DIR_DEBUG)
-configure-debug build-debug package-debug: BUILD_TYPE = debug
-
-clean-release clean-debug:
-       @if [ -d $(OUTPUT_DIR) ]; then \
-               $(MAKE) -C $(OUTPUT_DIR) $(CLEAN_ARGS) clean; \
-       else \
-               echo Nothing to clean; \
-       fi
-
-clean: clean-release
-
-clean-all: clean-release clean-debug
-
-distclean: clean-all
-
-configure-release configure-debug:
-       @mkdir -p $(OUTPUT_DIR)
-       @if [ ! -f $(OUTPUT_DIR)/Makefile ]; then \
-               (cd $(OUTPUT_DIR) && qmake CONFIG+=$(BUILD_TYPE) $(CONFIGURE_ARGS) $(ROOT_DIR)); \
-       fi
-
-configure: configure-release
-
-build-release build-debug: build-%: configure-%
-       @$(MAKE) -C $(OUTPUT_DIR) $(BUILD_ARGS) all
-
-build: build-release
-
-build-all: build-release build-debug
-
-package-release package-debug: package-%: build-%
-       @cp $(OUTPUT_DIR)/package/*.wgt $(OUTPUT_DIR)/
-       @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \
-               mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \
-       fi
-
-
-package: package-release
-
-package-all: package-release package-debug
-
-install: build
-       @$(MAKE) -C $(BUILD_DIR) $(INSTALL_ARGS) install
index 579a952..e6d6e34 100644 (file)
@@ -1,3 +1,2 @@
 TEMPLATE = subdirs
 SUBDIRS = app package
-package.depends += app
diff --git a/package/mediaplayer.desktop b/package/mediaplayer.desktop
new file mode 100644 (file)
index 0000000..dc83713
--- /dev/null
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Name=Mediaplayer
+Comment=Mediaplayer
+GenericName=Mediaplayer
+Exec=mediaplayer
+Icon=mediaplayer
+Terminal=false
+Type=Application
+Categories=System;
+StartupNotify=true
diff --git a/package/mediaplayer.svg b/package/mediaplayer.svg
new file mode 100644 (file)
index 0000000..b6ec056
--- /dev/null
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+
+<svg
+   xmlns:i="&amp;ns_ai;"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Multimedia_Inactive"
+   x="0px"
+   y="0px"
+   viewBox="0 0 300 300"
+   style="enable-background:new 0 0 300 300;"
+   xml:space="preserve"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="music_inactive.svg"><metadata
+     id="metadata3511"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+     id="defs3509" /><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1573"
+     inkscape:window-height="876"
+     id="namedview3507"
+     showgrid="false"
+     inkscape:zoom="0.78666667"
+     inkscape:cx="-90.254237"
+     inkscape:cy="150"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="Multimedia_Inactive" /><style
+     type="text/css"
+     id="style3476">
+       .st0{fill:#FFFFFF;}
+       .st1{font-family:'Roboto-Regular';}
+       .st2{font-size:25px;}
+       .st3{letter-spacing:6;}
+       .st4{fill:url(#SVGID_1_);}
+       .st5{fill:url(#SVGID_2_);}
+       .st6{fill:url(#SVGID_3_);}
+</style><switch
+     id="switch3478"
+     transform="matrix(1.3307804,0,0,1.3314313,-62.924861,-27.945794)"><g
+       i:extraneous="self"
+       id="g3480"><g
+         id="g3482"><g
+           id="g3484"><linearGradient
+             id="SVGID_1_"
+             gradientUnits="userSpaceOnUse"
+             x1="4.0481"
+             y1="287.94919"
+             x2="320.4859"
+             y2="-15.4029"
+             gradientTransform="matrix(1,0.00546456,-0.00546456,1,-2.0192,-3.0212)"><stop
+               offset="0"
+               style="stop-color:#00ADDC"
+               id="stop3487" /><stop
+               offset="1"
+               style="stop-color:#6BFBFF"
+               id="stop3489" /></linearGradient><path
+             class="st4"
+             d="m 160,238.8 c -0.2,0 -0.4,0 -0.6,0 C 101.4,238.5 54.5,191.1 54.8,133.1 55.2,75.3 102.3,28.5 160,28.5 c 0.2,0 0.4,0 0.6,0 58,0.3 104.9,47.7 104.6,105.7 l 0,0 C 264.8,192 217.7,238.8 160,238.8 Z m 0,-206.6 c -55.7,0 -101.2,45.2 -101.5,100.9 -0.3,55.9 45,101.7 100.9,102 0.2,0 0.4,0 0.6,0 55.7,0 101.2,-45.2 101.5,-100.9 0.3,-55.9 -45,-101.7 -100.9,-102 -0.2,0 -0.4,0 -0.6,0 z"
+             id="path3491"
+             style="fill:url(#SVGID_1_)"
+             inkscape:connector-curvature="0" /><linearGradient
+             id="SVGID_2_"
+             gradientUnits="userSpaceOnUse"
+             x1="140.72141"
+             y1="202.2363"
+             x2="187.02119"
+             y2="68.704903"><stop
+               offset="0"
+               style="stop-color:#00ADDC"
+               id="stop3494" /><stop
+               offset="1"
+               style="stop-color:#6BFBFF"
+               id="stop3496" /></linearGradient><path
+             class="st5"
+             d="m 114.7,190.9 c -6.4,0 -12,-2.6 -14.8,-7.5 -2.9,-4.9 -5.4,-14.5 9.6,-23.2 4.8,-2.8 17.1,-3.9 20.8,-4 l 0.1,3.6 c -4.6,0.1 -15.5,1.4 -19.1,3.5 -9.4,5.4 -12.1,11.5 -8.3,18.3 3.8,6.6 14.6,7.6 24,2.2 6.6,-3.8 10.6,-10.5 10.7,-17.9 l -0.1,-0.7 0,-69.8 71.9,-14.2 0.1,71.3 c 0,6.7 -3.3,16.4 -12.5,21.8 -11.1,6.4 -24.1,4.8 -28.9,-3.5 -2.9,-4.9 -5.4,-14.5 9.6,-23.2 4.4,-2.5 14.4,-3.8 18.8,-3.9 l 0.1,3.6 c -4.2,0.1 -13.5,1.4 -17.1,3.5 -6.4,3.7 -13.1,9.9 -8.3,18.3 3.8,6.6 14.6,7.6 24,2.2 7.9,-4.5 10.7,-12.8 10.7,-18.5 l -0.1,-0.8 0,-66.4 -64.7,12.7 0,66.8 0.1,0.7 c 0,8.7 -4.7,16.6 -12.5,21.1 -4.7,2.7 -9.6,4 -14.1,4 z"
+             id="path3498"
+             style="fill:url(#SVGID_2_)"
+             inkscape:connector-curvature="0" /><linearGradient
+             id="SVGID_3_"
+             gradientUnits="userSpaceOnUse"
+             x1="145.50549"
+             y1="203.8951"
+             x2="191.8053"
+             y2="70.363701"><stop
+               offset="0"
+               style="stop-color:#00ADDC"
+               id="stop3501" /><stop
+               offset="1"
+               style="stop-color:#6BFBFF"
+               id="stop3503" /></linearGradient><polygon
+             class="st6"
+             points="196.5,113.7 155.8,123.3 155,119.8 195.6,110.2 "
+             id="polygon3505"
+             style="fill:url(#SVGID_3_)" /></g></g></g></switch></svg>
\ No newline at end of file
index 614096f..8ff91c8 100644 (file)
@@ -1,24 +1,11 @@
+TEMPLATE = aux
 
-DISTFILES = icon.svg config.xml
+icon.path = /usr/share/icons/hicolor/scalable
+icon.files += $$_PRO_FILE_PWD_/mediaplayer.svg
+icon.CONFIG = no_check_exist
 
-copy_icon.target = $$OUT_PWD/root/icon.svg
-copy_icon.depends = $$_PRO_FILE_PWD_/icon.svg
-copy_icon.commands = $(COPY_FILE) \"$$replace(copy_icon.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_icon.target, /, $$QMAKE_DIR_SEP)\"
-QMAKE_EXTRA_TARGETS += copy_icon
-PRE_TARGETDEPS += $$copy_icon.target
+desktop.path = /usr/share/applications
+desktop.files = $$_PRO_FILE_PWD_/mediaplayer.desktop
+desktop.CONFIG = no_check_exist
 
-copy_config.target = $$OUT_PWD/root/config.xml
-copy_config.depends = $$_PRO_FILE_PWD_/config.xml
-copy_config.commands = $(COPY_FILE) \"$$replace(copy_config.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_config.target, /, $$QMAKE_DIR_SEP)\"
-QMAKE_EXTRA_TARGETS += copy_config
-PRE_TARGETDEPS += $$copy_config.target
-
-WGT_TYPE =
-CONFIG(debug, debug|release) {
-    WGT_TYPE = -debug
-}
-
-wgt.target = package
-wgt.commands = wgtpkg-pack -f -o mediaplayer$${WGT_TYPE}.wgt root
-
-QMAKE_EXTRA_TARGETS += wgt
+INSTALLS += desktop icon