internal SelectedChangesGroupInfo GetSelectedChangesGroupInfo() { SelectedChangesGroupInfo result = new SelectedChangesGroupInfo(); IList <int> selectedIds = GetSelection(); if (selectedIds.Count == 0) { return(result); } foreach (KeyValuePair <PendingChangeInfo, int> item in mTreeViewItemIds.GetInfoItems()) { if (!selectedIds.Contains(item.Value)) { continue; } ChangeInfo changeInfo = item.Key.ChangeInfo; result.SelectedCount++; result.IsAnyDirectorySelected |= changeInfo.IsDirectory; result.IsAnyPrivateSelected |= !ChangeInfoType.IsControlled(changeInfo); result.IsAnyControlledSelected |= ChangeInfoType.IsControlled(changeInfo); result.IsAnyLocalChangeSelected |= ChangeInfoType.IsLocalChange(changeInfo); result.FilterInfo.IsAnyIgnoredSelected |= ChangeInfoType.IsIgnored(changeInfo); result.FilterInfo.IsAnyHiddenChangedSelected |= ChangeInfoType.IsHiddenChanged(changeInfo); string wkRelativePath = InternalNames.RootDir + WorkspacePath.GetWorkspaceRelativePath( mWkInfo.ClientPath, changeInfo.GetFullPath()); if (result.SelectedCount == 1) { result.FilterInfo.CommonName = Path.GetFileName(changeInfo.GetFullPath()); result.FilterInfo.CommonExtension = changeInfo.GetExtension(); result.FilterInfo.CommonFullPath = wkRelativePath; continue; } if (result.FilterInfo.CommonName != Path.GetFileName(changeInfo.GetFullPath())) { result.FilterInfo.CommonName = null; } if (result.FilterInfo.CommonExtension != changeInfo.GetExtension()) { result.FilterInfo.CommonExtension = null; } if (result.FilterInfo.CommonFullPath != wkRelativePath) { result.FilterInfo.CommonFullPath = null; } } return(result); }
internal bool GetSelectedPathsToDelete( out List <string> privateDirectories, out List <string> privateFiles) { privateDirectories = new List <string>(); privateFiles = new List <string>(); List <ChangeInfo> dirChanges = new List <ChangeInfo>(); List <ChangeInfo> fileChanges = new List <ChangeInfo>(); IList <int> selectedIds = GetSelection(); if (selectedIds.Count == 0) { return(false); } foreach (KeyValuePair <PendingChangeInfo, int> item in mTreeViewItemIds.GetInfoItems()) { if (!selectedIds.Contains(item.Value)) { continue; } ChangeInfo changeInfo = item.Key.ChangeInfo; if (ChangeInfoType.IsControlled(changeInfo)) { continue; } if (changeInfo.IsDirectory) { dirChanges.Add(changeInfo); continue; } fileChanges.Add(changeInfo); } mPendingChangesTree.FillWithMeta(fileChanges); mPendingChangesTree.FillWithMeta(dirChanges); privateDirectories = dirChanges.Select( d => d.GetFullPath()).ToList(); privateFiles = fileChanges.Select( f => f.GetFullPath()).ToList(); return(true); }