aboutsummaryrefslogtreecommitdiffstats
path: root/src/particles
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2016-04-28 12:16:41 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2016-04-28 10:24:48 +0000
commit56a82a531771f13adbe74ee08d11b058a87beee2 (patch)
tree19268e8a6e916d2823950912f1d6a05cf08875f1 /src/particles
parent485a381cabc730622dbe1b150260ea417d2bbcfd (diff)
Particles: Invalidate all group IDs when groups are reset.
Task-number: QTBUG-52325 Change-Id: I38d90b6fb0d7468fb0916bd6dfd1cf07ace4389b Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src/particles')
-rw-r--r--src/particles/qquickparticleemitter_p.h5
-rw-r--r--src/particles/qquickparticlesystem.cpp7
2 files changed, 9 insertions, 3 deletions
diff --git a/src/particles/qquickparticleemitter_p.h b/src/particles/qquickparticleemitter_p.h
index 9b114ad46b..dd55fdc7a6 100644
--- a/src/particles/qquickparticleemitter_p.h
+++ b/src/particles/qquickparticleemitter_p.h
@@ -322,6 +322,8 @@ public:
return m_startTime;
}
+ void reclaculateGroupId() const;
+
protected:
qreal m_particlesPerSecond;
int m_particleDuration;
@@ -359,9 +361,6 @@ protected:
bool isEmitConnected();
-private: // methods
- void reclaculateGroupId() const;
-
private: // data
QString m_group;
mutable bool m_groupIdNeedRecalculation;
diff --git a/src/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp
index 17d9e49d63..b60180b2ed 100644
--- a/src/particles/qquickparticlesystem.cpp
+++ b/src/particles/qquickparticlesystem.cpp
@@ -597,6 +597,13 @@ void QQuickParticleSystem::initGroups()
groupIds.clear();
nextFreeGroupId = 0;
+ for (auto e : qAsConst(m_emitters)) {
+ e->reclaculateGroupId();
+ }
+ foreach (QQuickParticlePainter *p, m_painters) {
+ p->recalculateGroupIds();
+ }
+
QQuickParticleGroupData *pd = new QQuickParticleGroupData(QString(), this); // Default group
Q_ASSERT(pd->index == 0);
Q_UNUSED(pd);