homescreens/folio: Add dialog to confirm whether to delete a folder

This commit is contained in:
Devin Lin 2024-03-06 09:19:03 -05:00
parent 8f39d156f1
commit e84989afee
5 changed files with 57 additions and 5 deletions

View file

@ -11,6 +11,7 @@ import org.kde.private.mobile.homescreen.folio 1.0 as Folio
import org.kde.plasma.private.mobileshell as MobileShell import org.kde.plasma.private.mobileshell as MobileShell
import org.kde.kirigami 2.10 as Kirigami import org.kde.kirigami 2.10 as Kirigami
import "./private"
import "./delegate" import "./delegate"
MouseArea { MouseArea {
@ -199,7 +200,6 @@ MouseArea {
contextMenu.open(); contextMenu.open();
} }
// TODO don't use loader, and move outside to a page to make it more performant
ContextMenuLoader { ContextMenuLoader {
id: contextMenu id: contextMenu
@ -218,9 +218,15 @@ MouseArea {
Kirigami.Action { Kirigami.Action {
icon.name: "emblem-favorite" icon.name: "emblem-favorite"
text: i18n("Remove") text: i18n("Remove")
onTriggered: Folio.FavouritesModel.removeEntry(delegate.index) onTriggered: deleteDialog.open()
} }
] ]
ConfirmDeleteFolderDialogLoader {
id: deleteDialog
parent: root.homeScreen
onAccepted: Folio.FavouritesModel.removeEntry(delegate.index)
}
} }
} }
} }

View file

@ -11,6 +11,7 @@ import org.kde.kirigami 2.20 as Kirigami
import org.kde.plasma.private.mobileshell as MobileShell import org.kde.plasma.private.mobileshell as MobileShell
import org.kde.private.mobile.homescreen.folio 1.0 as Folio import org.kde.private.mobile.homescreen.folio 1.0 as Folio
import "./private"
import "./delegate" import "./delegate"
Folio.DelegateTouchArea { Folio.DelegateTouchArea {

View file

@ -194,7 +194,6 @@ Item {
contextMenu.open(); contextMenu.open();
} }
// TODO don't use loader, and move outside to a page to make it more performant
ContextMenuLoader { ContextMenuLoader {
id: contextMenu id: contextMenu
@ -274,7 +273,6 @@ Item {
contextMenu.open(); contextMenu.open();
} }
// TODO don't use loader, and move outside to a page to make it more performant
ContextMenuLoader { ContextMenuLoader {
id: contextMenu id: contextMenu
@ -293,9 +291,15 @@ Item {
Kirigami.Action { Kirigami.Action {
icon.name: "emblem-favorite" icon.name: "emblem-favorite"
text: i18n("Remove") text: i18n("Remove")
onTriggered: delegate.removeSelf() onTriggered: deleteDialog.open()
} }
] ]
ConfirmDeleteFolderDialogLoader {
id: deleteDialog
parent: root.homeScreen
onAccepted: delegate.removeSelf()
}
} }
} }
} }

View file

@ -0,0 +1,41 @@
// SPDX-FileCopyrightText: 2024 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
import QtQuick
import QtQuick.Controls as QQC2
import QtQuick.Window
import QtQuick.Layouts
import org.kde.plasma.components 3.0 as PC3
import org.kde.kirigami as Kirigami
Loader {
id: root
active: false
// we expect the parent to be set to the homescreen, otherwise the dialog opens with no size
anchors.fill: parent
signal accepted()
function open() {
root.active = true;
root.item.open();
}
function close() {
if (root.item) {
root.item.close();
}
}
sourceComponent: Kirigami.PromptDialog {
id: menu
title: i18n('Confirm Folder Deletion')
subtitle: i18n('Are you sure you want to delete this folder?')
standardButtons: Kirigami.Dialog.Yes | Kirigami.Dialog.Cancel
onAccepted: root.accepted()
onClosed: root.active = false
}
}