summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-25 15:04:44 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-26 10:06:52 +0300
commit0ab45b018fa98e9ef6cffd70178f208eb4f16550 (patch)
tree77d324f47ccb52cc543df9e8990153b82ead2688 /tests
parent36bc54f5720bddb9899e64d665117ac1e1b5bc94 (diff)
Implement zooming to cursor
Zooming to cursor is now default operating mode of the default input handler. Task-number: QTRD-3263 Change-Id: I5699fc0ce7393059538972cd52f31f06d87e3d8d Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/barstest/chart.cpp6
-rw-r--r--tests/barstest/chart.h1
-rw-r--r--tests/barstest/main.cpp7
-rw-r--r--tests/scattertest/scatterchart.cpp6
-rw-r--r--tests/surfacetest/graphmodifier.cpp25
-rw-r--r--tests/surfacetest/graphmodifier.h5
-rw-r--r--tests/surfacetest/main.cpp2
-rw-r--r--tests/volumetrictest/volumetrictest.pro4
8 files changed, 47 insertions, 9 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp
index 9a81fc86..d7b23719 100644
--- a/tests/barstest/chart.cpp
+++ b/tests/barstest/chart.cpp
@@ -203,6 +203,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog)
m_graph->activeTheme()->setFont(QFont("Times Roman", 20));
+
// Release and store the default input handler.
m_defaultInputHandler = static_cast<Q3DInputHandler *>(m_graph->activeInputHandler());
m_graph->releaseInputHandler(m_defaultInputHandler);
@@ -1421,6 +1422,11 @@ void GraphModifier::setInputHandlerSelectionEnabled(int enabled)
m_defaultInputHandler->setSelectionEnabled(enabled);
}
+void GraphModifier::setInputHandlerZoomAtTargetEnabled(int enabled)
+{
+ m_defaultInputHandler->setZoomAtTargetEnabled(enabled);
+}
+
void GraphModifier::changeValueAxisSegments(int value)
{
qDebug() << __FUNCTION__ << value;
diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h
index eac6d3f1..93abbfa4 100644
--- a/tests/barstest/chart.h
+++ b/tests/barstest/chart.h
@@ -97,6 +97,7 @@ public:
void setInputHandlerRotationEnabled(int enabled);
void setInputHandlerZoomEnabled(int enabled);
void setInputHandlerSelectionEnabled(int enabled);
+ void setInputHandlerZoomAtTargetEnabled(int enabled);
void setReflection(bool enabled);
void setReflectivity(int value);
void toggleCustomItem();
diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp
index 1cc47859..cffbf4b4 100644
--- a/tests/barstest/main.cpp
+++ b/tests/barstest/main.cpp
@@ -234,6 +234,10 @@ int main(int argc, char **argv)
inputHandlerSelectionCheckBox->setText("IH: Allow selection");
inputHandlerSelectionCheckBox->setChecked(true);
+ QCheckBox *inputHandlerZoomAtTargetCheckBox = new QCheckBox(widget);
+ inputHandlerZoomAtTargetCheckBox->setText("IH: setZoomAtTarget");
+ inputHandlerZoomAtTargetCheckBox->setChecked(false);
+
QSlider *rotationSliderX = new QSlider(Qt::Horizontal, widget);
rotationSliderX->setTickInterval(1);
rotationSliderX->setMinimum(-180);
@@ -422,6 +426,7 @@ int main(int argc, char **argv)
vLayout3->addWidget(inputHandlerRotationCheckBox, 0, Qt::AlignTop);
vLayout3->addWidget(inputHandlerZoomCheckBox, 0, Qt::AlignTop);
vLayout3->addWidget(inputHandlerSelectionCheckBox, 0, Qt::AlignTop);
+ vLayout3->addWidget(inputHandlerZoomAtTargetCheckBox, 0, Qt::AlignTop);
vLayout3->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")), 0, Qt::AlignTop);
vLayout3->addWidget(shadowQuality, 0, Qt::AlignTop);
vLayout3->addWidget(new QLabel(QStringLiteral("Change font")), 0, Qt::AlignTop);
@@ -559,6 +564,8 @@ int main(int argc, char **argv)
&GraphModifier::setInputHandlerZoomEnabled);
QObject::connect(inputHandlerSelectionCheckBox, &QCheckBox::stateChanged, modifier,
&GraphModifier::setInputHandlerSelectionEnabled);
+ QObject::connect(inputHandlerZoomAtTargetCheckBox, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setInputHandlerZoomAtTargetEnabled);
QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, modifier,
&GraphModifier::setUseNullInputHandler);
diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp
index 35d56236..a45c090b 100644
--- a/tests/scattertest/scatterchart.cpp
+++ b/tests/scattertest/scatterchart.cpp
@@ -23,6 +23,7 @@
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
#include <QtDataVisualization/q3dtheme.h>
+#include <QtDataVisualization/Q3DInputHandler>
#include <qmath.h>
using namespace QtDataVisualization;
@@ -46,6 +47,7 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter)
m_chart->setAxisX(new QValue3DAxis);
m_chart->setAxisY(new QValue3DAxis);
m_chart->setAxisZ(new QValue3DAxis);
+ static_cast<Q3DInputHandler *>(m_chart->activeInputHandler())->setZoomAtTargetEnabled(true);
createAndAddSeries();
createAndAddSeries();
@@ -435,6 +437,10 @@ void ScatterDataModifier::testAxisReverse()
m_chart->axisX()->setRange(0.0f, 10.0f);
m_chart->axisY()->setRange(-20.0f, 50.0f);
m_chart->axisZ()->setRange(5.0f, 15.0f);
+ m_chart->axisX()->setTitle("Axis X");
+ m_chart->axisZ()->setTitle("Axis Z");
+ m_chart->axisX()->setTitleVisible(true);
+ m_chart->axisZ()->setTitleVisible(true);
m_chart->addSeries(series0);
m_chart->addSeries(series1);
}
diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp
index a22ede2b..1a069cf4 100644
--- a/tests/surfacetest/graphmodifier.cpp
+++ b/tests/surfacetest/graphmodifier.cpp
@@ -21,18 +21,21 @@
#include <QtDataVisualization/QSurfaceDataProxy>
#include <QtDataVisualization/QSurface3DSeries>
#include <QtDataVisualization/Q3DTheme>
+#include <QtDataVisualization/Q3DInputHandler>
#include <qmath.h>
#include <QLinearGradient>
#include <QDebug>
#include <QComboBox>
-
+#ifndef QT_NO_CURSOR
+#include <QtGui/QCursor>
+#endif
using namespace QtDataVisualization;
//#define JITTER_PLANE
//#define WONKY_PLANE
-GraphModifier::GraphModifier(Q3DSurface *graph)
+GraphModifier::GraphModifier(Q3DSurface *graph, QWidget *parentWidget)
: m_graph(graph),
m_series1(new QSurface3DSeries),
m_series2(new QSurface3DSeries),
@@ -63,7 +66,8 @@ GraphModifier::GraphModifier(Q3DSurface *graph)
m_drawMode2(QSurface3DSeries::DrawSurfaceAndWireframe),
m_drawMode3(QSurface3DSeries::DrawSurfaceAndWireframe),
m_drawMode4(QSurface3DSeries::DrawSurfaceAndWireframe),
- m_offset(4.0f)
+ m_offset(4.0f),
+ m_parentWidget(parentWidget)
{
m_graph->setAxisX(new QValue3DAxis);
m_graph->axisX()->setTitle("X-Axis");
@@ -97,6 +101,8 @@ GraphModifier::GraphModifier(Q3DSurface *graph)
m_graph->axisY()->setRange(m_minY, m_minY + m_rangeY);
m_graph->axisZ()->setRange(m_minZ, m_minZ + m_rangeZ);
+ static_cast<Q3DInputHandler *>(m_graph->activeInputHandler())->setZoomAtTargetEnabled(true);
+
for (int i = 0; i < 4; i++) {
m_multiseries[i] = new QSurface3DSeries;
m_multiseries[i]->setName(QStringLiteral("Series %1").arg(i+1));
@@ -109,6 +115,7 @@ GraphModifier::GraphModifier(Q3DSurface *graph)
m_theSeries->setItemLabelFormat(QStringLiteral("@seriesName: (@xLabel, @zLabel): @yLabel"));
connect(&m_timer, &QTimer::timeout, this, &GraphModifier::timeout);
+ connect(&m_graphPositionQueryTimer, &QTimer::timeout, this, &GraphModifier::graphQueryTimeout);
connect(m_theSeries, &QSurface3DSeries::selectedPointChanged, this, &GraphModifier::selectedPointChanged);
QObject::connect(m_graph, &Q3DSurface::axisXChanged, this,
@@ -119,6 +126,8 @@ GraphModifier::GraphModifier(Q3DSurface *graph)
&GraphModifier::handleAxisZChanged);
QObject::connect(m_graph, &QAbstract3DGraph::currentFpsChanged, this,
&GraphModifier::handleFpsChange);
+
+ //m_graphPositionQueryTimer.start(100);
}
GraphModifier::~GraphModifier()
@@ -691,6 +700,16 @@ void GraphModifier::timeout()
m_theSeries->dataProxy()->resetArray(m_planeArray);
}
+void GraphModifier::graphQueryTimeout()
+{
+#ifndef QT_NO_CURSOR
+ m_graph->scene()->setGraphPositionQuery(m_parentWidget->mapFromGlobal(QCursor::pos()));
+ qDebug() << "pos: " << (m_parentWidget->mapFromGlobal(QCursor::pos()));
+#else
+ m_graph->scene()->setGraphPositionQuery(QPoint(100, 100));
+#endif
+}
+
void GraphModifier::handleAxisXChanged(QValue3DAxis *axis)
{
qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->axisX());
diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h
index f461f022..d1c77940 100644
--- a/tests/surfacetest/graphmodifier.h
+++ b/tests/surfacetest/graphmodifier.h
@@ -41,7 +41,7 @@ public:
Map
};
- explicit GraphModifier(Q3DSurface *graph);
+ explicit GraphModifier(Q3DSurface *graph, QWidget *parentWidget);
~GraphModifier();
void toggleSeries1(bool enabled);
@@ -122,6 +122,7 @@ public slots:
void flipViews();
void changeSelectionMode(int mode);
void timeout();
+ void graphQueryTimeout();
void handleAxisXChanged(QValue3DAxis *axis);
void handleAxisYChanged(QValue3DAxis *axis);
@@ -190,6 +191,8 @@ private:
float m_multiSampleOffsetZ[4];
QSurfaceDataArray m_massiveTestCacheArray;
QVector3D m_cameraTarget;
+ QWidget *m_parentWidget;
+ QTimer m_graphPositionQueryTimer;
};
#endif
diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp
index f89e6c50..9e14c665 100644
--- a/tests/surfacetest/main.cpp
+++ b/tests/surfacetest/main.cpp
@@ -524,7 +524,7 @@ int main(int argc, char *argv[])
widget->show();
- GraphModifier *modifier = new GraphModifier(surfaceGraph);
+ GraphModifier *modifier = new GraphModifier(surfaceGraph, container);
// Connect controls to slots on modifier
QObject::connect(smoothCB, &QCheckBox::stateChanged,
diff --git a/tests/volumetrictest/volumetrictest.pro b/tests/volumetrictest/volumetrictest.pro
index 137e5bab..df3ef0dd 100644
--- a/tests/volumetrictest/volumetrictest.pro
+++ b/tests/volumetrictest/volumetrictest.pro
@@ -1,7 +1,3 @@
-android|ios {
- error( "This example is not supported for android or ios." )
-}
-
!include( ../tests.pri ) {
error( "Couldn't find the tests.pri file!" )
}