| 754 | }; |
| 755 | |
| 756 | static void combine_lines(agi::Context *c, void (*combiner)(AssDialogue *, AssDialogue *), wxString const& message) { |
| 757 | auto sel = c->selectionController->GetSortedSelection(); |
| 758 | |
| 759 | AssDialogue *first = sel[0]; |
| 760 | combiner(first, nullptr); |
| 761 | for (size_t i = 1; i < sel.size(); ++i) { |
| 762 | combiner(first, sel[i]); |
| 763 | first->End = std::max(first->End, sel[i]->End); |
| 764 | delete sel[i]; |
| 765 | } |
| 766 | |
| 767 | c->selectionController->SetSelectionAndActive({first}, first); |
| 768 | |
| 769 | c->ass->Commit(message, AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL); |
| 770 | } |
| 771 | |
| 772 | static void combine_karaoke(AssDialogue *first, AssDialogue *second) { |
| 773 | if (second) |
no test coverage detected