diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-06-26 10:59:04 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-06-26 13:53:18 +0300 |
commit | 47cc882034d9062a32ad2fa96377565ae0ab93be (patch) | |
tree | 1b6e342d93f5ab52cb5d4ce9fed07a1269db385b /tests | |
parent | ffba0218893cd25b08718d4d6fd0c40c95aecf47 (diff) |
Polar chart for scatter
Task-number: QTRD-3184
Change-Id: Ie8e10050e58a3630eda87ec44fb342776d667ae6
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/scattertest/main.cpp | 34 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.cpp | 27 | ||||
-rw-r--r-- | tests/scattertest/scatterchart.h | 4 |
3 files changed, 62 insertions, 3 deletions
diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index 207da530..f434e324 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -235,6 +235,18 @@ int main(int argc, char **argv) aspectRatioSlider->setValue(20); aspectRatioSlider->setMaximum(100); + QCheckBox *optimizationStaticCB = new QCheckBox(widget); + optimizationStaticCB->setText(QStringLiteral("Static optimization")); + optimizationStaticCB->setChecked(false); + + QCheckBox *orthoCB = new QCheckBox(widget); + orthoCB->setText(QStringLiteral("Orthogonal projection")); + orthoCB->setChecked(false); + + QCheckBox *polarCB = new QCheckBox(widget); + polarCB->setText(QStringLiteral("Polar graph")); + polarCB->setChecked(false); + QCheckBox *axisTitlesVisibleCB = new QCheckBox(widget); axisTitlesVisibleCB->setText(QStringLiteral("Axis titles visible")); axisTitlesVisibleCB->setChecked(false); @@ -250,6 +262,13 @@ int main(int argc, char **argv) axisLabelRotationSlider->setValue(0); axisLabelRotationSlider->setMaximum(90); + QSlider *radialLabelSlider = new QSlider(Qt::Horizontal, widget); + radialLabelSlider->setTickInterval(10); + radialLabelSlider->setTickPosition(QSlider::TicksBelow); + radialLabelSlider->setMinimum(0); + radialLabelSlider->setValue(100); + radialLabelSlider->setMaximum(150); + vLayout->addWidget(themeButton, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); vLayout->addWidget(styleButton, 0, Qt::AlignTop); @@ -298,10 +317,15 @@ int main(int argc, char **argv) vLayout2->addWidget(fontSizeSlider); vLayout2->addWidget(new QLabel(QStringLiteral("Adjust aspect ratio"))); vLayout2->addWidget(aspectRatioSlider, 1, Qt::AlignTop); + vLayout2->addWidget(optimizationStaticCB); + vLayout2->addWidget(orthoCB); + vLayout2->addWidget(polarCB); vLayout2->addWidget(axisTitlesVisibleCB); vLayout2->addWidget(axisTitlesFixedCB); vLayout2->addWidget(new QLabel(QStringLiteral("Axis label rotation"))); - vLayout2->addWidget(axisLabelRotationSlider, 1, Qt::AlignTop); + vLayout2->addWidget(axisLabelRotationSlider); + vLayout2->addWidget(new QLabel(QStringLiteral("Radial label offset"))); + vLayout2->addWidget(radialLabelSlider, 1, Qt::AlignTop); ScatterDataModifier *modifier = new ScatterDataModifier(chart); @@ -389,6 +413,12 @@ int main(int argc, char **argv) &ScatterDataModifier::setMaxY); QObject::connect(maxSliderZ, &QSlider::valueChanged, modifier, &ScatterDataModifier::setMaxZ); + QObject::connect(optimizationStaticCB, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::toggleStatic); + QObject::connect(orthoCB, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::toggleOrtho); + QObject::connect(polarCB, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::togglePolar); QObject::connect(axisTitlesVisibleCB, &QCheckBox::stateChanged, modifier, &ScatterDataModifier::toggleAxisTitleVisibility); QObject::connect(axisTitlesFixedCB, &QCheckBox::stateChanged, modifier, @@ -397,6 +427,8 @@ int main(int argc, char **argv) &ScatterDataModifier::changeLabelRotation); QObject::connect(aspectRatioSlider, &QSlider::valueChanged, modifier, &ScatterDataModifier::setAspectRatio); + QObject::connect(radialLabelSlider, &QSlider::valueChanged, modifier, + &ScatterDataModifier::changeRadialLabelOffset); modifier->setFpsLabel(fpsLabel); diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index c00c526a..5a0a5976 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -484,9 +484,9 @@ void ScatterDataModifier::addData() m_chart->axisX()->setRange(-50.0f, 50.0f); m_chart->axisY()->setRange(-1.0f, 1.2f); m_chart->axisZ()->setRange(-50.0f, 50.0f); - m_chart->axisX()->setSegmentCount(6); + m_chart->axisX()->setSegmentCount(5); m_chart->axisY()->setSegmentCount(4); - m_chart->axisZ()->setSegmentCount(9); + m_chart->axisZ()->setSegmentCount(10); m_chart->axisX()->setSubSegmentCount(2); m_chart->axisY()->setSubSegmentCount(3); m_chart->axisZ()->setSubSegmentCount(1); @@ -934,6 +934,11 @@ void ScatterDataModifier::changeLabelRotation(int rotation) m_chart->axisZ()->setLabelAutoRotation(float(rotation)); } +void ScatterDataModifier::changeRadialLabelOffset(int offset) +{ + m_chart->setRadialLabelOffset(float(offset) / 100.0f); +} + void ScatterDataModifier::toggleAxisTitleVisibility(bool enabled) { m_chart->axisX()->setTitleVisible(enabled); @@ -970,6 +975,24 @@ void ScatterDataModifier::renderToImage() } } +void ScatterDataModifier::togglePolar(bool enable) +{ + m_chart->setPolar(enable); +} + +void ScatterDataModifier::toggleStatic(bool enable) +{ + if (enable) + m_chart->setOptimizationHints(QAbstract3DGraph::OptimizationStatic); + else + m_chart->setOptimizationHints(QAbstract3DGraph::OptimizationDefault); +} + +void ScatterDataModifier::toggleOrtho(bool enable) +{ + m_chart->setOrthoProjection(enable); +} + void ScatterDataModifier::changeShadowQuality(int quality) { QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 97c3b1f9..e2e979f3 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -90,9 +90,13 @@ public slots: void handleAxisZChanged(QValue3DAxis *axis); void handleFpsChange(qreal fps); void changeLabelRotation(int rotation); + void changeRadialLabelOffset(int offset); void toggleAxisTitleVisibility(bool enabled); void toggleAxisTitleFixed(bool enabled); void renderToImage(); + void togglePolar(bool enable); + void toggleStatic(bool enable); + void toggleOrtho(bool enable); signals: void shadowQualityChanged(int quality); |