diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-05 13:57:18 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-07 09:43:46 +0200 |
commit | a61c6ee6533dca6723320c3955773cc5ccbfe2fa (patch) | |
tree | e459aa85f88da5f2a0e23c34266baecd2db5d1b8 /tests/barstest | |
parent | 9266f124979fa8a4fe7d8b2fb2db496b26aeeda9 (diff) |
Gradient support Part 1
TODO:
- Finish scatter
- QML (maybe left until data set is sorted, though)
Change-Id: I87a8117cb29f147080e0662c55b1098cb2e71689
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests/barstest')
-rw-r--r-- | tests/barstest/chart.cpp | 52 | ||||
-rw-r--r-- | tests/barstest/chart.h | 1 | ||||
-rw-r--r-- | tests/barstest/main.cpp | 21 |
3 files changed, 72 insertions, 2 deletions
diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index f150345e..3c82e400 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -40,7 +40,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart) m_fontSize(20), m_segments(4), m_subSegments(3), - m_minval(-15.0), + m_minval(-16.0), m_maxval(20.0), m_selectedBar(-1, -1), m_autoAdjustingAxis(new Q3DValueAxis), @@ -611,3 +611,53 @@ void GraphModifier::setMaxY(int max) m_fixedRangeAxis->setMax(max); m_maxval = max; } + + +void GraphModifier::setGradient() +{ + QLinearGradient barGradient(0, 0, 1, 100); + barGradient.setColorAt(1.0, Qt::lightGray); + barGradient.setColorAt(0.75001, Qt::lightGray); + barGradient.setColorAt(0.75, Qt::blue); + barGradient.setColorAt(0.50001, Qt::blue); + barGradient.setColorAt(0.50, Qt::red); + barGradient.setColorAt(0.25001, Qt::red); + barGradient.setColorAt(0.25, Qt::yellow); + barGradient.setColorAt(0.0, Qt::yellow); + + QLinearGradient singleHighlightGradient(0, 0, 1, 100); + singleHighlightGradient.setColorAt(1.0, Qt::white); + singleHighlightGradient.setColorAt(0.75001, Qt::white); + singleHighlightGradient.setColorAt(0.75, Qt::lightGray); + singleHighlightGradient.setColorAt(0.50001, Qt::lightGray); + singleHighlightGradient.setColorAt(0.50, Qt::gray); + singleHighlightGradient.setColorAt(0.25001, Qt::gray); + singleHighlightGradient.setColorAt(0.25, Qt::darkGray); + singleHighlightGradient.setColorAt(0.0, Qt::darkGray); + + QLinearGradient multiHighlightGradient(0, 0, 1, 100); + multiHighlightGradient.setColorAt(1.0, Qt::black); + multiHighlightGradient.setColorAt(0.75001, Qt::black); + multiHighlightGradient.setColorAt(0.75, Qt::darkBlue); + multiHighlightGradient.setColorAt(0.50001, Qt::darkBlue); + multiHighlightGradient.setColorAt(0.50, Qt::darkRed); + multiHighlightGradient.setColorAt(0.25001, Qt::darkRed); + multiHighlightGradient.setColorAt(0.25, Qt::darkYellow); + multiHighlightGradient.setColorAt(0.0, Qt::darkYellow); + + m_chart->setBarColor(Qt::green); + m_chart->setSingleHighlightColor(Qt::white); + m_chart->setMultiHighlightColor(Qt::cyan); + + m_chart->setBarGradient(barGradient); + m_chart->setSingleHighlightGradient(singleHighlightGradient); + m_chart->setMultiHighlightGradient(multiHighlightGradient); + + QDataVis::ColorStyle oldStyle = m_chart->colorStyle(); + if (oldStyle == QDataVis::ColorStyleUniform) + m_chart->setColorStyle(QDataVis::ColorStyleObjectGradient); + else if (oldStyle == QDataVis::ColorStyleObjectGradient) + m_chart->setColorStyle(QDataVis::ColorStyleRangeGradient); + if (oldStyle == QDataVis::ColorStyleRangeGradient) + m_chart->setColorStyle(QDataVis::ColorStyleUniform); +} diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 221ccff8..995ac406 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -76,6 +76,7 @@ public: public slots: void flipViews(); + void setGradient(); void changeShadowQuality(int quality); void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); void handleSelectionChange(const QPoint &position); diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index 7d6d1380..9ed0407c 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -29,6 +29,8 @@ #include <QLabel> #include <QScreen> #include <QFontDatabase> +#include <QLinearGradient> +#include <QPainter> int main(int argc, char **argv) { @@ -128,6 +130,20 @@ int main(int argc, char **argv) flipViewsButton->setText(QStringLiteral("Flip views")); flipViewsButton->setEnabled(true); + QLinearGradient grBtoY(0, 0, 100, 0); + grBtoY.setColorAt(1.0, Qt::black); + grBtoY.setColorAt(0.67, Qt::blue); + grBtoY.setColorAt(0.33, Qt::red); + grBtoY.setColorAt(0.0, Qt::yellow); + QPixmap pm(100, 24); + QPainter pmp(&pm); + pmp.setBrush(QBrush(grBtoY)); + pmp.setPen(Qt::NoPen); + pmp.drawRect(0, 0, 100, 24); + QPushButton *gradientBtoYPB = new QPushButton(widget); + gradientBtoYPB->setIcon(QIcon(pm)); + gradientBtoYPB->setIconSize(QSize(100, 24)); + QCheckBox *backgroundCheckBox = new QCheckBox(widget); backgroundCheckBox->setText(QStringLiteral("Show background")); backgroundCheckBox->setChecked(true); @@ -252,7 +268,8 @@ int main(int argc, char **argv) vLayout->addWidget(swapAxisButton, 0, Qt::AlignTop); vLayout->addWidget(releaseAxesButton, 0, Qt::AlignTop); vLayout->addWidget(releaseProxiesButton, 1, Qt::AlignTop); - vLayout->addWidget(flipViewsButton, 1, Qt::AlignTop); + vLayout->addWidget(flipViewsButton, 0, Qt::AlignTop); + vLayout->addWidget(gradientBtoYPB, 1, Qt::AlignTop); vLayout2->addWidget(staticCheckBox, 0, Qt::AlignTop); vLayout2->addWidget(rotationCheckBox, 0, Qt::AlignTop); @@ -349,6 +366,8 @@ int main(int argc, char **argv) QObject::connect(flipViewsButton, &QPushButton::clicked, modifier, &GraphModifier::flipViews); + QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier, + &GraphModifier::setGradient); QObject::connect(fontList, &QFontComboBox::currentFontChanged, modifier, &GraphModifier::changeFont); |