Warning, /graphics/okular/mobile/app/package/contents/ui/TreeItem.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 org.kde.kirigami 2.17 as Kirigami 0011 import org.kde.kitemmodels 1.0 0012 0013 /** 0014 * An item delegate for the TreeListView and TreeTableView components. 0015 * 0016 * It has the tree expander decoration but no content otherwise, 0017 * which has to be set as contentItem 0018 * 0019 */ 0020 QQC2.ItemDelegate { 0021 id: listItem 0022 0023 property alias decoration: decoration 0024 0025 width: ListView.view.width 0026 0027 data: [ 0028 TreeViewDecoration { 0029 id: decoration 0030 anchors { 0031 left: parent.left 0032 top:parent.top 0033 bottom: parent.bottom 0034 leftMargin: listItem.padding 0035 } 0036 parent: listItem 0037 parentDelegate: listItem 0038 model: listItem.ListView.view ? listItem.ListView.view.model :null 0039 } 0040 ] 0041 0042 Keys.onLeftPressed: if (kDescendantExpandable && kDescendantExpanded) { 0043 decoration.model.collapseChildren(index); 0044 } else if (!kDescendantExpandable && kDescendantLevel > 0) { 0045 if (listItem.ListView.view) { 0046 const sourceIndex = decoration.model.mapToSource(decoration.model.index(index, 0)); 0047 const newIndex = decoration.model.mapFromSource(sourceIndex.parent); 0048 listItem.listItem.ListView.view.currentIndex = newIndex.row; 0049 } 0050 } 0051 0052 Keys.onRightPressed: if (kDescendantExpandable) { 0053 if (kDescendantExpanded && listItem.ListView.view) { 0054 ListView.view.incrementCurrentIndex(); 0055 } else { 0056 decoration.model.expandChildren(index); 0057 } 0058 } 0059 0060 onDoubleClicked: if (kDescendantExpandable) { 0061 decoration.model.toggleChildren(index); 0062 } 0063 0064 contentItem: Kirigami.Heading { 0065 wrapMode: Text.Wrap 0066 text: listItem.text 0067 level: 5 0068 width: listItem.ListView.view.width - (decoration.width + listItem.padding * 3 + Kirigami.Units.smallSpacing) 0069 } 0070 0071 leftInset: Qt.application.layoutDirection !== Qt.RightToLeft ? decoration.width + listItem.padding * 2 : 0 0072 leftPadding: Qt.application.layoutDirection !== Qt.RightToLeft ? decoration.width + listItem.padding * 2 : 0 0073 0074 rightPadding: Qt.application.layoutDirection === Qt.RightToLeft ? decoration.width + listItem.padding * 2 : 0 0075 rightInset: Qt.application.layoutDirection === Qt.RightToLeft ? decoration.width + listItem.padding * 2 : 0 0076 } 0077