X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fclip_list.cpp;h=f76906f2a2b4f539a02506f2a01324e6c17b8836;hb=refs%2Fheads%2Fmaster;hp=7e554b08536d0d03820d7cfb05ba7bb20552542d;hpb=c6fb9649d9f9c2e2cf3d1ac16c6c359630fe72bf;p=nageru diff --git a/futatabi/clip_list.cpp b/futatabi/clip_list.cpp index 7e554b0..f76906f 100644 --- a/futatabi/clip_list.cpp +++ b/futatabi/clip_list.cpp @@ -379,8 +379,13 @@ void PlayList::add_clip(const Clip &clip) void PlayList::duplicate_clips(size_t first, size_t last) { - beginInsertRows(QModelIndex(), first, last); - clips.insert(clips.begin() + first, clips.begin() + first, clips.begin() + last + 1); + beginInsertRows(QModelIndex(), last + 1, last + 1 + (last - first)); + + vector new_clips; + for (auto it = clips.begin() + first; it <= clips.begin() + last; ++it) { + new_clips.emplace_back(ClipWithID{ it->clip, clip_counter++ }); // Give them new IDs. + } + clips.insert(clips.begin() + last + 1, new_clips.begin(), new_clips.end()); // Note: The new elements are inserted after the old ones. endInsertRows(); emit any_content_changed(); }