diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2019-04-08 18:38:45 +0300 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2019-04-09 04:28:20 +0000 |
commit | 64d852f29fc3e98659b242b7a049ec27fc7a80d3 (patch) | |
tree | 3ec5613c9d9d24bd4ade702f57de52c9206d5870 | |
parent | be7dd232757f07d9fd4d95eafcff86171ee5acf7 (diff) |
LottieAnimation: add protected startFrame/endFrame setters
Change-Id: I59c9a24334c2dad1ddaacdbb130c4544ffcee7df
Reviewed-by: Rebecca Worledge <rebecca.worledge@theqtcompany.com>
-rw-r--r-- | src/imports/lottieanimation.cpp | 26 | ||||
-rw-r--r-- | src/imports/lottieanimation.h | 3 |
2 files changed, 25 insertions, 4 deletions
diff --git a/src/imports/lottieanimation.cpp b/src/imports/lottieanimation.cpp index 61c264b..c21d833 100644 --- a/src/imports/lottieanimation.cpp +++ b/src/imports/lottieanimation.cpp @@ -300,6 +300,15 @@ int LottieAnimation::startFrame() const return m_startFrame; } +void LottieAnimation::setStartFrame(int startFrame) +{ + if (Q_UNLIKELY(m_startFrame == startFrame)) + return; + + m_startFrame = startFrame; + emit startFrameChanged(); +} + /*! \qmlproperty int LottieAnimation::endFrame \readonly @@ -313,6 +322,15 @@ int LottieAnimation::endFrame() const return m_endFrame; } +void LottieAnimation::setEndFrame(int endFrame) +{ + if (Q_UNLIKELY(m_endFrame == endFrame)) + return; + + m_endFrame = endFrame; + emit endFrameChanged(); +} + int LottieAnimation::currentFrame() const { return m_currentFrame; @@ -652,8 +670,8 @@ int LottieAnimation::parse(QByteArray jsonSource) if (Q_UNLIKELY(rootObj.empty())) return -1; - m_startFrame = rootObj.value(QLatin1String("ip")).toVariant().toInt(); - m_endFrame = rootObj.value(QLatin1String("op")).toVariant().toInt(); + int startFrame = rootObj.value(QLatin1String("ip")).toVariant().toInt(); + int endFrame = rootObj.value(QLatin1String("op")).toVariant().toInt(); m_animFrameRate = rootObj.value(QLatin1String("fr")).toVariant().toInt(); m_animWidth = rootObj.value(QLatin1String("w")).toVariant().toReal(); m_animHeight = rootObj.value(QLatin1String("h")).toVariant().toReal(); @@ -680,8 +698,8 @@ int LottieAnimation::parse(QByteArray jsonSource) if (rootObj.value(QLatin1String("chars")).toArray().count()) qCWarning(lcLottieQtBodymovinParser) << "chars not supported"; - emit startFrameChanged(); - emit endFrameChanged(); + setStartFrame(startFrame); + setEndFrame(endFrame); setFrameRate(m_animFrameRate); return 0; diff --git a/src/imports/lottieanimation.h b/src/imports/lottieanimation.h index 305be59..461b358 100644 --- a/src/imports/lottieanimation.h +++ b/src/imports/lottieanimation.h @@ -129,6 +129,9 @@ protected slots: protected: void setStatus(Status status); + void setStartFrame(int startFrame); + void setEndFrame(int endFrame); + bool loadSource(QString filename); virtual int parse(QByteArray jsonSource); |