diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/timelineeditor')
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); |