remove track and exclusive dependencies from sequence

This commit is contained in:
itsmattkc
2022-01-24 09:53:16 -08:00
parent 7fa8c6f33a
commit 124d66a281
2 changed files with 19 additions and 4 deletions
@@ -591,13 +591,18 @@ void TrackReplaceBlockWithGapCommand::CreateRemoveTransitionCommandIfNecessary(b
}
}
void TimelineRemoveTrackCommand::redo()
void TimelineRemoveTrackCommand::prepare()
{
list_ = track_->sequence()->track_list(track_->type());
index_ = list_->GetArrayIndexFromCacheIndex(track_->Index());
Node::DisconnectEdge(track_, list_->track_input(index_));
remove_command_ = new NodeRemoveWithExclusiveDependenciesAndDisconnect(track_);
}
void TimelineRemoveTrackCommand::redo()
{
remove_command_->redo_now();
list_->parent()->InputArrayRemove(list_->track_input(), index_);
}
@@ -606,7 +611,7 @@ void TimelineRemoveTrackCommand::undo()
{
list_->parent()->InputArrayInsert(list_->track_input(), index_);
Node::ConnectEdge(track_, list_->track_input(index_));
remove_command_->undo_now();
}
}
@@ -167,15 +167,23 @@ class TimelineRemoveTrackCommand : public UndoCommand
{
public:
TimelineRemoveTrackCommand(Track *track) :
track_(track)
track_(track),
remove_command_(nullptr)
{}
virtual ~TimelineRemoveTrackCommand()
{
delete remove_command_;
}
virtual Project* GetRelevantProject() const override
{
return track_->project();
}
protected:
virtual void prepare() override;
virtual void redo() override;
virtual void undo() override;
@@ -187,6 +195,8 @@ private:
int index_;
UndoCommand *remove_command_;
};
class TransitionRemoveCommand : public UndoCommand {