diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-05-11 12:48:55 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-05-12 07:54:34 +0000 |
commit | 08dc547c859d6446d4bb589b50e0feccbffc7c9f (patch) | |
tree | e94235acea80d81d33cff1817ca6e7f4c8e73b25 /src/imports/controls/qquickdefaultbusyindicator.cpp | |
parent | 910f9d6930fdd739e9490fa491986d74b6a57975 (diff) |
Default: pass busy indicator and progress bar colors from QML
Default.textColor (also used in eg. RangeSlider to fill the range)
is equal to the color that was previously hard-coded in
qquickdefaultbusyindicator.cpp and qquickdefaultprogressbar.cpp.
Change-Id: I8f0749862def31667b6ef2ab3b4c6ea71a590755
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports/controls/qquickdefaultbusyindicator.cpp')
-rw-r--r-- | src/imports/controls/qquickdefaultbusyindicator.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/imports/controls/qquickdefaultbusyindicator.cpp b/src/imports/controls/qquickdefaultbusyindicator.cpp index 315b2b8b..36f3a538 100644 --- a/src/imports/controls/qquickdefaultbusyindicator.cpp +++ b/src/imports/controls/qquickdefaultbusyindicator.cpp @@ -45,7 +45,6 @@ QT_BEGIN_NAMESPACE static const int CircleCount = 10; static const int TotalDuration = 100 * CircleCount * 2; static const QRgb TransparentColor = 0x00000000; -static const QRgb FillColor = 0xFF353637; static QPointF moveCircle(const QPointF &pos, qreal rotation, qreal distance) { @@ -59,6 +58,9 @@ public: void updateCurrentTime(int time) override; void sync(QQuickItem *item) override; + +private: + QColor m_color; }; QQuickDefaultBusyIndicatorNode::QQuickDefaultBusyIndicatorNode(QQuickDefaultBusyIndicator *item) @@ -92,7 +94,7 @@ void QQuickDefaultBusyIndicatorNode::updateCurrentTime(int time) Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType); const bool fill = (firstPhaseProgress > qreal(i) / CircleCount) || (secondPhaseProgress > 0 && secondPhaseProgress < qreal(i) / CircleCount); - rectNode->setColor(QColor::fromRgba(fill ? FillColor : TransparentColor)); + rectNode->setColor(fill ? m_color : QColor::fromRgba(TransparentColor)); rectNode->setPenWidth(fill ? 0 : 1); rectNode->update(); @@ -108,6 +110,7 @@ void QQuickDefaultBusyIndicatorNode::sync(QQuickItem *item) const qreal dx = (w - sz) / 2; const qreal dy = (h - sz) / 2; const int circleRadius = sz / 12; + m_color = static_cast<QQuickDefaultBusyIndicator *>(item)->color(); QSGTransformNode *transformNode = static_cast<QSGTransformNode *>(firstChild()); for (int i = 0; i < CircleCount; ++i) { @@ -136,6 +139,20 @@ QQuickDefaultBusyIndicator::QQuickDefaultBusyIndicator(QQuickItem *parent) : setFlag(ItemHasContents); } +QColor QQuickDefaultBusyIndicator::color() const +{ + return m_color; +} + +void QQuickDefaultBusyIndicator::setColor(const QColor &color) +{ + if (color == m_color) + return; + + m_color = color; + update(); +} + int QQuickDefaultBusyIndicator::elapsed() const { return m_elapsed; |