aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYann Bodson <yann.bodson@nokia.com>2011-07-29 14:41:16 +1000
committerQt by Nokia <qt-info@nokia.com>2011-07-29 09:39:41 +0200
commitf1407da2cbaffcc1f175ec66ad389c3326efbe4a (patch)
tree0da4bf4bab76877663ed2834c7be06c6a83a6a94 /src
parent9bfdaadd36cdb5254d808688aa8485e5a592937d (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.cpp17
-rw-r--r--src/declarative/items/qsgloader_p.h5
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();