aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp')
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp
index 954e0401c4a..bfa836137f7 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));
}
}