From 6821c16e36a7454627ac9a18cd1d8b0f0bd9246f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 29 Sep 2014 15:14:25 +0300 Subject: Make background margin configurable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added margin as abstract graph property. If the margin is narrow, the positions of theedge labels of the axes are adjusted to avoid overlap with edge labels on other axes. Task-number: QTRD-3204 Change-Id: I7fa5a04c8f2091519d99689ef2f6cbcf799fb15e Reviewed-by: Mika Salmela Reviewed-by: Tomi Korpipää --- tests/barstest/chart.cpp | 6 ++++++ tests/barstest/chart.h | 1 + tests/barstest/main.cpp | 11 ++++++++++- tests/scattertest/main.cpp | 11 ++++++++++- tests/scattertest/scatterchart.cpp | 6 ++++++ tests/scattertest/scatterchart.h | 1 + tests/surfacetest/graphmodifier.cpp | 6 ++++++ tests/surfacetest/graphmodifier.h | 1 + tests/surfacetest/main.cpp | 11 ++++++++++- 9 files changed, 51 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index d7b23719..6be5e66d 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -1531,6 +1531,12 @@ void GraphModifier::setFloorLevel(int value) qDebug() << "Floor level:" << value; } +void GraphModifier::setGraphMargin(int value) +{ + m_graph->setMargin(qreal(value) / 100.0); + qDebug() << "Setting margin:" << m_graph->margin() << value; +} + void GraphModifier::populateFlatSeries(QBar3DSeries *series, int rows, int columns, float value) { QBarDataArray *dataArray = new QBarDataArray; diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 93abbfa4..9713d06c 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -126,6 +126,7 @@ public slots: void setCameraTargetY(int value); void setCameraTargetZ(int value); void setFloorLevel(int value); + void setGraphMargin(int value); signals: void shadowQualityChanged(int quality); diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index cffbf4b4..a468cb57 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -368,6 +368,11 @@ int main(int argc, char **argv) cameraTargetSliderZ->setValue(0); cameraTargetSliderZ->setMaximum(100); + QSlider *marginSlider = new QSlider(Qt::Horizontal, widget); + marginSlider->setMinimum(-1); + marginSlider->setValue(-1); + marginSlider->setMaximum(100); + vLayout->addWidget(addSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(addDataButton, 0, Qt::AlignTop); vLayout->addWidget(addMultiDataButton, 0, Qt::AlignTop); @@ -447,7 +452,9 @@ int main(int argc, char **argv) vLayout3->addWidget(reflectivitySlider, 0, Qt::AlignTop); vLayout3->addWidget(toggleCustomItemButton, 0, Qt::AlignTop); vLayout3->addWidget(new QLabel(QStringLiteral("Adjust floor level")), 0, Qt::AlignTop); - vLayout3->addWidget(floorLevelSlider, 1, Qt::AlignTop); + vLayout3->addWidget(floorLevelSlider, 0, Qt::AlignTop); + vLayout3->addWidget(new QLabel(QStringLiteral("Adjust margin")), 0, Qt::AlignTop); + vLayout3->addWidget(marginSlider, 1, Qt::AlignTop); widget->show(); @@ -584,6 +591,8 @@ int main(int argc, char **argv) &GraphModifier::setReflectivity); QObject::connect(floorLevelSlider, &QSlider::valueChanged, modifier, &GraphModifier::setFloorLevel); + QObject::connect(marginSlider, &QSlider::valueChanged, modifier, + &GraphModifier::setGraphMargin); QObject::connect(toggleCustomItemButton, &QPushButton::clicked, modifier, &GraphModifier::toggleCustomItem); diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index 116a4dc2..811c7f3b 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -294,6 +294,11 @@ int main(int argc, char **argv) cameraTargetSliderZ->setValue(0); cameraTargetSliderZ->setMaximum(100); + QSlider *marginSlider = new QSlider(Qt::Horizontal, widget); + marginSlider->setMinimum(-1); + marginSlider->setValue(-1); + marginSlider->setMaximum(100); + vLayout->addWidget(themeButton, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); vLayout->addWidget(styleButton, 0, Qt::AlignTop); @@ -357,7 +362,9 @@ int main(int argc, char **argv) vLayout3->addWidget(new QLabel(QStringLiteral("Camera target")), 0, Qt::AlignTop); vLayout3->addWidget(cameraTargetSliderX, 0, Qt::AlignTop); vLayout3->addWidget(cameraTargetSliderY, 0, Qt::AlignTop); - vLayout3->addWidget(cameraTargetSliderZ, 1, Qt::AlignTop); + vLayout3->addWidget(cameraTargetSliderZ, 0, Qt::AlignTop); + vLayout3->addWidget(new QLabel(QStringLiteral("Adjust margin")), 0, Qt::AlignTop); + vLayout3->addWidget(marginSlider, 1, Qt::AlignTop); ScatterDataModifier *modifier = new ScatterDataModifier(chart); @@ -469,6 +476,8 @@ int main(int argc, char **argv) &ScatterDataModifier::setCameraTargetY); QObject::connect(cameraTargetSliderZ, &QSlider::valueChanged, modifier, &ScatterDataModifier::setCameraTargetZ); + QObject::connect(marginSlider, &QSlider::valueChanged, modifier, + &ScatterDataModifier::setGraphMargin); modifier->setFpsLabel(fpsLabel); diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index a45c090b..c7b93c32 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -1023,6 +1023,12 @@ void ScatterDataModifier::setCameraTargetZ(int value) qDebug() << "m_cameraTarget:" << m_cameraTarget; } +void ScatterDataModifier::setGraphMargin(int value) +{ + m_chart->setMargin(qreal(value) / 100.0); + qDebug() << "Setting margin:" << m_chart->margin() << value; +} + void ScatterDataModifier::changeShadowQuality(int quality) { QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 1a97c5f0..a2b0f58e 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -101,6 +101,7 @@ public slots: void setCameraTargetX(int value); void setCameraTargetY(int value); void setCameraTargetZ(int value); + void setGraphMargin(int value); signals: void shadowQualityChanged(int quality); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 1a069cf4..2d0e9357 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -836,6 +836,12 @@ void GraphModifier::setCameraTargetZ(int value) qDebug() << "m_cameraTarget:" << m_cameraTarget; } +void GraphModifier::setGraphMargin(int value) +{ + m_graph->setMargin(qreal(value) / 100.0); + qDebug() << "Setting margin:" << m_graph->margin() << value; +} + 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 d1c77940..f85fbc15 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -137,6 +137,7 @@ public slots: void setCameraTargetX(int value); void setCameraTargetY(int value); void setCameraTargetZ(int value); + void setGraphMargin(int value); private: void fillSeries(); diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 9e14c665..d1328e4e 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -425,6 +425,11 @@ int main(int argc, char *argv[]) cameraTargetSliderZ->setValue(0); cameraTargetSliderZ->setMaximum(100); + QSlider *marginSlider = new QSlider(Qt::Horizontal, widget); + marginSlider->setMinimum(-1); + marginSlider->setValue(-1); + marginSlider->setMaximum(100); + // Add controls to the layout #ifdef MULTI_SERIES vLayout->addWidget(series1CB); @@ -491,7 +496,9 @@ int main(int argc, char *argv[]) vLayout2->addWidget(new QLabel(QStringLiteral("Camera target"))); vLayout2->addWidget(cameraTargetSliderX); vLayout2->addWidget(cameraTargetSliderY); - vLayout2->addWidget(cameraTargetSliderZ, 1, Qt::AlignTop); + vLayout2->addWidget(cameraTargetSliderZ); + vLayout2->addWidget(new QLabel(QStringLiteral("Adjust margin")), 0, Qt::AlignTop); + vLayout2->addWidget(marginSlider, 1, Qt::AlignTop); vLayout3->addWidget(labelButton); vLayout3->addWidget(meshButton); @@ -707,6 +714,8 @@ int main(int argc, char *argv[]) &GraphModifier::setCameraTargetY); QObject::connect(cameraTargetSliderZ, &QSlider::valueChanged, modifier, &GraphModifier::setCameraTargetZ); + QObject::connect(marginSlider, &QSlider::valueChanged, modifier, + &GraphModifier::setGraphMargin); #ifdef MULTI_SERIES modifier->setSeries1CB(series1CB); -- cgit v1.2.3