bool CContextMenuManager::IsVisible( const CContextMenuItem& menuItem, const CContextMenuItem& root, const CFileItemPtr& fileItem) { if (menuItem.GetLabel().empty() || !root.IsParentOf(menuItem)) return false; if (menuItem.IsGroup()) return std::any_of(m_items.begin(), m_items.end(), [&](const Item& kv){ return menuItem.IsParentOf(kv.second) && kv.second.IsVisible(fileItem); }); return menuItem.IsVisible(fileItem); }
bool CContextMenuManager::IsVisible( const CContextMenuItem& menuItem, const CContextMenuItem& root, const CFileItem& fileItem) const { if (menuItem.GetLabel(fileItem).empty() || !root.IsParentOf(menuItem)) return false; if (menuItem.IsGroup()) { CSingleLock lock(m_criticalSection); return std::any_of(m_addonItems.begin(), m_addonItems.end(), [&](const CContextMenuItem& other){ return menuItem.IsParentOf(other) && other.IsVisible(fileItem); }); } return menuItem.IsVisible(fileItem); }