From d9572fa4e57112183ee5a04459bb64017cde7f71 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Tue, 7 Jan 2020 19:04:24 +1100 Subject: [PATCH] only allow splitting clips --- app/CMakeLists.txt | 2 +- app/node/node.cpp | 8 +------- app/widget/timelinewidget/timelinewidget.cpp | 2 +- app/widget/timelinewidget/tool/razor.cpp | 1 + app/widget/timelinewidget/undo/undo.cpp | 2 +- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 46af301e6..bfcff14bb 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -64,7 +64,7 @@ endif() target_compile_definitions(${OLIVE_TARGET} PRIVATE ${OLIVE_DEFINITIONS}) if(MSVC) - target_compile_options(${OLIVE_TARGET} PRIVATE /WX /O2 /experimental:external /external:anglebrackets /external:W0) + target_compile_options(${OLIVE_TARGET} PRIVATE /WX /experimental:external /external:anglebrackets /external:W0 "$<$:/O2>") else() target_compile_options(${OLIVE_TARGET} PRIVATE -O2 -Werror -Wuninitialized -pedantic-errors -Wall -Wextra -Wconversion -Wsign-conversion) endif() diff --git a/app/node/node.cpp b/app/node/node.cpp index 5736ff5b4..695a58ca2 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -172,9 +172,6 @@ void Node::CopyInputs(Node *source, Node *destination, bool include_connections) { Q_ASSERT(source->id() == destination->id()); - source->LockUserInput(); - destination->LockUserInput(); - const QList& src_param = source->params_; const QList& dst_param = destination->params_; @@ -186,12 +183,9 @@ void Node::CopyInputs(Node *source, Node *destination, bool include_connections) NodeInput* dst = static_cast(dst_param.at(i)); - NodeInput::CopyValues(src, dst, include_connections, false); + NodeInput::CopyValues(src, dst, include_connections, true); } } - - source->UnlockUserInput(); - destination->UnlockUserInput(); } void DuplicateConnectionsBetweenListsInternal(const QList &source, const QList &destination, NodeInput* source_input, NodeInput* dest_input) diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 7bafafc00..db41c7a45 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -362,7 +362,7 @@ void TimelineWidget::SplitAtPlayhead() foreach (TrackOutput* track, timeline_node_->Tracks()) { Block* b = track->BlockContainingTime(playhead_time); - if (b) { + if (b && b->type() == Block::kClip) { bool selected = false; // See if this block is selected diff --git a/app/widget/timelinewidget/tool/razor.cpp b/app/widget/timelinewidget/tool/razor.cpp index 52558d02b..9b41faedc 100644 --- a/app/widget/timelinewidget/tool/razor.cpp +++ b/app/widget/timelinewidget/tool/razor.cpp @@ -67,6 +67,7 @@ void TimelineWidget::RazorTool::MouseRelease(TimelineViewMouseEvent *event) // Ensure there's a valid block here if (block_at_time + && block_at_time->type() == Block::kClip && !blocks_to_split.contains(block_at_time)) { blocks_to_split.append(block_at_time); diff --git a/app/widget/timelinewidget/undo/undo.cpp b/app/widget/timelinewidget/undo/undo.cpp index eb5c0dd0d..dd46cbf8f 100644 --- a/app/widget/timelinewidget/undo/undo.cpp +++ b/app/widget/timelinewidget/undo/undo.cpp @@ -351,7 +351,7 @@ BlockSplitCommand::BlockSplitCommand(TrackOutput* track, Block *block, rational old_length_(block->length()), point_(point) { - Q_ASSERT(point > block_->in() && point < block_->out()); + Q_ASSERT(point > block_->in() && point < block_->out() && block_->type() == Block::kClip); // Ensures that this block is deleted if this action is undone new_block_ = static_cast(block_->copy());