Warning, /plasma/plasma-systemmonitor/src/table/BaseCellDelegate.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Arjen Hiemstra <ahiemstra@heimr.nl> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Controls 0009 import QtQuick.Layouts 0010 import QtQml.Models 0011 0012 import org.kde.kirigami as Kirigami 0013 import org.kde.ksysguard.table as Table 0014 0015 TreeViewDelegate 0016 { 0017 id: root 0018 0019 readonly property bool rowHovered: root.TableView.view.hoveredRow == row 0020 0021 readonly property var __selection: TableView.view.selectionModel 0022 0023 text: model.display 0024 0025 // Important: Don't remove this until QTBUG-84858 is resolved properly. 0026 Accessible.role: Accessible.Cell 0027 0028 rightPadding: Kirigami.Units.smallSpacing 0029 topPadding: Kirigami.Units.smallSpacing 0030 bottomPadding: Kirigami.Units.smallSpacing 0031 0032 background: Rectangle { 0033 color: (row % 2 == 0 || selected) ? Kirigami.Theme.backgroundColor : Kirigami.Theme.alternateBackgroundColor 0034 0035 Rectangle { 0036 anchors.fill: parent 0037 Kirigami.Theme.inherit: false 0038 Kirigami.Theme.colorSet: Kirigami.Theme.Selection 0039 color: Kirigami.Theme.backgroundColor 0040 opacity: 0.3 0041 visible: root.rowHovered 0042 } 0043 } 0044 0045 onHoveredChanged: { 0046 if (hovered) { 0047 root.TableView.view.hoveredRow = root.row 0048 } 0049 } 0050 0051 hoverEnabled: true 0052 0053 TapHandler { 0054 acceptedButtons: Qt.LeftButton | Qt.RightButton 0055 gesturePolicy: TapHandler.ReleaseWithinBounds 0056 0057 onTapped: (eventPoint, button) => { 0058 var modelIndex = root.TableView.view.model.index(row, column); 0059 0060 root.TableView.view.forceActiveFocus(Qt.ClickFocus) 0061 0062 // latest clicks sets current index 0063 root.__selection.setCurrentIndex(modelIndex, ItemSelectionModel.Current | ItemSelectionModel.Rows) 0064 0065 if (root.__selection.isSelected(modelIndex) && button == Qt.RightButton) { 0066 root.TableView.view.contextMenuRequested(modelIndex, eventPoint.globalPressPosition) 0067 return 0068 } 0069 0070 if (point.modifiers & Qt.ShiftModifier) { 0071 //TODO: Implement range selection 0072 root.__selection.select(modelIndex, ItemSelectionModel.Toggle | ItemSelectionModel.Rows) 0073 } else if (point.modifiers & Qt.ControlModifier) { 0074 root.__selection.select(modelIndex, ItemSelectionModel.Toggle | ItemSelectionModel.Rows) 0075 } else { 0076 root.__selection.select(modelIndex, ItemSelectionModel.ClearAndSelect | ItemSelectionModel.Rows) 0077 } 0078 0079 if (button == Qt.RightButton) { 0080 root.TableView.view.contextMenuRequested(modelIndex, eventPoint.globalPressPosition) 0081 } 0082 } 0083 } 0084 }