| 1444 | } |
| 1445 | |
| 1446 | void InputEditorModel::removeMarkersInRange(int startRow, int endRow) { |
| 1447 | if (!context->config.editor_move_marker) |
| 1448 | return; |
| 1449 | |
| 1450 | // Remove markers within the specified range |
| 1451 | auto it = movie->editor->markers.begin(); |
| 1452 | while (it != movie->editor->markers.end()) { |
| 1453 | if (it->first >= startRow && it->first <= endRow) { |
| 1454 | it = movie->editor->markers.erase(it); |
| 1455 | } else { |
| 1456 | ++it; |
| 1457 | } |
| 1458 | } |
| 1459 | |
| 1460 | // Shift markers after the deleted range |
| 1461 | int offset = endRow - startRow + 1; |
| 1462 | std::map<int, std::string> updatedMarkers; |
| 1463 | for (const auto& marker : movie->editor->markers) { |
| 1464 | if (marker.first > endRow) { |
| 1465 | updatedMarkers[marker.first - offset] = marker.second; |
| 1466 | } else { |
| 1467 | updatedMarkers[marker.first] = marker.second; |
| 1468 | } |
| 1469 | } |
| 1470 | |
| 1471 | movie->editor->markers = std::move(updatedMarkers); |
| 1472 | } |
no test coverage detected