aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/timelineeditor
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/timelineeditor')
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp14
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.h8
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp22
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp2
4 files changed, 22 insertions, 24 deletions
diff --git a/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp b/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp
index ce7beba2c9..e09d09532d 100644
--- a/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp
+++ b/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp
@@ -35,9 +35,7 @@
namespace QmlDesigner {
AnimationCurveEditorModel::AnimationCurveEditorModel(double minTime, double maxTime)
- : CurveEditorModel()
- , m_minTime(minTime)
- , m_maxTime(maxTime)
+ : CurveEditorModel(minTime, maxTime)
{}
AnimationCurveEditorModel::~AnimationCurveEditorModel() {}
@@ -102,16 +100,6 @@ void AnimationCurveEditorModel::setTimeline(const QmlTimeline &timeline)
reset(items);
}
-void AnimationCurveEditorModel::setMinimumTime(double time)
-{
- m_minTime = time;
-}
-
-void AnimationCurveEditorModel::setMaximumTime(double time)
-{
- m_maxTime = time;
-}
-
DesignTools::ValueType typeFrom(const QmlTimelineKeyframeGroup &group)
{
if (group.valueType() == TypeName("double") || group.valueType() == TypeName("real")
diff --git a/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.h b/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.h
index fe85929cf1..4da0be62b0 100644
--- a/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.h
+++ b/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.h
@@ -49,20 +49,12 @@ public:
void setTimeline(const QmlTimeline &timeline);
- void setMinimumTime(double time);
-
- void setMaximumTime(double time);
-
private:
DesignTools::TreeItem *createTopLevelItem(const QmlTimeline &timeline, const ModelNode &node);
DesignTools::AnimationCurve createAnimationCurve(const QmlTimelineKeyframeGroup &group);
DesignTools::AnimationCurve createDoubleCurve(const QmlTimelineKeyframeGroup &group);
-
- double m_minTime;
-
- double m_maxTime;
};
} // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp
index ea065e49a1..5d693f5422 100644
--- a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp
+++ b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp
@@ -38,7 +38,6 @@
#include <variantproperty.h>
#include <qmlstate.h>
#include <qmltimeline.h>
-#include <qmltimelinekeyframegroup.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
@@ -112,6 +111,23 @@ TimelineToolBar::TimelineToolBar(QWidget *parent)
&AnimationCurveEditorModel::currentFrameChanged,
this,
&TimelineToolBar::currentFrameChanged);
+
+ auto setStartFrameValue = [this](int val) {
+ if (m_firstFrame) {
+ m_firstFrame->setText(QString::number(val, 'f', 0));
+ emit startFrameChanged(val);
+ }
+ };
+ connect(m_curveModel, &AnimationCurveEditorModel::startFrameChanged, setStartFrameValue);
+
+ auto setEndFrameValue = [this](int val) {
+ if (m_lastFrame) {
+ m_lastFrame->setText(QString::number(val, 'f', 0));
+ emit endFrameChanged(val);
+ }
+ };
+ connect(m_curveModel, &AnimationCurveEditorModel::endFrameChanged, setEndFrameValue);
+
connect(m_curveModel,
&AnimationCurveEditorModel::curveChanged,
this,
@@ -181,7 +197,7 @@ void TimelineToolBar::setCurrentTimeline(const QmlTimeline &timeline)
void TimelineToolBar::setStartFrame(qreal frame)
{
- m_curveModel->setMinimumTime(frame);
+ m_curveModel->setMinimumTime(frame, true);
auto text = QString::number(frame, 'f', 0);
m_firstFrame->setText(text);
@@ -198,7 +214,7 @@ void TimelineToolBar::setCurrentFrame(qreal frame)
void TimelineToolBar::setEndFrame(qreal frame)
{
- m_curveModel->setMaximumTime(frame);
+ m_curveModel->setMaximumTime(frame, true);
auto text = QString::number(frame, 'f', 0);
m_lastFrame->setText(text);
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp
index e7f12fb5a2..d80749ad08 100644
--- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp
+++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp
@@ -459,6 +459,8 @@ void TimelineWidget::invalidateTimelineDuration(const QmlTimeline &timeline)
if (timelineView() && timelineView()->model()) {
QmlTimeline currentTimeline = graphicsScene()->currentTimeline();
if (currentTimeline.isValid() && currentTimeline == timeline) {
+ m_toolbar->setStartFrame(timeline.startKeyframe());
+ m_toolbar->setEndFrame(timeline.endKeyframe());
graphicsScene()->setTimeline(timeline);
qreal playHeadFrame = getcurrentFrame(timeline);