コード例 #1
0
 public static int GetIndex(HgFileStatus status)
 {
     switch (status)
     {
         case HgFileStatus.Modified:
             return 1;
         case HgFileStatus.Added:
             return 2;
         case HgFileStatus.Removed:
             return 3;
         case HgFileStatus.Clean:
             return 4;
         case HgFileStatus.Missing:
             return 5;
         case HgFileStatus.NotTracked:
             return 6;
         case HgFileStatus.Ignored:
             return 7;
         case HgFileStatus.Renamed:
             return 8;
         case HgFileStatus.Copied:
             return 9;
         default:
             return 0;
     }
 }
コード例 #2
0
ファイル: StatusImages.cs プロジェクト: vitidev/VisualHgMod2
        public static int GetIndex(HgFileStatus status)
        {
            switch (status)
            {
            case HgFileStatus.Modified:
                return(1);

            case HgFileStatus.Added:
                return(2);

            case HgFileStatus.Removed:
                return(3);

            case HgFileStatus.Clean:
                return(4);

            case HgFileStatus.Missing:
                return(5);

            case HgFileStatus.NotTracked:
                return(6);

            case HgFileStatus.Ignored:
                return(7);

            case HgFileStatus.Renamed:
                return(8);

            case HgFileStatus.Copied:
                return(9);

            default:
                return(0);
            }
        }
コード例 #3
0
        private static bool AnySelectedFileStatusMatches(HgFileStatus pattern, bool includeChildren)
        {
            if (includeChildren)
            {
                return(GetSelectedItems().Any(x => ItemOrChildrenStatusMatches(x, pattern)));
            }

            return(GetSelectedItems().Any(x => ItemStatusMatches(x, pattern)));
        }
コード例 #4
0
        private static string[] GetFilesToAdd(string[] fileNames, HgFileStatus filter)
        {
            var files = GetRawFileInfo(fileNames);

            return(files
                   .Where(x => x.StatusMatches(filter))
                   .Select(x => x.FullName)
                   .ToArray());
        }
コード例 #5
0
        private static bool ItemOrChildrenStatusMatches(VSITEMSELECTION item, HgFileStatus pattern)
        {
            if (ItemStatusMatches(item, pattern))
            {
                return(true);
            }

            return(AnyChildItemStatusMatches(item, pattern));
        }
コード例 #6
0
        private bool OverrideStatus(string fileName, HgFileStatus status)
        {
            if (NeedToSearchChildren(fileName, status))
            {
                var project = VisualHgSolution.FindProject(fileName);

                return(HasPendingChildren(project));
            }

            return(false);
        }
コード例 #7
0
        public static HgFileInfo[] AddFiles(string[] fileNames, HgFileStatus filter)
        {
            var filesToAdd = GetFilesToAdd(fileNames, filter);

            if (filesToAdd.Length == 0)
            {
                return(new HgFileInfo[0]);
            }

            return(ProcessFilesAndGetStatus("add", filesToAdd));
        }
コード例 #8
0
ファイル: Hg.cs プロジェクト: HexWrench/VisualHG2015
        public static HgFileInfo[] AddFiles(string[] fileNames, HgFileStatus filter)
        {
            var filesToAdd = GetFilesToAdd(fileNames, filter);

            if (filesToAdd.Length == 0)
            {
                return new HgFileInfo[0];
            }

            return ProcessFilesAndGetStatus("add", filesToAdd);
        }
コード例 #9
0
        private static bool AnyChildItemStatusMatches(VSITEMSELECTION item, HgFileStatus pattern)
        {
            var project = item.pHier as IVsProject;

            if (project == null)
            {
                return(false);
            }

            return(GetProjectItemIds(item.pHier, item.itemid).
                   Any(x => ItemStatusMatches(x, project, pattern)));
        }
コード例 #10
0
ファイル: HgFileInfo.cs プロジェクト: HexWrench/VisualHG2015
        public HgFileInfo(string root, string name, char status)
        {
            Root = root;
            Name = name;
            _status = Hg.ConvertToStatus(status);
            RootName = new DirectoryInfo(root).Name;
            ShortName = Path.GetFileName(name);
            FullName = Path.Combine(root, name);

            if (Status != HgFileStatus.None && !StatusMatches(HgFileStatus.Deleted))
            {
                InitializeFileProperties(FullName);
            }
        }
