Warning, /sdk/rust-qt-binding-generator/demo/qml/FileTreeView2.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * Copyright 2017 Jos van den Oever <jos@vandenoever.info> 0003 * 0004 * This program is free software; you can redistribute it and/or 0005 * modify it under the terms of the GNU General Public License as 0006 * published by the Free Software Foundation; either version 2 of 0007 * the License or (at your option) version 3 or any later version 0008 * accepted by the membership of KDE e.V. (or its successor approved 0009 * by the membership of KDE e.V.), which shall act as a proxy 0010 * defined in Section 14 of version 3 of the license. 0011 * 0012 * This program is distributed in the hope that it will be useful, 0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0015 * GNU General Public License for more details. 0016 * 0017 * You should have received a copy of the GNU General Public License 0018 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0019 */ 0020 0021 import QtQuick 2.6 0022 import QtQml.Models 2.2 0023 import QtQuick.Controls 2.2 0024 import QtQuick.Layouts 1.3 0025 0026 ListView { 0027 id: view 0028 property string title 0029 header: Column { 0030 width: parent.width 0031 ToolBar { 0032 width: parent.width 0033 RowLayout { 0034 anchors.fill: parent 0035 ToolButton { 0036 text: qsTr("‹") 0037 enabled: dirModel.rootIndex.valid 0038 onClicked: { 0039 dirModel.rootIndex = dirModel.rootIndex.parent 0040 } 0041 } 0042 Label { 0043 text: view.title 0044 elide: Label.ElideMiddle 0045 horizontalAlignment: Qt.AlignHCenter 0046 verticalAlignment: Qt.AlignVCenter 0047 Layout.fillWidth: true 0048 } 0049 } 0050 } 0051 Row { 0052 Text { 0053 width: 200 0054 text: qsTr("Name") 0055 } 0056 Text { 0057 text: qsTr("Size") 0058 } 0059 } 0060 } 0061 model: DelegateModel { 0062 id: dirModel 0063 model: sortedFileSystem 0064 onRootIndexChanged: { 0065 var index = sortedFileSystem.mapToSource(rootIndex); 0066 view.title = demo.fileSystemTree.filePath(index) || ""; 0067 } 0068 delegate: Item { 0069 width: parent.width 0070 height: row.height 0071 Row { 0072 id: row 0073 Connections { 0074 target: sortedFileSystem 0075 onRowsInserted: { 0076 // enable the button if children were found when 'model' 0077 // was created or if they were just inserted 0078 button.enabled = model.hasModelChildren 0079 || dirModel.modelIndex(index) === parent 0080 } 0081 } 0082 Button { 0083 id: button 0084 width: 200 0085 text: fileName 0086 enabled: model.hasModelChildren 0087 onClicked: { 0088 view.model.rootIndex = view.model.modelIndex(index) 0089 } 0090 } 0091 Label { 0092 text: fileSize 0093 padding: button.padding 0094 } 0095 } 0096 } 0097 } 0098 }