void CSVNStatusListCtrl::ColumnManager::UpdateRelevance
    ( const std::vector<FileEntry*>& files
    , const std::vector<size_t>& visibleFiles
    , const std::map<CTSVNPath, PropertyList>& propertymap)
{
    // collect all user-defined props that belong to shown files

    std::set<CString> aggregatedProps;
    for (size_t i = 0, count = visibleFiles.size(); i < count; ++i)
    {
        auto propEntry = propertymap.find(files[visibleFiles[i]]->GetPath());
        if (propEntry != propertymap.end())
        {
            propEntry->second.GetPropertyNames (aggregatedProps);
        }
    }

    itemProps = aggregatedProps;

    // invisible columns for unused props are not relevant

    for (int i = 0, count = GetColumnCount(); i < count; ++i)
        if (IsUserProp(i) && !IsVisible(i))
        {
            columns[i].relevant
                = aggregatedProps.find (GetName(i)) != aggregatedProps.end();
        }
}
void ColumnManager::UpdateRelevance
	( const std::vector<FileEntry*>& files
	, const std::vector<size_t>& visibleFiles)
{
	// collect all user-defined props that belong to shown files

	std::set<CString> aggregatedProps;
	for (size_t i = 0, count = visibleFiles.size(); i < count; ++i)
		files[visibleFiles[i]]->present_props.GetPropertyNames (aggregatedProps);

	aggregatedProps.erase (_T("svn:needs-lock"));
	itemProps = aggregatedProps;

	// invisible columns for unused props are not relevant

	for (int i = 0, count = GetColumnCount(); i < count; ++i)
		if (IsUserProp(i) && !IsVisible(i))
		{
			columns[i].relevant
				= aggregatedProps.find (GetName(i)) != aggregatedProps.end();
		}

}