TreeView
{
id: treeView
anchors.fill: parent
anchors.leftMargin: 10
anchors.rightMargin: 10
model: ChapterTreeModel { id: model }
delegate: Item
{
id: treeDelegate
implicitWidth: treeView.width
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
Image
{
id: indicator
x: padding + (treeDelegate.depth * treeDelegate.indent)
anchors.verticalCenter: label.verticalCenter
visible: treeDelegate.isTreeNode && treeDelegate.hasChildren
source: Icons.arrowDownGray
rotation: treeDelegate.expanded ? 0 : -90
TapHandler
{
onTapped: treeView.toggleExpanded(row)
}
Behavior on rotation
{
NumberAnimation { duration: 150 }
}
}
Rectangle
{
id: label
color: "red"
x: padding + (treeDelegate.isTreeNode ? (treeDelegate.depth + 1) * treeDelegate.indent : 0)
width: treeDelegate.width - treeDelegate.padding - x
implicitWidth: 100
implicitHeight: 10
}
}
}