Ejemplo n.º 1
0
        public override void OnExecute(CommandEventArgs e)
        {
            string name;

            if (e.Command == AnkhCommand.MoveToIgnoreChangeList)
                name = IgnoreOnCommit;
            else if (e.Command == AnkhCommand.RemoveFromChangeList)
                name = null;
            else if (e.Command >= AnkhCommand.MoveToExistingChangeList0 && e.Command < AnkhCommand.MoveToExistingChangeListMax)
            {
                List<string> names = GetRecentNames(e);

                int n = e.Command - AnkhCommand.MoveToExistingChangeList0;

                if (n >= names.Count)
                    return;

                name = names[n];
            }
            else using(CreateChangeListDialog dlg = new CreateChangeListDialog())
            {
                if(DialogResult.OK != dlg.ShowDialog(e.Context))
                    return;

                name = dlg.ChangeListName;
            }

            if(string.IsNullOrEmpty(name))
                name = null;

            List<string> paths = new List<string>();

            foreach (SvnItem item in e.Selection.GetSelectedSvnItems(false))
            {
                if (item.IsVersioned && (name != null) ? (item.IsFile || item.IsModified || item.IsDocumentDirty) : !string.IsNullOrEmpty(item.Status.ChangeList))
                {
                    paths.Add(item.FullPath);
                }
            }

            if (paths.Count == 0)
                return;

            e.Selection.Cache.Remove(typeof(ItemMoveToChangeList)); // Remove cached list of items

            using (SvnClient cl = e.GetService<ISvnClientPool>().GetNoUIClient())
            {
                if (name == null)
                {
                    SvnRemoveFromChangeListArgs ra = new SvnRemoveFromChangeListArgs();
                    ra.ThrowOnError = false;
                    cl.RemoveFromChangeList(paths, ra);
                }
                else
                {
                    SvnAddToChangeListArgs ca = new SvnAddToChangeListArgs();
                    ca.ThrowOnError = false;
                    cl.AddToChangeList(paths, name, ca);
                }

                // The svn client broadcasts glyph updates to fix our UI
            }
        }
Ejemplo n.º 2
0
        public override void OnExecute(CommandEventArgs e)
        {
            string name;

            if (e.Command == AnkhCommand.MoveToIgnoreChangeList)
            {
                name = IgnoreOnCommit;
            }
            else if (e.Command == AnkhCommand.RemoveFromChangeList)
            {
                name = null;
            }
            else if (e.Command >= AnkhCommand.MoveToExistingChangeList0 && e.Command < AnkhCommand.MoveToExistingChangeListMax)
            {
                List <string> names = GetRecentNames(e);

                int n = e.Command - AnkhCommand.MoveToExistingChangeList0;

                if (n >= names.Count)
                {
                    return;
                }

                name = names[n];
            }
            else
            {
                using (CreateChangeListDialog dlg = new CreateChangeListDialog())
                {
                    if (DialogResult.OK != dlg.ShowDialog(e.Context))
                    {
                        return;
                    }

                    name = dlg.ChangeListName;
                }
            }

            if (string.IsNullOrEmpty(name))
            {
                name = null;
            }

            List <string> paths = new List <string>();

            foreach (SvnItem item in e.Selection.GetSelectedSvnItems(false))
            {
                if (item.IsVersioned && (name != null) ? (item.IsFile || item.IsModified || item.IsDocumentDirty) : !string.IsNullOrEmpty(item.Status.ChangeList))
                {
                    paths.Add(item.FullPath);
                }
            }

            if (paths.Count == 0)
            {
                return;
            }

            e.Selection.Cache.Remove(typeof(ItemMoveToChangeList)); // Remove cached list of items

            using (SvnClient cl = e.GetService <ISvnClientPool>().GetNoUIClient())
            {
                if (name == null)
                {
                    SvnRemoveFromChangeListArgs ra = new SvnRemoveFromChangeListArgs();
                    ra.ThrowOnError = false;
                    cl.RemoveFromChangeList(paths, ra);
                }
                else
                {
                    SvnAddToChangeListArgs ca = new SvnAddToChangeListArgs();
                    ca.ThrowOnError = false;
                    cl.AddToChangeList(paths, name, ca);
                }

                // The svn client broadcasts glyph updates to fix our UI
            }
        }