further work on timeline rewrite

This commit is contained in:
itsmattkc
2019-03-31 10:36:01 +11:00
parent 8e95210b22
commit f40b744dd4
23 changed files with 660 additions and 533 deletions
+10 -11
View File
@@ -90,14 +90,12 @@ void MoveClipAction::doRedo() {
}
}
DeleteClipAction::DeleteClipAction(Sequence *s, int clip) {
seq = s;
index = clip;
opening_transition = -1;
closing_transition = -1;
}
DeleteClipAction::DeleteClipAction(Clip *clip)
{
// Get shared_ptr object to take ownership of this Clip
DeleteClipAction::~DeleteClipAction() {}
clip_ = clip->track()->GetClipObjectFromRawPtr(clip);
}
void DeleteClipAction::doUndo() {
// restore ref to clip
@@ -113,13 +111,14 @@ void DeleteClipAction::doUndo() {
void DeleteClipAction::doRedo() {
// remove ref to clip
ref = seq->clips.at(index);
if (ref->IsOpen()) {
ref->Close(true);
if (clip_->IsOpen()) {
clip_->Close(true);
}
seq->clips[index] = nullptr;
clip_->track()->RemoveClip(clip_.get());
// delete link to this clip
QVector<Clip*> clips = clip_->track()->
linkClipIndex.clear();
linkLinkIndex.clear();
for (int i=0;i<seq->clips.size();i++) {
+3 -10
View File
@@ -113,20 +113,13 @@ private:
class DeleteClipAction : public OliveAction {
public:
DeleteClipAction(Sequence* s, int clip);
virtual ~DeleteClipAction() override;
DeleteClipAction(Clip* clip);
virtual void doUndo() override;
virtual void doRedo() override;
private:
Sequence* seq;
ClipPtr ref;
int index;
ClipPtr clip_;
int opening_transition;
int closing_transition;
QVector<int> linkClipIndex;
QVector<int> linkLinkIndex;
QVector<Clip*> clips_linked_to_this_one_;
};
class ChangeSequenceAction : public OliveAction {