aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickrectangle.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2017-06-08 11:00:41 +0200
committerLiang Qi <liang.qi@qt.io>2017-06-08 11:48:54 +0200
commit8a5837467d153c50c869625390a584b0335b77b7 (patch)
treed8aca950cb88dfdc3a001a5cdedf02d7a8894d36 /src/quick/items/qquickrectangle.cpp
parent5af4c9b237a23ce12ca7c56eb6c9ecda17743228 (diff)
parent55490690f81eba168b06a90e4a66cefc20b38252 (diff)
Merge remote-tracking branch 'origin/dev' into wip/scenegraphng
Conflicts: src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp Change-Id: Id8107cb0de0fbfe7120a90a137b49c2b915ff2d3
Diffstat (limited to 'src/quick/items/qquickrectangle.cpp')
-rw-r--r--src/quick/items/qquickrectangle.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/quick/items/qquickrectangle.cpp b/src/quick/items/qquickrectangle.cpp
index 0c532bcd4c..65284eb532 100644
--- a/src/quick/items/qquickrectangle.cpp
+++ b/src/quick/items/qquickrectangle.cpp
@@ -1,6 +1,5 @@
/****************************************************************************
**
-** Copyright (C) 2017 Crimson AS <info@crimson.no>
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
@@ -270,9 +269,11 @@ QGradientStops QQuickGradient::gradientStops() const
void QQuickGradient::doUpdate()
{
- static_cast<QQuickItem*>(parent())->update();
+ emit updated();
}
+int QQuickRectanglePrivate::doUpdateSlotIdx = -1;
+
/*!
\qmltype Rectangle
\instantiates QQuickRectangle
@@ -326,6 +327,11 @@ QQuickRectangle::QQuickRectangle(QQuickItem *parent)
setFlag(ItemHasContents);
}
+void QQuickRectangle::doUpdate()
+{
+ update();
+}
+
/*!
\qmlproperty bool QtQuick::Rectangle::antialiasing
@@ -390,7 +396,16 @@ void QQuickRectangle::setGradient(QQuickGradient *gradient)
Q_D(QQuickRectangle);
if (d->gradient == gradient)
return;
+ static int updatedSignalIdx = -1;
+ if (updatedSignalIdx < 0)
+ updatedSignalIdx = QMetaMethod::fromSignal(&QQuickGradient::updated).methodIndex();
+ if (d->doUpdateSlotIdx < 0)
+ d->doUpdateSlotIdx = QQuickRectangle::staticMetaObject.indexOfSlot("doUpdate()");
+ if (d->gradient)
+ QMetaObject::disconnect(d->gradient, updatedSignalIdx, this, d->doUpdateSlotIdx);
d->gradient = gradient;
+ if (d->gradient)
+ QMetaObject::connect(d->gradient, updatedSignalIdx, this, d->doUpdateSlotIdx);
update();
}