updated timeline tools to allow rounding as well as flooring to find the frame

at the mouse cursor point
This commit is contained in:
itsmattkc
2020-01-02 04:11:50 +11:00
parent e8fddc2d5b
commit ae71b206cd
11 changed files with 101 additions and 54 deletions
+20 -14
View File
@@ -74,8 +74,7 @@ void TimelineView::mousePressEvent(QMouseEvent *event)
return;
}
TimelineViewMouseEvent timeline_event(ScreenToCoordinate(event->pos()),
event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
emit MousePressed(&timeline_event);
}
@@ -87,8 +86,7 @@ void TimelineView::mouseMoveEvent(QMouseEvent *event)
return;
}
TimelineViewMouseEvent timeline_event(ScreenToCoordinate(event->pos()),
event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
emit MouseMoved(&timeline_event);
}
@@ -100,16 +98,14 @@ void TimelineView::mouseReleaseEvent(QMouseEvent *event)
return;
}
TimelineViewMouseEvent timeline_event(ScreenToCoordinate(event->pos()),
event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
emit MouseReleased(&timeline_event);
}
void TimelineView::mouseDoubleClickEvent(QMouseEvent *event)
{
TimelineViewMouseEvent timeline_event(ScreenToCoordinate(event->pos()),
event->modifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->modifiers());
emit MouseDoubleClicked(&timeline_event);
}
@@ -133,8 +129,7 @@ void TimelineView::wheelEvent(QWheelEvent *event)
void TimelineView::dragEnterEvent(QDragEnterEvent *event)
{
TimelineViewMouseEvent timeline_event(ScreenToCoordinate(event->pos()),
event->keyboardModifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->keyboardModifiers());
timeline_event.SetMimeData(event->mimeData());
timeline_event.SetEvent(event);
@@ -144,8 +139,7 @@ void TimelineView::dragEnterEvent(QDragEnterEvent *event)
void TimelineView::dragMoveEvent(QDragMoveEvent *event)
{
TimelineViewMouseEvent timeline_event(ScreenToCoordinate(event->pos()),
event->keyboardModifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->keyboardModifiers());
timeline_event.SetMimeData(event->mimeData());
timeline_event.SetEvent(event);
@@ -160,8 +154,7 @@ void TimelineView::dragLeaveEvent(QDragLeaveEvent *event)
void TimelineView::dropEvent(QDropEvent *event)
{
TimelineViewMouseEvent timeline_event(ScreenToCoordinate(event->pos()),
event->keyboardModifiers());
TimelineViewMouseEvent timeline_event = CreateMouseEvent(event->pos(), event->keyboardModifiers());
timeline_event.SetMimeData(event->mimeData());
timeline_event.SetEvent(event);
@@ -228,6 +221,19 @@ TimelineCoordinate TimelineView::SceneToCoordinate(const QPointF& pt)
return TimelineCoordinate(SceneToTime(pt.x()), TrackReference(type_, SceneToTrack(pt.y())));
}
TimelineViewMouseEvent TimelineView::CreateMouseEvent(const QPoint& pos, Qt::KeyboardModifiers modifiers)
{
QPointF scene_pt = mapToScene(pos);
TimelineViewMouseEvent timeline_event(scene_pt.x(),
scale_,
timebase(),
TrackReference(type_, SceneToTrack(scene_pt.y())),
modifiers);
return timeline_event;
}
int TimelineView::GetTrackY(int track_index)
{
int y = 0;