MCPcopy Create free account
hub / github.com/comaps/comaps / InferVisibility

Method InferVisibility

libs/map/bookmark_manager.cpp:3416–3456  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3414}
3415
3416void BookmarkManager::MarksChangesTracker::InferVisibility(BookmarkCategory * const group)
3417{
3418 kml::CategoryData const & categoryData = group->GetCategoryData();
3419 if (categoryData.m_compilationIds.empty())
3420 return;
3421 ankerl::unordered_dense::set<kml::MarkGroupId> visibility;
3422 visibility.reserve(categoryData.m_compilationIds.size());
3423 for (kml::MarkGroupId const compilationId : categoryData.m_compilationIds)
3424 {
3425 auto const compilation = m_bmManager->m_compilations.find(compilationId);
3426 CHECK(compilation != m_bmManager->m_compilations.end(), ());
3427 if (compilation->second->IsVisible())
3428 visibility.emplace(compilationId);
3429 }
3430 auto const groupId = group->GetID();
3431 for (kml::MarkId const userMark : m_bmManager->GetUserMarkIds(groupId))
3432 {
3433 if (!BookmarkManager::IsBookmark(userMark))
3434 continue;
3435 Bookmark * const bookmark = m_bmManager->GetBookmarkForEdit(userMark);
3436 bool isVisible = false;
3437 if (bookmark->GetCompilations().empty())
3438 {
3439 // Bookmarks that not belong to any compilation have to be visible.
3440 // They can be hidden only by changing parental BookmarkCategory visibility to false.
3441 isVisible = true;
3442 }
3443 else
3444 {
3445 for (kml::MarkGroupId const compilationId : bookmark->GetCompilations())
3446 {
3447 if (visibility.count(compilationId) != 0)
3448 {
3449 isVisible = true;
3450 break;
3451 }
3452 }
3453 }
3454 bookmark->SetIsVisible(isVisible);
3455 }
3456}
3457
3458void BookmarkManager::MarksChangesTracker::OnAttachBookmark(kml::MarkId markId, kml::MarkGroupId catId)
3459{

Callers

nothing calls this directly

Calls 11

GetBookmarkForEditMethod · 0.80
emptyMethod · 0.45
reserveMethod · 0.45
sizeMethod · 0.45
findMethod · 0.45
endMethod · 0.45
IsVisibleMethod · 0.45
emplaceMethod · 0.45
GetIDMethod · 0.45
countMethod · 0.45
SetIsVisibleMethod · 0.45

Tested by

no test coverage detected