diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-05-06 09:52:24 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-05-08 08:37:17 +0300 |
commit | 8ff45fe94c3f3f6916f8f673c3ce0b574a69cfdf (patch) | |
tree | 8a085097595201ad14a0afcdd794f75feb365e89 /tests | |
parent | d6c1aadb3ee366ce8fd40da43fb65128ab3b2d44 (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')
-rw-r--r-- | tests/barstest/chart.cpp | 5 | ||||
-rw-r--r-- | tests/barstest/chart.h | 1 | ||||
-rw-r--r-- | tests/barstest/main.cpp | 7 | ||||
-rw-r--r-- | tests/scattertest/main.cpp | 8 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.cpp | 80 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.h | 3 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.cpp | 83 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.h | 3 | ||||
-rw-r--r-- | tests/surfacetest/main.cpp | 8 |
9 files changed, 196 insertions, 2 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 9bf21cbd..4e5c8976 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -1400,6 +1400,11 @@ void GraphModifier::testItemAndRowChanges() counter++; } +void GraphModifier::reverseValueAxis(int enabled) +{ + m_graph->valueAxis()->setReversed(enabled); +} + void GraphModifier::changeValueAxisSegments(int value) { qDebug() << __FUNCTION__ << value; diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 385e139c..47d29c25 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -93,6 +93,7 @@ public: void setFpsLabel(QLabel *fpsLabel) { m_fpsLabel = fpsLabel; } void addRemoveSeries(); void testItemAndRowChanges(); + void reverseValueAxis(int enabled); public slots: void flipViews(); diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index 1182ffdf..5ecf63a4 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -201,6 +201,10 @@ int main(int argc, char **argv) fpsCheckBox->setText(QStringLiteral("Measure Fps")); fpsCheckBox->setChecked(false); + QCheckBox *reverseValueAxisCheckBox = new QCheckBox(widget); + reverseValueAxisCheckBox->setText(QStringLiteral("Reverse value axis")); + reverseValueAxisCheckBox->setChecked(false); + QCheckBox *backgroundCheckBox = new QCheckBox(widget); backgroundCheckBox->setText(QStringLiteral("Show background")); backgroundCheckBox->setChecked(true); @@ -364,6 +368,7 @@ int main(int argc, char **argv) vLayout2->addWidget(maxSliderY, 0, Qt::AlignTop); vLayout2->addWidget(fpsLabel, 0, Qt::AlignTop); vLayout2->addWidget(fpsCheckBox, 0, Qt::AlignTop); + vLayout2->addWidget(reverseValueAxisCheckBox, 0, Qt::AlignTop); vLayout2->addWidget(backgroundCheckBox, 0, Qt::AlignTop); vLayout2->addWidget(gridCheckBox, 0, Qt::AlignTop); vLayout2->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")), 0, Qt::AlignTop); @@ -477,6 +482,8 @@ int main(int argc, char **argv) QObject::connect(fpsCheckBox, &QCheckBox::stateChanged, modifier, &GraphModifier::setFpsMeasurement); + QObject::connect(reverseValueAxisCheckBox, &QCheckBox::stateChanged, modifier, + &GraphModifier::reverseValueAxis); QObject::connect(backgroundCheckBox, &QCheckBox::stateChanged, modifier, &GraphModifier::setBackgroundEnabled); QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, 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; diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 0f3aa985..6dd20de7 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -781,6 +781,25 @@ QSurfaceDataRow *GraphModifier::createMultiRow(int row, int series, bool change) return newRow; } +void GraphModifier::populateRisingSeries(QSurface3DSeries *series, int rows, int columns, + float minValue, float maxValue) +{ + QSurfaceDataArray *dataArray = new QSurfaceDataArray; + dataArray->reserve(rows); + float range = maxValue - minValue; + int arraySize = rows * columns; + for (int i = 0; i < rows; i++) { + QSurfaceDataRow *dataRow = new QSurfaceDataRow(columns); + for (int j = 0; j < columns; j++) { + float yValue = minValue + (range * i * j / arraySize); + (*dataRow)[j].setPosition(QVector3D(float(j), yValue, float(i))); + } + dataArray->append(dataRow); + } + series->dataProxy()->resetArray(dataArray); + +} + void GraphModifier::changeRows() { if (m_activeSample == GraphModifier::SqrtSin) { @@ -1278,6 +1297,70 @@ void GraphModifier::massiveTestAppendAndScroll() m_graph->axisZ()->setRange(min, max); } +void GraphModifier::testAxisReverse() +{ + static int counter = 0; + const int rowCount = 16; + const int colCount = 16; + static QSurface3DSeries *series0 = 0; + static QSurface3DSeries *series1 = 0; + + switch (counter) { + case 0: { + qDebug() << __FUNCTION__ << counter << "Setup test"; + foreach (QSurface3DSeries *series, m_graph->seriesList()) + m_graph->removeSeries(series); + foreach (QValue3DAxis *axis, m_graph->axes()) + m_graph->releaseAxis(axis); + delete series0; + delete series1; + series0 = new QSurface3DSeries; + series1 = new QSurface3DSeries; + populateRisingSeries(series0, rowCount, colCount, 0.0f, 50.0f); + populateRisingSeries(series1, rowCount, colCount, -20.0f, 30.0f); + m_graph->axisX()->setRange(0.0f, 10.0f); + m_graph->axisY()->setRange(-20.0f, 50.0f); + m_graph->axisZ()->setRange(5.0f, 15.0f); + m_graph->addSeries(series0); + m_graph->addSeries(series1); + } + break; + case 1: { + qDebug() << __FUNCTION__ << counter << "Reverse X axis"; + m_graph->axisX()->setReversed(true); + } + break; + case 2: { + qDebug() << __FUNCTION__ << counter << "Reverse Y axis"; + m_graph->axisY()->setReversed(true); + } + break; + case 3: { + qDebug() << __FUNCTION__ << counter << "Reverse Z axis"; + m_graph->axisZ()->setReversed(true); + } + break; + case 4: { + qDebug() << __FUNCTION__ << counter << "Return all axes to normal"; + m_graph->axisX()->setReversed(false); + m_graph->axisY()->setReversed(false); + m_graph->axisZ()->setReversed(false); + } + break; + case 5: { + qDebug() << __FUNCTION__ << counter << "Reverse all axes"; + m_graph->axisX()->setReversed(true); + m_graph->axisY()->setReversed(true); + m_graph->axisZ()->setReversed(true); + } + break; + default: + qDebug() << __FUNCTION__ << "Resetting test"; + counter = -1; + } + counter++; +} + void GraphModifier::changeMesh() { static int model = 0; diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index f79055df..f3e95a1b 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -110,6 +110,7 @@ public: void massiveDataTest(); void massiveTestScroll(); void massiveTestAppendAndScroll(); + void testAxisReverse(); public slots: void changeShadowQuality(int quality); @@ -128,6 +129,8 @@ private: void resetArrayAndSliders(QSurfaceDataArray *array, float minZ, float maxZ, float minX, float maxX); QSurfaceDataRow *createMultiRow(int row, int series, bool change); + void populateRisingSeries(QSurface3DSeries *series, int rows, int columns, float minValue, + float maxValue); Q3DSurface *m_graph; QSurface3DSeries *m_multiseries[4]; diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index aa300207..8371e2cf 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -56,7 +56,7 @@ int main(int argc, char *argv[]) surfaceGraph->activeTheme()->setType(Q3DTheme::Theme(initialTheme)); QWidget *container = QWidget::createWindowContainer(surfaceGraph); - container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 2)); + container->setMinimumSize(QSize(screenSize.width() / 4, screenSize.height() / 4)); container->setMaximumSize(screenSize); container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); container->setFocusPolicy(Qt::StrongFocus); @@ -347,6 +347,9 @@ int main(int argc, char *argv[]) QPushButton *massiveDataTestButton = new QPushButton(widget); massiveDataTestButton->setText(QStringLiteral("Massive data test")); + QPushButton *testReverseButton = new QPushButton(widget); + testReverseButton->setText(QStringLiteral("Test Axis Reversing")); + QFrame* line = new QFrame(); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); @@ -435,6 +438,7 @@ int main(int argc, char *argv[]) vLayout2->addWidget(resetArrayButton); vLayout2->addWidget(resetArrayEmptyButton); vLayout2->addWidget(massiveDataTestButton); + vLayout2->addWidget(testReverseButton); widget->show(); @@ -592,6 +596,8 @@ int main(int argc, char *argv[]) modifier, &GraphModifier::resetArrayEmpty); QObject::connect(massiveDataTestButton,&QPushButton::clicked, modifier, &GraphModifier::massiveDataTest); + QObject::connect(testReverseButton, &QPushButton::clicked, + modifier, &GraphModifier::testAxisReverse); #ifdef MULTI_SERIES modifier->setSeries1CB(series1CB); |