IEnumerable <ProjectItemBase> GetChildren(ProjectItemBase root) { if (root.Children == null) { yield break; } foreach (ProjectItemBase item in root.Children) { if (item is ProjectItem) { yield return(item); } if (item is FileItem) { yield return(item); } foreach (var subItem in GetChildren(item)) { if (subItem is FileItem) { yield return(subItem); } } } }
bool CanCheckInItem(CheckInTarget target, ProjectItemBase item) { bool canCheckInMaster = IsCorrectlyLoaded && item.If(x => x.IsCheckOut || x.IsNew).ReturnSuccess(); if (target == CheckInTarget.Master) { return(canCheckInMaster); } return(canCheckInMaster && item.If(x => x.MergeState == MergeState.Success).ReturnSuccess()); }
bool CalcCanMergeItem(ProjectItemBase item) { var folderItem = item as FolderItem; if (folderItem != null) { return(CanMergeFolderItem(folderItem)); } return(CanMergeFileItem(item)); }
MergeState PerformMerge(ProjectItemBase item, bool showPreview) { if (item is FolderItem) { return(MergeState.Success); } var helper = new MergeHelper(this); item.ItemWrapper.Save(); return(helper.MergeChanges(CurrentBranch, item.Path, null, showPreview, item.IsNew)); }
private string TravVirtualPath(ProjectItemBase item) { var path = string.Empty; while (item.Parent != null && item.Parent != CurrentProjectInfo.ProjectItem) { path = item.Parent.Text.Trim() + "\\" + path; item = item.Parent; } return(path); }
IEnumerable <ProjectItemBase> GetTotalChildren(ProjectItemBase root) { if (root.Children == null) { yield break; } foreach (ProjectItemBase item in root.Children) { yield return(item); foreach (ProjectItemBase subItem in GetTotalChildren(item)) { yield return(subItem); } } }
public void PopulateMenu(ProjectItemBase item) { if (item == null) { return; } MenuItems.Clear(); MenuItemBase parentMenuItem = null; foreach (var command in item.OptionCommands) { MenuItemBase newMenuItem = null; // fake command definition if (command.CommandDefinition is FakeCommandDefinition) { // reset parent if (string.IsNullOrEmpty(command.CommandDefinition.Name)) { parentMenuItem = null; } // fake to add separator else if (command.CommandDefinition.Name == "|") { newMenuItem = new MenuItemSeparator(); } // fake to set parent else if (command.CommandDefinition.Name.Contains('|')) { // extract ancestors var parentNames = command.CommandDefinition.Name.Trim().Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); // reset parent if (parentNames.Length == 0) { parentMenuItem = null; } // find parent else { parentMenuItem = MenuItems.OfType <StandardMenuItem>().FirstOrDefault(p => p.Text == parentNames[0]); if (parentMenuItem == null) { parentMenuItem = new DisplayMenuItem(parentNames[0]); MenuItems.Add(parentMenuItem); } for (var i = 1; i < parentNames.Length; i++) { var nextMenuItem = parentMenuItem.Children.OfType <StandardMenuItem>().FirstOrDefault(p => p.Text == parentNames[i]); if (nextMenuItem == null) { nextMenuItem = new DisplayMenuItem(parentNames[i]); parentMenuItem.Children.Add(nextMenuItem); } parentMenuItem = nextMenuItem; } } } } else { newMenuItem = new Idealde.Modules.MainMenu.Models.CommandMenuItem(command); command.Tag = item; } if (newMenuItem == null) { continue; } if (parentMenuItem != null) { parentMenuItem.Children.Add(newMenuItem); } else { MenuItems.Add(newMenuItem); } } }
bool CanMergeFileItem(ProjectItemBase x) { return((x.IsCheckOut || x.IsNew) && x.MergeState == MergeState.None); }
bool FilterItems(ProjectItemBase item, MergeHelper helper) { return(item.IsNew && !string.IsNullOrEmpty(item.FullPath) && !helper.IsItemUnderVss(item.FullPath, MasterBranch)); }
bool CanNavigateToItem(ProjectItemBase parameter) { return(IsCorrectlyLoaded && parameter != null); }
void NavigateToItem(ProjectItemBase parameter) { var item = parameter ?? SelectedItem; dte.NavigateToFile(item); }
/// <summary> /// If this ProjectItem represents a folder - either a solution, project or an actual folder, return it. /// </summary> public static ProjectFolder GetProjectItemFolder(this ProjectItemBase item) => item.Tag switch {
MergeState PerformMerge(ProjectItemBase item, bool showPreview) { var helper = new MergeHelper(Options, PortOptions); return(helper.MergeChanges(CurrentBranch, item.Path, null, showPreview)); }