remove track and exclusive dependencies from sequence
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user