#include "tracklist.h" #include "timeline/sequence.h" TrackList::TrackList(Sequence *parent, olive::TrackType type) : QObject(parent), type_(type) { // Ensure we have at least one track AddTrack(); } void TrackList::Save(QXmlStreamWriter &stream) { stream.writeStartElement("Tracks"); for (int i=0;iSave(stream); } stream.writeEndElement(); // Tracks } TrackList* TrackList::copy(Sequence *parent) { TrackList* t = new TrackList(parent, type_); t->ResizeTrackArray(tracks_.size()); for (int i=0;itracks_[i] = tracks_.at(i)->copy(t); } return t; } void TrackList::AddTrack() { Track* track = new Track(this, type_); tracks_.append(track); emit TrackCountChanged(); } void TrackList::RemoveTrack(int i) { if (tracks_.size() == 1) { return; } tracks_.removeAt(i); emit TrackCountChanged(); } Track *TrackList::First() { return tracks_.first(); } Track *TrackList::Last() { return tracks_.last(); } int TrackList::TrackCount() { return tracks_.size(); } int TrackList::IndexOfTrack(Track *track) { for (int i=0;i= tracks_.size()) { AddTrack(); } return tracks_.at(i); } QVector TrackList::tracks() { return tracks_; } olive::TrackType TrackList::type() { return type_; } Sequence *TrackList::GetParent() { return static_cast(parent()); } void TrackList::ResizeTrackArray(int i) { tracks_.resize(i); }