コード例 #11
0
ファイル: HgFileInfo.cs プロジェクト: vitidev/VisualHgMod2
        public HgFileInfo(string root, string name, char status)
        {
            Root      = root;
            Name      = name;
            _status   = Hg.ConvertToStatus(status);
            RootName  = new DirectoryInfo(root).Name;
            ShortName = Path.GetFileName(name);
            FullName  = Path.Combine(root, name);

            if (Status != HgFileStatus.None && !StatusMatches(HgFileStatus.Deleted))
            {
                InitializeFileProperties(FullName);
            }
        }
コード例 #12
0
        private VsStateIcon GetStatusIcon(HgFileStatus status)
        {
            var iconIndex = 0;

            if (StatusIconsLimited)
            {
                iconIndex = StatusImages.GetIndexLimited(status);
            }
            else
            {
                iconIndex = StatusImages.GetIndex(status);
            }

            return(GetStatusIcon(iconIndex));
        }
コード例 #13
0
        public static bool Matches(string fileName, HgFileStatus pattern)
        {
            if (String.IsNullOrEmpty(fileName))
            {
                return(false);
            }

            if (HgPath.IsDirectory(fileName))
            {
                return(false);
            }

            var visualHgService = Package.GetGlobalService(typeof(VisualHgService)) as VisualHgService;

            var status = visualHgService.GetFileStatus(fileName);

            return(Matches(status, pattern));
        }
コード例 #14
0
 public static int GetIndexLimited(HgFileStatus status)
 {
     switch (status)
     {
         case HgFileStatus.Modified:
             return 0;
         case HgFileStatus.Added:
         case HgFileStatus.Copied:
         case HgFileStatus.Renamed:
             return 1;
         case HgFileStatus.Removed:
             return 2;
         case HgFileStatus.Clean:
             return 3;
         default:
             return -1;
     }
 }
コード例 #15
0
        public static bool Matches(string fileName, HgFileStatus pattern)
        {
            if (String.IsNullOrEmpty(fileName))
            {
                return false;
            }

            if (HgPath.IsDirectory(fileName))
            {
                return false;
            }

            var visualHgService = Package.GetGlobalService(typeof(VisualHgService)) as VisualHgService;

            var status = visualHgService.GetFileStatus(fileName);

            return Matches(status, pattern);
        }
コード例 #16
0
ファイル: StatusImages.cs プロジェクト: vitidev/VisualHgMod2
        public static int GetIndexLimited(HgFileStatus status)
        {
            switch (status)
            {
            case HgFileStatus.Modified:
                return(0);

            case HgFileStatus.Added:
            case HgFileStatus.Copied:
            case HgFileStatus.Renamed:
                return(1);

            case HgFileStatus.Removed:
                return(2);

            case HgFileStatus.Clean:
                return(3);

            default:
                return(-1);
            }
        }
コード例 #17
0
        private static bool ItemOrChildrenStatusMatches(VSITEMSELECTION item, HgFileStatus pattern)
        {
            if (ItemStatusMatches(item, pattern))
            {
                return true;
            }

            return AnyChildItemStatusMatches(item, pattern);
        }
コード例 #18
0
ファイル: HgFileInfo.cs プロジェクト: vitidev/VisualHgMod2
 public bool StatusMatches(HgFileStatus pattern)
 {
     return(Status == pattern || (Status & pattern) > 0);
 }
コード例 #19
0
        private static Image GetImage(ImageList imageList, HgFileStatus status)
        {
            var iconIndex = GetIndex(status);

            return imageList.Images[iconIndex];
        }
コード例 #20
0
ファイル: HgFileInfo.cs プロジェクト: HexWrench/VisualHG2015
 public bool StatusMatches(HgFileStatus pattern)
 {
     return Status == pattern || (Status & pattern) > 0;
 }
コード例 #21
0
        private static bool ItemStatusMatches(VSITEMSELECTION item, HgFileStatus pattern)
        {
            var fileName = GetItemFileName(item);

            return VisualHgFileStatus.Matches(fileName, pattern);
        }
コード例 #22
0
        private static bool ItemStatusMatches(uint itemId, IVsProject project, HgFileStatus pattern)
        {
            var fileName = GetItemFileName(project, itemId);

            return(VisualHgFileStatus.Matches(fileName, pattern));
        }
