コード例 #1
0
        public SynchronizeListItem(SynchronizeListView list, SvnItem item, SvnStatusEventArgs status)
            : base(list)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            _item   = item;
            _status = status;

            _localChange  = PendingChange.CombineStatus(status.LocalContentStatus, status.LocalTextStatus, status.LocalPropertyStatus, item.IsTreeConflicted, item);
            _remoteChange = PendingChange.CombineStatus(status.RemoteContentStatus, status.RemoteTextStatus, status.RemotePropertyStatus, false, null);

            if (_remoteChange == PendingChangeKind.None)
            {
                if (status.RemoteLock != null)
                {
                    _remoteChange = PendingChangeKind.LockedOnly;
                }
            }

            _localStatus  = new PendingChangeStatus(_localChange);
            _remoteStatus = new PendingChangeStatus(_remoteChange);

            UpdateText();
        }
コード例 #2
0
ファイル: ConflictListItem.cs プロジェクト: windygu/AnkhSVN
        public void RefreshText(IAnkhServiceProvider context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            ISvnStatusCache cache = context.GetService <ISvnStatusCache>();

            ImageIndex = PendingChange.IconIndex;
            SvnItem item = cache[FullPath];

            if (item == null)
            {
                throw new InvalidOperationException(); // Item no longer valued
            }
            PendingChangeStatus pcs = PendingChange.Change ?? new PendingChangeStatus(PendingChangeKind.None);

            SetValues(
                pcs.PendingCommitText,
                PendingChange.ChangeList,
                GetDirectory(item),
                PendingChange.FullPath,
                item.IsLocked ? PCResources.LockedValue : "", // Locked
                SafeDate(item.Modified),                      // Modified
                PendingChange.Name,
                PendingChange.RelativePath,
                PendingChange.Project,
                context.GetService <IFileIconMapper>().GetFileType(item),
                SafeWorkingCopy(item));
        }
コード例 #3
0
        private void RefreshValues()
        {
            bool   exists = SvnItem.Exists;
            string name   = string.IsNullOrEmpty(SvnItem.Name) ? SvnItem.FullPath : SvnItem.Name;

            SvnStatusData     status = SvnItem.Status;
            PendingChangeKind kind   = PendingChange.CombineStatus(status.LocalNodeStatus, status.LocalTextStatus, status.LocalPropertyStatus, SvnItem.IsTreeConflicted, SvnItem);

            if (_chg == null || _chg.State != kind)
            {
                _chg = new PendingChangeStatus(kind);
            }

            SetValues(
                name,
                Modified.ToString("g"),
                View.Context.GetService <IFileIconMapper>().GetFileType(SvnItem),
                _chg.ExplorerText,
                SvnItem.Status.IsLockedLocal ? Ankh.UI.PendingChanges.PCResources.LockedValue : "",
                SvnItem.Status.Revision.ToString(),
                SvnItem.Status.LastChangeTime.ToLocalTime().ToString(),
                SvnItem.Status.LastChangeRevision.ToString(),
                SvnItem.Status.LastChangeAuthor,
                SvnItem.Status.LocalNodeStatus.ToString(),
                SvnItem.Status.LocalPropertyStatus.ToString(),
                SvnItem.Status.IsCopied.ToString(),
                SvnItem.IsConflicted.ToString(),
                SvnItem.FullPath
                );

            StateImageIndex = (int)View.StatusMapper.GetStatusImageForSvnItem(SvnItem);
        }
コード例 #4
0
ファイル: SynchronizeListItem.cs プロジェクト: necora/ank_git
        public SynchronizeListItem(SynchronizeListView list, SvnItem item, SvnStatusEventArgs status)
            : base(list)
        {
            if (item == null)
                throw new ArgumentNullException("item");

            _item = item;
            _status = status;

            _localChange = PendingChange.CombineStatus(status.LocalContentStatus, status.LocalPropertyStatus, item.IsTreeConflicted, item);
            _remoteChange = PendingChange.CombineStatus(status.RemoteContentStatus, status.RemotePropertyStatus, false, null);

            if (_remoteChange == PendingChangeKind.None)
            {
                if (status.RemoteLock != null)
                    _remoteChange = PendingChangeKind.LockedOnly;
            }

            _localStatus = new PendingChangeStatus(_localChange);
            _remoteStatus = new PendingChangeStatus(_remoteChange);

            UpdateText();
        }
