From 964a6c7f8ff2354737ef897067ee46e3d0cd55a9 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 4 Jun 2014 13:51:21 +0300 Subject: Add testing of renderToImage to scatter test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I03c3868ac7c98658fafa71c19409eb3afe851a10 Reviewed-by: Tomi Korpipää --- tests/scattertest/main.cpp | 15 ++++++++++++--- tests/scattertest/scatterchart.cpp | 22 ++++++++++++++++++++++ tests/scattertest/scatterchart.h | 1 + 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index 50c73901..207da530 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -129,6 +129,9 @@ int main(int argc, char **argv) QPushButton *testReverseButton = new QPushButton(widget); testReverseButton->setText(QStringLiteral("Test Axis Reversing")); + QPushButton *renderToImageButton = new QPushButton(widget); + renderToImageButton->setText(QStringLiteral("Render the graph to an image")); + QLinearGradient grBtoY(0, 0, 100, 0); grBtoY.setColorAt(1.0, Qt::black); grBtoY.setColorAt(0.67, Qt::blue); @@ -270,7 +273,8 @@ int main(int argc, char **argv) vLayout->addWidget(startTimerButton, 0, Qt::AlignTop); vLayout->addWidget(massiveDataTestButton, 0, Qt::AlignTop); vLayout->addWidget(testItemChangesButton, 0, Qt::AlignTop); - vLayout->addWidget(testReverseButton, 1, Qt::AlignTop); + vLayout->addWidget(testReverseButton, 0, Qt::AlignTop); + vLayout->addWidget(renderToImageButton, 1, Qt::AlignTop); vLayout2->addWidget(gradientBtoYPB, 0, Qt::AlignTop); vLayout2->addWidget(fpsLabel, 0, Qt::AlignTop); @@ -299,8 +303,6 @@ int main(int argc, char **argv) vLayout2->addWidget(new QLabel(QStringLiteral("Axis label rotation"))); vLayout2->addWidget(axisLabelRotationSlider, 1, Qt::AlignTop); - widget->show(); - ScatterDataModifier *modifier = new ScatterDataModifier(chart); QObject::connect(fontSizeSlider, &QSlider::valueChanged, modifier, @@ -352,6 +354,8 @@ int main(int argc, char **argv) &ScatterDataModifier::testItemChanges); QObject::connect(testReverseButton, &QPushButton::clicked, modifier, &ScatterDataModifier::testAxisReverse); + QObject::connect(renderToImageButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::renderToImage); QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier, &ScatterDataModifier::setGradient); QObject::connect(themeButton, &QPushButton::clicked, modifier, @@ -396,7 +400,12 @@ int main(int argc, char **argv) modifier->setFpsLabel(fpsLabel); + chart->setGeometry(QRect(0, 0, 800, 800)); + modifier->start(); + modifier->renderToImage(); // Initial hidden render + + widget->show(); return app.exec(); } diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index e498b2da..c00c526a 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -948,6 +948,28 @@ void ScatterDataModifier::toggleAxisTitleFixed(bool enabled) m_chart->axisZ()->setTitleFixed(enabled); } +void ScatterDataModifier::renderToImage() +{ + QImage renderedImage8AA = m_chart->renderToImage(8); + QImage renderedImageNoAA = m_chart->renderToImage(0); + QImage renderedImage8AASmall = m_chart->renderToImage(8, QSize(100, 100)); + QImage renderedImageNoAASmall = m_chart->renderToImage(0, QSize(100, 100)); + + if (m_chart->isVisible()) { + renderedImage8AA.save(QStringLiteral("./renderedImage8AA_visible.png")); + renderedImageNoAA.save(QStringLiteral("./renderedImageNoAA_visible.png")); + renderedImage8AASmall.save(QStringLiteral("./renderedImage8AASmall_visible.png")); + renderedImageNoAASmall.save(QStringLiteral("./renderedImageNoAASmall_visible.png")); + qDebug() << "Visible images rendered!"; + } else { + renderedImage8AA.save(QStringLiteral("./renderedImage8AA_hidden.png")); + renderedImageNoAA.save(QStringLiteral("./renderedImageNoAA_hidden.png")); + renderedImage8AASmall.save(QStringLiteral("./renderedImage8AASmall_hidden.png")); + renderedImageNoAASmall.save(QStringLiteral("./renderedImageNoAASmall_hidden.png")); + qDebug() << "Hidden images rendered!"; + } +} + void ScatterDataModifier::changeShadowQuality(int quality) { QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 983b605a..97c3b1f9 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -92,6 +92,7 @@ public slots: void changeLabelRotation(int rotation); void toggleAxisTitleVisibility(bool enabled); void toggleAxisTitleFixed(bool enabled); + void renderToImage(); signals: void shadowQualityChanged(int quality); -- cgit v1.2.3