keyframeviewbase: hold shift to only drag bezier by time

This commit is contained in:
itsmattkc
2021-01-24 15:32:03 +11:00
parent 8d975faa83
commit d4e6d33db1
+12 -3
View File
@@ -186,6 +186,11 @@ void KeyframeViewBase::mouseMoveEvent(QMouseEvent *event)
// Calculate cursor difference and scale it // Calculate cursor difference and scale it
QPointF mouse_diff_scaled = GetScaledCursorPos(event->pos() - drag_start_); QPointF mouse_diff_scaled = GetScaledCursorPos(event->pos() - drag_start_);
if (event->modifiers() & Qt::ShiftModifier) {
// If holding shift, only move one axis
mouse_diff_scaled.setY(0);
}
if (dragging_bezier_point_) { if (dragging_bezier_point_) {
ProcessBezierDrag(mouse_diff_scaled, ProcessBezierDrag(mouse_diff_scaled,
!(event->modifiers() & Qt::ControlModifier), !(event->modifiers() & Qt::ControlModifier),
@@ -245,10 +250,14 @@ void KeyframeViewBase::mouseReleaseEvent(QMouseEvent *event)
QGraphicsView::mouseReleaseEvent(event); QGraphicsView::mouseReleaseEvent(event);
if (active_tool_ == Tool::kPointer) { if (active_tool_ == Tool::kPointer) {
QPoint mouse_diff = event->pos() - drag_start_; QPointF mouse_diff_scaled = GetScaledCursorPos(event->pos() - drag_start_);
QPointF mouse_diff_scaled = GetScaledCursorPos(mouse_diff);
if (!mouse_diff.isNull()) { if (event->modifiers() & Qt::ShiftModifier) {
// If holding shift, only move one axis
mouse_diff_scaled.setY(0);
}
if (!mouse_diff_scaled.isNull()) {
if (dragging_bezier_point_) { if (dragging_bezier_point_) {
ProcessBezierDrag(mouse_diff_scaled, ProcessBezierDrag(mouse_diff_scaled,
!(event->modifiers() & Qt::ControlModifier), !(event->modifiers() & Qt::ControlModifier),