Fix runtime issues with Qt6

To have the code bits reusable, they are defined as cmake variables.
In order to make the relative paths work and avoid touching every line
from the QRC, the resulting file is put into the source dir.
This commit is contained in:
Alexander Lohnau 2023-04-29 15:55:49 +02:00
parent 131ed9a079
commit f57d59e605
7 changed files with 33 additions and 15 deletions

1
.gitignore vendored
View file

@ -33,3 +33,4 @@ CMakeLists.txt.user
.idea .idea
/cmake-build* /cmake-build*
.clang-format .clang-format
app/resources.generated.qrc

View file

@ -42,6 +42,18 @@ ecm_setup_version(${RELEASE_SERVICE_VERSION}
VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/kdeconnect-version.h VERSION_HEADER ${CMAKE_CURRENT_BINARY_DIR}/kdeconnect-version.h
) )
if(QT_MAJOR_VERSION STREQUAL "6")
set(KIRIGAMI_ICON "icon.name")
set(KIRIGAMI_PAGE_ACTIONS "actions")
set(QTQUICK_FILEDIALOG_FOLDER "currentFolder")
else()
set(QTQUICK_DIALOGS_IMPORT_VERSION 1.0)
set(KIRIGAMI_ICON "icon")
set(KIRIGAMI_PAGE_ACTIONS "contextualActions")
set(QTQUICK_FILEDIALOG_FOLDER "folder")
endif()
# Make the version header available by linking against kdeconnectversion # Make the version header available by linking against kdeconnectversion
add_library(kdeconnectversion INTERFACE) add_library(kdeconnectversion INTERFACE)
target_include_directories(kdeconnectversion INTERFACE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(kdeconnectversion INTERFACE ${CMAKE_CURRENT_BINARY_DIR})

View file

@ -1,4 +1,9 @@
qt_add_resources(kdeconnect_SRCS resources.qrc) configure_file(qml/main.qml ${CMAKE_CURRENT_BINARY_DIR}/qml/main.qml)
configure_file(qml/DevicePage.qml ${CMAKE_CURRENT_BINARY_DIR}/qml/DevicePage.qml)
configure_file(qml/FindDevicesPage.qml ${CMAKE_CURRENT_BINARY_DIR}/qml/FindDevicesPage.qml)
configure_file(resources.qrc.in ${CMAKE_CURRENT_SOURCE_DIR}/resources.generated.qrc)
qt_add_resources(kdeconnect_SRCS resources.generated.qrc)
qt_add_resources(kdeconnect_custom_icons_SRCS ${CMAKE_SOURCE_DIR}/icons/custom_icons.qrc) qt_add_resources(kdeconnect_custom_icons_SRCS ${CMAKE_SOURCE_DIR}/icons/custom_icons.qrc)

View file

@ -7,7 +7,7 @@
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 as QQC2 import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import QtQuick.Dialogs 1.0 import QtQuick.Dialogs @QTQUICK_DIALOGS_IMPORT_VERSION@
import org.kde.kirigami 2.20 as Kirigami import org.kde.kirigami 2.20 as Kirigami
import org.kde.kdeconnect 1.0 import org.kde.kdeconnect 1.0
@ -16,15 +16,15 @@ Kirigami.ScrollablePage {
property QtObject currentDevice property QtObject currentDevice
title: currentDevice.name title: currentDevice.name
actions.contextualActions: [ @KIRIGAMI_PAGE_ACTIONS@: [
Kirigami.Action { Kirigami.Action {
iconName:"network-disconnect" icon.name: "network-disconnect"
onTriggered: root.currentDevice.unpair() onTriggered: root.currentDevice.unpair()
text: i18nd("kdeconnect-app", "Unpair") text: i18nd("kdeconnect-app", "Unpair")
visible: root.currentDevice.isPaired visible: root.currentDevice.isPaired
}, },
Kirigami.Action { Kirigami.Action {
iconName:"hands-free" icon.name: "hands-free"
text: i18nd("kdeconnect-app", "Send Ping") text: i18nd("kdeconnect-app", "Send Ping")
visible: root.currentDevice.isPaired && root.currentDevice.isReachable visible: root.currentDevice.isPaired && root.currentDevice.isReachable
onTriggered: { onTriggered: {
@ -32,7 +32,7 @@ Kirigami.ScrollablePage {
} }
}, },
Kirigami.Action { Kirigami.Action {
iconName: "settings-configure" icon.name: "settings-configure"
text: i18n("Plugin Settings") text: i18n("Plugin Settings")
visible: root.currentDevice.isPaired && root.currentDevice.isReachable visible: root.currentDevice.isPaired && root.currentDevice.isReachable
onTriggered: { onTriggered: {
@ -48,7 +48,7 @@ Kirigami.ScrollablePage {
model: plugins model: plugins
delegate: Kirigami.BasicListItem { delegate: Kirigami.BasicListItem {
label: name label: name
icon: iconName @KIRIGAMI_ICON@: iconName
highlighted: false highlighted: false
iconColor: "transparent" iconColor: "transparent"
visible: loaded visible: loaded
@ -171,7 +171,7 @@ Kirigami.ScrollablePage {
id: fileDialog id: fileDialog
readonly property var shareIface: root.currentDevice ? ShareDbusInterfaceFactory.create(root.currentDevice.id()) : null readonly property var shareIface: root.currentDevice ? ShareDbusInterfaceFactory.create(root.currentDevice.id()) : null
title: i18nd("kdeconnect-app", "Please choose a file") title: i18nd("kdeconnect-app", "Please choose a file")
folder: shortcuts.home @QTQUICK_FILEDIALOG_FOLDER@: shortcuts.home
onAccepted: shareIface.shareUrl(fileDialog.fileUrl) onAccepted: shareIface.shareUrl(fileDialog.fileUrl)
} }
} }

View file

@ -61,7 +61,7 @@ Kirigami.ScrollablePage
sourceModel: DevicesModel {} sourceModel: DevicesModel {}
} }
delegate: Kirigami.BasicListItem { delegate: Kirigami.BasicListItem {
icon: iconName @KIRIGAMI_ICON@: iconName
iconColor: "transparent" iconColor: "transparent"
label: model.name label: model.name
subtitle: toolTip subtitle: toolTip

View file

@ -74,7 +74,7 @@ Kirigami.ApplicationWindow {
Kirigami.BasicListItem { Kirigami.BasicListItem {
id: findDevicesAction id: findDevicesAction
text: i18nd("kdeconnect-app", "Find devices...") text: i18nd("kdeconnect-app", "Find devices...")
icon: "list-add" @KIRIGAMI_ICON@: "list-add"
checked: pageStack.currentItem && pageStack.currentItem.objectName == "FindDevices" checked: pageStack.currentItem && pageStack.currentItem.objectName == "FindDevices"
Layout.fillWidth: true Layout.fillWidth: true
@ -100,7 +100,7 @@ Kirigami.ApplicationWindow {
text: model.name + "\n" + toolTip text: model.name + "\n" + toolTip
enabled: status & DevicesModel.Reachable enabled: status & DevicesModel.Reachable
checked: pageStack.currentItem && pageStack.currentItem.currentDevice == device checked: pageStack.currentItem && pageStack.currentItem.currentDevice == device
icon: model.iconName @KIRIGAMI_ICON@: model.iconName
iconColor: "transparent" iconColor: "transparent"
onClicked: { onClicked: {
root.pageStack.clear() root.pageStack.clear()
@ -119,7 +119,7 @@ Kirigami.ApplicationWindow {
Kirigami.BasicListItem { Kirigami.BasicListItem {
text: i18n("Settings") text: i18n("Settings")
icon: "settings-configure" @KIRIGAMI_ICON@: "settings-configure"
onClicked: pageStack.pushDialogLayer('qrc:/qml/Settings.qml', {}, { onClicked: pageStack.pushDialogLayer('qrc:/qml/Settings.qml', {}, {
title: i18n("Settings"), title: i18n("Settings"),
}); });

View file

@ -1,13 +1,13 @@
<!DOCTYPE RCC><RCC version="1.0"> <!DOCTYPE RCC><RCC version="1.0">
<qresource> <qresource>
<file>qml/main.qml</file> <file alias="qml/main.qml">@CMAKE_CURRENT_BINARY_DIR@/qml/main.qml</file>
<file>qml/mpris.qml</file> <file>qml/mpris.qml</file>
<file>qml/mousepad.qml</file> <file>qml/mousepad.qml</file>
<file>qml/presentationRemote.qml</file> <file>qml/presentationRemote.qml</file>
<file>qml/PluginItem.qml</file> <file>qml/PluginItem.qml</file>
<file>qml/DevicePage.qml</file> <file alias="qml/DevicePage.qml">@CMAKE_CURRENT_BINARY_DIR@/qml/DevicePage.qml</file>
<file>qml/FindDevicesPage.qml</file> <file alias="qml/FindDevicesPage.qml">@CMAKE_CURRENT_BINARY_DIR@/qml/FindDevicesPage.qml</file>
<file>qml/runcommand.qml</file> <file>qml/runcommand.qml</file>
<file>qml/volume.qml</file> <file>qml/volume.qml</file>
<file>qml/MprisSlider.qml</file> <file>qml/MprisSlider.qml</file>