diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/barstest/chart.cpp | 64 | ||||
-rw-r--r-- | tests/barstest/chart.h | 2 | ||||
-rw-r--r-- | tests/barstest/main.cpp | 6 | ||||
-rw-r--r-- | tests/scattertest/main.cpp | 6 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.cpp | 6 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.h | 1 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.cpp | 38 | ||||
-rw-r--r-- | tests/surfacetest/graphmodifier.h | 2 | ||||
-rw-r--r-- | tests/surfacetest/main.cpp | 12 |
9 files changed, 136 insertions, 1 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 0a8bef55..2c095cf8 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -71,7 +71,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_defaultInputHandler(0), m_ownTheme(0), m_builtinTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)), - m_customInputHandler(new CustomInputHandler) + m_customInputHandler(new CustomInputHandler), + m_extraSeries(0) { m_temperatureData->setObjectName("m_temperatureData"); m_temperatureData2->setObjectName("m_temperatureData2"); @@ -1149,6 +1150,67 @@ void GraphModifier::changeLogBase(const QString &text) formatter->setBase(qreal(text.toDouble())); } +void GraphModifier::addRemoveSeries() +{ + static int counter = 0; + + switch (counter) { + case 0: { + qDebug() << __FUNCTION__ << counter << "New series"; + m_extraSeries = new QBar3DSeries; + m_graph->addSeries(m_extraSeries); + QObject::connect(m_extraSeries, &QBar3DSeries::selectedBarChanged, this, + &GraphModifier::handleSelectionChange); + } + break; + case 1: { + qDebug() << __FUNCTION__ << counter << "Add data to series"; + QBarDataArray *array = new QBarDataArray; + array->reserve(5); + for (int i = 0; i < 5; i++) { + array->append(new QBarDataRow(10)); + for (int j = 0; j < 10; j++) + (*array->at(i))[j].setValue(i * j); + } + m_extraSeries->dataProxy()->resetArray(array); + } + break; + case 2: { + qDebug() << __FUNCTION__ << counter << "Hide series"; + m_extraSeries->setVisible(false); + } + break; + case 3: { + qDebug() << __FUNCTION__ << counter << "Modify data when hidden"; + QBarDataArray array; + array.reserve(5); + for (int i = 0; i < 5; i++) { + array.append(new QBarDataRow(10)); + for (int j = 0; j < 10; j++) + (*array.at(i))[j].setValue(2 * i * j); + } + m_extraSeries->dataProxy()->addRows(array); + } + break; + case 4: { + qDebug() << __FUNCTION__ << counter << "Show series again"; + m_extraSeries->setVisible(true); + } + break; + case 5: { + qDebug() << __FUNCTION__ << counter << "Remove series"; + m_graph->removeSeries(m_extraSeries); + delete m_extraSeries; + m_extraSeries = 0; + } + break; + default: + qDebug() << __FUNCTION__ << "Resetting test"; + counter = -1; + } + counter++; +} + void GraphModifier::changeValueAxisSegments(int value) { qDebug() << __FUNCTION__ << value; diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 214c4e17..e64b282a 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -91,6 +91,7 @@ public: void changeValueAxisFormat(const QString & text); void changeLogBase(const QString & text); void setFpsLabel(QLabel *fpsLabel) { m_fpsLabel = fpsLabel; } + void addRemoveSeries(); public slots: void flipViews(); @@ -162,6 +163,7 @@ private: QTimer m_selectionTimer; QTimer m_rotationTimer; QLabel *m_fpsLabel; + QBar3DSeries *m_extraSeries; }; #endif diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index b1589e0f..e02bddce 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -66,6 +66,10 @@ int main(int argc, char **argv) hLayout->addLayout(vLayout); hLayout->addLayout(vLayout2); + QPushButton *addSeriesButton = new QPushButton(widget); + addSeriesButton->setText(QStringLiteral("Add / Remove a series")); + addSeriesButton->setEnabled(true); + QPushButton *addDataButton = new QPushButton(widget); addDataButton->setText(QStringLiteral("Add a row of data")); addDataButton->setEnabled(false); @@ -305,6 +309,7 @@ int main(int argc, char **argv) valueAxisSegmentsSpin->setMaximum(100); valueAxisSegmentsSpin->setValue(10); + vLayout->addWidget(addSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(addDataButton, 0, Qt::AlignTop); vLayout->addWidget(addMultiDataButton, 0, Qt::AlignTop); vLayout->addWidget(insertDataButton, 0, Qt::AlignTop); @@ -419,6 +424,7 @@ int main(int argc, char **argv) QObject::connect(labelButton, &QPushButton::clicked, modifier, &GraphModifier::changeLabelStyle); QObject::connect(addDataButton, &QPushButton::clicked, modifier, &GraphModifier::addRow); + QObject::connect(addSeriesButton, &QPushButton::clicked, modifier, &GraphModifier::addRemoveSeries); QObject::connect(addMultiDataButton, &QPushButton::clicked, modifier, &GraphModifier::addRows); QObject::connect(insertDataButton, &QPushButton::clicked, modifier, &GraphModifier::insertRow); QObject::connect(insertMultiDataButton, &QPushButton::clicked, modifier, &GraphModifier::insertRows); diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index fbe257f5..2bd60aff 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -102,6 +102,9 @@ int main(int argc, char **argv) QPushButton *setSelectedItemButton = new QPushButton(widget); setSelectedItemButton->setText(QStringLiteral("Select/deselect item 3")); + QPushButton *clearSeriesDataButton = new QPushButton(widget); + clearSeriesDataButton->setText(QStringLiteral("Clear series data")); + QPushButton *addSeriesButton = new QPushButton(widget); addSeriesButton->setText(QStringLiteral("Add Series")); @@ -220,6 +223,7 @@ int main(int argc, char **argv) vLayout->addWidget(removeOneButton, 0, Qt::AlignTop); vLayout->addWidget(removeBunchButton, 0, Qt::AlignTop); vLayout->addWidget(setSelectedItemButton, 0, Qt::AlignTop); + vLayout->addWidget(clearSeriesDataButton, 0, Qt::AlignTop); vLayout->addWidget(addSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(removeSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(toggleSeriesVisibilityButton, 0, Qt::AlignTop); @@ -280,6 +284,8 @@ int main(int argc, char **argv) &ScatterDataModifier::removeBunch); QObject::connect(setSelectedItemButton, &QPushButton::clicked, modifier, &ScatterDataModifier::selectItem); + QObject::connect(clearSeriesDataButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::clearSeriesData); QObject::connect(addSeriesButton, &QPushButton::clicked, modifier, &ScatterDataModifier::addSeries); QObject::connect(removeSeriesButton, &QPushButton::clicked, modifier, diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index a589919f..2e208926 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -459,6 +459,12 @@ void ScatterDataModifier::setGradient() } } +void ScatterDataModifier::clearSeriesData() +{ + if (m_targetSeries) + m_targetSeries->dataProxy()->resetArray(0); +} + void ScatterDataModifier::addSeries() { QScatter3DSeries *series = createAndAddSeries(); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 23071c85..1470f07b 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -71,6 +71,7 @@ public slots: void selectItem(); void handleSelectionChange(int index); void setGradient(); + void clearSeriesData(); void addSeries(); void removeSeries(); void toggleSeriesVisibility(); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index e1fed76a..c87eb2fc 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -1093,6 +1093,44 @@ void GraphModifier::removeRow() m_zCount--; } +void GraphModifier::resetArray() +{ + qDebug() << "Reset series data array"; + int rows = 10; + int columns = 10; + float randFactor = float(rand() % 100) / 100.0f; + QSurfaceDataArray *planeArray = new QSurfaceDataArray; + planeArray->reserve(rows); + + for (int i = 0; i < rows; i++) { + planeArray->append(new QSurfaceDataRow); + (*planeArray)[i]->resize(columns); + for (int j = 0; j < columns; j++) { + (*planeArray->at(i))[j].setX(float(j) * randFactor); + (*planeArray->at(i))[j].setY(float(i - j) * randFactor); + (*planeArray->at(i))[j].setZ(float(i)); + } + } + +#ifdef MULTI_SERIES + int series = rand() % 4; + m_multiseries[series]->dataProxy()->resetArray(planeArray); +#else + m_theSeries->dataProxy()->resetArray(planeArray); +#endif +} + +void GraphModifier::resetArrayEmpty() +{ + QSurfaceDataArray *emptryArray = new QSurfaceDataArray; +#ifdef MULTI_SERIES + int series = rand() % 4; + m_multiseries[series]->dataProxy()->resetArray(emptryArray); +#else + m_theSeries->dataProxy()->resetArray(emptryArray); +#endif +} + void GraphModifier::changeMesh() { static int model = 0; diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index 9fd0360b..5c4ed033 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -105,6 +105,8 @@ public: void insertRow(); void insertRows(); void removeRow(); + void resetArray(); + void resetArrayEmpty(); public slots: void changeShadowQuality(int quality); diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 6b54b8dd..bddb2d11 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -338,6 +338,12 @@ int main(int argc, char *argv[]) QPushButton *removeRowButton = new QPushButton(widget); removeRowButton->setText(QStringLiteral("Remove a row")); + QPushButton *resetArrayButton = new QPushButton(widget); + resetArrayButton->setText(QStringLiteral("Reset Series Array to plane")); + + QPushButton *resetArrayEmptyButton = new QPushButton(widget); + resetArrayEmptyButton->setText(QStringLiteral("Reset Series Array to empty")); + QFrame* line = new QFrame(); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); @@ -423,6 +429,8 @@ int main(int argc, char *argv[]) vLayout2->addWidget(insertRowButton); vLayout2->addWidget(insertRowsButton); vLayout2->addWidget(removeRowButton); + vLayout2->addWidget(resetArrayButton); + vLayout2->addWidget(resetArrayEmptyButton); widget->show(); @@ -574,6 +582,10 @@ int main(int argc, char *argv[]) modifier, &GraphModifier::insertRows); QObject::connect(removeRowButton,&QPushButton::clicked, modifier, &GraphModifier::removeRow); + QObject::connect(resetArrayButton,&QPushButton::clicked, + modifier, &GraphModifier::resetArray); + QObject::connect(resetArrayEmptyButton,&QPushButton::clicked, + modifier, &GraphModifier::resetArrayEmpty); #ifdef MULTI_SERIES modifier->setSeries1CB(series1CB); |