diff options
author | Knud Dollereder <knud.dollereder@qt.io> | 2019-08-12 15:04:32 +0200 |
---|---|---|
committer | Knud Dollereder <knud.dollereder@qt.io> | 2019-08-12 13:13:47 +0000 |
commit | 31effafb60c572b15bba23caacf4f0115cf300c7 (patch) | |
tree | 9acc3a68f97646f7ae77002572df178917d09e29 /src | |
parent | e0512f18a42473dc61e7b07bbbdd0214f310976a (diff) |
Add context-menu to insert a keyframe for all visible curves
Change-Id: If86550bb9b8e73ff22fdbe3c2ffc579c35c505da
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp | 13 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.h | 2 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp index 954e0401c4..bfa836137f 100644 --- a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp +++ b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp @@ -299,6 +299,13 @@ void GraphicsView::contextMenuEvent(QContextMenuEvent *event) QAction *openEditorAction = menu.addAction(tr("Open Style Editor")); connect(openEditorAction, &QAction::triggered, openStyleEditor); + menu.addSeparator(); + auto insertKeyframes = [this, event]() { + insertKeyframe(globalToRaster(event->globalPos()).x(), true); + }; + QAction *insertKeyframeAction = menu.addAction(tr("Insert Keyframe")); + connect(insertKeyframeAction, &QAction::triggered, insertKeyframes); + menu.exec(event->globalPos()); } @@ -400,12 +407,14 @@ void GraphicsView::applyZoom(double x, double y, const QPoint &pivot) } } -void GraphicsView::insertKeyframe(double time) +void GraphicsView::insertKeyframe(double time, bool allVisibleCurves) { const auto itemList = items(); for (auto *item : itemList) { if (auto *curveItem = qgraphicsitem_cast<CurveItem *>(item)) { - if (curveItem->isUnderMouse()) + if (allVisibleCurves) + curveItem->insertKeyframeByTime(std::round(time)); + else if (curveItem->isUnderMouse()) curveItem->insertKeyframeByTime(std::round(time)); } } diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.h b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.h index 15c8aeb75d..01dd0ca026 100644 --- a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.h +++ b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.h @@ -124,7 +124,7 @@ protected: private: void applyZoom(double x, double y, const QPoint &pivot = QPoint()); - void insertKeyframe(double time); + void insertKeyframe(double time, bool allVisibleCurves = false); void deleteSelectedKeyframes(); |