summaryrefslogtreecommitdiffstats
path: root/examples/qmlbars/qml/qmlbars/main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/qmlbars/qml/qmlbars/main.qml')
-rw-r--r--examples/qmlbars/qml/qmlbars/main.qml157
1 files changed, 157 insertions, 0 deletions
diff --git a/examples/qmlbars/qml/qmlbars/main.qml b/examples/qmlbars/qml/qmlbars/main.qml
new file mode 100644
index 00000000..aec3188c
--- /dev/null
+++ b/examples/qmlbars/qml/qmlbars/main.qml
@@ -0,0 +1,157 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import com.digia.QtDataVisualization 1.0
+import "."
+
+Item {
+ id: mainview
+ width: 1280
+ height: 1024
+ visible: true
+
+ Data {
+ id: graphData
+ }
+
+ Axes {
+ id: graphAxes
+ }
+
+ Item {
+ id: dataView
+ width: parent.width - tableView.width
+ height: parent.height
+ anchors.right: parent.right;
+
+ Bars3D {
+ id: testGraph
+ width: dataView.width
+ height: dataView.height
+ shadowQuality: Bars3D.ShadowQualityMedium
+ selectionMode: Bars3D.SelectionModeItem
+ font.pointSize: 35
+ theme: Bars3D.ThemeRetro
+ labelStyle: Bars3D.LabelStyleFromTheme
+ dataProxy: graphData.proxy
+ barThickness: 0.5
+ barSpacing: Qt.size(0.5, 0.5)
+ barSpacingRelative: false
+ cameraPreset: Bars3D.CameraPresetRight
+ columnAxis: graphAxes.column
+ valueAxis: graphAxes.expenses
+ itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
+
+ onSelectedBarPosChanged: {
+ // Set tableView current row to selected bar
+ var rowRole = graphData.proxy.rowLabels[position.x];
+ var colRole = graphData.proxy.columnLabels[position.y];
+ var currentRow = tableView.currentRow
+ if (currentRow === -1 || rowRole !== graphData.model.get(currentRow).year
+ || colRole !== graphData.model.get(currentRow).month) {
+ var totalRows = tableView.rowCount;
+ for (var i = 0; i < totalRows; i++) {
+ var currentRowRole = graphData.model.get(i).year
+ var currentColRole = graphData.model.get(i).month
+ if (currentRowRole === rowRole && currentColRole === colRole) {
+ tableView.currentRow = i
+ break
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Button {
+ id: mappingToggle
+ anchors.bottom: parent.bottom
+ width: tableView.width
+ height: 60
+ text: "Show Income"
+ onClicked: {
+ if (graphData.mapping.valueRole === "expenses") {
+ graphData.mapping.valueRole = "income"
+ text = "Show Expenses"
+ testGraph.valueAxis = graphAxes.income
+ } else {
+ graphData.mapping.valueRole = "expenses"
+ text = "Show Income"
+ testGraph.valueAxis = graphAxes.expenses
+ }
+ }
+ }
+
+ Button {
+ id: shadowToggle
+ anchors.bottom: mappingToggle.top
+ width: tableView.width
+ height: 60
+ text: "Hide Shadows"
+ onClicked: {
+ if (testGraph.shadowQuality == Bars3D.ShadowQualityNone) {
+ testGraph.shadowQuality = Bars3D.ShadowQualityMedium;
+ text = "Hide Shadows"
+ } else {
+ testGraph.shadowQuality = Bars3D.ShadowQualityNone;
+ text = "Show Shadows"
+ }
+ }
+ }
+
+ Button {
+ id: dataToggle
+ anchors.bottom: shadowToggle.top
+ width: tableView.width
+ height: 60
+ text: "Show 2010 - 2012"
+ onClicked: {
+ if (testGraph.rowAxis.max !== 6) {
+ text = "Show 2010 - 2012"
+ graphData.mapping.autoRowCategories = true
+ } else {
+ text = "Show all years"
+ // Explicitly defining row categories, since we do not want to show data for
+ // all years in the model, just for the selected ones.
+ graphData.mapping.autoRowCategories = false
+ graphData.mapping.rowCategories = ["2010", "2011", "2012"]
+ }
+ }
+ }
+
+ TableView {
+ id: tableView
+ x: 0
+ y: 0
+ width: 298
+ height: parent.height - mappingToggle.height - shadowToggle.height - dataToggle.height
+ TableViewColumn{ role: "year" ; title: "Year" ; width: 80 }
+ TableViewColumn{ role: "month" ; title: "Month" ; width: 80 }
+ TableViewColumn{ role: "expenses" ; title: "Expenses" ; width: 60 }
+ TableViewColumn{ role: "income" ; title: "Income" ; width: 60 }
+ model: graphData.model
+
+ onCurrentRowChanged: {
+ var rowIndex = graphData.proxy.activeMapping.rowCategoryIndex(graphData.model.get(currentRow).year)
+ var colIndex = graphData.proxy.activeMapping.columnCategoryIndex(graphData.model.get(currentRow).month)
+ testGraph.selectedBarPos = Qt.point(rowIndex, colIndex)
+ }
+ }
+}