From: Gunnar Sletta Date: Mon, 14 Nov 2011 15:14:22 +0000 (+0100) Subject: Make shader effects visible even if source is initially empty X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=077c7eb97c822e70fdb2bfe88e3ddec46897ef6e;p=konrad%2Fqtdeclarative.git Make shader effects visible even if source is initially empty Task-number: QTBUG-21343 Change-Id: Iaa34d74d2458f0a9dc94c96ee13d3406e1d8f1cb Reviewed-by: Kim M. Kalland --- diff --git a/src/declarative/items/qquickshadereffectsource.cpp b/src/declarative/items/qquickshadereffectsource.cpp index 351ea34..252c0ba 100644 --- a/src/declarative/items/qquickshadereffectsource.cpp +++ b/src/declarative/items/qquickshadereffectsource.cpp @@ -582,8 +582,11 @@ void QQuickShaderEffectSource::setSourceItem(QQuickItem *item) { if (item == m_sourceItem) return; - if (m_sourceItem) + if (m_sourceItem) { QQuickItemPrivate::get(m_sourceItem)->derefFromEffectItem(m_hideSource); + disconnect(m_sourceItem, SIGNAL(widthChanged()), this, SLOT(update())); + disconnect(m_sourceItem, SIGNAL(heightChanged()), this, SLOT(update())); + } m_sourceItem = item; if (m_sourceItem) { // TODO: Find better solution. @@ -595,6 +598,8 @@ void QQuickShaderEffectSource::setSourceItem(QQuickItem *item) m_sourceItem->setVisible(false); } QQuickItemPrivate::get(m_sourceItem)->refFromEffectItem(m_hideSource); + connect(m_sourceItem, SIGNAL(widthChanged()), this, SLOT(update())); + connect(m_sourceItem, SIGNAL(heightChanged()), this, SLOT(update())); } update(); emit sourceItemChanged();