Warning, /office/klevernotes/src/contents/ui/sideBar/TreeItem.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  *  SPDX-FileCopyrightText: 2020 Marco Martin <notmart@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 import QtQuick 2.1
0008 
0009 import org.kde.kirigami 2.19 as Kirigami
0010 import org.kde.kirigamiaddons.delegates 1 as Delegates
0011 
0012 Delegates.RoundedTreeDelegate {
0013     id: treeItem
0014 
0015     required property string path
0016     required property string useCase
0017     required property string displayName
0018     required property string iconName
0019     required property bool wantExpand
0020     required property bool wantFocus
0021 
0022     signal itemRightClicked 
0023 
0024     text: displayName
0025     icon.name: iconName
0026     highlighted: treeview.currentItem ? treeView.currentItem.path === path : false
0027 
0028     background: Rectangle { // Forced to do it, without that, the first element is not using the correct Theme
0029         Kirigami.Theme.colorSet: Kirigami.Theme.Window
0030         Kirigami.Theme.inherit: false
0031 
0032         radius: Kirigami.Units.smallSpacing
0033 
0034         color: if (treeItem.highlighted || treeItem.checked || (treeItem.down && !treeItem.checked) || treeItem.visualFocus) {
0035             const highlight = Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.backgroundColor, Kirigami.Theme.highlightColor, 0.3);
0036             if (treeItem.hovered) {
0037                 Kirigami.ColorUtils.tintWithAlpha(highlight, Kirigami.Theme.textColor, 0.10)
0038             } else {
0039                 highlight
0040             }
0041         } else if (treeItem.hovered) {
0042             Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.10)
0043         } else {
0044            Kirigami.Theme.backgroundColor
0045         }
0046 
0047         border {
0048             color: Kirigami.Theme.highlightColor
0049             width: treeItem.visualFocus || treeItem.activeFocus ? 1 : 0
0050         }
0051 
0052         Behavior on color {
0053             ColorAnimation {
0054                 duration: Kirigami.Units.shortDuration
0055             }
0056         }
0057     }
0058 
0059     MouseArea {
0060         anchors.fill: parent
0061         enabled: !Kirigami.Settings.isMobile 
0062 
0063         acceptedButtons: Qt.LeftButton | Qt.RightButton
0064 
0065         onClicked: function (mouse) {
0066             if (mouse.button === Qt.RightButton) {
0067                 contextMenu.canDelete = !treeItem.path.endsWith("/.BaseCategory")
0068                 contextMenu.popup()
0069                 itemRightClicked()
0070                 return
0071             }
0072             treeItem.clicked()
0073         }
0074     }
0075 }