From d9cb05d0f46efc58e508c233a3c67542a4c177fa Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 23 May 2014 16:06:28 +0300 Subject: Optionally show axis titles on the graph MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTRD-2961 Change-Id: I6a344156bd29fa8fb1ede0546af4d0e67e5e2db4 Reviewed-by: Tomi Korpipää --- tests/scattertest/main.cpp | 28 ++++++++++++++++++++++++++-- tests/scattertest/scatterchart.cpp | 27 ++++++++++++++++++++++++--- tests/scattertest/scatterchart.h | 4 +++- tests/surfacetest/graphmodifier.cpp | 21 +++++++++++++++++++++ tests/surfacetest/graphmodifier.h | 3 +++ tests/surfacetest/main.cpp | 25 +++++++++++++++++++++++++ 6 files changed, 102 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index ad147b0d..50c73901 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -232,6 +232,21 @@ int main(int argc, char **argv) aspectRatioSlider->setValue(20); aspectRatioSlider->setMaximum(100); + QCheckBox *axisTitlesVisibleCB = new QCheckBox(widget); + axisTitlesVisibleCB->setText(QStringLiteral("Axis titles visible")); + axisTitlesVisibleCB->setChecked(false); + + QCheckBox *axisTitlesFixedCB = new QCheckBox(widget); + axisTitlesFixedCB->setText(QStringLiteral("Axis titles fixed")); + axisTitlesFixedCB->setChecked(true); + + QSlider *axisLabelRotationSlider = new QSlider(Qt::Horizontal, widget); + axisLabelRotationSlider->setTickInterval(10); + axisLabelRotationSlider->setTickPosition(QSlider::TicksBelow); + axisLabelRotationSlider->setMinimum(0); + axisLabelRotationSlider->setValue(0); + axisLabelRotationSlider->setMaximum(90); + vLayout->addWidget(themeButton, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); vLayout->addWidget(styleButton, 0, Qt::AlignTop); @@ -276,9 +291,13 @@ int main(int argc, char **argv) vLayout2->addWidget(new QLabel(QStringLiteral("Change font"))); vLayout2->addWidget(fontList); vLayout2->addWidget(new QLabel(QStringLiteral("Adjust font size"))); - vLayout2->addWidget(fontSizeSlider, 0, Qt::AlignTop); + vLayout2->addWidget(fontSizeSlider); vLayout2->addWidget(new QLabel(QStringLiteral("Adjust aspect ratio"))); vLayout2->addWidget(aspectRatioSlider, 1, Qt::AlignTop); + vLayout2->addWidget(axisTitlesVisibleCB); + vLayout2->addWidget(axisTitlesFixedCB); + vLayout2->addWidget(new QLabel(QStringLiteral("Axis label rotation"))); + vLayout2->addWidget(axisLabelRotationSlider, 1, Qt::AlignTop); widget->show(); @@ -366,7 +385,12 @@ int main(int argc, char **argv) &ScatterDataModifier::setMaxY); QObject::connect(maxSliderZ, &QSlider::valueChanged, modifier, &ScatterDataModifier::setMaxZ); - + QObject::connect(axisTitlesVisibleCB, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::toggleAxisTitleVisibility); + QObject::connect(axisTitlesFixedCB, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::toggleAxisTitleFixed); + QObject::connect(axisLabelRotationSlider, &QSlider::valueChanged, modifier, + &ScatterDataModifier::changeLabelRotation); QObject::connect(aspectRatioSlider, &QSlider::valueChanged, modifier, &ScatterDataModifier::setAspectRatio); diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 3f900909..dce73e61 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -478,9 +478,9 @@ void ScatterDataModifier::testAxisReverse() void ScatterDataModifier::addData() { // Add labels - m_chart->axisX()->setTitle("X"); - m_chart->axisY()->setTitle("Y"); - m_chart->axisZ()->setTitle("Z"); + m_chart->axisX()->setTitle("X - Axis"); + m_chart->axisY()->setTitle("Y - Axis"); + m_chart->axisZ()->setTitle("Z - Axis"); m_chart->axisX()->setRange(-50.0f, 50.0f); m_chart->axisY()->setRange(-1.0f, 1.2f); m_chart->axisZ()->setRange(-50.0f, 50.0f); @@ -921,6 +921,27 @@ void ScatterDataModifier::handleFpsChange(qreal fps) m_fpsLabel->setText(fpsPrefix + QString::number(qRound(fps))); } +void ScatterDataModifier::changeLabelRotation(int rotation) +{ + m_chart->axisX()->setLabelAutoRotation(float(rotation)); + m_chart->axisY()->setLabelAutoRotation(float(rotation)); + m_chart->axisZ()->setLabelAutoRotation(float(rotation)); +} + +void ScatterDataModifier::toggleAxisTitleVisibility(bool enabled) +{ + m_chart->axisX()->setTitleVisible(enabled); + m_chart->axisY()->setTitleVisible(enabled); + m_chart->axisZ()->setTitleVisible(enabled); +} + +void ScatterDataModifier::toggleAxisTitleFixed(bool enabled) +{ + m_chart->axisX()->setTitleFixed(enabled); + m_chart->axisY()->setTitleFixed(enabled); + m_chart->axisZ()->setTitleFixed(enabled); +} + void ScatterDataModifier::changeShadowQuality(int quality) { QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 34826aba..420c68e3 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -85,11 +85,13 @@ public slots: void removeSeries(); void toggleSeriesVisibility(); void changeSeriesName(); - void handleAxisXChanged(QValue3DAxis *axis); void handleAxisYChanged(QValue3DAxis *axis); void handleAxisZChanged(QValue3DAxis *axis); void handleFpsChange(qreal fps); + void changeLabelRotation(int rotation); + void toggleAxisTitleVisibility(bool enabled); + void toggleAxisTitleFixed(bool enabled); signals: void shadowQualityChanged(int quality); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 442e7742..13cf9fad 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -700,6 +700,27 @@ void GraphModifier::handleFpsChange(qreal fps) qDebug() << "FPS:" << fps; } +void GraphModifier::changeLabelRotation(int rotation) +{ + m_graph->axisX()->setLabelAutoRotation(float(rotation)); + m_graph->axisY()->setLabelAutoRotation(float(rotation)); + m_graph->axisZ()->setLabelAutoRotation(float(rotation)); +} + +void GraphModifier::toggleAxisTitleVisibility(bool enabled) +{ + m_graph->axisX()->setTitleVisible(enabled); + m_graph->axisY()->setTitleVisible(enabled); + m_graph->axisZ()->setTitleVisible(enabled); +} + +void GraphModifier::toggleAxisTitleFixed(bool enabled) +{ + m_graph->axisX()->setTitleFixed(enabled); + m_graph->axisY()->setTitleFixed(enabled); + m_graph->axisZ()->setTitleFixed(enabled); +} + void GraphModifier::resetArrayAndSliders(QSurfaceDataArray *array, float minZ, float maxZ, float minX, float maxX) { m_axisMinSliderX->setValue(minX); diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index ff0b325e..1cf13b97 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -126,6 +126,9 @@ public slots: void handleAxisYChanged(QValue3DAxis *axis); void handleAxisZChanged(QValue3DAxis *axis); void handleFpsChange(qreal fps); + void changeLabelRotation(int rotation); + void toggleAxisTitleVisibility(bool enabled); + void toggleAxisTitleFixed(bool enabled); private: void fillSeries(); diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 7444a66a..0b146678 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -370,6 +370,21 @@ int main(int argc, char *argv[]) line3->setFrameShape(QFrame::HLine); line3->setFrameShadow(QFrame::Sunken); + QCheckBox *axisTitlesVisibleCB = new QCheckBox(widget); + axisTitlesVisibleCB->setText(QStringLiteral("Axis titles visible")); + axisTitlesVisibleCB->setChecked(false); + + QCheckBox *axisTitlesFixedCB = new QCheckBox(widget); + axisTitlesFixedCB->setText(QStringLiteral("Axis titles fixed")); + axisTitlesFixedCB->setChecked(true); + + QSlider *axisLabelRotationSlider = new QSlider(Qt::Horizontal, widget); + axisLabelRotationSlider->setTickInterval(10); + axisLabelRotationSlider->setTickPosition(QSlider::TicksBelow); + axisLabelRotationSlider->setMinimum(0); + axisLabelRotationSlider->setValue(0); + axisLabelRotationSlider->setMaximum(90); + // Add controls to the layout #ifdef MULTI_SERIES vLayout->addWidget(series1CB); @@ -450,6 +465,10 @@ int main(int argc, char *argv[]) vLayout2->addWidget(massiveDataTestButton); vLayout2->addWidget(testReverseButton); vLayout2->addWidget(testDataOrderingButton); + vLayout2->addWidget(axisTitlesVisibleCB); + vLayout2->addWidget(axisTitlesFixedCB); + vLayout2->addWidget(new QLabel(QStringLiteral("Axis label rotation"))); + vLayout2->addWidget(axisLabelRotationSlider, 1, Qt::AlignTop); widget->show(); @@ -611,6 +630,12 @@ int main(int argc, char *argv[]) modifier, &GraphModifier::testAxisReverse); QObject::connect(testDataOrderingButton, &QPushButton::clicked, modifier, &GraphModifier::testDataOrdering); + QObject::connect(axisTitlesVisibleCB, &QCheckBox::stateChanged, + modifier, &GraphModifier::toggleAxisTitleVisibility); + QObject::connect(axisTitlesFixedCB, &QCheckBox::stateChanged, + modifier, &GraphModifier::toggleAxisTitleFixed); + QObject::connect(axisLabelRotationSlider, &QSlider::valueChanged, modifier, + &GraphModifier::changeLabelRotation); QObject::connect(aspectRatioSlider, &QSlider::valueChanged, modifier, &GraphModifier::setAspectRatio); -- cgit v1.2.3