[core] Fix remove passed points

Signed-off-by: gekeleda <git@davidgekeler.eu>
This commit is contained in:
gekeleda
2025-08-24 14:48:19 +02:00
parent 4d6cecd9ba
commit 265e94edc3
2 changed files with 5 additions and 2 deletions

View File

@@ -349,9 +349,11 @@ void RoutePointsLayout::SetFollowingMode(bool enabled)
void RoutePointsLayout::RemovePassedPoints()
{
for (auto markId : m_manager.GetUserMarkIds(UserMark::Type::ROUTING)) {
// Prevent recalculation of markIds at every iteration, since we are removing elements
auto markIds = m_manager.GetUserMarkIds(UserMark::Type::ROUTING);
for (auto markId : markIds) {
auto * mark = m_editSession.GetMarkForEdit<RouteMarkPoint>(markId);
if (mark->IsPassed())
if (mark && mark->IsPassed() && mark->GetRoutePointType() == RouteMarkType::Intermediate)
m_editSession.DeleteUserMark(mark->GetId());
}
}