mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-21 13:53:37 +00:00
[core] Fix remove passed points
Signed-off-by: gekeleda <git@davidgekeler.eu>
This commit is contained in:
@@ -296,6 +296,7 @@ void BookmarkManager::DeleteUserMark(kml::MarkId markId)
|
|||||||
CHECK_THREAD_CHECKER(m_threadChecker, ());
|
CHECK_THREAD_CHECKER(m_threadChecker, ());
|
||||||
ASSERT(!IsBookmark(markId), ());
|
ASSERT(!IsBookmark(markId), ());
|
||||||
auto it = m_userMarks.find(markId);
|
auto it = m_userMarks.find(markId);
|
||||||
|
ASSERT(it != m_userMarks.end(), ());
|
||||||
auto const groupId = it->second->GetGroupId();
|
auto const groupId = it->second->GetGroupId();
|
||||||
GetGroup(groupId)->DetachUserMark(markId);
|
GetGroup(groupId)->DetachUserMark(markId);
|
||||||
m_changesTracker.OnDeleteMark(markId);
|
m_changesTracker.OnDeleteMark(markId);
|
||||||
|
|||||||
@@ -349,9 +349,11 @@ void RoutePointsLayout::SetFollowingMode(bool enabled)
|
|||||||
|
|
||||||
void RoutePointsLayout::RemovePassedPoints()
|
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);
|
auto * mark = m_editSession.GetMarkForEdit<RouteMarkPoint>(markId);
|
||||||
if (mark->IsPassed())
|
if (mark && mark->IsPassed() && mark->GetRoutePointType() == RouteMarkType::Intermediate)
|
||||||
m_editSession.DeleteUserMark(mark->GetId());
|
m_editSession.DeleteUserMark(mark->GetId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user