Warning, /plasma/plasma-systemmonitor/src/table/KillDialog.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2020 Arjen Hiemstra <ahiemstra@heimr.nl>
0003  * SPDX-FileCopyrightText: 2023 Nate Graham <nate@kde.org>
0004  *
0005  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006  */
0007 
0008 import QtQuick
0009 import QtQuick.Controls
0010 import QtQuick.Layouts
0011 
0012 import org.kde.kirigami as Kirigami
0013 
0014 Kirigami.Dialog {
0015     id: dialog
0016 
0017     required property string killButtonText
0018     required property string killButtonIcon
0019     required property string questionText
0020 
0021     property var items: []
0022     property bool doNotAskAgain: false
0023     property alias delegate: list.delegate
0024 
0025     preferredWidth: Kirigami.Units.gridUnit * 25
0026 
0027     focus: true
0028 
0029     // We already have a cancel button in the footer
0030     showCloseButton: false
0031 
0032     standardButtons: Dialog.Cancel
0033 
0034     customFooterActions: [
0035         Kirigami.Action {
0036             text: dialog.killButtonText
0037             icon.name: dialog.killButtonIcon
0038             onTriggered: dialog.accept()
0039         }
0040     ]
0041 
0042     contentItem: ScrollView {
0043         implicitWidth: Kirigami.Units.gridUnit * 25
0044 
0045         leftPadding: Kirigami.Units.largeSpacing
0046         rightPadding: Kirigami.Units.largeSpacing
0047         topPadding: Kirigami.Units.largeSpacing
0048         bottomPadding: Kirigami.Units.largeSpacing
0049 
0050         ListView {
0051             id: list
0052 
0053             header: Label {
0054                 padding: Kirigami.Units.largeSpacing
0055                 width: list.width - list.leftMargin - list.rightMargin
0056                 text: dialog.questionText
0057                 wrapMode: Text.Wrap
0058             }
0059 
0060             model: dialog.items
0061             currentIndex: -1
0062             clip: true
0063 
0064             Kirigami.Theme.colorSet: Kirigami.Theme.View
0065             Kirigami.Theme.inherit: false
0066 
0067             delegate: ItemDelegate {
0068                 width: ListView.view.width
0069                 text: modelData
0070 
0071                 // We don't want visual interactivity for the background
0072                 highlighted: false
0073                 hoverEnabled: false
0074                 down: false
0075             }
0076         }
0077     }
0078 
0079     footerLeadingComponent: CheckBox {
0080         leftPadding: Kirigami.Units.largeSpacing
0081         text: i18ndc("plasma-systemmonitor", "@option:check", "Do not ask again");
0082         onToggled: dialog.doNotAskAgain = checked
0083     }
0084 }