summaryrefslogtreecommitdiffstats
path: root/tests/scattertest
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-05-06 09:52:24 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-05-08 08:37:17 +0300
commit8ff45fe94c3f3f6916f8f673c3ce0b574a69cfdf (patch)
tree8a085097595201ad14a0afcdd794f75feb365e89 /tests/scattertest
parentd6c1aadb3ee366ce8fd40da43fb65128ab3b2d44 (diff)
Value axis reversing support
Task-number: QTRD-2428 Change-Id: I51b3a1f8f974d5b72b36ee1188b7557539b9609b Reviewed-by: Titta Heikkala <titta.heikkala@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'tests/scattertest')
-rw-r--r--tests/scattertest/main.cpp8
-rw-r--r--tests/scattertest/scatterchart.cpp80
-rw-r--r--tests/scattertest/scatterchart.h3
3 files changed, 90 insertions, 1 deletions
diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp
index 82d025aa..b0e52c8c 100644
--- a/tests/scattertest/main.cpp
+++ b/tests/scattertest/main.cpp
@@ -126,6 +126,9 @@ int main(int argc, char **argv)
QPushButton *testItemChangesButton = new QPushButton(widget);
testItemChangesButton->setText(QStringLiteral("Test Item changing"));
+ QPushButton *testReverseButton = new QPushButton(widget);
+ testReverseButton->setText(QStringLiteral("Test Axis Reversing"));
+
QLinearGradient grBtoY(0, 0, 100, 0);
grBtoY.setColorAt(1.0, Qt::black);
grBtoY.setColorAt(0.67, Qt::blue);
@@ -242,7 +245,8 @@ int main(int argc, char **argv)
vLayout->addWidget(changeSeriesNameButton, 0, Qt::AlignTop);
vLayout->addWidget(startTimerButton, 0, Qt::AlignTop);
vLayout->addWidget(massiveDataTestButton, 0, Qt::AlignTop);
- vLayout->addWidget(testItemChangesButton, 1, Qt::AlignTop);
+ vLayout->addWidget(testItemChangesButton, 0, Qt::AlignTop);
+ vLayout->addWidget(testReverseButton, 1, Qt::AlignTop);
vLayout2->addWidget(gradientBtoYPB, 0, Qt::AlignTop);
vLayout2->addWidget(fpsLabel, 0, Qt::AlignTop);
@@ -316,6 +320,8 @@ int main(int argc, char **argv)
&ScatterDataModifier::massiveDataTest);
QObject::connect(testItemChangesButton, &QPushButton::clicked, modifier,
&ScatterDataModifier::testItemChanges);
+ QObject::connect(testReverseButton, &QPushButton::clicked, modifier,
+ &ScatterDataModifier::testAxisReverse);
QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier,
&ScatterDataModifier::setGradient);
QObject::connect(themeButton, &QPushButton::clicked, modifier,
diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp
index 13a0f040..430279c3 100644
--- a/tests/scattertest/scatterchart.cpp
+++ b/tests/scattertest/scatterchart.cpp
@@ -411,6 +411,70 @@ void ScatterDataModifier::testItemChanges()
counter++;
}
+void ScatterDataModifier::testAxisReverse()
+{
+ static int counter = 0;
+ const int rowCount = 16;
+ const int colCount = 16;
+ static QScatter3DSeries *series0 = 0;
+ static QScatter3DSeries *series1 = 0;
+
+ switch (counter) {
+ case 0: {
+ qDebug() << __FUNCTION__ << counter << "Setup test";
+ foreach (QScatter3DSeries *series, m_chart->seriesList())
+ m_chart->removeSeries(series);
+ foreach (QValue3DAxis *axis, m_chart->axes())
+ m_chart->releaseAxis(axis);
+ delete series0;
+ delete series1;
+ series0 = new QScatter3DSeries;
+ series1 = new QScatter3DSeries;
+ populateRisingSeries(series0, rowCount, colCount, 0.0f, 50.0f);
+ populateRisingSeries(series1, rowCount, colCount, -20.0f, 30.0f);
+ 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->addSeries(series0);
+ m_chart->addSeries(series1);
+ }
+ break;
+ case 1: {
+ qDebug() << __FUNCTION__ << counter << "Reverse X axis";
+ m_chart->axisX()->setReversed(true);
+ }
+ break;
+ case 2: {
+ qDebug() << __FUNCTION__ << counter << "Reverse Y axis";
+ m_chart->axisY()->setReversed(true);
+ }
+ break;
+ case 3: {
+ qDebug() << __FUNCTION__ << counter << "Reverse Z axis";
+ m_chart->axisZ()->setReversed(true);
+ }
+ break;
+ case 4: {
+ qDebug() << __FUNCTION__ << counter << "Return all axes to normal";
+ m_chart->axisX()->setReversed(false);
+ m_chart->axisY()->setReversed(false);
+ m_chart->axisZ()->setReversed(false);
+ }
+ break;
+ case 5: {
+ qDebug() << __FUNCTION__ << counter << "Reverse all axes";
+ m_chart->axisX()->setReversed(true);
+ m_chart->axisY()->setReversed(true);
+ m_chart->axisZ()->setReversed(true);
+ }
+ break;
+ default:
+ qDebug() << __FUNCTION__ << "Resetting test";
+ counter = -1;
+ }
+ counter++;
+}
+
void ScatterDataModifier::addData()
{
// Add labels
@@ -950,3 +1014,19 @@ void ScatterDataModifier::populateFlatSeries(QScatter3DSeries *series, int rows,
}
series->dataProxy()->resetArray(dataArray);
}
+
+void ScatterDataModifier::populateRisingSeries(QScatter3DSeries *series, int rows, int columns,
+ float minValue, float maxValue)
+{
+ QScatterDataArray *dataArray = new QScatterDataArray;
+ int arraySize = rows * columns;
+ dataArray->resize(arraySize);
+ float range = maxValue - minValue;
+ for (int i = 0; i < rows; i++) {
+ for (int j = 0; j < columns; j++) {
+ float yValue = minValue + (range * i * j / arraySize);
+ (*dataArray)[i * columns + j].setPosition(QVector3D(float(i), yValue, float(j)));
+ }
+ }
+ series->dataProxy()->resetArray(dataArray);
+}
diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h
index f239cb73..977e1201 100644
--- a/tests/scattertest/scatterchart.h
+++ b/tests/scattertest/scatterchart.h
@@ -59,6 +59,7 @@ public:
void setFpsMeasurement(bool enable);
void setFpsLabel(QLabel *fpsLabel) { m_fpsLabel = fpsLabel; }
void testItemChanges();
+ void testAxisReverse();
public slots:
void changeShadowQuality(int quality);
@@ -96,6 +97,8 @@ private:
QVector3D randVector();
QScatter3DSeries *createAndAddSeries();
void populateFlatSeries(QScatter3DSeries *series, int rows, int columns, float value);
+ void populateRisingSeries(QScatter3DSeries *series, int rows, int columns, float minValue,
+ float maxValue);
Q3DScatter *m_chart;
int m_fontSize;