Compare commits
4 commits
master
...
work/nico/
Author | SHA1 | Date | |
---|---|---|---|
|
cbd0eda348 | ||
|
632bf8e450 | ||
|
811101352f | ||
|
6366ceb530 |
9 changed files with 299 additions and 286 deletions
|
@ -40,7 +40,6 @@ ecm_target_qml_sources(kdeconnect-app SOURCES
|
|||
qml/volume.qml
|
||||
qml/MprisSlider.qml
|
||||
qml/PluginSettings.qml
|
||||
qml/PluginInfoPage.qml
|
||||
qml/Settings.qml
|
||||
)
|
||||
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
*/
|
||||
|
||||
import QtQuick
|
||||
import org.kde.kirigami as Kirigami
|
||||
|
||||
Kirigami.Page {
|
||||
id: root
|
||||
property string configFile
|
||||
property string device
|
||||
|
||||
actions: loader.item && loader.item.action ? [loader.item.action] : []
|
||||
|
||||
onConfigFileChanged: loader.setSource(configFile, {
|
||||
device: root.device
|
||||
})
|
||||
|
||||
Loader {
|
||||
anchors.fill: parent
|
||||
id: loader
|
||||
Component.onCompleted: setSource(configFile, {
|
||||
device: root.device
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -63,17 +63,14 @@ Kirigami.ScrollablePage {
|
|||
// https://bugreports.qt.io/browse/QTBUG-123123
|
||||
Accessible.name: i18nd("kdeconnect-app", "Configure plugin")
|
||||
onTriggered: {
|
||||
if (pageStack.lastItem.toString().startsWith("PluginInfoPage")) {
|
||||
pageStack.lastItem.configFile = configSource;
|
||||
pageStack.lastItem.title = name;
|
||||
pageStack.goForward();
|
||||
} else {
|
||||
pageStack.push(Qt.resolvedUrl("PluginInfoPage.qml"), {
|
||||
title: name,
|
||||
configFile: configSource,
|
||||
device: root.device,
|
||||
});
|
||||
if (!pageStack.lastItem.toString().startsWith("PluginSettings")) {
|
||||
pageStack.pop()
|
||||
}
|
||||
|
||||
pageStack.push(configSource, {
|
||||
title: name,
|
||||
device: root.device,
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -10,31 +10,36 @@ import QtQuick.Layouts 1.15
|
|||
import org.kde.kirigami 2.20 as Kirigami
|
||||
import org.kde.kdeconnect 1.0
|
||||
|
||||
Kirigami.FormLayout {
|
||||
Kirigami.Page {
|
||||
|
||||
property string device
|
||||
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_clipboard"
|
||||
}
|
||||
Kirigami.FormLayout {
|
||||
|
||||
Component.onCompleted: {
|
||||
autoShare.checked = config.getBool("autoShare", config.getBool("sendUnknown", true))
|
||||
password.checked = config.getBool("sendPassword", true)
|
||||
}
|
||||
anchors.fill: parent
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: autoShare
|
||||
text: i18n("Automatically share the clipboard from this device")
|
||||
onClicked: config.set("autoShare", checked)
|
||||
}
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_clipboard"
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: password
|
||||
text: i18n("Including passwords (as marked by password managers)")
|
||||
onClicked: config.set("sendPassword", checked)
|
||||
}
|
||||
Component.onCompleted: {
|
||||
autoShare.checked = config.getBool("autoShare", config.getBool("sendUnknown", true))
|
||||
password.checked = config.getBool("sendPassword", true)
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: autoShare
|
||||
text: i18n("Automatically share the clipboard from this device")
|
||||
onClicked: config.set("autoShare", checked)
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: password
|
||||
text: i18n("Including passwords (as marked by password managers)")
|
||||
onClicked: config.set("sendPassword", checked)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,46 +11,52 @@ import org.kde.kirigami 2.20 as Kirigami
|
|||
import Qt.labs.platform 1.1
|
||||
import org.kde.kdeconnect 1.0
|
||||
|
||||
Kirigami.FormLayout {
|
||||
Kirigami.Page {
|
||||
|
||||
property string device
|
||||
|
||||
property var action: Kirigami.Action {
|
||||
icon.name: "dialog-ok"
|
||||
text: i18n("Apply")
|
||||
onTriggered: config.set("ringtone", path.text)
|
||||
}
|
||||
|
||||
FileDialog {
|
||||
id: fileDialog
|
||||
currentFile: path.text
|
||||
|
||||
onAccepted: {
|
||||
path.text = currentFile.toString().replace("file://", "")
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
icon.name: "dialog-ok"
|
||||
text: i18n("Apply")
|
||||
onTriggered: config.set("ringtone", path.text)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_findthisdevice"
|
||||
Kirigami.FormLayout {
|
||||
|
||||
onConfigChanged: {
|
||||
path.text = getString("ringtone", StandardPaths.writableLocation(StandardPaths.DownloadsLocation).toString().replace("file://", ""))
|
||||
}
|
||||
}
|
||||
anchors.fill: parent
|
||||
|
||||
RowLayout {
|
||||
Kirigami.FormData.label: i18n("Sound to play:")
|
||||
FileDialog {
|
||||
id: fileDialog
|
||||
currentFile: path.text
|
||||
|
||||
QQC2.TextField {
|
||||
id: path
|
||||
onAccepted: {
|
||||
path.text = currentFile.toString().replace("file://", "")
|
||||
}
|
||||
}
|
||||
|
||||
QQC2.Button {
|
||||
icon.name: "document-open"
|
||||
onClicked: fileDialog.open()
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_findthisdevice"
|
||||
|
||||
onConfigChanged: {
|
||||
path.text = getString("ringtone", StandardPaths.writableLocation(StandardPaths.DownloadsLocation).toString().replace("file://", ""))
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Kirigami.FormData.label: i18n("Sound to play:")
|
||||
|
||||
QQC2.TextField {
|
||||
id: path
|
||||
}
|
||||
|
||||
QQC2.Button {
|
||||
icon.name: "document-open"
|
||||
onClicked: fileDialog.open()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,48 +10,54 @@ import QtQuick.Layouts 1.15
|
|||
import org.kde.kirigami 2.20 as Kirigami
|
||||
import org.kde.kdeconnect 1.0
|
||||
|
||||
Kirigami.FormLayout {
|
||||
Kirigami.Page {
|
||||
|
||||
property string device
|
||||
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_pausemusic"
|
||||
}
|
||||
Kirigami.FormLayout {
|
||||
|
||||
Component.onCompleted: {
|
||||
talking.checked = config.getBool("conditionTalking", false)
|
||||
mute.checked = config.getBool("actionMute", false)
|
||||
pause.checked = config.getBool("actionPause", true)
|
||||
resume.checked = config.getBool("actionResume", true)
|
||||
}
|
||||
anchors.fill: parent
|
||||
|
||||
QQC2.RadioButton {
|
||||
text: i18n("Pause as soon as phone rings")
|
||||
checked: !talking.checked
|
||||
}
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_pausemusic"
|
||||
}
|
||||
|
||||
QQC2.RadioButton {
|
||||
id: talking
|
||||
onCheckedChanged: config.set("conditionTalking", checked)
|
||||
text: i18n("Pause only while talking")
|
||||
}
|
||||
Component.onCompleted: {
|
||||
talking.checked = config.getBool("conditionTalking", false)
|
||||
mute.checked = config.getBool("actionMute", false)
|
||||
pause.checked = config.getBool("actionPause", true)
|
||||
resume.checked = config.getBool("actionResume", true)
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: pause
|
||||
text: i18n("Pause media players")
|
||||
onClicked: config.set("actionPause", checked)
|
||||
}
|
||||
QQC2.RadioButton {
|
||||
text: i18n("Pause as soon as phone rings")
|
||||
checked: !talking.checked
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: mute
|
||||
text: i18n("Mute system sound")
|
||||
onClicked: config.set("actionMute", checked)
|
||||
}
|
||||
QQC2.RadioButton {
|
||||
id: talking
|
||||
onCheckedChanged: config.set("conditionTalking", checked)
|
||||
text: i18n("Pause only while talking")
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: resume
|
||||
text: i18n("Resume automatically when call ends")
|
||||
onClicked: config.set("actionResume", checked)
|
||||
QQC2.CheckBox {
|
||||
id: pause
|
||||
text: i18n("Pause media players")
|
||||
onClicked: config.set("actionPause", checked)
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: mute
|
||||
text: i18n("Mute system sound")
|
||||
onClicked: config.set("actionMute", checked)
|
||||
}
|
||||
|
||||
QQC2.CheckBox {
|
||||
id: resume
|
||||
text: i18n("Resume automatically when call ends")
|
||||
onClicked: config.set("actionResume", checked)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,118 +3,137 @@
|
|||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||
*/
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls 2.15 as QQC2
|
||||
import org.kde.kirigami 2.20 as Kirigami
|
||||
import org.kde.kdeconnect 1.0
|
||||
|
||||
ListView {
|
||||
id: view
|
||||
Component.onCompleted: {
|
||||
root.leftPadding = 0
|
||||
root.rightPadding = 0
|
||||
root.topPadding = 0
|
||||
root.bottomPadding = 0
|
||||
}
|
||||
Kirigami.ScrollablePage {
|
||||
id: root
|
||||
|
||||
property string device
|
||||
|
||||
property var action: Kirigami.Action {
|
||||
icon.name: "list-add"
|
||||
text: i18n("Add command")
|
||||
onTriggered: addDialog.open()
|
||||
}
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
icon.name: "list-add"
|
||||
text: i18n("Add command")
|
||||
onTriggered: addDialog.open()
|
||||
}
|
||||
]
|
||||
|
||||
model: CommandsModel {
|
||||
id: commandModel
|
||||
deviceId: device
|
||||
}
|
||||
ListView {
|
||||
id: view
|
||||
|
||||
delegate: Kirigami.SwipeListItem {
|
||||
width: parent.width
|
||||
enabled: true
|
||||
|
||||
contentItem: QQC2.Label {
|
||||
text: i18n("%1 <br> <i>%2</i>", name, command)
|
||||
model: CommandsModel {
|
||||
id: commandModel
|
||||
deviceId: device
|
||||
}
|
||||
|
||||
actions: Kirigami.Action {
|
||||
text: i18n("Delete")
|
||||
icon.name: "delete"
|
||||
onTriggered: commandModel.removeCommand(index)
|
||||
}
|
||||
}
|
||||
delegate: QQC2.ItemDelegate {
|
||||
id: commandDelegate
|
||||
|
||||
Kirigami.PlaceholderMessage {
|
||||
icon.name: 'utilities-terminal'
|
||||
anchors.centerIn: parent
|
||||
visible: view.count === 0
|
||||
width: parent.width - Kirigami.Units.gridUnit * 4
|
||||
text: i18n("No Commands")
|
||||
explanation: i18n("Add commands to run them remotely from other devices")
|
||||
helpfulAction: view.action
|
||||
}
|
||||
required property string name
|
||||
required property string command
|
||||
required property int index
|
||||
|
||||
QQC2.Dialog {
|
||||
id: addDialog
|
||||
title: "Add command"
|
||||
text: name
|
||||
width: ListView.view.width
|
||||
|
||||
standardButtons: QQC2.Dialog.Save | QQC2.Dialog.Cancel
|
||||
|
||||
Kirigami.FormLayout {
|
||||
QQC2.TextField {
|
||||
id: nameField
|
||||
Kirigami.FormData.label: i18n("Name:")
|
||||
}
|
||||
QQC2.TextField {
|
||||
id: commandField
|
||||
Kirigami.FormData.label: i18n("Command:")
|
||||
}
|
||||
|
||||
QQC2.ComboBox {
|
||||
Kirigami.FormData.label: i18n("Sample commands:")
|
||||
textRole: "name"
|
||||
model: ListModel {
|
||||
id: sampleCommands
|
||||
ListElement {
|
||||
name: "Sample command"
|
||||
command: ""
|
||||
}
|
||||
ListElement {
|
||||
name: "Suspend"
|
||||
command: "systemctl suspend"
|
||||
}
|
||||
ListElement {
|
||||
name: "Maximum Brightness"
|
||||
command: "qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl org.kde.Solid.PowerManagement.Actions.BrightnessControl.setBrightness `qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl org.kde.Solid.PowerManagement.Actions.BrightnessControl.brightnessMax`"
|
||||
}
|
||||
ListElement {
|
||||
name: "Lock Screen"
|
||||
command: "loginctl lock-session"
|
||||
}
|
||||
ListElement {
|
||||
name: "Unlock Screen"
|
||||
command: "loginctl unlock-session"
|
||||
}
|
||||
ListElement {
|
||||
name: "Close All Vaults"
|
||||
command: "qdbus org.kde.kded5 /modules/plasmavault closeAllVaults"
|
||||
}
|
||||
ListElement {
|
||||
name: "Forcefully Close All Vaults"
|
||||
command: "qdbus org.kde.kded5 /modules/plasmavault forceCloseAllVaults"
|
||||
}
|
||||
contentItem: RowLayout {
|
||||
Kirigami.TitleSubtitle {
|
||||
title: commandDelegate.text
|
||||
subtitle: commandDelegate.command
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
onActivated: {
|
||||
if (index > 0) {
|
||||
nameField.text = sampleCommands.get(index).name
|
||||
commandField.text = sampleCommands.get(index).command
|
||||
}
|
||||
|
||||
QQC2.ToolButton {
|
||||
text: i18n("Delete")
|
||||
icon.name: "delete"
|
||||
onClicked: commandModel.removeCommand(commandDelegate.index)
|
||||
display: QQC2.ToolButton.IconOnly
|
||||
|
||||
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
||||
QQC2.ToolTip.text: text
|
||||
QQC2.ToolTip.visible: hovered || activeFocus
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onAccepted: commandModel.addCommand(nameField.text, commandField.text)
|
||||
Kirigami.PlaceholderMessage {
|
||||
icon.name: 'utilities-terminal'
|
||||
anchors.centerIn: parent
|
||||
visible: view.count === 0
|
||||
width: parent.width - Kirigami.Units.gridUnit * 4
|
||||
text: i18n("No Commands")
|
||||
explanation: i18n("Add commands to run them remotely from other devices")
|
||||
helpfulAction: root.actions[0]
|
||||
}
|
||||
|
||||
Kirigami.Dialog {
|
||||
id: addDialog
|
||||
title: "Add command"
|
||||
|
||||
standardButtons: QQC2.Dialog.Save | QQC2.Dialog.Cancel
|
||||
|
||||
horizontalPadding: Kirigami.Units.largeSpacing
|
||||
|
||||
Kirigami.FormLayout {
|
||||
QQC2.TextField {
|
||||
id: nameField
|
||||
Kirigami.FormData.label: i18n("Name:")
|
||||
}
|
||||
QQC2.TextField {
|
||||
id: commandField
|
||||
Kirigami.FormData.label: i18n("Command:")
|
||||
}
|
||||
|
||||
QQC2.ComboBox {
|
||||
Kirigami.FormData.label: i18n("Sample commands:")
|
||||
textRole: "name"
|
||||
model: ListModel {
|
||||
id: sampleCommands
|
||||
ListElement {
|
||||
name: "Sample command"
|
||||
command: ""
|
||||
}
|
||||
ListElement {
|
||||
name: "Suspend"
|
||||
command: "systemctl suspend"
|
||||
}
|
||||
ListElement {
|
||||
name: "Maximum Brightness"
|
||||
command: "qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl org.kde.Solid.PowerManagement.Actions.BrightnessControl.setBrightness `qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl org.kde.Solid.PowerManagement.Actions.BrightnessControl.brightnessMax`"
|
||||
}
|
||||
ListElement {
|
||||
name: "Lock Screen"
|
||||
command: "loginctl lock-session"
|
||||
}
|
||||
ListElement {
|
||||
name: "Unlock Screen"
|
||||
command: "loginctl unlock-session"
|
||||
}
|
||||
ListElement {
|
||||
name: "Close All Vaults"
|
||||
command: "qdbus org.kde.kded5 /modules/plasmavault closeAllVaults"
|
||||
}
|
||||
ListElement {
|
||||
name: "Forcefully Close All Vaults"
|
||||
command: "qdbus org.kde.kded5 /modules/plasmavault forceCloseAllVaults"
|
||||
}
|
||||
}
|
||||
onActivated: index => {
|
||||
if (index > 0) {
|
||||
nameField.text = sampleCommands.get(index).name
|
||||
commandField.text = sampleCommands.get(index).command
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onAccepted: commandModel.addCommand(nameField.text, commandField.text)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,47 +10,52 @@ import QtQuick.Layouts 1.1
|
|||
import org.kde.kirigami 2.5 as Kirigami
|
||||
import org.kde.kdeconnect 1.0
|
||||
|
||||
Kirigami.FormLayout {
|
||||
Kirigami.Page {
|
||||
|
||||
property string device
|
||||
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_sendnotifications"
|
||||
}
|
||||
Kirigami.FormLayout {
|
||||
|
||||
Component.onCompleted: {
|
||||
persistent.checked = config.getBool("generalPersistent", false)
|
||||
includeBody.checked = config.getBool("generalIncludeBody", true)
|
||||
includeIcon.checked = config.getBool("generalSynchronizeIcons", true)
|
||||
urgency.value = config.getInt("generalUrgency", 0)
|
||||
}
|
||||
anchors.fill: parent
|
||||
|
||||
CheckBox {
|
||||
id: persistent
|
||||
text: i18n("Persistent notifications only")
|
||||
onClicked: config.set("generalPersistent", checked)
|
||||
}
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_sendnotifications"
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
id: includeBody
|
||||
text: i18n("Include body")
|
||||
onClicked: config.set("generalIncludeBody", checked)
|
||||
}
|
||||
Component.onCompleted: {
|
||||
persistent.checked = config.getBool("generalPersistent", false)
|
||||
includeBody.checked = config.getBool("generalIncludeBody", true)
|
||||
includeIcon.checked = config.getBool("generalSynchronizeIcons", true)
|
||||
urgency.value = config.getInt("generalUrgency", 0)
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
id: includeIcon
|
||||
text: i18n("Include icon")
|
||||
onClicked: config.set("generalSynchronizeIcons", checked)
|
||||
}
|
||||
CheckBox {
|
||||
id: persistent
|
||||
text: i18n("Persistent notifications only")
|
||||
onClicked: config.set("generalPersistent", checked)
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
id: urgency
|
||||
Kirigami.FormData.label: i18n("Minimum urgency level:")
|
||||
from: 0
|
||||
to: 2
|
||||
onValueModified: config.set("generalUrgency", value)
|
||||
}
|
||||
CheckBox {
|
||||
id: includeBody
|
||||
text: i18n("Include body")
|
||||
onClicked: config.set("generalIncludeBody", checked)
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
id: includeIcon
|
||||
text: i18n("Include icon")
|
||||
onClicked: config.set("generalSynchronizeIcons", checked)
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
id: urgency
|
||||
Kirigami.FormData.label: i18n("Minimum urgency level:")
|
||||
from: 0
|
||||
to: 2
|
||||
onValueModified: config.set("generalUrgency", value)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,49 +11,56 @@ import org.kde.kirigami 2.20 as Kirigami
|
|||
import Qt.labs.platform 1.1
|
||||
import org.kde.kdeconnect 1.0
|
||||
|
||||
Kirigami.FormLayout {
|
||||
Kirigami.Page {
|
||||
|
||||
property string device
|
||||
|
||||
property var action: Kirigami.Action {
|
||||
icon.name: "dialog-ok"
|
||||
text: i18n("Apply")
|
||||
onTriggered: config.set("incoming_path", path.text)
|
||||
}
|
||||
|
||||
FolderDialog {
|
||||
id: folderDialog
|
||||
currentFolder: path.text
|
||||
|
||||
onAccepted: {
|
||||
path.text = currentFolder.toString().replace("file://", "")
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
icon.name: "dialog-ok"
|
||||
text: i18n("Apply")
|
||||
onTriggered: config.set("incoming_path", path.text)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_share"
|
||||
Kirigami.FormLayout {
|
||||
|
||||
onConfigChanged: {
|
||||
path.text = getString("incoming_path", StandardPaths.writableLocation(StandardPaths.DownloadsLocation).toString().replace("file://", ""))
|
||||
}
|
||||
}
|
||||
anchors.fill: parent
|
||||
|
||||
RowLayout {
|
||||
Kirigami.FormData.label: i18n("Save files in:")
|
||||
FolderDialog {
|
||||
id: folderDialog
|
||||
currentFolder: path.text
|
||||
|
||||
QQC2.TextField {
|
||||
id: path
|
||||
onAccepted: {
|
||||
path.text = currentFolder.toString().replace("file://", "")
|
||||
}
|
||||
}
|
||||
|
||||
QQC2.Button {
|
||||
icon.name: "document-open"
|
||||
onClicked: folderDialog.open()
|
||||
}
|
||||
}
|
||||
KdeConnectPluginConfig {
|
||||
id: config
|
||||
deviceId: device
|
||||
pluginName: "kdeconnect_share"
|
||||
|
||||
QQC2.Label {
|
||||
text: i18n("%1 in the path will be replaced with the specific device name", "%1")
|
||||
onConfigChanged: {
|
||||
path.text = getString("incoming_path", StandardPaths.writableLocation(StandardPaths.DownloadsLocation).toString().replace("file://", ""))
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Kirigami.FormData.label: i18n("Save files in:")
|
||||
|
||||
QQC2.TextField {
|
||||
id: path
|
||||
}
|
||||
|
||||
QQC2.Button {
|
||||
icon.name: "document-open"
|
||||
onClicked: folderDialog.open()
|
||||
}
|
||||
}
|
||||
|
||||
QQC2.Label {
|
||||
text: i18n("%1 in the path will be replaced with the specific device name", "%1")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue