summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2019-04-08 18:38:45 +0300
committerKonstantin Ritt <ritt.ks@gmail.com>2019-04-09 04:28:20 +0000
commit64d852f29fc3e98659b242b7a049ec27fc7a80d3 (patch)
tree3ec5613c9d9d24bd4ade702f57de52c9206d5870
parentbe7dd232757f07d9fd4d95eafcff86171ee5acf7 (diff)
LottieAnimation: add protected startFrame/endFrame setters
Change-Id: I59c9a24334c2dad1ddaacdbb130c4544ffcee7df Reviewed-by: Rebecca Worledge <rebecca.worledge@theqtcompany.com>
-rw-r--r--src/imports/lottieanimation.cpp26
-rw-r--r--src/imports/lottieanimation.h3
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);