summaryrefslogtreecommitdiffstats
path: root/recipes-demo/homescreen
diff options
context:
space:
mode:
authorIndivara Weerasuriya <indivara.weerasuriya@qt.io>2024-07-30 19:47:24 +0900
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-11-20 13:35:26 +0000
commit59ae0b13d2bb14fbf12117f2f55bfcb6f06f104b (patch)
treeba38354db9033675bde1ad07700d796160450f8f /recipes-demo/homescreen
parenta37e8ed0c8f997e13d719c7e5d956b5febc9cfa5 (diff)
Migrate demo app recipes and patch apps to Qt 6
Bug-AGL: SPEC-5294 Change-Id: I6b9ff940745f88af9a3b69e29917082e52b25f88 Signed-off-by: Indivara Weerasuriya <indivara.weerasuriya@qt.io> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/30141 Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'recipes-demo/homescreen')
-rw-r--r--recipes-demo/homescreen/files/0001-Migrate-to-Qt-6.patch338
-rw-r--r--recipes-demo/homescreen/homescreen_git.bb9
2 files changed, 343 insertions, 4 deletions
diff --git a/recipes-demo/homescreen/files/0001-Migrate-to-Qt-6.patch b/recipes-demo/homescreen/files/0001-Migrate-to-Qt-6.patch
new file mode 100644
index 000000000..89e992b4b
--- /dev/null
+++ b/recipes-demo/homescreen/files/0001-Migrate-to-Qt-6.patch
@@ -0,0 +1,338 @@
+From 8c60817ccf80502c03d3852afac006e25903d4b9 Mon Sep 17 00:00:00 2001
+From: Indivara Weerasuriya <1806262-indivara@users.noreply.git.qt.io>
+Date: Wed, 24 Jul 2024 09:08:36 +0900
+Subject: [PATCH] Migrate to Qt 6
+
+---
+ homescreen/meson.build | 16 ++++++++--------
+ homescreen/qml/IconItem.qml | 4 ++--
+ homescreen/qml/MediaAreaBlank.qml | 4 ++--
+ homescreen/qml/MediaAreaMusic.qml | 14 +++++++-------
+ homescreen/qml/MediaAreaRadio.qml | 2 +-
+ homescreen/qml/ShortcutIcon.qml | 6 +++---
+ homescreen/qml/SpeechChrome.qml | 6 +++---
+ homescreen/qml/StatusArea.qml | 6 +++---
+ homescreen/qml/TopArea.qml | 2 +-
+ homescreen/qml/background.qml | 2 +-
+ homescreen/qml/background_with_panels.qml | 4 ++--
+ meson.build | 2 +-
+ 12 files changed, 34 insertions(+), 34 deletions(-)
+
+diff --git a/homescreen/meson.build b/homescreen/meson.build
+index 4b98cd1..42645a1 100644
+--- a/homescreen/meson.build
++++ b/homescreen/meson.build
+@@ -1,5 +1,5 @@
+ cpp = meson.get_compiler('cpp')
+-qt5_dep = dependency('qt5', modules: ['Qml', 'Quick', 'Gui'])
++qt_dep = dependency('qt6', modules: ['Core', 'Qml', 'Quick', 'Gui'])
+ dep_wayland_client = dependency('wayland-client', version: '>= 1.20.0')
+ dep_qtappfw = [
+ dependency('qtappfw-weather'),
+@@ -14,11 +14,11 @@ protoc = find_program('protoc')
+ grpc_cpp = find_program('grpc_cpp_plugin')
+
+ qt_defines = []
+-qpa_header_path = join_paths(qt5_dep.version(), 'QtGui')
++qpa_header_path = join_paths(qt_dep.version(), 'QtGui')
+ qpa_header = join_paths(qpa_header_path, 'qpa/qplatformnativeinterface.h')
+ # we pass this QT_QPA_HEADER straight in the code as there's no easy
+ # way to pass the correct header
+-if cpp.has_header(qpa_header, dependencies : qt5_dep)
++if cpp.has_header(qpa_header, dependencies : qt_dep)
+ qt_defines += [ '-DQT_QPA_HEADER=<@0@>'.format(qpa_header) ]
+ message('Found QtGui QPA header in ' + qpa_header_path)
+ endif
+@@ -41,7 +41,7 @@ grpc_gen = generator(protoc, \
+ output : ['@BASENAME@.grpc.pb.cc', '@BASENAME@.grpc.pb.h'],
+ arguments : ['--proto_path=@CURRENT_SOURCE_DIR@/proto',
+ '--grpc_out=@BUILD_DIR@',
+- '--plugin=protoc-gen-grpc=' + grpc_cpp.path(),
++ '--plugin=protoc-gen-grpc=' + grpc_cpp.full_path(),
+ '@INPUT@'])
+ generated_grpc_sources = grpc_gen.process('proto/agl_shell.proto')
+
+@@ -54,7 +54,7 @@ grpc_deps = [
+
+
+ homescreen_dep = [
+- qt5_dep,
++ qt_dep,
+ dep_wayland_client,
+ dep_qtappfw,
+ grpc_deps
+@@ -70,7 +70,7 @@ homescreen_resources = [
+ 'qml/qml.qrc'
+ ]
+
+-resource_files = qt5.compile_resources(sources: homescreen_resources)
++resource_files = qt.compile_resources(sources: homescreen_resources)
+
+ protocols = [
+ [ 'agl-shell', 'agl-compositor' ],
+@@ -116,8 +116,8 @@ homescreen_src_headers = [
+ 'src/AglShellGrpcClient.h',
+ ]
+
+-moc_files = qt5.compile_moc(headers: homescreen_src_headers,
+- dependencies: qt5_dep)
++moc_files = qt.compile_moc(headers: homescreen_src_headers,
++ dependencies: qt_dep)
+
+ homescreen_src = [
+ 'src/statusbarserver.cpp',
+diff --git a/homescreen/qml/IconItem.qml b/homescreen/qml/IconItem.qml
+index ace0628..034a51d 100644
+--- a/homescreen/qml/IconItem.qml
++++ b/homescreen/qml/IconItem.qml
+@@ -1,6 +1,6 @@
+ import QtQuick 2.0
+ import QtQuick.Controls 2.0
+-import QtGraphicalEffects 1.0
++import Qt5Compat.GraphicalEffects
+
+ Item {
+ id: main
+@@ -23,7 +23,7 @@ Item {
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: 220
+ height: width
+- source: './images/%1_%2.svg'.arg(model.icon).arg(loc.pressed && (loc.index === model.index || loc.currentId === model.id) ? 'active' : 'inactive')
++ source: 'qrc:/images/%1_%2.svg'.arg(model.icon).arg(loc.pressed && (loc.index === model.index || loc.currentId === model.id) ? 'active' : 'inactive')
+ antialiasing: item.state !== ''
+
+ property string initial: model.name.substring(0,1).toUpperCase()
+diff --git a/homescreen/qml/MediaAreaBlank.qml b/homescreen/qml/MediaAreaBlank.qml
+index b758a7d..3c7ff51 100644
+--- a/homescreen/qml/MediaAreaBlank.qml
++++ b/homescreen/qml/MediaAreaBlank.qml
+@@ -23,7 +23,7 @@ import MasterVolume 1.0
+
+ Image {
+ anchors.fill: parent
+- source: './images/Utility_Logo_Background-01.svg'
++ source: 'qrc:/images/Utility_Logo_Background-01.svg'
+ property bool displayVolume: false;
+
+ MouseArea {
+@@ -41,7 +41,7 @@ Image {
+ Image {
+ id: logo_image
+ anchors.centerIn: parent
+- source: './images/Utility_Logo_Grey-01.svg'
++ source: 'qrc:/images/Utility_Logo_Grey-01.svg'
+ }
+
+ Timer {
+diff --git a/homescreen/qml/MediaAreaMusic.qml b/homescreen/qml/MediaAreaMusic.qml
+index 6d72003..ffb9796 100644
+--- a/homescreen/qml/MediaAreaMusic.qml
++++ b/homescreen/qml/MediaAreaMusic.qml
+@@ -22,7 +22,7 @@ import QtQuick.Controls 2.0
+ Image {
+ width: 1080
+ height: 216
+- source: './images/Utility_Music_Background-01.png'
++ source: 'qrc:/images/Utility_Music_Background-01.png'
+
+ ColumnLayout {
+ anchors.fill: parent
+@@ -33,7 +33,7 @@ Image {
+ Layout.preferredHeight: 107
+ spacing: 10
+ Image {
+- source: './images/MediaMusic/AlbumArtwork.png'
++ source: 'qrc:/images/MediaMusic/AlbumArtwork.png'
+ width: 105.298
+ height: 110.179
+ fillMode: Image.PreserveAspectFit
+@@ -51,13 +51,13 @@ Image {
+ Layout.fillHeight: true
+ Layout.preferredHeight: 107
+ Image {
+- source: './images/MediaPlayer/AGL_MediaPlayer_BackArrow.png'
++ source: 'qrc:/images/MediaPlayer/AGL_MediaPlayer_BackArrow.png'
+ }
+ Image {
+- source: './images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png'
++ source: 'qrc:/images/MediaPlayer/AGL_MediaPlayer_Player_Pause.png'
+ }
+ Image {
+- source: './images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png'
++ source: 'qrc:/images/MediaPlayer/AGL_MediaPlayer_ForwardArrow.png'
+ }
+
+ ProgressBar {
+@@ -71,10 +71,10 @@ Image {
+ font.pixelSize: 20
+ }
+ Image {
+- source: './images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
++ source: 'qrc:/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
+ }
+ Image {
+- source: './images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
++ source: 'qrc:/images/MediaPlayer/AGL_MediaPlayer_Shuffle_Active.png'
+ }
+ ProgressBar {
+ Layout.fillWidth: true
+diff --git a/homescreen/qml/MediaAreaRadio.qml b/homescreen/qml/MediaAreaRadio.qml
+index 73ab073..ed73000 100644
+--- a/homescreen/qml/MediaAreaRadio.qml
++++ b/homescreen/qml/MediaAreaRadio.qml
+@@ -20,5 +20,5 @@ import QtQuick 2.2
+ Image {
+ width: 1080
+ height: 216
+- source: './images/Utility_Radio_Background-01.png'
++ source: 'qrc:/images/Utility_Radio_Background-01.png'
+ }
+diff --git a/homescreen/qml/ShortcutIcon.qml b/homescreen/qml/ShortcutIcon.qml
+index d039d36..f67a992 100644
+--- a/homescreen/qml/ShortcutIcon.qml
++++ b/homescreen/qml/ShortcutIcon.qml
+@@ -17,7 +17,7 @@
+
+ import QtQuick 2.2
+ import QtQuick.Controls 2.0
+-import QtGraphicalEffects 1.0
++import Qt5Compat.GraphicalEffects
+
+ MouseArea {
+ id: root
+@@ -30,13 +30,13 @@ MouseArea {
+ Image {
+ id: inactiveIcon
+ anchors.fill: parent
+- source: './images/Shortcut/%1.svg'.arg(root.name.toLowerCase())
++ source: 'qrc:/images/Shortcut/%1.svg'.arg(root.name.toLowerCase())
+ fillMode: Image.PreserveAspectFit
+ }
+ Image {
+ id: activeIcon
+ anchors.fill: parent
+- source: './images/Shortcut/%1_active.svg'.arg(root.name.toLowerCase())
++ source: 'qrc:/images/Shortcut/%1_active.svg'.arg(root.name.toLowerCase())
+ fillMode: Image.PreserveAspectFit
+ opacity: 0.0
+ }
+diff --git a/homescreen/qml/SpeechChrome.qml b/homescreen/qml/SpeechChrome.qml
+index 123928c..e666f44 100644
+--- a/homescreen/qml/SpeechChrome.qml
++++ b/homescreen/qml/SpeechChrome.qml
+@@ -15,7 +15,7 @@ Item {
+ id: chromeBarImage
+
+ anchors.top: parent.top
+- source: "./images/SpeechChrome/bar.png"
++ source: "qrc:/images/SpeechChrome/bar.png"
+
+ Behavior on x {
+ NumberAnimation { duration: 250 }
+@@ -34,7 +34,7 @@ Item {
+ anchors.left: parent.left
+ anchors.leftMargin: parent.width / 128
+ anchors.verticalCenter: parent.verticalCenter
+- source: agentName === "Alexa" ? "./images/SpeechChrome/push_to_talk_alexa.png" : "./images/SpeechChrome/push_to_talk.svg"
++ source: agentName === "Alexa" ? "qrc:/images/SpeechChrome/push_to_talk_alexa.png" : "qrc:/images/SpeechChrome/push_to_talk.svg"
+
+ MouseArea {
+ anchors.fill: parent
+@@ -55,7 +55,7 @@ Item {
+ anchors.right: parent.right
+ anchors.rightMargin: parent.width / 128
+ anchors.verticalCenter: parent.verticalCenter
+- source: agentName === "Alexa" ? "./images/SpeechChrome/push_to_talk_alexa.png" : "./images/SpeechChrome/push_to_talk.svg"
++ source: agentName === "Alexa" ? "qrc:/images/SpeechChrome/push_to_talk_alexa.png" : "qrc:/images/SpeechChrome/push_to_talk.svg"
+
+ MouseArea {
+ anchors.fill: parent
+diff --git a/homescreen/qml/StatusArea.qml b/homescreen/qml/StatusArea.qml
+index 4a8fbc0..03c60ee 100644
+--- a/homescreen/qml/StatusArea.qml
++++ b/homescreen/qml/StatusArea.qml
+@@ -47,7 +47,7 @@ Item {
+ icon = "WeatherIcons_Rain-01.png"
+ }
+
+- condition_item.source = icon ? './images/Weather/' + icon : ''
++ condition_item.source = icon ? 'qrc:/images/Weather/' + icon : ''
+ }
+
+ onTemperatureChanged: {
+@@ -99,7 +99,7 @@ Item {
+ Layout.preferredHeight: 20
+ Image {
+ id: condition_item
+- source: './images/Weather/WeatherIcons_Rain-01.png'
++ source: 'qrc:/images/Weather/WeatherIcons_Rain-01.png'
+ }
+ Text {
+ id: temperature_item
+@@ -122,7 +122,7 @@ Item {
+ id: bt_icon
+ Layout.preferredWidth: 77
+ Layout.preferredHeight: 73
+- source: connStatus ? './images/Status/HMI_Status_Bluetooth_On-01.png' : './images/Status/HMI_Status_Bluetooth_Inactive-01.png'
++ source: connStatus ? 'qrc:/images/Status/HMI_Status_Bluetooth_On-01.png' : 'qrc:/images/Status/HMI_Status_Bluetooth_Inactive-01.png'
+ fillMode: Image.PreserveAspectFit
+ property string deviceName: "none"
+ property bool connStatus: false
+diff --git a/homescreen/qml/TopArea.qml b/homescreen/qml/TopArea.qml
+index 3b0b25a..3b5289c 100644
+--- a/homescreen/qml/TopArea.qml
++++ b/homescreen/qml/TopArea.qml
+@@ -21,7 +21,7 @@ import QtQuick.Controls 2.0
+
+ Image {
+ anchors.fill: parent
+- source: './images/TopSection_NoText_NoIcons-01.svg'
++ source: 'qrc:/images/TopSection_NoText_NoIcons-01.svg'
+ //fillMode: Image.PreserveAspectCrop
+ fillMode: Image.Stretch
+
+diff --git a/homescreen/qml/background.qml b/homescreen/qml/background.qml
+index c2bb309..a2ba39c 100644
+--- a/homescreen/qml/background.qml
++++ b/homescreen/qml/background.qml
+@@ -10,6 +10,6 @@ Window {
+
+ Image {
+ anchors.fill: parent
+- source: './images/AGL_HMI_Blue_Background_NoCar-01.png'
++ source: 'qrc:/images/AGL_HMI_Blue_Background_NoCar-01.png'
+ }
+ }
+diff --git a/homescreen/qml/background_with_panels.qml b/homescreen/qml/background_with_panels.qml
+index f0cb958..c7cca7c 100644
+--- a/homescreen/qml/background_with_panels.qml
++++ b/homescreen/qml/background_with_panels.qml
+@@ -75,7 +75,7 @@ Window {
+
+ Image {
+ anchors.fill: parent
+- source: './images/TopSection_NoText_NoIcons-01.svg'
++ source: 'qrc:/images/TopSection_NoText_NoIcons-01.svg'
+ //fillMode: Image.PreserveAspectCrop
+ fillMode: Image.Stretch
+
+@@ -104,7 +104,7 @@ Window {
+ height: Screen.height - (2 * 216)
+ Image {
+ anchors.fill: parent
+- source: './images/AGL_HMI_Blue_Background_NoCar-01.png'
++ source: 'qrc:/images/AGL_HMI_Blue_Background_NoCar-01.png'
+ }
+
+ }
+diff --git a/meson.build b/meson.build
+index 3d77b36..9ce3607 100644
+--- a/meson.build
++++ b/meson.build
+@@ -29,5 +29,5 @@ project (
+ ],
+ )
+
+-qt5 = import('qt5')
++qt = import('qt6')
+ subdir('homescreen')
diff --git a/recipes-demo/homescreen/homescreen_git.bb b/recipes-demo/homescreen/homescreen_git.bb
index 1f8e0c775..22f9adbd9 100644
--- a/recipes-demo/homescreen/homescreen_git.bb
+++ b/recipes-demo/homescreen/homescreen_git.bb
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
DEPENDS = " \
qtbase \
qtdeclarative \
- qtquickcontrols2 \
libqtappfw \
wayland-native \
wayland \
@@ -26,12 +25,13 @@ SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/homescreen;protocol=http
file://homescreen.service \
file://homescreen.conf \
file://homescreen.token \
-"
+ file://0001-Migrate-to-Qt-6.patch \
+ "
SRCREV = "2c91ad7b3b125176b2e26b435705557a089604a0"
S = "${WORKDIR}/git"
-inherit meson pkgconfig systemd
+inherit meson pkgconfig systemd meson_qt6_path
PATH:prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:"
@@ -59,5 +59,6 @@ RDEPENDS:${PN} += " \
applaunchd \
qtwayland \
qtbase-qmlplugins \
- qtgraphicaleffects-qmlplugins \
+ qt5compat \
+ qtshadertools \
"