| 541 | } |
| 542 | |
| 543 | Track *TrackList::DoAdd(const std::shared_ptr<Track> &t, bool assignIds) |
| 544 | { |
| 545 | if (!ListOfTracks::empty()) { |
| 546 | auto &pLast = *ListOfTracks::rbegin(); |
| 547 | if (pLast->mLinkType != Track::LinkType::None) |
| 548 | t->CopyGroupProperties(*pLast); |
| 549 | } |
| 550 | |
| 551 | push_back(t); |
| 552 | |
| 553 | auto n = getPrev( getEnd() ); |
| 554 | |
| 555 | t->SetOwner(shared_from_this(), n); |
| 556 | if (mAssignsIds && assignIds) |
| 557 | t->SetId(TrackId{ ++sCounter }); |
| 558 | RecalcPositions(n); |
| 559 | AdditionEvent(n); |
| 560 | return back().get(); |
| 561 | } |
| 562 | |
| 563 | Track::Holder TrackList::ReplaceOne(Track &t, TrackList &&with) |
| 564 | { |