summaryrefslogtreecommitdiffstats
path: root/tests/manual/qmlcamera/qml/qmlcamera/main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/qmlcamera/qml/qmlcamera/main.qml')
-rw-r--r--tests/manual/qmlcamera/qml/qmlcamera/main.qml238
1 files changed, 238 insertions, 0 deletions
diff --git a/tests/manual/qmlcamera/qml/qmlcamera/main.qml b/tests/manual/qmlcamera/qml/qmlcamera/main.qml
new file mode 100644
index 00000000..7a697a16
--- /dev/null
+++ b/tests/manual/qmlcamera/qml/qmlcamera/main.qml
@@ -0,0 +1,238 @@
+/******************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Data Visualization module.
+**
+** $QT_BEGIN_LICENSE:COMM$
+**
+** 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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** $QT_END_LICENSE$
+**
+******************************************************************************/
+
+import QtQuick 2.1
+import QtQuick.Controls 1.0
+import QtDataVisualization 1.2
+import "."
+
+Rectangle {
+ id: mainview
+ width: 1280
+ height: 1024
+ visible: true
+
+ Data {
+ id: chartData
+ }
+
+ Axes {
+ id: chartAxes
+ }
+
+ Camera3D {
+ id: customCamera
+ wrapXRotation: false
+ xRotation: camControlArea.xValue
+ yRotation: camControlArea.yValue
+ zoomLevel: zoomSlider.value
+ target: Qt.vector3d(0.5, 0.5, 0.5)
+ }
+
+ Item {
+ id: dataView
+ width: parent.width - camControlArea.width
+ height: parent.height
+ anchors.right: parent.right;
+
+ Bars3D {
+ id: testChart
+ width: dataView.width
+ height: dataView.height
+ shadowQuality: Bars3D.ShadowQualityMedium
+ selectionMode: Bars3D.SelectionItem
+ theme: Theme3D {
+ type: Theme3D.ThemeDigia
+ font.pointSize: 35
+ labelBackgroundEnabled: true
+ }
+ seriesList: [chartData.series]
+ barThickness: 0.5
+ barSpacing: Qt.size(0.5, 0.5)
+ barSpacingRelative: false
+
+ columnAxis: chartAxes.column
+ valueAxis: chartAxes.expenses
+
+ scene.activeCamera: customCamera
+ inputHandler: null
+
+ customItemList: [shuttleItem, labelItem]
+ orthoProjection: true
+
+ floorLevel: 10
+ }
+
+ Custom3DItem {
+ id: shuttleItem
+ meshFile: ":/items/shuttle.obj"
+ textureFile: ":/items/shuttle.png"
+ position: Qt.vector3d(2.0,29.0,2.0)
+ scaling: Qt.vector3d(0.2,0.2,0.2)
+ }
+
+ Custom3DLabel {
+ id: labelItem
+ facingCamera: true
+ positionAbsolute: true
+ position: Qt.vector3d(-1.0,1.5,-1.0)
+ scaling: Qt.vector3d(1.0,1.0,1.0)
+ text: "Qt Shuttle"
+ }
+
+ MouseArea {
+ id: inputArea
+ anchors.fill: parent
+ acceptedButtons: Qt.LeftButton | Qt.RightButton
+ property bool selectionOn: false
+
+ onPressed: {
+ if (mouse.button == Qt.LeftButton) {
+ selectionOn = true;
+ testChart.scene.selectionQueryPosition = Qt.point(mouse.x, mouse.y);
+ }
+ }
+
+ onReleased: {
+ if (mouse.button == Qt.LeftButton)
+ selectionOn = false;
+ }
+
+ onPositionChanged: {
+ if (selectionOn) {
+ testChart.scene.selectionQueryPosition = Qt.point(mouse.x, mouse.y);
+ }
+ }
+ }
+ }
+
+ ControlSurface {
+ id: camControlArea
+ x: 0
+ y: 0
+ width: 298
+ height: 298
+ minXValue: -180
+ minYValue: 0
+ maxXValue: 180
+ maxYValue: 90
+ }
+
+ Slider {
+ id: zoomSlider
+ width: camControlArea.width
+ anchors.top: camControlArea.bottom
+ value: 100
+ minimumValue: 10
+ maximumValue: 300
+ }
+
+ Button {
+ id: mappingToggle
+ anchors.bottom: parent.bottom
+ width: camControlArea.width
+ text: "Show Income"
+ onClicked: {
+ if (chartData.proxy.valueRole === "expenses") {
+ chartData.proxy.valueRole = "income"
+ text = "Show Expenses"
+ testChart.valueAxis = chartAxes.income
+ } else {
+ chartData.proxy.valueRole = "expenses"
+ text = "Show Income"
+ testChart.valueAxis = chartAxes.expenses
+ }
+ }
+ }
+
+ Button {
+ id: angleAdjust
+ anchors.bottom: mappingToggle.top
+ width: camControlArea.width
+ text: "Adjust angle"
+ property real currentAngle: 0
+ onClicked: {
+ currentAngle += 5
+ chartData.series.meshAngle = currentAngle
+ shuttleItem.setRotationAxisAndAngle(Qt.vector3d(0.0, 1.0, 1.0), currentAngle)
+ console.log("label pos:", labelItem.position)
+ labelItem.position.x += 0.1
+ labelItem.position.z += 0.1
+ customCamera.target.x -= 0.1
+ customCamera.target.z -= 0.1
+ }
+ }
+
+ Button {
+ id: dataToggle
+ anchors.bottom: angleAdjust.top
+ width: camControlArea.width
+ text: "Show 2010 - 2012"
+ onClicked: {
+ if (testChart.rowAxis.max !== 6) {
+ text = "Show 2010 - 2012"
+ chartData.proxy.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.
+ chartData.proxy.autoRowCategories = false
+ chartData.proxy.rowCategories = ["2010", "2011", "2012"]
+ }
+ }
+ }
+
+ Button {
+ id: shuttleAdd
+ anchors.bottom: dataToggle.top
+ width: camControlArea.width
+ text: "Remove Shuttle"
+ property bool addObject: false
+ onClicked: {
+ if (addObject === true) {
+ shuttleItem.textureFile = ":/items/shuttle.png"
+ testChart.addCustomItem(shuttleItem)
+ text = "Remove Shuttle"
+ addObject = false
+ } else {
+ testChart.releaseCustomItem(shuttleItem)
+ text = "Add Shuttle"
+ addObject = true
+ }
+ }
+ }
+
+ Button {
+ id: reflectionToggle
+ anchors.bottom: shuttleAdd.top
+ width: camControlArea.width
+ text: "Show reflections"
+ onClicked: {
+ if (testChart.reflection === true) {
+ text = "Show reflections"
+ testChart.reflection = false
+ } else {
+ text = "Hide reflections"
+ testChart.reflection = true
+ }
+ }
+ }
+}