aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickspritesequence.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-10-20 13:07:21 +0200
committerAlex Blasche <alexander.blasche@digia.com>2014-10-24 10:41:20 +0200
commitd21c096f358eaf4dd7245680f38b836bebe43da5 (patch)
tree134a43cf5efd2efce20c7b1b04f7375027f711ff /src/quick/items/qquickspritesequence.cpp
parent4e7c588f027f6a846fc343975bc8bcce5f69f6ff (diff)
Fix crash in SpriteSequence
When QML declares sprites and goalSprite in wrong order the goalsprite attempts to set it on null spriteEngine. This patch ensures that the order doesn't matter anymore. Task-number: QTBUG-40595 Change-Id: I57f1c8754b2e2af91e0c7f72d1d67fec3ad4ede5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/quick/items/qquickspritesequence.cpp')
-rw-r--r--src/quick/items/qquickspritesequence.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/quick/items/qquickspritesequence.cpp b/src/quick/items/qquickspritesequence.cpp
index 0be6486bf0..a9a823c2ce 100644
--- a/src/quick/items/qquickspritesequence.cpp
+++ b/src/quick/items/qquickspritesequence.cpp
@@ -243,7 +243,8 @@ void QQuickSpriteSequence::setGoalSprite(const QString &sprite)
if (m_goalState != sprite){
m_goalState = sprite;
emit goalSpriteChanged(sprite);
- m_spriteEngine->setGoal(m_spriteEngine->stateIndex(sprite));
+ if (m_spriteEngine)
+ m_spriteEngine->setGoal(m_spriteEngine->stateIndex(sprite));
}
}
@@ -257,10 +258,13 @@ void QQuickSpriteSequence::createEngine()
//TODO: delay until component complete
if (m_spriteEngine)
delete m_spriteEngine;
- if (m_sprites.count())
+ if (m_sprites.count()) {
m_spriteEngine = new QQuickSpriteEngine(m_sprites, this);
- else
+ if (!m_goalState.isEmpty())
+ m_spriteEngine->setGoal(m_spriteEngine->stateIndex(m_goalState));
+ } else {
m_spriteEngine = 0;
+ }
reset();
}