From 88cd10aa7b3559b092cf5575b0a17d002dc100ae Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 13 Feb 2014 09:59:52 +0200 Subject: Fix examples installation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Had to add one folder to the examples structure so installation works correctly. Change-Id: Ic92dfe9997413a6243abcf5eeba12744ba9e938c Reviewed-by: Tomi Korpipää --- .../qml/qmloscilloscope/NewButton.qml | 52 ++++ .../qmloscilloscope/qml/qmloscilloscope/main.qml | 289 +++++++++++++++++++++ 2 files changed, 341 insertions(+) create mode 100644 examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/NewButton.qml create mode 100644 examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/main.qml (limited to 'examples/datavisualization/qmloscilloscope/qml') diff --git a/examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/NewButton.qml b/examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/NewButton.qml new file mode 100644 index 00000000..e4fb99d2 --- /dev/null +++ b/examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/NewButton.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 QtQuick.Controls.Styles 1.0 + +Item { + id: newbutton + + property alias text: buttonText.text + + signal clicked + + implicitWidth: buttonText.implicitWidth + 5 + implicitHeight: buttonText.implicitHeight + 10 + + Button { + id: buttonText + width: parent.width + height: parent.height + + style: ButtonStyle { + label: Component { + Text { + text: buttonText.text + clip: true + wrapMode: Text.WordWrap + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + anchors.fill: parent + } + } + } + onClicked: newbutton.clicked() + } +} diff --git a/examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/main.qml b/examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/main.qml new file mode 100644 index 00000000..b9284777 --- /dev/null +++ b/examples/datavisualization/qmloscilloscope/qml/qmloscilloscope/main.qml @@ -0,0 +1,289 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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.Layouts 1.0 +import QtQuick.Controls 1.0 +import QtDataVisualization 1.0 +import "." + +Item { + id: mainView + width: 1280 + height: 1024 + + property int sampleColumns: sampleSlider.value + property int sampleRows: sampleColumns / 2 + property int sampleCache: 24 + + onSampleRowsChanged: { + surfaceSeries.selectedPoint = surfaceSeries.invalidSelectionPosition + generateData() + } + + Item { + id: dataView + anchors.bottom: parent.bottom + width: parent.width + height: parent.height - buttonLayout.height + + Surface3D { + id: surfaceGraph + + width: dataView.width + height: dataView.height + shadowQuality: AbstractGraph3D.ShadowQualityNone + selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndRow + + axisX.labelFormat: "%d ms" + axisY.labelFormat: "%d W" + axisZ.labelFormat: "%d mV" + axisX.min: 0 + axisY.min: 0 + axisZ.min: 0 + axisX.max: 1000 + axisY.max: 100 + axisZ.max: 800 + axisX.segmentCount: 4 + axisY.segmentCount: 4 + axisZ.segmentCount: 4 + + //! [0] + Surface3DSeries { + id: surfaceSeries + drawMode: Surface3DSeries.DrawSurface; + flatShadingEnabled: false; + meshSmooth: true + itemLabelFormat: "" + + onSelectedPointChanged: mainView.updateSelectionLabel() + } + //! [0] + + //! [2] + Component.onCompleted: mainView.generateData() + //! [2] + } + } + + //! [3] + Timer { + id: refreshTimer + interval: 1000 / frequencySlider.value + running: true + repeat: true + onTriggered: { + dataSource.update(surfaceSeries) + mainView.updateSelectionLabel() + } + } + //! [3] + + Rectangle { + width: parent.width + height: flatShadingToggle.height + anchors.left: parent.left + anchors.top: parent.top + color: surfaceGraph.theme.backgroundColor + + RowLayout { + id: buttonLayout + Layout.minimumHeight: flatShadingToggle.height + anchors.fill: parent + spacing: 0 + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.minimumWidth: samplesText.implicitWidth + 120 + Layout.maximumWidth: samplesText.implicitWidth + 120 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + + border.color: "gray" + border.width: 1 + radius: 4 + + RowLayout { + anchors.fill: parent + anchors.margins: parent.border.width + 1 + + Slider { + id: sampleSlider + Layout.fillHeight: true + Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.minimumWidth: 100 + minimumValue: mainView.sampleCache * 2 + maximumValue: minimumValue * 10 + stepSize: mainView.sampleCache + updateValueWhileDragging: false + value: minimumValue * 2 + } + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.minimumWidth: samplesText.implicitWidth + 10 + Layout.maximumWidth: samplesText.implicitWidth + 10 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + + Text { + id: samplesText + text: "Samples: " + (mainView.sampleRows * mainView.sampleColumns) + anchors.fill: parent + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + } + } + } + } + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.minimumWidth: frequencyText.implicitWidth + 120 + Layout.maximumWidth: frequencyText.implicitWidth + 120 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + + border.color: "gray" + border.width: 1 + radius: 4 + + RowLayout { + anchors.fill: parent + anchors.margins: parent.border.width + 1 + + Slider { + id: frequencySlider + Layout.fillHeight: true + Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.minimumWidth: 100 + minimumValue: 2 + maximumValue: 60 + stepSize: 2 + updateValueWhileDragging: true + value: 30 + } + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.minimumWidth: frequencyText.implicitWidth + 10 + Layout.maximumWidth: frequencyText.implicitWidth + 10 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + + Text { + id: frequencyText + text: "Target freq: " + frequencySlider.value + " Hz" + anchors.fill: parent + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + } + } + } + } + + Rectangle { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.minimumWidth: selectionText.implicitWidth + 10 + Layout.maximumWidth: selectionText.implicitWidth + 10 + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + + border.color: "gray" + border.width: 1 + radius: 4 + + Text { + id: selectionText + text: "No selection" + anchors.fill: parent + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + } + } + + NewButton { + id: flatShadingToggle + Layout.fillHeight: true + Layout.fillWidth: true + + text: "Show Flat" + enabled: surfaceSeries.flatShadingSupported + + onClicked: { + if (surfaceSeries.flatShadingEnabled === true) { + surfaceSeries.flatShadingEnabled = false; + text = "Show Flat" + } else { + surfaceSeries.flatShadingEnabled = true; + text = "Show Smooth" + } + } + } + + NewButton { + id: surfaceGridToggle + Layout.fillHeight: true + Layout.fillWidth: true + + text: "Show Surface Grid" + + onClicked: { + if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe) { + surfaceSeries.drawMode &= ~Surface3DSeries.DrawWireframe; + text = "Show Surface Grid" + } else { + surfaceSeries.drawMode |= Surface3DSeries.DrawWireframe; + text = "Hide Surface Grid" + } + } + } + + NewButton { + id: exitButton + Layout.fillHeight: true + Layout.fillWidth: true + + text: "Quit" + + onClicked: Qt.quit(0); + } + } + } + + //! [1] + function updateSelectionLabel() { + selectionText.text = dataSource.selectionLabel(surfaceSeries, + surfaceGraph.axisX, + surfaceGraph.axisY, + surfaceGraph.axisZ) + } + //! [1] + + //! [4] + function generateData() { + dataSource.generateData(mainView.sampleCache, mainView.sampleRows, + mainView.sampleColumns, surfaceGraph.axisX.min, + surfaceGraph.axisX.max, surfaceGraph.axisY.min, + surfaceGraph.axisY.max, surfaceGraph.axisZ.min, + surfaceGraph.axisZ.max) + } + //! [4] +} -- cgit v1.2.3