diff options
author | Yann Bodson <yann.bodson@nokia.com> | 2011-07-29 14:41:16 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-07-29 09:39:41 +0200 |
commit | f1407da2cbaffcc1f175ec66ad389c3326efbe4a (patch) | |
tree | 0da4bf4bab76877663ed2834c7be06c6a83a6a94 /src | |
parent | 9bfdaadd36cdb5254d808688aa8485e5a592937d (diff) |
Add sourceComponentChanged signal to Loader
When setting the 'sourceComponent' property in Loader, we emit
a sourceChanged signal with source == "". We should emit
sourceComponentChanged instead.
Task-number: QTBUG-20628
Change-Id: If5f8f389b7dc214e729b366d82fe4d32827408ee
Reviewed-on: http://codereview.qt.nokia.com/2371
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/items/qsgloader.cpp | 17 | ||||
-rw-r--r-- | src/declarative/items/qsgloader_p.h | 5 |
2 files changed, 16 insertions, 6 deletions
diff --git a/src/declarative/items/qsgloader.cpp b/src/declarative/items/qsgloader.cpp index 0d1febacb4..ccf16896fb 100644 --- a/src/declarative/items/qsgloader.cpp +++ b/src/declarative/items/qsgloader.cpp @@ -165,7 +165,7 @@ void QSGLoader::setSourceComponent(QDeclarativeComponent *comp) d->component = comp; d->ownComponent = false; if (!d->component) { - emit sourceChanged(); + emit sourceComponentChanged(); emit statusChanged(); emit progressChanged(); emit itemChanged(); @@ -197,7 +197,10 @@ void QSGLoaderPrivate::load() q, SIGNAL(progressChanged())); emit q->statusChanged(); emit q->progressChanged(); - emit q->sourceChanged(); + if (ownComponent) + emit q->sourceChanged(); + else + emit q->sourceComponentChanged(); emit q->itemChanged(); } } @@ -209,7 +212,10 @@ void QSGLoaderPrivate::_q_sourceLoaded() if (component) { if (!component->errors().isEmpty()) { QDeclarativeEnginePrivate::warning(qmlEngine(q), component->errors()); - emit q->sourceChanged(); + if (ownComponent) + emit q->sourceChanged(); + else + emit q->sourceComponentChanged(); emit q->statusChanged(); emit q->progressChanged(); return; @@ -253,7 +259,10 @@ void QSGLoaderPrivate::_q_sourceLoaded() source = QUrl(); } component->completeCreate(); - emit q->sourceChanged(); + if (ownComponent) + emit q->sourceChanged(); + else + emit q->sourceComponentChanged(); emit q->statusChanged(); emit q->progressChanged(); emit q->itemChanged(); diff --git a/src/declarative/items/qsgloader_p.h b/src/declarative/items/qsgloader_p.h index b8605db567..832d3a6138 100644 --- a/src/declarative/items/qsgloader_p.h +++ b/src/declarative/items/qsgloader_p.h @@ -58,13 +58,13 @@ class Q_AUTOTEST_EXPORT QSGLoader : public QSGImplicitSizeItem Q_ENUMS(Status) Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(QDeclarativeComponent *sourceComponent READ sourceComponent WRITE setSourceComponent RESET resetSourceComponent NOTIFY sourceChanged) + Q_PROPERTY(QDeclarativeComponent *sourceComponent READ sourceComponent WRITE setSourceComponent RESET resetSourceComponent NOTIFY sourceComponentChanged) Q_PROPERTY(QSGItem *item READ item NOTIFY itemChanged) Q_PROPERTY(Status status READ status NOTIFY statusChanged) Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) public: - QSGLoader(QSGItem *parent=0); + QSGLoader(QSGItem *parent = 0); virtual ~QSGLoader(); QUrl source() const; @@ -83,6 +83,7 @@ public: Q_SIGNALS: void itemChanged(); void sourceChanged(); + void sourceComponentChanged(); void statusChanged(); void progressChanged(); void loaded(); |