コード例 #5
0
        private void RefreshValues()
        {
            bool exists = SvnItem.Exists;
            string name = string.IsNullOrEmpty(SvnItem.Name) ? SvnItem.FullPath : SvnItem.Name;

            AnkhStatus status = SvnItem.Status;
            PendingChangeKind kind = PendingChange.CombineStatus(status.LocalContentStatus, status.LocalPropertyStatus, SvnItem.IsTreeConflicted, SvnItem);

            if (_chg == null || _chg.State != kind)
                _chg = new PendingChangeStatus(kind);

            SetValues(
                name,
                Modified.ToString("g"),
                View.Context.GetService<IFileIconMapper>().GetFileType(SvnItem),
                _chg.ExplorerText,
                SvnItem.Status.IsLockedLocal ? Ankh.UI.PendingChanges.PCStrings.LockedValue : "",
                SvnItem.Status.Revision.ToString(),
                SvnItem.Status.LastChangeTime.ToLocalTime().ToString(),
                SvnItem.Status.LastChangeRevision.ToString(),
                SvnItem.Status.LastChangeAuthor,
                SvnItem.Status.LocalContentStatus.ToString(),
                SvnItem.Status.LocalPropertyStatus.ToString(),
                SvnItem.Status.IsCopied.ToString(),
                SvnItem.IsConflicted.ToString(),
                SvnItem.FullPath
                );

            StateImageIndex = (int)View.StatusMapper.GetStatusImageForSvnItem(SvnItem);
        }
コード例 #6
0
        private void RefreshValues()
        {
            bool exists = GitItem.Exists;
            string name = string.IsNullOrEmpty(GitItem.Name) ? GitItem.FullPath : GitItem.Name;

            VisualGitStatus status = GitItem.Status;
            PendingChangeKind kind = PendingChange.CombineStatus(status.State, GitItem.IsTreeConflicted, GitItem);

            if (_chg == null || _chg.State != kind)
                _chg = new PendingChangeStatus(kind);

            SetValues(
                name,
                Modified.ToString("g"),
                View.Context.GetService<IFileIconMapper>().GetFileType(GitItem),
                _chg.ExplorerText,
                "",
                GitItem.Status.Revision.ToString(),
                GitItem.Status.LastChangeTime.ToLocalTime().ToString(),
                GitItem.Status.LastChangeRevision.ToString(),
                GitItem.Status.LastChangeAuthor,
                GitItem.Status.State.ToString(),
                "",
                GitItem.Status.IsCopied.ToString(),
                GitItem.IsConflicted.ToString(),
                GitItem.FullPath
                );

            StateImageIndex = (int)View.StatusMapper.GetStatusImageForGitItem(GitItem);
        }
コード例 #7
0
        public void RefreshText(IAnkhServiceProvider context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            ISvnStatusCache cache = context.GetService <ISvnStatusCache>();

            int idx = PendingChange.IconIndex;

            if (idx >= 0)
            {
                ImageIndex = idx; // Setting to -1 raises an exception
            }
            SvnItem item = cache[FullPath];

            if (item == null)
            {
                throw new InvalidOperationException(); // Every path should return a SvnItem
            }
            PendingChangeStatus pcs = PendingChange.Change ?? new PendingChangeStatus(PendingChangeKind.None);

            SetValues(
                pcs.PendingCommitText,
                _lastChangeList = PendingChange.ChangeList,
                GetDirectory(item),
                PendingChange.FullPath,
                item.IsLocked ? PCResources.LockedValue : "", // Locked
                SafeDate(item.Modified),                      // Modified
                PendingChange.Name,
                PendingChange.RelativePath,
                PendingChange.Project,
                GetRevision(PendingChange),
                PendingChange.FileType,
                SafeWorkingCopy(item));

            IAnkhCommandStates states = context.GetService <IAnkhCommandStates>();

            if (!SystemInformation.HighContrast &&
                (!states.ThemeDefined || states.ThemeLight))
            {
                System.Drawing.Color clr = System.Drawing.Color.Black;

                if (item.IsConflicted || PendingChange.Kind == PendingChangeKind.WrongCasing)
                {
                    clr = System.Drawing.Color.Red;
                }
                else if (item.IsDeleteScheduled)
                {
                    if (item.Exists && item.InSolution && !item.IsSccExcluded)
                    {
                        clr = System.Drawing.Color.FromArgb(100, 0, 100); // As added
                    }
                    else
                    {
                        clr = System.Drawing.Color.DarkRed;
                    }
                }
                else if (item.Status.IsCopied || item.Status.LocalNodeStatus == SharpSvn.SvnStatus.Added)
                {
                    clr = System.Drawing.Color.FromArgb(100, 0, 100);
                }
                else if (!item.IsVersioned)
                {
                    if (item.InSolution && !item.IsIgnored)
                    {
                        clr = System.Drawing.Color.FromArgb(100, 0, 100); // Same as added+copied
                    }
                    else
                    {
                        clr = System.Drawing.Color.Black;
                    }
                }
                else if (item.IsModified)
                {
                    clr = System.Drawing.Color.DarkBlue;
                }

                ForeColor = clr;
            }
            else if (this.ListView != null)
            {
                ForeColor = this.ListView.ForeColor;
            }
        }