keyframeviewbase: hold shift to only drag bezier by time
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user