コード例 #23
0
 public static bool SelectedFileStatusMatches(HgFileStatus pattern)
 {
     return(VisualHgFileStatus.Matches(SelectedFile, pattern));
 }
コード例 #24
0
 private bool NeedToSearchChildren(string fileName, HgFileStatus status)
 {
     return(VisualHgOptions.Global.ProjectStatusIncludesChildren &&
            IsProject(fileName) &&
            !VisualHgFileStatus.Matches(status, HgFileStatus.Pending));
 }
コード例 #25
0
        private bool OverrideStatus(string fileName, HgFileStatus status)
        {
            if (NeedToSearchChildren(fileName, status))
            {
                var project = VisualHgSolution.FindProject(fileName);

                return HasPendingChildren(project);
            }

            return false;
        }
コード例 #26
0
        private static bool AnyChildItemStatusMatches(VSITEMSELECTION item, HgFileStatus pattern)
        {
            var project = item.pHier as IVsProject;

            if (project == null)
            {
                return false;
            }

            return GetProjectItemIds(item.pHier, item.itemid).
                Any(x => ItemStatusMatches(x, project, pattern));
        }
コード例 #27
0
 private bool NeedToSearchChildren(string fileName, HgFileStatus status)
 {
     return VisualHgOptions.Global.ProjectStatusIncludesChildren &&
         IsProject(fileName) &&
         !VisualHgFileStatus.Matches(status, HgFileStatus.Pending);
 }
コード例 #28
0
 public static bool SelectedFileStatusMatches(HgFileStatus pattern)
 {
     return VisualHgFileStatus.Matches(SelectedFile, pattern);
 }
コード例 #29
0
ファイル: Hg.cs プロジェクト: HexWrench/VisualHG2015
        private static string[] GetFilesToAdd(string[] fileNames, HgFileStatus filter)
        {
            var files = GetRawFileInfo(fileNames);

            return files
                .Where(x => x.StatusMatches(filter))
                .Select(x => x.FullName)
                .ToArray();
        }
コード例 #30
0
        private static bool AnySelectedFileStatusMatches(HgFileStatus pattern, bool includeChildren)
        {
            if (includeChildren)
            {
                return GetSelectedItems().Any(x => ItemOrChildrenStatusMatches(x, pattern));
            }

            return GetSelectedItems().Any(x => ItemStatusMatches(x, pattern));
        }
コード例 #31
0
        private static bool ItemStatusMatches(VSITEMSELECTION item, HgFileStatus pattern)
        {
            var fileName = GetItemFileName(item);

            return(VisualHgFileStatus.Matches(fileName, pattern));
        }
コード例 #32
0
        private static bool ItemStatusMatches(uint itemId, IVsProject project, HgFileStatus pattern)
        {
            var fileName = GetItemFileName(project, itemId);

            return VisualHgFileStatus.Matches(fileName, pattern);
        }
コード例 #33
0
 public static bool Matches(HgFileStatus status, HgFileStatus pattern)
 {
     return (status & pattern) > 0;
 }
コード例 #34
0
ファイル: StatusImages.cs プロジェクト: vitidev/VisualHgMod2
        private static Image GetImage(ImageList imageList, HgFileStatus status)
        {
            var iconIndex = GetIndex(status);

            return(imageList.Images[iconIndex]);
        }
コード例 #35
0
 public ComparableStatus(HgFileStatus value)
 {
     Value = value;
 }
コード例 #36
0
 public static bool Matches(HgFileStatus status, HgFileStatus pattern)
 {
     return((status & pattern) > 0);
 }
コード例 #37
0
 public static bool SearchAnySelectedFileStatusMatches(HgFileStatus pattern)
 {
     return(AnySelectedFileStatusMatches(pattern, VisualHgOptions.Global.ProjectStatusIncludesChildren));
 }
コード例 #38
0
        private VsStateIcon GetStatusIcon(HgFileStatus status)
        {
            var iconIndex = 0;

            if (StatusIconsLimited)
            {
                iconIndex = StatusImages.GetIndexLimited(status);
            }
            else
            {
                iconIndex = StatusImages.GetIndex(status);
            }

            return GetStatusIcon(iconIndex);
        }
コード例 #39
0
 public static bool SearchAnySelectedFileStatusMatches(HgFileStatus pattern)
 {
     return AnySelectedFileStatusMatches(pattern, VisualHgOptions.Global.ProjectStatusIncludesChildren);
 }