From 450dc3e6d74ffe93a761a5e2491458935ecac7b7 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 9 Jan 2014 09:55:52 +0200 Subject: Make active axes properties in C++ Also provide axis changed signals both C++ and QML. Some other minor fixes, too. Task-number: QTRD-2669 Change-Id: Ib797bffd6720382cf26359a9059e1809efdf58da Reviewed-by: Mika Salmela --- tests/barstest/chart.cpp | 21 +++++++++++ tests/barstest/chart.h | 4 +++ tests/multigraphs/data.cpp | 2 ++ tests/qmlmultigraph/qml/qmlmultigraph/main.qml | 48 ++++++++++++++++++++++++++ tests/scattertest/scatterchart.cpp | 22 ++++++++++++ tests/scattertest/scatterchart.h | 4 +++ tests/surfacetest/graphmodifier.cpp | 22 ++++++++++++ tests/surfacetest/graphmodifier.h | 4 +++ 8 files changed, 127 insertions(+) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 24fe1b52..4048e807 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -184,6 +184,13 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) QObject::connect(m_genericData, &QBar3DSeries::selectedBarChanged, this, &GraphModifier::handleSelectionChange); + QObject::connect(m_graph, &Q3DBars::rowAxisChanged, this, + &GraphModifier::handleRowAxisChanged); + QObject::connect(m_graph, &Q3DBars::columnAxisChanged, this, + &GraphModifier::handleColumnAxisChanged); + QObject::connect(m_graph, &Q3DBars::valueAxisChanged, this, + &GraphModifier::handleValueAxisChanged); + m_graph->addSeries(m_temperatureData); m_graph->addSeries(m_temperatureData2); @@ -681,6 +688,20 @@ void GraphModifier::setUseNullInputHandler(bool useNull) m_graph->setActiveInputHandler(m_defaultInputHandler); } +void GraphModifier::handleRowAxisChanged(QCategory3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->rowAxis()); +} + +void GraphModifier::handleColumnAxisChanged(QCategory3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->columnAxis()); +} + +void GraphModifier::handleValueAxisChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->valueAxis()); +} void GraphModifier::changeShadowQuality(int quality) { diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index c75e5024..f617a348 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -89,6 +89,10 @@ public slots: void handleSelectionChange(const QPoint &position); void setUseNullInputHandler(bool useNull); + void handleRowAxisChanged(QCategory3DAxis *axis); + void handleColumnAxisChanged(QCategory3DAxis *axis); + void handleValueAxisChanged(QValue3DAxis *axis); + signals: void shadowQualityChanged(int quality); diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index 9e8a5196..70fcbad4 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -42,6 +42,8 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_resolution(QSize(300, 300)), m_resolutionLevel(0), m_mode(Surface), + m_scatterDataArray(0), + m_barDataArray(0), m_started(false) { // Initialize surface diff --git a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml index fdc49132..11c4ab2d 100644 --- a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml +++ b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml @@ -43,6 +43,16 @@ Item { valueRole: "expenses" } } + + onRowAxisChanged: { + console.log("Bars: Row axis changed.") + } + onColumnAxisChanged: { + console.log("Bars: column axis changed.") + } + onValueAxisChanged: { + console.log("Bars: Value axis changed.") + } } ListModel { @@ -75,6 +85,16 @@ Item { zPosRole: "zPos" } } + + onAxisXChanged: { + console.log("Scatter: axis X changed.") + } + onAxisYChanged: { + console.log("Scatter: axis Y changed.") + } + onAxisZChanged: { + console.log("Scatter: axis Z changed.") + } } ListModel { @@ -105,6 +125,16 @@ Item { valueRole: "pop_density" } } + + onAxisXChanged: { + console.log("Surface: axis X changed.") + } + onAxisYChanged: { + console.log("Surface: axis Y changed.") + } + onAxisZChanged: { + console.log("Surface: axis Z changed.") + } } ListModel { id: surfaceDataModel @@ -141,6 +171,24 @@ Item { text: "Quit" onClicked: Qt.quit(0); } + + NewButton { + id: resetAxesButton + Layout.fillHeight: true + Layout.fillWidth: true + text: "Reset axes" + onClicked: { + barGraph.rowAxis = null + barGraph.columnAxis = null + barGraph.valueAxis = null + scatterGraph.axisX = null + scatterGraph.axisY = null + scatterGraph.axisZ = null + surfaceGraph.axisX = null + surfaceGraph.axisY = null + surfaceGraph.axisZ = null + } + } } Rectangle { diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 58add6ec..97562861 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -55,6 +55,13 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) QObject::connect(&m_timer, &QTimer::timeout, this, &ScatterDataModifier::timeout); QObject::connect(m_chart, &Q3DScatter::shadowQualityChanged, this, &ScatterDataModifier::shadowQualityUpdatedByVisual); + + QObject::connect(m_chart, &Q3DScatter::axisXChanged, this, + &ScatterDataModifier::handleAxisXChanged); + QObject::connect(m_chart, &Q3DScatter::axisYChanged, this, + &ScatterDataModifier::handleAxisYChanged); + QObject::connect(m_chart, &Q3DScatter::axisZChanged, this, + &ScatterDataModifier::handleAxisZChanged); } ScatterDataModifier::~ScatterDataModifier() @@ -461,6 +468,21 @@ void ScatterDataModifier::removeSeries() } } +void ScatterDataModifier::handleAxisXChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisX()); +} + +void ScatterDataModifier::handleAxisYChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisY()); +} + +void ScatterDataModifier::handleAxisZChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisZ()); +} + void ScatterDataModifier::changeShadowQuality(int quality) { QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 5524929e..903c6fc0 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -68,6 +68,10 @@ public slots: void addSeries(); void removeSeries(); + void handleAxisXChanged(QValue3DAxis *axis); + void handleAxisYChanged(QValue3DAxis *axis); + void handleAxisZChanged(QValue3DAxis *axis); + signals: void shadowQualityChanged(int quality); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index bd44c1dc..58aee4cd 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -65,6 +65,13 @@ GraphModifier::GraphModifier(Q3DSurface *graph) connect(&m_timer, &QTimer::timeout, this, &GraphModifier::timeout); connect(m_theSeries, &QSurface3DSeries::selectedPointChanged, this, &GraphModifier::selectedPointChanged); + + QObject::connect(m_graph, &Q3DSurface::axisXChanged, this, + &GraphModifier::handleAxisXChanged); + QObject::connect(m_graph, &Q3DSurface::axisYChanged, this, + &GraphModifier::handleAxisYChanged); + QObject::connect(m_graph, &Q3DSurface::axisZChanged, this, + &GraphModifier::handleAxisZChanged); } GraphModifier::~GraphModifier() @@ -393,6 +400,21 @@ void GraphModifier::timeout() m_theSeries->dataProxy()->resetArray(m_planeArray); } +void GraphModifier::handleAxisXChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->axisX()); +} + +void GraphModifier::handleAxisYChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->axisY()); +} + +void GraphModifier::handleAxisZChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->axisZ()); +} + void GraphModifier::resetArrayAndSliders(QSurfaceDataArray *array, float minZ, float maxZ, float minX, float maxX) { m_axisMinSliderX->setValue(minX); diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index f0b5cce7..e3c11b5d 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -87,6 +87,10 @@ public slots: void changeSelectionMode(int mode); void timeout(); + void handleAxisXChanged(QValue3DAxis *axis); + void handleAxisYChanged(QValue3DAxis *axis); + void handleAxisZChanged(QValue3DAxis *axis); + private: void resetArrayAndSliders(QSurfaceDataArray *array, float minZ, float maxZ, float minX, float maxX); -- cgit v1.2.3