diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp b/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp index d357d555f7..4377671817 100644 --- a/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp +++ b/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp @@ -43,6 +43,7 @@ namespace QmlDesigner { CurveEditorModel::CurveEditorModel(QObject *parent) : TreeModel(parent) + , m_hasTimeline(false) , m_minTime(CurveEditorStyle::defaultTimeMin) , m_maxTime(CurveEditorStyle::defaultTimeMax) {} @@ -98,15 +99,19 @@ CurveEditorStyle CurveEditorModel::style() const void CurveEditorModel::setTimeline(const QmlDesigner::QmlTimeline &timeline) { - m_minTime = timeline.startKeyframe(); - m_maxTime = timeline.endKeyframe(); - std::vector<TreeItem *> items; - for (auto &&target : timeline.allTargets()) { - if (TreeItem *item = createTopLevelItem(timeline, target)) - items.push_back(item); + m_hasTimeline = timeline.isValid(); + + if (m_hasTimeline) { + m_minTime = timeline.startKeyframe(); + m_maxTime = timeline.endKeyframe(); + std::vector<TreeItem *> items; + for (auto &&target : timeline.allTargets()) { + if (TreeItem *item = createTopLevelItem(timeline, target)) + items.push_back(item); + } + reset(items); } - - reset(items); + emit timelineChanged(m_hasTimeline); } void CurveEditorModel::setCurrentFrame(int frame) |