aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/qquickdefaultbusyindicator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/controls/qquickdefaultbusyindicator.cpp')
-rw-r--r--src/imports/controls/qquickdefaultbusyindicator.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/imports/controls/qquickdefaultbusyindicator.cpp b/src/imports/controls/qquickdefaultbusyindicator.cpp
index 138e94e8..c02d8128 100644
--- a/src/imports/controls/qquickdefaultbusyindicator.cpp
+++ b/src/imports/controls/qquickdefaultbusyindicator.cpp
@@ -171,6 +171,17 @@ void QQuickDefaultBusyIndicator::setFill(const QColor &fill)
update();
}
+bool QQuickDefaultBusyIndicator::isRunning() const
+{
+ return isVisible();
+}
+
+void QQuickDefaultBusyIndicator::setRunning(bool running)
+{
+ if (running)
+ setVisible(true);
+}
+
int QQuickDefaultBusyIndicator::elapsed() const
{
return m_elapsed;
@@ -179,14 +190,23 @@ int QQuickDefaultBusyIndicator::elapsed() const
void QQuickDefaultBusyIndicator::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
{
QQuickItem::itemChange(change, data);
- if (change == ItemVisibleHasChanged)
+ switch (change) {
+ case ItemOpacityHasChanged:
+ if (qFuzzyIsNull(data.realValue))
+ setVisible(false);
+ break;
+ case ItemVisibleHasChanged:
update();
+ break;
+ default:
+ break;
+ }
}
QSGNode *QQuickDefaultBusyIndicator::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
{
QQuickDefaultBusyIndicatorNode *node = static_cast<QQuickDefaultBusyIndicatorNode *>(oldNode);
- if (isVisible() && width() > 0 && height() > 0) {
+ if (isRunning() && width() > 0 && height() > 0) {
if (!node) {
node = new QQuickDefaultBusyIndicatorNode(this);
node->start();