diff options
author | Sami Varanka <sami.varanka@qt.io> | 2021-08-18 14:33:26 +0300 |
---|---|---|
committer | Sami Varanka <sami.varanka@qt.io> | 2021-08-24 07:25:12 +0000 |
commit | d01fa6654f9b3d5ae4b542a85f10277318cfebd4 (patch) | |
tree | ceb71e9903b00181cca3623d77758544182b12d5 /tests | |
parent | 6248cca3f2a801b27059ffc0a720db1686832f41 (diff) |
Add: Margin between series columns in Bars3D
Added a new property to Bars3D. The property
controls the margin between the columns of
series. It can be used to show bars belonging
to same column, but different series
side by side. Also added autotest for qml and
cpp.
Fixes: QTBUG-69036
Change-Id: I3c353e9097a8be8cafc05f8f5120e4266baa4a5c
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/cpptest/q3dbars/tst_bars.cpp | 3 | ||||
-rw-r--r-- | tests/auto/qmltest/bars3d/tst_bars.qml | 6 | ||||
-rw-r--r-- | tests/auto/qmltest/bars3d/tst_barseries.qml | 2 | ||||
-rw-r--r-- | tests/auto/qmltest/bars3d/tst_basic.qml | 18 | ||||
-rw-r--r-- | tests/auto/qmltest/bars3d/tst_proxy.qml | 2 | ||||
-rw-r--r-- | tests/manual/barstest/chart.cpp | 14 | ||||
-rw-r--r-- | tests/manual/barstest/chart.h | 4 | ||||
-rw-r--r-- | tests/manual/barstest/main.cpp | 20 |
8 files changed, 58 insertions, 11 deletions
diff --git a/tests/auto/cpptest/q3dbars/tst_bars.cpp b/tests/auto/cpptest/q3dbars/tst_bars.cpp index 02de1fba..47529285 100644 --- a/tests/auto/cpptest/q3dbars/tst_bars.cpp +++ b/tests/auto/cpptest/q3dbars/tst_bars.cpp @@ -121,6 +121,7 @@ void tst_bars::initialProperties() QCOMPARE(m_graph->isMultiSeriesUniform(), false); QCOMPARE(m_graph->barThickness(), 1.0); QCOMPARE(m_graph->barSpacing(), QSizeF(1.0f, 1.0f)); + QCOMPARE(m_graph->barSeriesMargin(), QSizeF(0.0f, 0.0f)); QCOMPARE(m_graph->isBarSpacingRelative(), true); QCOMPARE(m_graph->seriesList().length(), 0); QVERIFY(!m_graph->selectedSeries()); @@ -157,12 +158,14 @@ void tst_bars::initializeProperties() m_graph->setMultiSeriesUniform(true); m_graph->setBarThickness(0.2f); m_graph->setBarSpacing(QSizeF(0.1f, 0.1f)); + m_graph->setBarSeriesMargin(QSizeF(0.3f, 0.3f)); m_graph->setBarSpacingRelative(false); m_graph->setFloorLevel(1.0f); QCOMPARE(m_graph->isMultiSeriesUniform(), true); QCOMPARE(m_graph->barThickness(), 0.2f); QCOMPARE(m_graph->barSpacing(), QSizeF(0.1f, 0.1f)); + QCOMPARE(m_graph->barSeriesMargin(), QSizeF(0.3f, 0.3f)); QCOMPARE(m_graph->isBarSpacingRelative(), false); QCOMPARE(m_graph->floorLevel(), 1.0f); diff --git a/tests/auto/qmltest/bars3d/tst_bars.qml b/tests/auto/qmltest/bars3d/tst_bars.qml index 75cf10a2..349e28b2 100644 --- a/tests/auto/qmltest/bars3d/tst_bars.qml +++ b/tests/auto/qmltest/bars3d/tst_bars.qml @@ -28,7 +28,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtDataVisualization 1.2 +import QtDataVisualization import QtTest 1.0 Item { @@ -41,7 +41,7 @@ Item { function constructBars() { bars3d = Qt.createQmlObject(" import QtQuick 2.2 - import QtDataVisualization 1.2 + import QtDataVisualization Bars3D { anchors.fill: parent }", top) @@ -104,7 +104,7 @@ Item { function constructBarsWithCustomItemList() { bars3d = Qt.createQmlObject(" import QtQuick 2.2 - import QtDataVisualization 1.2 + import QtDataVisualization Bars3D { anchors.fill: parent customItemList: [item1, item2] diff --git a/tests/auto/qmltest/bars3d/tst_barseries.qml b/tests/auto/qmltest/bars3d/tst_barseries.qml index 3db19615..77eba61a 100644 --- a/tests/auto/qmltest/bars3d/tst_barseries.qml +++ b/tests/auto/qmltest/bars3d/tst_barseries.qml @@ -28,7 +28,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtDataVisualization 1.2 +import QtDataVisualization import QtTest 1.0 Item { diff --git a/tests/auto/qmltest/bars3d/tst_basic.qml b/tests/auto/qmltest/bars3d/tst_basic.qml index 3ef7101d..ea303356 100644 --- a/tests/auto/qmltest/bars3d/tst_basic.qml +++ b/tests/auto/qmltest/bars3d/tst_basic.qml @@ -28,7 +28,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtDataVisualization 1.2 +import QtDataVisualization import QtTest 1.0 Item { @@ -44,7 +44,7 @@ Item { function constructEmpty() { empty = Qt.createQmlObject(" import QtQuick 2.2 - import QtDataVisualization 1.2 + import QtDataVisualization Bars3D { }", top) } @@ -52,13 +52,15 @@ Item { function constructBasic() { basic = Qt.createQmlObject(" import QtQuick 2.2 - import QtDataVisualization 1.2 + import QtDataVisualization Bars3D { anchors.fill: parent multiSeriesUniform: true barThickness: 0.1 barSpacing.width: 0.1 barSpacing.height: 0.1 + barSeriesMargin.width: 0.3 + barSeriesMargin.height: 0.3 barSpacingRelative: false floorLevel: 1.0 }", top) @@ -68,7 +70,7 @@ Item { function constructCommon() { common = Qt.createQmlObject(" import QtQuick 2.2 - import QtDataVisualization 1.2 + import QtDataVisualization Bars3D { anchors.fill: parent }", top) @@ -78,7 +80,7 @@ Item { function constructCommonInit() { common_init = Qt.createQmlObject(" import QtQuick 2.2 - import QtDataVisualization 1.2 + import QtDataVisualization Bars3D { anchors.fill: parent selectionMode: AbstractGraph3D.SelectionNone @@ -112,6 +114,7 @@ Item { compare(empty.multiSeriesUniform, false, "multiSeriesUniform") compare(empty.barThickness, 1.0, "barThickness") compare(empty.barSpacing, Qt.size(1.0, 1.0), "barSpacing") + compare(empty.barSeriesMargin, Qt.size(0.0, 0.0), "barSeriesMargin") compare(empty.barSpacingRelative, true, "barSpacingRelative") compare(empty.seriesList.length, 0, "seriesList") compare(empty.selectedSeries, null, "selectedSeries") @@ -140,6 +143,7 @@ Item { compare(basic.multiSeriesUniform, true, "multiSeriesUniform") compare(basic.barThickness, 0.1, "barThickness") compare(basic.barSpacing, Qt.size(0.1, 0.1), "barSpacing") + compare(basic.barSeriesMargin, Qt.size(0.3, 0.3), "barSeriesMargin") compare(basic.barSpacingRelative, false, "barSpacingRelative") compare(basic.floorLevel, 1.0, "floorLevel") waitForRendering(top) @@ -149,11 +153,13 @@ Item { basic.multiSeriesUniform = false basic.barThickness = 0.5 basic.barSpacing = Qt.size(1.0, 0.0) + basic.barSeriesMargin = Qt.size(0.5, 0.0) basic.barSpacingRelative = true basic.floorLevel = 0.2 compare(basic.multiSeriesUniform, false, "multiSeriesUniform") compare(basic.barThickness, 0.5, "barThickness") compare(basic.barSpacing, Qt.size(1.0, 0.0), "barSpacing") + compare(basic.barSeriesMargin, Qt.size(0.5, 0.0), "barSeriesMargin") compare(basic.barSpacingRelative, true, "barSpacingRelative") compare(basic.floorLevel, 0.2, "floorLevel") waitForRendering(top) @@ -162,8 +168,10 @@ Item { function test_3_basic_change_invalid() { basic.barThickness = -1 basic.barSpacing = Qt.size(-1.0, -1.0) + basic.barSeriesMargin = Qt.size(-1.0, -1.0) compare(basic.barThickness, -1/*0.5*/, "barThickness") // TODO: Fix once QTRD-3367 is done compare(basic.barSpacing, Qt.size(-1.0, -1.0), "barSpacing") + compare(basic.barSeriesMargin, Qt.size(-1.0, -1.0), "barSeriesMargin") waitForRendering(top) basic.destroy() waitForRendering(top) diff --git a/tests/auto/qmltest/bars3d/tst_proxy.qml b/tests/auto/qmltest/bars3d/tst_proxy.qml index ca8b8516..428000ac 100644 --- a/tests/auto/qmltest/bars3d/tst_proxy.qml +++ b/tests/auto/qmltest/bars3d/tst_proxy.qml @@ -28,7 +28,7 @@ ****************************************************************************/ import QtQuick 2.0 -import QtDataVisualization 1.2 +import QtDataVisualization import QtTest 1.0 Item { diff --git a/tests/manual/barstest/chart.cpp b/tests/manual/barstest/chart.cpp index 7d878046..4f006024 100644 --- a/tests/manual/barstest/chart.cpp +++ b/tests/manual/barstest/chart.cpp @@ -54,6 +54,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_static(true), m_barSpacingX(0.1f), m_barSpacingZ(0.1f), + m_barSeriesMarginX(0.0f), + m_barSeriesMarginZ(0.0f), m_fontSize(20), m_segments(10), m_subSegments(3), @@ -1624,6 +1626,18 @@ void GraphModifier::setSpacingSpecsZ(int spacing) m_graph->setBarSpacing(QSizeF(m_barSpacingX, m_barSpacingZ)); } +void GraphModifier::setMarginX(int margin) +{ + m_barSeriesMarginX = (float)margin / 100.0f; + m_graph->setBarSeriesMargin(QSizeF(m_barSeriesMarginX, m_barSeriesMarginZ)); +} + +void GraphModifier::setMarginZ(int margin) +{ + m_barSeriesMarginZ = (float)margin / 100.0f; + m_graph->setBarSeriesMargin(QSizeF(m_barSeriesMarginX, m_barSeriesMarginZ)); +} + void GraphModifier::setSampleCountX(int samples) { m_columnCount = samples; diff --git a/tests/manual/barstest/chart.h b/tests/manual/barstest/chart.h index 9a4cd60e..dabaa5e2 100644 --- a/tests/manual/barstest/chart.h +++ b/tests/manual/barstest/chart.h @@ -75,6 +75,8 @@ public: void setSpecsZ(int bardepth); void setSpacingSpecsX(int spacing); void setSpacingSpecsZ(int spacing); + void setMarginX(int margin); + void setMarginZ(int margin); void setSampleCountX(int samples); void setSampleCountZ(int samples); void setMinX(int min); @@ -153,6 +155,8 @@ private: bool m_static; float m_barSpacingX; float m_barSpacingZ; + float m_barSeriesMarginX; + float m_barSeriesMarginZ; int m_fontSize; int m_segments; int m_subSegments; diff --git a/tests/manual/barstest/main.cpp b/tests/manual/barstest/main.cpp index a0379fd7..1b14d08d 100644 --- a/tests/manual/barstest/main.cpp +++ b/tests/manual/barstest/main.cpp @@ -304,6 +304,18 @@ int main(int argc, char **argv) spacingSliderZ->setValue(10); spacingSliderZ->setMaximum(200); + QSlider *marginSliderX = new QSlider(Qt::Horizontal, widget); + marginSliderX->setTickInterval(1); + marginSliderX->setMinimum(0); + marginSliderX->setValue(0); + marginSliderX->setMaximum(100); + + QSlider *marginSliderZ = new QSlider(Qt::Horizontal, widget); + marginSliderZ->setTickInterval(1); + marginSliderZ->setMinimum(0); + marginSliderZ->setValue(0); + marginSliderZ->setMaximum(100); + QSlider *sampleSliderX = new QSlider(Qt::Horizontal, widget); sampleSliderX->setTickInterval(1); sampleSliderX->setMinimum(1); @@ -433,6 +445,9 @@ int main(int argc, char **argv) vLayout2->addWidget(new QLabel(QStringLiteral("Adjust relative bar spacing")), 0, Qt::AlignTop); vLayout2->addWidget(spacingSliderX, 0, Qt::AlignTop); vLayout2->addWidget(spacingSliderZ, 0, Qt::AlignTop); + vLayout2->addWidget(new QLabel(QStringLiteral("Adjust margin")), 0, Qt::AlignTop); + vLayout2->addWidget(marginSliderX, 0, Qt::AlignTop); + vLayout2->addWidget(marginSliderZ, 0, Qt::AlignTop); vLayout2->addWidget(new QLabel(QStringLiteral("Adjust sample count")), 0, Qt::AlignTop); vLayout2->addWidget(sampleSliderX, 0, Qt::AlignTop); vLayout2->addWidget(sampleSliderZ, 0, Qt::AlignTop); @@ -472,7 +487,7 @@ int main(int argc, char **argv) vLayout3->addWidget(toggleCustomItemButton, 0, Qt::AlignTop); vLayout3->addWidget(new QLabel(QStringLiteral("Adjust floor level")), 0, Qt::AlignTop); vLayout3->addWidget(floorLevelSlider, 0, Qt::AlignTop); - vLayout3->addWidget(new QLabel(QStringLiteral("Adjust margin")), 0, Qt::AlignTop); + vLayout3->addWidget(new QLabel(QStringLiteral("Adjust bar series margin")), 0, Qt::AlignTop); vLayout3->addWidget(marginSlider, 1, Qt::AlignTop); widget->show(); @@ -489,6 +504,9 @@ int main(int argc, char **argv) QObject::connect(spacingSliderZ, &QSlider::valueChanged, modifier, &GraphModifier::setSpacingSpecsZ); + QObject::connect(marginSliderX, &QSlider::valueChanged, modifier, &GraphModifier::setMarginX); + QObject::connect(marginSliderZ, &QSlider::valueChanged, modifier, &GraphModifier::setMarginZ); + QObject::connect(sampleSliderX, &QSlider::valueChanged, modifier, &GraphModifier::setSampleCountX); QObject::connect(sampleSliderZ, &QSlider::valueChanged, modifier, |