wrote slide timeline tool

This commit is contained in:
itsmattkc
2019-09-23 23:22:40 +10:00
parent 9fa22938b9
commit 372fc25667
7 changed files with 163 additions and 5 deletions
+20 -4
View File
@@ -32,7 +32,9 @@
TimelineView::PointerTool::PointerTool(TimelineView *parent) :
Tool(parent),
movement_allowed_(true)
movement_allowed_(true),
trimming_allowed_(true),
track_movement_allowed_(true)
{
}
@@ -107,6 +109,16 @@ void TimelineView::PointerTool::SetMovementAllowed(bool allowed)
movement_allowed_ = allowed;
}
void TimelineView::PointerTool::SetTrackMovementAllowed(bool allowed)
{
track_movement_allowed_ = allowed;
}
void TimelineView::PointerTool::SetTrimmingAllowed(bool allowed)
{
trimming_allowed_ = allowed;
}
void TimelineView::PointerTool::MouseReleaseInternal(QMouseEvent *event)
{
Q_UNUSED(event)
@@ -187,9 +199,9 @@ void TimelineView::PointerTool::InitiateDrag(const QPoint& mouse_pos)
// FIXME: Hardcoded number
const int kTrimHandle = 20;
if (drag_start_.x() < clicked_item->x() + kTrimHandle) {
if (trimming_allowed_ && drag_start_.x() < clicked_item->x() + kTrimHandle) {
trim_mode = olive::timeline::kTrimIn;
} else if (drag_start_.x() > clicked_item->x() + clicked_item->rect().right() - kTrimHandle) {
} else if (trimming_allowed_ && drag_start_.x() > clicked_item->x() + clicked_item->rect().right() - kTrimHandle) {
trim_mode = olive::timeline::kTrimOut;
} else if (movement_allowed_) {
// Some derived classes don't allow movement
@@ -216,7 +228,11 @@ void TimelineView::PointerTool::ProcessDrag(const QPoint &mouse_pos)
// Determine track movement
int cursor_track = parent()->SceneToTrack(scene_pos.y());
int track_movement = cursor_track - track_start_;
int track_movement = 0;
if (track_movement_allowed_) {
track_movement = cursor_track - track_start_;
}
// Determine frame movement
rational time_movement = parent()->SceneToTime(movement.x());