Compare commits

...

1 Commits

Author SHA1 Message Date
Martchus 0d8ab503e4 WIP: Use QQC2 for context menu 2022-05-30 19:09:24 +02:00
6 changed files with 58 additions and 63 deletions

View File

@ -1,5 +1,5 @@
import QtQuick 2.7 import QtQuick 2.7
import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem import QtQuick.Controls 2.15 as QQC2
ListView { ListView {
id: detailView id: detailView
@ -8,12 +8,12 @@ ListView {
interactive: false interactive: false
height: contentHeight height: contentHeight
PlasmaComponents.Menu { QQC2.Menu {
id: contextMenu id: contextMenu
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr('Copy value') text: qsTr('Copy value')
icon: "edit-copy" icon.name: "edit-copy"
onClicked: { onTriggered: {
var item = detailView.contextMenuItem var item = detailView.contextMenuItem
if (item) { if (item) {
plasmoid.nativeInterface.copyToClipboard(item.detailValue) plasmoid.nativeInterface.copyToClipboard(item.detailValue)
@ -24,6 +24,6 @@ ListView {
function showContextMenu(item, x, y) { function showContextMenu(item, x, y) {
contextMenuItem = item contextMenuItem = item
contextMenu.open(x, y) contextMenu.popup()
} }
} }

View File

@ -1,7 +1,7 @@
import QtQuick 2.3 import QtQuick 2.3
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQml.Models 2.2 import QtQml.Models 2.2
import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem import QtQuick.Controls 2.15 as QQC2
import org.kde.plasma.components 3.0 as PlasmaComponents3 import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
@ -88,7 +88,7 @@ Item {
} }
} }
PlasmaComponents.Menu { QQC2.Menu {
id: contextMenu id: contextMenu
function init(item) { function init(item) {
@ -97,24 +97,23 @@ Item {
resumePauseItem.icon = item.resumePauseButton.icon resumePauseItem.icon = item.resumePauseButton.icon
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr("Copy name") text: qsTr("Copy name")
icon: "edit-copy" icon.name: "edit-copy"
onClicked: deviceView.copyCurrentItemData("devName") onTriggered: deviceView.copyCurrentItemData("devName")
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr("Copy ID") text: qsTr("Copy ID")
icon: "edit-copy" icon.name: "edit-copy"
onClicked: deviceView.copyCurrentItemData("devID") onTriggered: deviceView.copyCurrentItemData("devID")
} }
PlasmaComponents.MenuItem { QQC2.MenuSeparator {
separator: true
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
id: resumePauseItem id: resumePauseItem
text: qsTr("Pause") text: qsTr("Pause")
icon: "media-playback-pause" icon.name: "media-playback-pause"
onClicked: deviceView.clickCurrentItemButton( onTriggered: deviceView.clickCurrentItemButton(
"resumePauseButton") "resumePauseButton")
} }
} }

View File

@ -1,7 +1,7 @@
import QtQuick 2.3 import QtQuick 2.3
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQml.Models 2.2 import QtQml.Models 2.2
import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem import QtQuick.Controls 2.15 as QQC2
import org.kde.plasma.components 3.0 as PlasmaComponents3 import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
import martchus.syncthingplasmoid 0.6 as SyncthingPlasmoid import martchus.syncthingplasmoid 0.6 as SyncthingPlasmoid
@ -133,48 +133,47 @@ ColumnLayout {
} }
} }
PlasmaComponents.Menu { QQC2.Menu {
id: contextMenu id: contextMenu
function init(item) { function init(item) {
// use value for properties depending on paused state from buttons // use value for properties depending on paused state from buttons
rescanItem.enabled = item.rescanButton.enabled rescanItem.enabled = item.rescanButton.enabled
resumePauseItem.text = item.resumePauseButton.tooltip resumePauseItem.text = item.resumePauseButton.tooltip
resumePauseItem.icon = item.resumePauseButton.icon resumePauseItem.icon.name = item.resumePauseButton.icon
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr("Copy label/ID") text: qsTr("Copy label/ID")
icon: "edit-copy" icon.name: "edit-copy"
onClicked: directoryView.copyCurrentItemData("dirName") onTriggered: directoryView.copyCurrentItemData("dirName")
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr("Copy path") text: qsTr("Copy path")
icon: "edit-copy" icon.name: "edit-copy"
onClicked: directoryView.copyCurrentItemData("dirPath") onTriggered: directoryView.copyCurrentItemData("dirPath")
} }
PlasmaComponents.MenuItem { QQC2.MenuSeparator {
separator: true
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
id: rescanItem id: rescanItem
text: qsTr("Rescan") text: qsTr("Rescan")
icon: "view-refresh" icon.name: "view-refresh"
onClicked: directoryView.clickCurrentItemButton( onTriggered: directoryView.clickCurrentItemButton(
"rescanButton") "rescanButton")
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
id: resumePauseItem id: resumePauseItem
text: qsTr("Pause") text: qsTr("Pause")
icon: "media-playback-pause" icon.name: "media-playback-pause"
onClicked: directoryView.clickCurrentItemButton( onTriggered: directoryView.clickCurrentItemButton(
"resumePauseButton") "resumePauseButton")
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
id: openItem id: openItem
text: qsTr("Open in file browser") text: qsTr("Open in file browser")
icon: "folder" icon.name: "folder"
onClicked: directoryView.clickCurrentItemButton( onTriggered: directoryView.clickCurrentItemButton(
"openButton") "openButton")
} }
} }

View File

@ -1,7 +1,7 @@
import QtQuick 2.3 import QtQuick 2.3
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQml.Models 2.2 import QtQml.Models 2.2
import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem import QtQuick.Controls 2.15 as QQC2
import org.kde.plasma.components 3.0 as PlasmaComponents3 import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
@ -131,22 +131,21 @@ Item {
} }
} }
PlasmaComponents.Menu { QQC2.Menu {
id: contextMenu id: contextMenu
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr("Copy label/ID") text: qsTr("Copy label/ID")
icon: "edit-copy" icon.name: "edit-copy"
onClicked: downloadView.copyCurrentItemData("downloadName") onTriggered: downloadView.copyCurrentItemData("downloadName")
} }
PlasmaComponents.MenuItem { QQC2.MenuSeparator {
separator: true
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
id: openItem id: openItem
text: qsTr("Open in file browser") text: qsTr("Open in file browser")
icon: "folder" icon.name: "folder"
onClicked: downloadView.clickCurrentItemButton("openButton") onTriggered: downloadView.clickCurrentItemButton("openButton")
} }
} }
} }

View File

@ -1,7 +1,7 @@
import QtQuick 2.3 import QtQuick 2.3
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQml.Models 2.2 import QtQml.Models 2.2
import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem import QtQuick.Controls 2.15 as QQC2
import org.kde.plasma.components 3.0 as PlasmaComponents3 import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
@ -103,17 +103,17 @@ Item {
} }
} }
PlasmaComponents.Menu { QQC2.Menu {
id: contextMenu id: contextMenu
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr("Copy path") text: qsTr("Copy path")
icon: "edit-copy" icon.name: "edit-copy"
onClicked: recentChangesView.currentItem.copyPath() onTriggered: recentChangesView.currentItem.copyPath()
} }
PlasmaComponents.MenuItem { QQC2.MenuItem {
text: qsTr("Copy device ID") text: qsTr("Copy device ID")
icon: "network-server-symbolic" icon.name: "network-server-symbolic"
onClicked: recentChangesView.currentItem.copyDeviceId() onTriggered: recentChangesView.currentItem.copyDeviceId()
} }
PlasmaComponents.MenuItem { PlasmaComponents.MenuItem {
text: qsTr("Copy directory ID") text: qsTr("Copy directory ID")

View File

@ -1,5 +1,5 @@
import QtQuick 2.7 import QtQuick 2.7
import org.kde.plasma.components 2.0 as PlasmaComponents // for Highlight and DialogStatus.Closed (used with Menu and MenuItem) import org.kde.plasma.components 2.0 as PlasmaComponents // for Highlight
ListView { ListView {
boundsBehavior: Flickable.StopAtBounds boundsBehavior: Flickable.StopAtBounds
@ -14,11 +14,9 @@ ListView {
} }
function activate(index) { function activate(index) {
if (typeof contextMenu !== "undefined" if (typeof contextMenu === "undefined") {
&& contextMenu.status !== PlasmaComponents.DialogStatus.Closed) { currentIndex = index
return
} }
currentIndex = index
} }
function clickCurrentItemButton(buttonName) { function clickCurrentItemButton(buttonName) {
@ -48,6 +46,6 @@ ListView {
if (typeof contextMenu.init !== "undefined") { if (typeof contextMenu.init !== "undefined") {
contextMenu.init(item) contextMenu.init(item)
} }
contextMenu.open(x, y) contextMenu.popup()
} }
} }