diff options
author | Knud Dollereder <knud.dollereder@qt.io> | 2020-03-24 15:05:28 +0100 |
---|---|---|
committer | Knud Dollereder <knud.dollereder@qt.io> | 2020-03-25 16:11:28 +0000 |
commit | 20e95f2f197d4941675e34e6999d804396e1b7ec (patch) | |
tree | efa973d510c0fa18944038bde8ce0076c960f8c3 /src/plugins/qmldesigner/components/timelineeditor | |
parent | 540ea616ecabede679fca9e10dd27dec33f29936 (diff) |
Add the ability to unify keyframe handles
Task-number: QDS-568
Change-Id: I5b102423e8e166d41edf199c42305cee102e8b54
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/timelineeditor')
4 files changed, 18 insertions, 7 deletions
diff --git a/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp b/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp index 023200f494..077b467c0e 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/animationcurveeditormodel.cpp @@ -230,6 +230,19 @@ DesignTools::AnimationCurve AnimationCurveEditorModel::createDoubleCurve( { std::vector<DesignTools::Keyframe> keyframes = createKeyframes(group.keyframePositions()); keyframes = resolveSmallCurves(keyframes); + + QString str; + ModelNode target = group.modelNode(); + if (target.hasAuxiliaryData("unified")) + str = target.auxiliaryData("unified").toString(); + + if (str.size() == static_cast<int>(keyframes.size())) { + for (int i = 0; i < str.size(); ++i) { + if (str.at(i) == '1') + keyframes[i].setUnified(true); + } + } + return DesignTools::AnimationCurve(keyframes); } diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp index 5d693f5422..dec61de19f 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp @@ -253,11 +253,6 @@ void TimelineToolBar::openAnimationCurveEditor() m_dialog->show(); } -void TimelineToolBar::updateCurve(DesignTools::PropertyTreeItem *item) -{ - DesignTools::AnimationCurve curve = item->curve(); -} - void TimelineToolBar::createLeftControls() { auto addActionToGroup = [&](QAction *action) { diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.h b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.h index 6f275484b4..1bb222b424 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.h +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.h @@ -91,8 +91,6 @@ public: void openAnimationCurveEditor(); - void updateCurve(DesignTools::PropertyTreeItem *item); - protected: void resizeEvent(QResizeEvent *event) override; diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp index 508db1051b..85a68cd0bd 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp @@ -340,6 +340,11 @@ void TimelineWidget::updateAnimationCurve(DesignTools::PropertyTreeItem *item) groupNode.setAuxiliaryData("pinned", true); else groupNode.removeAuxiliaryData("pinned"); + + if (item->hasUnified()) + groupNode.setAuxiliaryData("unified", item->unifyString()); + else + groupNode.removeAuxiliaryData("unified"); } auto replaceKeyframes = [&group, item, this]() { |