From 1dca7a61130615da20f8c7205abd62db721e61d0 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 7 Nov 2013 14:57:48 +0200 Subject: Gradient support part 2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scatter gradients. Task-number: QTRD-2200 Change-Id: Ia6ac271440d0d26b7cae9332ef2ba4e7bf1a11fe Reviewed-by: Tomi Korpipää --- tests/barstest/chart.cpp | 10 ++-------- tests/scattertest/main.cpp | 19 +++++++++++++++++++ tests/scattertest/scatterchart.cpp | 34 ++++++++++++++++++++++++++++++++++ tests/scattertest/scatterchart.h | 1 + 4 files changed, 56 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 3c82e400..21aeb269 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -627,23 +627,17 @@ void GraphModifier::setGradient() 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); + singleHighlightGradient.setColorAt(0.0, Qt::black); 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); + multiHighlightGradient.setColorAt(0.0, Qt::darkGray); m_chart->setBarColor(Qt::green); m_chart->setSingleHighlightColor(Qt::white); diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index 1ac661df..8da3898c 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -30,6 +30,8 @@ #include #include #include +#include +#include int main(int argc, char **argv) { @@ -101,6 +103,20 @@ int main(int argc, char **argv) QPushButton *startTimerButton = new QPushButton(widget); startTimerButton->setText(QStringLiteral("Start/stop timer")); + 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); @@ -143,6 +159,7 @@ int main(int argc, char **argv) vLayout->addWidget(removeBunchButton, 0, Qt::AlignTop); vLayout->addWidget(setSelectedItemButton, 0, Qt::AlignTop); vLayout->addWidget(startTimerButton, 0, Qt::AlignTop); + vLayout->addWidget(gradientBtoYPB, 0, Qt::AlignTop); vLayout->addWidget(backgroundCheckBox); vLayout->addWidget(gridCheckBox); vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality"))); @@ -187,6 +204,8 @@ int main(int argc, char **argv) &ScatterDataModifier::selectItem); QObject::connect(startTimerButton, &QPushButton::clicked, modifier, &ScatterDataModifier::startStopTimer); + QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier, + &ScatterDataModifier::setGradient); QObject::connect(themeButton, &QPushButton::clicked, modifier, &ScatterDataModifier::changeTheme); QObject::connect(labelButton, &QPushButton::clicked, modifier, diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index f276c5a8..ed188e68 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -328,6 +328,40 @@ void ScatterDataModifier::handleSelectionChange(int index) qDebug() << "Selected item index:" << index; } +void ScatterDataModifier::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::lightGray); + singleHighlightGradient.setColorAt(0.75, Qt::blue); + singleHighlightGradient.setColorAt(0.50, Qt::red); + singleHighlightGradient.setColorAt(0.25, Qt::yellow); + singleHighlightGradient.setColorAt(0.0, Qt::white); + + m_chart->setItemColor(Qt::green); + m_chart->setSingleHighlightColor(Qt::white); + + m_chart->setItemGradient(barGradient); + m_chart->setSingleHighlightGradient(singleHighlightGradient); + + 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); +} + void ScatterDataModifier::changeShadowQuality(int quality) { QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 2d97c236..db7f3ac0 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -62,6 +62,7 @@ public slots: void startStopTimer(); void selectItem(); void handleSelectionChange(int index); + void setGradient(); signals: void shadowQualityChanged(int quality); -- cgit v1.2.3