commit baf1122d7d13c5f7a3c210cbe6cec222b949ade0 Author: Gareth Stockwell Date: Mon Sep 5 13:34:51 2011 +0100 Ensure effect changes are propagated to the QGLSceneNode Task-number: QTBUG-21291 Reviewed-by: PENDING diff --git a/src/quick3d/qdeclarativeitem3d.cpp b/src/quick3d/qdeclarativeitem3d.cpp index 1f7949c..8b1c8db 100644 --- a/src/quick3d/qdeclarativeitem3d.cpp +++ b/src/quick3d/qdeclarativeitem3d.cpp @@ -867,11 +867,11 @@ void QDeclarativeItem3D::setEffect(QDeclarativeEffect *value) if (d->effect == value) return; if (d->effect) - disconnect(d->effect, SIGNAL(effectChanged()), this, SLOT(update())); + disconnect(d->effect, SIGNAL(effectChanged()), this, SLOT(handleEffectChanged())); d->effect = value; if (d->effect) { - connect(d->effect, SIGNAL(effectChanged()), this, SLOT(update())); + connect(d->effect, SIGNAL(effectChanged()), this, SLOT(handleEffectChanged())); d->requireBlockingEffectsCheck = true; } emit effectChanged(); @@ -1318,6 +1318,12 @@ bool QDeclarativeItem3D::event(QEvent *e) return QObject::event(e); } +void QDeclarativeItem3D::handleEffectChanged() +{ + d->requireBlockingEffectsCheck = true; + update(); +} + /*! \qmlproperty string Item3D::meshNode diff --git a/src/quick3d/qdeclarativeitem3d.h b/src/quick3d/qdeclarativeitem3d.h index 1462094..5a49053 100644 --- a/src/quick3d/qdeclarativeitem3d.h +++ b/src/quick3d/qdeclarativeitem3d.h @@ -168,6 +168,9 @@ protected: virtual void drawItem(QGLPainter *painter); bool event(QEvent *e); +private Q_SLOTS: + void handleEffectChanged(); + Q_SIGNALS: void positionChanged(); void scaleChanged();