summaryrefslogtreecommitdiffstats
path: root/tests/barstest
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-05 13:57:18 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-07 09:43:46 +0200
commita61c6ee6533dca6723320c3955773cc5ccbfe2fa (patch)
treee459aa85f88da5f2a0e23c34266baecd2db5d1b8 /tests/barstest
parent9266f124979fa8a4fe7d8b2fb2db496b26aeeda9 (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.cpp52
-rw-r--r--tests/barstest/chart.h1
-rw-r--r--tests/barstest/main.cpp21
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);