From 18da655b77de70273e1aad7b9c2c4be74f5de91e Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Fri, 19 Nov 2021 16:58:36 +0100 Subject: quick: add qquicktreeview This patch adds TreeView to Qt Quick. It is more or less a copy from the TreeView in Marketplace, but with some modifications to make it more equal to the already existing TableView, ListView, and GridView. [ChangeLog][Item Views] A new view is added: TreeView Fixes: QTBUG-61630 Change-Id: Ibb9d22cf9c9df021e77d03287872134c2682682a Reviewed-by: Fabian Kosmale --- .../snippets/qml/treeview/qml-customdelegate.qml | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml (limited to 'src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml') diff --git a/src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml b/src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml new file mode 100644 index 0000000000..756815cb76 --- /dev/null +++ b/src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQuick module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//![0] +import QtQuick + +Window { + width: 600 + height: 400 + visible: true + + TreeView { + anchors.fill: parent + // The model needs to be a QAbstractItemModel + // model: yourTreeModel + + delegate: Item { + id: root + + implicitWidth: padding + label.x + label.implicitWidth + padding + implicitHeight: label.implicitHeight * 1.5 + + readonly property real indent: 20 + readonly property real padding: 5 + + // Assigned to by TreeView: + required property TreeView treeView + required property bool isTreeNode + required property bool expanded + required property int hasChildren + required property int depth + + TapHandler { + onTapped: treeView.toggleExpanded(row) + } + + Text { + id: indicator + visible: root.isTreeNode && root.hasChildren + x: padding + (root.depth * root.indent) + text: root.expanded ? "▼" : "▶" + } + + Text { + id: label + x: padding + (root.isTreeNode ? (root.depth + 1) * root.indent : 0) + width: root.width - root.padding - x + clip: true + text: model.display + } + } + } +} +//![0] -- cgit v1.2.1