Warning, /frameworks/kquickcharts/examples/charts/Legend.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2020 Arjen Hiemstra <ahiemstra@heimr.nl>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 import QtQuick
0008 import QtQuick.Controls
0009 import QtQuick.Layouts
0010 
0011 import org.kde.kirigami as Kirigami
0012 import org.kde.kquickcontrols
0013 
0014 import org.kde.quickcharts as Charts
0015 import org.kde.quickcharts.controls as ChartsControls
0016 
0017 Kirigami.Page {
0018     title: "Legend"
0019 
0020     ListModel {
0021         id: lineModel;
0022         dynamicRoles: true;
0023 
0024         Component.onCompleted: {
0025             append({value1: 10, value2:  9, value3:  3})
0026             append({value1: 10, value2:  5, value3: 17})
0027             append({value1: 10, value2: 16, value3:  8})
0028             append({value1: 10, value2: 12, value3: 11})
0029             append({value1: 10, value2:  8, value3: 11})
0030         }
0031     }
0032 
0033     ColumnLayout {
0034         anchors.fill: parent
0035         anchors.margins: Kirigami.Units.largeSpacing
0036         spacing: Kirigami.Units.largeSpacing
0037 
0038         Kirigami.AbstractCard {
0039             Layout.fillHeight: false
0040             Layout.fillWidth: true
0041             Layout.preferredHeight: 400
0042             Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
0043 
0044             contentItem: Item {
0045                 Charts.PieChart {
0046                     id: chart
0047                     anchors {
0048                         left: parent.left
0049                         right: parent.right
0050                         top: parent.top
0051                         bottom: legend.top
0052                         bottomMargin: Kirigami.Units.largeSpacing
0053                     }
0054 
0055                     valueSources: [
0056                         Charts.ModelSource { roleName: "value1"; model: lineModel },
0057                         Charts.ModelSource { roleName: "value2"; model: lineModel },
0058                         Charts.ModelSource { roleName: "value3"; model: lineModel }
0059                     ]
0060 
0061                     colorSource: Charts.ColorGradientSource {
0062                         baseColor: Kirigami.Theme.highlightColor
0063                         itemCount: lineModel.count * 3
0064                     }
0065                     nameSource: Charts.ArraySource {
0066                         array: ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"]
0067                         wrap: true
0068                     }
0069                     shortNameSource: Charts.ArraySource {
0070                         array: ["I1", "I2", "I3", "I4", "I5"]
0071                         wrap: true
0072                     }
0073 
0074                     indexingMode: Charts.Chart.IndexAllValues
0075                 }
0076 
0077                 ChartsControls.Legend {
0078                     id: legend
0079 
0080                     anchors {
0081                         left: parent.left
0082                         right: parent.right
0083                         bottom: parent.bottom
0084                     }
0085                     height: Math.min(implicitHeight, parent.height * 0.3);
0086 
0087                     chart: chart
0088                 }
0089             }
0090         }
0091     }
0092 }