timeline: prevent rubberband from showing if the user right clicked

This commit is contained in:
itsmattkc
2020-05-01 04:08:35 +10:00
parent 6f2993477d
commit be5e5042bd
5 changed files with 34 additions and 17 deletions
+1 -1
View File
@@ -91,7 +91,7 @@ void TimelineWidget::PointerTool::MousePress(TimelineViewMouseEvent *event)
if (!(event->GetModifiers() & Qt::AltModifier)) {
parent()->SetBlockLinksSelected(item->block(), true);
}
} else {
} else if (event->GetButton() == Qt::LeftButton) {
// Start rubberband drag
parent()->StartRubberBandSelect(true, !(event->GetModifiers() & Qt::AltModifier));
+19 -15
View File
@@ -81,7 +81,7 @@ void TimelineView::mousePressEvent(QMouseEvent *event)
return;
}
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event);
emit MousePressed(&timeline_event);
}
@@ -98,7 +98,7 @@ void TimelineView::mouseMoveEvent(QMouseEvent *event)
return;
}
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event);
emit MouseMoved(&timeline_event);
}
@@ -115,14 +115,14 @@ void TimelineView::mouseReleaseEvent(QMouseEvent *event)
return;
}
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event);
emit MouseReleased(&timeline_event);
}
void TimelineView::mouseDoubleClickEvent(QMouseEvent *event)
{
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event);
emit MouseDoubleClicked(&timeline_event);
}
@@ -146,7 +146,7 @@ void TimelineView::wheelEvent(QWheelEvent *event)
void TimelineView::dragEnterEvent(QDragEnterEvent *event)
{
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->keyboardModifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), Qt::NoButton, event->keyboardModifiers());
timeline_event.SetMimeData(event->mimeData());
timeline_event.SetEvent(event);
@@ -156,7 +156,7 @@ void TimelineView::dragEnterEvent(QDragEnterEvent *event)
void TimelineView::dragMoveEvent(QDragMoveEvent *event)
{
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->keyboardModifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), Qt::NoButton, event->keyboardModifiers());
timeline_event.SetMimeData(event->mimeData());
timeline_event.SetEvent(event);
@@ -171,7 +171,7 @@ void TimelineView::dragLeaveEvent(QDragLeaveEvent *event)
void TimelineView::dropEvent(QDropEvent *event)
{
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->keyboardModifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), Qt::NoButton, event->keyboardModifiers());
timeline_event.SetMimeData(event->mimeData());
timeline_event.SetEvent(event);
@@ -273,17 +273,21 @@ TimelineCoordinate TimelineView::SceneToCoordinate(const QPointF& pt)
return TimelineCoordinate(SceneToTime(pt.x()), TrackReference(ConnectedTrackType(), SceneToTrack(pt.y())));
}
TimelineViewMouseEvent TimelineView::CreateMouseEvent(const QPoint& pos, Qt::KeyboardModifiers modifiers)
TimelineViewMouseEvent TimelineView::CreateMouseEvent(QMouseEvent *event)
{
return CreateMouseEvent(event->pos(), event->button(), event->modifiers());
}
TimelineViewMouseEvent TimelineView::CreateMouseEvent(const QPoint& pos, Qt::MouseButton button, Qt::KeyboardModifiers modifiers)
{
QPointF scene_pt = mapToScene(pos);
TimelineViewMouseEvent timeline_event(scene_pt.x(),
GetScale(),
timebase(),
TrackReference(ConnectedTrackType(), SceneToTrack(scene_pt.y())),
modifiers);
return timeline_event;
return TimelineViewMouseEvent(scene_pt.x(),
GetScale(),
timebase(),
TrackReference(ConnectedTrackType(), SceneToTrack(scene_pt.y())),
button,
modifiers);
}
int TimelineView::GetHeightOfAllTracks() const
@@ -100,7 +100,8 @@ private:
TimelineCoordinate ScreenToCoordinate(const QPoint& pt);
TimelineCoordinate SceneToCoordinate(const QPointF& pt);
TimelineViewMouseEvent CreateMouseEvent(const QPoint &pos, Qt::KeyboardModifiers modifiers);
TimelineViewMouseEvent CreateMouseEvent(QMouseEvent* event);
TimelineViewMouseEvent CreateMouseEvent(const QPoint &pos, Qt::MouseButton button, Qt::KeyboardModifiers modifiers);
int GetHeightOfAllTracks() const;
@@ -30,11 +30,13 @@ TimelineViewMouseEvent::TimelineViewMouseEvent(const qreal &scene_x,
const double &scale_x,
const rational &timebase,
const TrackReference &track,
const Qt::MouseButton &button,
const Qt::KeyboardModifiers &modifiers) :
scene_x_(scene_x),
scale_x_(scale_x),
timebase_(timebase),
track_(track),
button_(button),
modifiers_(modifiers),
source_event_(nullptr),
mime_data_(nullptr)
@@ -81,6 +83,11 @@ const qreal &TimelineViewMouseEvent::GetSceneX() const
return scene_x_;
}
const Qt::MouseButton &TimelineViewMouseEvent::GetButton() const
{
return button_;
}
void TimelineViewMouseEvent::accept()
{
if (source_event_ != nullptr)
@@ -36,6 +36,7 @@ public:
const double& scale_x,
const rational& timebase,
const TrackReference &track,
const Qt::MouseButton &button,
const Qt::KeyboardModifiers& modifiers = Qt::NoModifier);
TimelineCoordinate GetCoordinates(bool round_time = false) const;
@@ -61,6 +62,8 @@ public:
const qreal& GetSceneX() const;
const Qt::MouseButton& GetButton() const;
void accept();
void ignore();
@@ -71,6 +74,8 @@ private:
TrackReference track_;
Qt::MouseButton button_;
Qt::KeyboardModifiers modifiers_;
QEvent* source_event_;