diff options
author | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-22 13:11:21 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-22 13:16:16 +0300 |
commit | c6090dc08fbb6c88cc3a35482660839664eb46e7 (patch) | |
tree | 316138cb73c49877f5a80a8496c2f1b737122fb5 /tests/manual/qmlmultiwindow/qml/qmlmultiwindow/main.qml | |
parent | b235e3dbeddc7ee7f4d47509c799bbc990585832 (diff) | |
parent | 31f9c57bc50ae053cfaf039a1dfdb128e2494458 (diff) |
Merge branch 'develop'
Change-Id: Id4ff4c5196d35401f647e70a8c2a127d1c77629f
Diffstat (limited to 'tests/manual/qmlmultiwindow/qml/qmlmultiwindow/main.qml')
-rw-r--r-- | tests/manual/qmlmultiwindow/qml/qmlmultiwindow/main.qml | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/tests/manual/qmlmultiwindow/qml/qmlmultiwindow/main.qml b/tests/manual/qmlmultiwindow/qml/qmlmultiwindow/main.qml new file mode 100644 index 00000000..7200ba53 --- /dev/null +++ b/tests/manual/qmlmultiwindow/qml/qmlmultiwindow/main.qml @@ -0,0 +1,263 @@ +/****************************************************************************** +** +** 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.Window 2.1 +import QtQuick.Layouts 1.0 +import QtDataVisualization 1.0 +import "." + +Rectangle { + id: mainView + width: 800 + height: 600 + + Data { + id: data + } + + property QtObject surfaceWindowObject; + property string surfaceWindowStr: + "\n + import QtQuick 2.1\n + import QtQuick.Window 2.1\n + import QtQuick.Layouts 1.0\n + import QtDataVisualization 1.0\n + import \".\"\n + Window {\n + Data {\n + id: data\n + }\n + id: firstWindow\n + x: 100\n + y: 100\n + width: 500\n + height: 500\n + visible: true\n + Rectangle {\n + id: firstRect\n + color: \"red\"\n + anchors.fill: parent\n + Surface3D {\n + id: surfaceGraph\n + anchors.fill: parent\n + anchors.margins: parent.border.width\n + theme: Theme3D {\n + type: Theme3D.ThemePrimaryColors\n + font.pointSize: 60\n + }\n + scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeftHigh\n + Surface3DSeries {\n + itemLabelFormat: \"Pop density at (@xLabel N, @zLabel E): @yLabel\"\n + ItemModelSurfaceDataProxy {\n + itemModel: data.myData\n + rowRole: \"row\"\n + columnRole: \"col\"\n + xPosRole: \"latitude\"\n + zPosRole: \"longitude\"\n + yPosRole: \"pop_density\"\n + }\n + }\n + }\n + }\n + }" + + Window { + id: secondWindow + x: 100 + y: 700 + width: 500 + height: 500 + visible: true + Rectangle { + id: secondRect + color: "blue" + anchors.fill: parent + } + } + + function destroyWindow() { + if (surfaceWindowObject != null) + surfaceWindowObject.destroy() + } + + Component.onDestruction: destroyWindow() + + //! [0] + GridLayout { + id: gridLayout + columns: 2 + Layout.fillHeight: true + Layout.fillWidth: true + anchors.top: mainView.top + anchors.bottom: mainView.bottom + anchors.left: mainView.left + anchors.right: mainView.right + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + border.width: 2 + } + + Timer { + id: windowToggleTimer + interval: 1000 + running: false + repeat: false + onTriggered: { + destroyWindow() + surfaceWindowObject = Qt.createQmlObject(surfaceWindowStr, mainView) + } + } + + // We'll use one grid cell for buttons + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + + GridLayout { + anchors.right: parent.right + anchors.left: parent.left + anchors.top: parent.top + anchors.bottom: parent.bottom + columns: 2 + + NewButton { + Layout.minimumWidth: parent.width / 2 + Layout.fillHeight: true + Layout.fillWidth: true + text: "(re)construct surface window in a loop" + onClicked: { + windowToggleTimer.running = true + windowToggleTimer.repeat = true + } + } + + NewButton { + Layout.minimumWidth: parent.width / 2 + Layout.fillHeight: true + Layout.fillWidth: true + text: "Quit" + onClicked: Qt.quit(0); + } + + NewButton { + Layout.fillHeight: true + Layout.fillWidth: true + text: "Reset Cameras" + onClicked: resetCameras() // call a helper function to keep button itself simpler + } + + NewButton { + Layout.fillHeight: true + Layout.fillWidth: true + text: "Toggle Mesh Styles" + onClicked: toggleMeshStyle() // call a helper function to keep button itself simpler + } + } + } + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + border.color: scatterGraph.theme.gridLineColor + border.width: 2 + + Scatter3D { + id: scatterGraph + anchors.fill: parent + anchors.margins: parent.border.width + theme: Theme3D { + type: Theme3D.ThemeDigia + font.pointSize: 60 + } + scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeftHigh + + Scatter3DSeries { + itemLabelFormat: "Pop density at (@xLabel N, @zLabel E): @yLabel" + ItemModelScatterDataProxy { + itemModel: data.myData + // Mapping model roles to scatter series item coordinates. + xPosRole: "latitude" + zPosRole: "longitude" + yPosRole: "pop_density" + } + } + } + } + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + border.color: barGraph.theme.gridLineColor + border.width: 2 + + Bars3D { + id: barGraph + anchors.fill: parent + anchors.margins: parent.border.width + theme: Theme3D { + type: Theme3D.ThemeQt + font.pointSize: 60 + } + selectionMode: AbstractGraph3D.SelectionItemAndRow | AbstractGraph3D.SelectionSlice + scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeftHigh + + Bar3DSeries { + itemLabelFormat: "@seriesName: @valueLabel" + name: "Population density" + + ItemModelBarDataProxy { + itemModel: data.myData + // Mapping model roles to bar series rows, columns, and values. + rowRole: "row" + columnRole: "col" + valueRole: "pop_density" + } + } + } + } + } + //! [0] + + function clearSelections() { + barGraph.clearSelection() + scatterGraph.clearSelection() + } + + function resetCameras() { + scatterGraph.scene.activeCamera.cameraPreset = Camera3D.CameraPresetIsometricLeftHigh + barGraph.scene.activeCamera.cameraPreset = Camera3D.CameraPresetIsometricLeftHigh + scatterGraph.scene.activeCamera.zoomLevel = 100.0 + barGraph.scene.activeCamera.zoomLevel = 100.0 + } + + function toggleMeshStyle() { + if (barGraph.seriesList[0].meshSmooth === true) { + barGraph.seriesList[0].meshSmooth = false + scatterGraph.seriesList[0].meshSmooth = false + } else { + barGraph.seriesList[0].meshSmooth = true + scatterGraph.seriesList[0].meshSmooth = true + } + } +} |