plasmoid: Flatten plugin controllers, menu and other non-graphical components
Flat is better than nested. Those non-graphical components don't need to be buried deep inside visual hierarchy tree. For example, for me it was confusing to find the device label item after Battery, Connectivity and VirtualMonitor only to realize some time later that those were not actual visual indicators.
This commit is contained in:
parent
8c0260d4f8
commit
d2ee2bfdd8
1 changed files with 114 additions and 121 deletions
|
@ -24,6 +24,51 @@ PlasmaComponents.ItemDelegate {
|
|||
hoverEnabled: false
|
||||
down: false
|
||||
|
||||
Battery {
|
||||
id: battery
|
||||
device: root.device
|
||||
}
|
||||
|
||||
Clipboard {
|
||||
id: clipboard
|
||||
device: root.device
|
||||
}
|
||||
|
||||
Connectivity {
|
||||
id: connectivity
|
||||
device: root.device
|
||||
}
|
||||
|
||||
FindMyPhone {
|
||||
id: findmyphone
|
||||
device: root.device
|
||||
}
|
||||
|
||||
RemoteCommands {
|
||||
id: remoteCommands
|
||||
device: root.device
|
||||
}
|
||||
|
||||
Sftp {
|
||||
id: sftp
|
||||
device: root.device
|
||||
}
|
||||
|
||||
Share {
|
||||
id: share
|
||||
device: root.device
|
||||
}
|
||||
|
||||
SMS {
|
||||
id: sms
|
||||
device: root.device
|
||||
}
|
||||
|
||||
VirtualMonitor {
|
||||
id: virtualmonitor
|
||||
device: root.device
|
||||
}
|
||||
|
||||
Kirigami.PromptDialog {
|
||||
id: prompt
|
||||
visible: false
|
||||
|
@ -32,6 +77,75 @@ PlasmaComponents.ItemDelegate {
|
|||
title: i18n("Virtual Monitor is not available")
|
||||
}
|
||||
|
||||
QtDialogs.FileDialog {
|
||||
id: fileDialog
|
||||
title: i18n("Please choose a file")
|
||||
currentFolder: StandardPaths.writableLocation(StandardPaths.HomeLocation)
|
||||
fileMode: QtDialogs.FileDialog.OpenFiles
|
||||
onAccepted: {
|
||||
selectedFiles.forEach(url => share.plugin.shareUrl(url));
|
||||
}
|
||||
}
|
||||
|
||||
PlasmaExtras.Menu {
|
||||
id: menu
|
||||
|
||||
visualParent: overflowMenu
|
||||
placement: PlasmaExtras.Menu.BottomPosedLeftAlignedPopup
|
||||
|
||||
// Share
|
||||
PlasmaExtras.MenuItem {
|
||||
icon: "document-share"
|
||||
visible: share.available
|
||||
text: i18n("Share file")
|
||||
onClicked: fileDialog.open()
|
||||
}
|
||||
|
||||
// Clipboard
|
||||
PlasmaExtras.MenuItem {
|
||||
icon: "klipper"
|
||||
visible: clipboard.clipboard?.isAutoShareDisabled ?? false
|
||||
text: i18n("Send Clipboard")
|
||||
|
||||
onClicked: {
|
||||
clipboard.sendClipboard()
|
||||
}
|
||||
}
|
||||
|
||||
// Find my phone
|
||||
PlasmaExtras.MenuItem {
|
||||
icon: "irc-voice"
|
||||
visible: findmyphone.available
|
||||
text: i18n("Ring my phone")
|
||||
|
||||
onClicked: {
|
||||
findmyphone.ring()
|
||||
}
|
||||
}
|
||||
|
||||
// SFTP
|
||||
PlasmaExtras.MenuItem {
|
||||
icon: "document-open-folder"
|
||||
visible: sftp.available
|
||||
text: i18n("Browse this device")
|
||||
|
||||
onClicked: {
|
||||
sftp.browse()
|
||||
}
|
||||
}
|
||||
|
||||
// SMS
|
||||
PlasmaExtras.MenuItem {
|
||||
icon: "message-new"
|
||||
visible: sms.available
|
||||
text: i18n("SMS Messages")
|
||||
|
||||
onClicked: {
|
||||
sms.plugin.launchApp()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DropArea {
|
||||
id: fileDropArea
|
||||
anchors.fill: parent
|
||||
|
@ -60,21 +174,6 @@ PlasmaComponents.ItemDelegate {
|
|||
width: parent.width
|
||||
spacing: Kirigami.Units.smallSpacing
|
||||
|
||||
Battery {
|
||||
id: battery
|
||||
device: root.device
|
||||
}
|
||||
|
||||
Connectivity {
|
||||
id: connectivity
|
||||
device: root.device
|
||||
}
|
||||
|
||||
VirtualMonitor {
|
||||
id: virtualmonitor
|
||||
device: root.device
|
||||
}
|
||||
|
||||
PlasmaComponents.Label {
|
||||
id: deviceName
|
||||
elide: Text.ElideRight
|
||||
|
@ -164,101 +263,6 @@ PlasmaComponents.ItemDelegate {
|
|||
checked: menu.status === PlasmaExtras.Menu.Open
|
||||
|
||||
onPressed: menu.openRelative()
|
||||
|
||||
PlasmaExtras.Menu {
|
||||
id: menu
|
||||
visualParent: overflowMenu
|
||||
placement: PlasmaExtras.Menu.BottomPosedLeftAlignedPopup
|
||||
|
||||
// Share
|
||||
PlasmaExtras.MenuItem {
|
||||
id: shareFile
|
||||
|
||||
readonly property QtDialogs.FileDialog data: QtDialogs.FileDialog {
|
||||
id: fileDialog
|
||||
title: i18n("Please choose a file")
|
||||
currentFolder: StandardPaths.writableLocation(StandardPaths.HomeLocation)
|
||||
fileMode: QtDialogs.FileDialog.OpenFiles
|
||||
onAccepted: fileDialog.selectedFiles.forEach(url => share.plugin.shareUrl(url))
|
||||
}
|
||||
|
||||
icon: "document-share"
|
||||
visible: share.available
|
||||
text: i18n("Share file")
|
||||
onClicked: fileDialog.open()
|
||||
}
|
||||
|
||||
// Clipboard
|
||||
PlasmaExtras.MenuItem {
|
||||
id: sendclipboard
|
||||
|
||||
readonly property Clipboard data: Clipboard {
|
||||
id: clipboard
|
||||
device: root.device
|
||||
}
|
||||
|
||||
icon: "klipper"
|
||||
visible: clipboard.clipboard?.isAutoShareDisabled ?? false
|
||||
text: i18n("Send Clipboard")
|
||||
|
||||
onClicked: {
|
||||
clipboard.sendClipboard()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Find my phone
|
||||
PlasmaExtras.MenuItem {
|
||||
id: ring
|
||||
|
||||
readonly property FindMyPhone data: FindMyPhone {
|
||||
id: findmyphone
|
||||
device: root.device
|
||||
}
|
||||
|
||||
icon: "irc-voice"
|
||||
visible: findmyphone.available
|
||||
text: i18n("Ring my phone")
|
||||
|
||||
onClicked: {
|
||||
findmyphone.ring()
|
||||
}
|
||||
}
|
||||
|
||||
// SFTP
|
||||
PlasmaExtras.MenuItem {
|
||||
id: browse
|
||||
|
||||
readonly property Sftp data: Sftp {
|
||||
id: sftp
|
||||
device: root.device
|
||||
}
|
||||
|
||||
icon: "document-open-folder"
|
||||
visible: sftp.available
|
||||
text: i18n("Browse this device")
|
||||
|
||||
onClicked: {
|
||||
sftp.browse()
|
||||
}
|
||||
}
|
||||
|
||||
// SMS
|
||||
PlasmaExtras.MenuItem {
|
||||
readonly property SMS data: SMS {
|
||||
id: sms
|
||||
device: root.device
|
||||
}
|
||||
|
||||
icon: "message-new"
|
||||
visible: sms.available
|
||||
text: i18n("SMS Messages")
|
||||
|
||||
onClicked: {
|
||||
sms.plugin.launchApp()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -422,11 +426,6 @@ PlasmaComponents.ItemDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
RemoteCommands {
|
||||
id: remoteCommands
|
||||
device: root.device
|
||||
}
|
||||
|
||||
// Commands
|
||||
RowLayout {
|
||||
visible: remoteCommands.available
|
||||
|
@ -467,11 +466,5 @@ PlasmaComponents.ItemDelegate {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Share
|
||||
Share {
|
||||
id: share
|
||||
device: root.device
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue