halcyon: use the new menu popup

This commit is contained in:
Yari Polla 2023-03-08 12:53:01 +01:00
parent a2f6c51665
commit a353e87e47
2 changed files with 39 additions and 28 deletions

View file

@ -52,18 +52,17 @@ Item {
// close context menu if drag move
onXChanged: {
if (dialogLoader.item) {
dialogLoader.item.close()
dialogLoader.active = false;
}
}
onYChanged: {
if (dialogLoader.item) {
dialogLoader.item.close()
dialogLoader.active = false;
}
}
function openContextMenu() {
dialogLoader.active = true;
dialogLoader.item.open();
}
function launch() {
@ -96,22 +95,23 @@ Item {
id: dialogLoader
active: false
sourceComponent: PlasmaComponents.Menu {
id: menu
title: label.text
closePolicy: PlasmaComponents.Menu.CloseOnReleaseOutside | PlasmaComponents.Menu.CloseOnEscape
sourceComponent: MobileShell.PopupMenu {
id: popup
Repeater {
model: menuActions
delegate: PlasmaComponents.MenuItem {
icon.name: modelData.iconName
text: modelData.text
onClicked: modelData.triggered()
mappedGlobalCoordinates: delegate.mapToGlobal(delegate.x, delegate.y)
relatedTo: delegate
title: label.text
menuActions: delegate.menuActions
onVisibleChanged: {
if (!popup.visible) {
dialogLoader.active = false;
}
}
onClosed: dialogLoader.active = false
}
onLoaded: item.showOverlay()
}
MouseArea {

View file

@ -35,7 +35,6 @@ MouseArea {
function openContextMenu() {
dialogLoader.active = true;
dialogLoader.item.open();
}
cursorShape: Qt.PointingHandCursor
@ -55,19 +54,29 @@ MouseArea {
id: dialogLoader
active: false
sourceComponent: PlasmaComponents.Menu {
title: label.text
closePolicy: PlasmaComponents.Menu.CloseOnReleaseOutside | PlasmaComponents.Menu.CloseOnEscape
sourceComponent: MobileShell.PopupMenu {
id: popup
PlasmaComponents.MenuItem {
icon.name: "emblem-favorite"
text: i18n("Add to favourites")
onClicked: {
Halcyon.PinnedModel.addApp(application.storageId, 0);
mappedGlobalCoordinates: icon.mapToGlobal(icon.x, icon.y)
relatedTo: icon
title: label.text
menuActions: [
Kirigami.Action {
iconName: "emblem-favorite"
text: i18n("Add to favourites")
onTriggered: Halcyon.PinnedModel.addApp(application.storageId, 0);
}
]
onVisibleChanged: {
if (!popup.visible) {
dialogLoader.active = false;
}
}
onClosed: dialogLoader.active = false
}
onLoaded: item.showOverlay()
}
// grow/shrink animation
@ -124,6 +133,8 @@ MouseArea {
}
ColumnLayout {
id: columnLayout
anchors {
fill: parent
leftMargin: margins