diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/controls/BusyIndicator.qml | 3 | ||||
-rw-r--r-- | src/imports/controls/plugins.qmltypes | 3 | ||||
-rw-r--r-- | src/imports/controls/qquickdefaultbusyindicator.cpp | 36 | ||||
-rw-r--r-- | src/imports/controls/qquickdefaultbusyindicator_p.h | 13 |
4 files changed, 40 insertions, 15 deletions
diff --git a/src/imports/controls/BusyIndicator.qml b/src/imports/controls/BusyIndicator.qml index 5690c71f..e3757703 100644 --- a/src/imports/controls/BusyIndicator.qml +++ b/src/imports/controls/BusyIndicator.qml @@ -51,7 +51,8 @@ T.BusyIndicator { implicitWidth: 48 implicitHeight: 48 - color: Default.textColor + pen: Default.textColor + fill: Default.textColor opacity: control.running ? 1 : 0 visible: control.running || animator.running Behavior on opacity { OpacityAnimator { id: animator; duration: 250 } } diff --git a/src/imports/controls/plugins.qmltypes b/src/imports/controls/plugins.qmltypes index fee7c934..e10c187a 100644 --- a/src/imports/controls/plugins.qmltypes +++ b/src/imports/controls/plugins.qmltypes @@ -40,7 +40,8 @@ Module { prototype: "QQuickItem" exports: ["QtQuick.Controls.impl/BusyIndicatorImpl 2.0"] exportMetaObjectRevisions: [0] - Property { name: "color"; type: "QColor" } + Property { name: "pen"; type: "QColor" } + Property { name: "fill"; type: "QColor" } } Component { name: "QQuickDefaultDial" diff --git a/src/imports/controls/qquickdefaultbusyindicator.cpp b/src/imports/controls/qquickdefaultbusyindicator.cpp index 36f3a538..138e94e8 100644 --- a/src/imports/controls/qquickdefaultbusyindicator.cpp +++ b/src/imports/controls/qquickdefaultbusyindicator.cpp @@ -60,7 +60,8 @@ public: void sync(QQuickItem *item) override; private: - QColor m_color; + QColor m_pen; + QColor m_fill; }; QQuickDefaultBusyIndicatorNode::QQuickDefaultBusyIndicatorNode(QQuickDefaultBusyIndicator *item) @@ -94,8 +95,9 @@ 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(fill ? m_color : QColor::fromRgba(TransparentColor)); - rectNode->setPenWidth(fill ? 0 : 1); + rectNode->setColor(fill ? m_fill : QColor::fromRgba(TransparentColor)); + rectNode->setPenColor(m_pen); + rectNode->setPenWidth(1); rectNode->update(); transformNode = static_cast<QSGTransformNode*>(transformNode->nextSibling()); @@ -110,7 +112,9 @@ 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(); + + m_pen = static_cast<QQuickDefaultBusyIndicator *>(item)->pen(); + m_fill = static_cast<QQuickDefaultBusyIndicator *>(item)->fill(); QSGTransformNode *transformNode = static_cast<QSGTransformNode *>(firstChild()); for (int i = 0; i < CircleCount; ++i) { @@ -139,17 +143,31 @@ QQuickDefaultBusyIndicator::QQuickDefaultBusyIndicator(QQuickItem *parent) : setFlag(ItemHasContents); } -QColor QQuickDefaultBusyIndicator::color() const +QColor QQuickDefaultBusyIndicator::pen() const +{ + return m_pen; +} + +void QQuickDefaultBusyIndicator::setPen(const QColor &pen) +{ + if (pen == m_pen) + return; + + m_pen = pen; + update(); +} + +QColor QQuickDefaultBusyIndicator::fill() const { - return m_color; + return m_fill; } -void QQuickDefaultBusyIndicator::setColor(const QColor &color) +void QQuickDefaultBusyIndicator::setFill(const QColor &fill) { - if (color == m_color) + if (fill == m_fill) return; - m_color = color; + m_fill = fill; update(); } diff --git a/src/imports/controls/qquickdefaultbusyindicator_p.h b/src/imports/controls/qquickdefaultbusyindicator_p.h index 3bbd6c31..e214020c 100644 --- a/src/imports/controls/qquickdefaultbusyindicator_p.h +++ b/src/imports/controls/qquickdefaultbusyindicator_p.h @@ -55,13 +55,17 @@ QT_BEGIN_NAMESPACE class QQuickDefaultBusyIndicator : public QQuickItem { Q_OBJECT - Q_PROPERTY(QColor color READ color WRITE setColor FINAL) + Q_PROPERTY(QColor pen READ pen WRITE setPen FINAL) + Q_PROPERTY(QColor fill READ fill WRITE setFill FINAL) public: explicit QQuickDefaultBusyIndicator(QQuickItem *parent = nullptr); - QColor color() const; - void setColor(const QColor &color); + QColor pen() const; + void setPen(const QColor &pen); + + QColor fill() const; + void setFill(const QColor &fill); int elapsed() const; @@ -71,7 +75,8 @@ protected: private: int m_elapsed; - QColor m_color; + QColor m_pen; + QColor m_fill; }; QT_END_NAMESPACE |