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

View file

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