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:
parent
131ed9a079
commit
f57d59e605
7 changed files with 33 additions and 15 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -33,3 +33,4 @@ CMakeLists.txt.user
|
||||||
.idea
|
.idea
|
||||||
/cmake-build*
|
/cmake-build*
|
||||||
.clang-format
|
.clang-format
|
||||||
|
app/resources.generated.qrc
|
||||||
|
|
|
@ -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})
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"),
|
||||||
});
|
});
|
||||||
|
|
|
@ -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>
|
Loading…
Reference in a new issue