Warning, /graphics/okular/mobile/app/package/contents/ui/TreeViewDecoration.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Marco Martin <mart@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Layouts 1.15 0009 import QtQuick.Controls 2.15 as QQC2 0010 import QtQuick.Templates 2.15 as T 0011 import org.kde.kitemmodels 1.0 0012 import org.kde.kirigami 2.17 as Kirigami 0013 0014 /** 0015 * The tree expander decorator for item views. 0016 * 0017 * It will have a "> v" expander button graphics, and will have indentation on the left 0018 * depending on the level of the tree the item is in 0019 */ 0020 RowLayout { 0021 id: decorationLayout 0022 /** 0023 * The delegate this decoration will live in. 0024 * It needs to be assigned explicitly by the developer. 0025 */ 0026 property T.ItemDelegate parentDelegate 0027 0028 /** 0029 * The KDescendantsProxyModel the view is showing. 0030 * It needs to be assigned explicitly by the developer. 0031 */ 0032 property KDescendantsProxyModel model 0033 0034 property color decorationHighlightColor 0035 0036 Layout.topMargin: -parentDelegate.topPadding 0037 Layout.bottomMargin: -parentDelegate.bottomPadding 0038 Repeater { 0039 model: kDescendantLevel-1 0040 delegate: Item { 0041 Layout.preferredWidth: controlRoot.width 0042 Layout.fillHeight: true 0043 0044 Rectangle { 0045 anchors { 0046 horizontalCenter: parent.horizontalCenter 0047 top: parent.top 0048 bottom: parent.bottom 0049 } 0050 visible: kDescendantHasSiblings[modelData] 0051 color: Kirigami.Theme.textColor 0052 opacity: 0.5 0053 width: 1 0054 } 0055 } 0056 } 0057 T.Button { 0058 id: controlRoot 0059 Layout.preferredWidth: Kirigami.Units.gridUnit 0060 Layout.fillHeight: true 0061 enabled: kDescendantExpandable 0062 hoverEnabled: enabled 0063 onClicked: model.toggleChildren(index) 0064 contentItem: Item { 0065 id: styleitem 0066 implicitWidth: Kirigami.Units.gridUnit 0067 Rectangle { 0068 anchors { 0069 horizontalCenter: parent.horizontalCenter 0070 top: parent.top 0071 bottom: expander.visible ? expander.top : parent.verticalCenter 0072 } 0073 color: Kirigami.Theme.textColor 0074 opacity: 0.5 0075 width: 1 0076 } 0077 Kirigami.Icon { 0078 id: expander 0079 anchors.centerIn: parent 0080 width: Kirigami.Units.iconSizes.small 0081 height: width 0082 source: kDescendantExpanded ? "go-down-symbolic" : (Qt.application.layoutDirection == Qt.RightToLeft ? "go-previous-symbolic" : "go-next-symbolic") 0083 isMask: true 0084 color: controlRoot.hovered ? decorationLayout.decorationHighlightColor ? decorationLayout.decorationHighlightColor : 0085 Kirigami.Theme.highlightColor : Kirigami.Theme.textColor 0086 Behavior on color { ColorAnimation { duration: Kirigami.Units.shortDuration; easing.type: Easing.InOutQuad } } 0087 visible: kDescendantExpandable 0088 } 0089 Rectangle { 0090 anchors { 0091 horizontalCenter: parent.horizontalCenter 0092 top: expander.visible ? expander.bottom : parent.verticalCenter 0093 bottom: parent.bottom 0094 } 0095 visible: kDescendantHasSiblings[kDescendantHasSiblings.length - 1] 0096 color: Kirigami.Theme.textColor 0097 opacity: 0.5 0098 width: 1 0099 } 0100 Rectangle { 0101 anchors { 0102 verticalCenter: parent.verticalCenter 0103 left: expander.visible ? expander.right : parent.horizontalCenter 0104 right: parent.right 0105 } 0106 color: Kirigami.Theme.textColor 0107 opacity: 0.5 0108 height: 1 0109 } 0110 } 0111 background: Item {} 0112 } 0113 }