Example #1
0
        private void Reload()
        {
            PendingChange.RefreshContext rc           = new PendingChange.RefreshContext(Context);
            Dictionary <string, bool>    checkedCache = new Dictionary <string, bool>(StringComparer.OrdinalIgnoreCase);

            foreach (PendingCommitItem pci in pendingList.Items)
            {
                checkedCache[pci.FullPath] = pci.Checked;
            }

            pendingList.ClearItems();
            foreach (SvnItem i in _allItems)
            {
                if (_filter != null && !_filter(i))
                {
                    continue;
                }

                PendingChange     pc  = new PendingChange(rc, i);
                PendingCommitItem pci = new PendingCommitItem(pendingList, pc);

                bool chk;
                if (checkedCache.TryGetValue(i.FullPath, out chk))
                {
                    pci.Checked = chk;
                }
                else if (_checkedFilter != null && !_checkedFilter(i))
                {
                    pci.Checked = false;
                }

                pendingList.Items.Add(pci);
            }
        }
Example #2
0
        public override void OnUpdate(CommandUpdateEventArgs e)
        {
            PendingChange.RefreshContext rc = null;
            foreach (SvnItem i in e.Selection.GetSelectedSvnItems(true))
            {
                if (PendingChange.IsPending(i))
                {
                    PendingChange pc;

                    if (rc == null)
                    {
                        rc = new PendingChange.RefreshContext(e.Context);
                    }

                    if (PendingChange.CreateIfPending(rc, i, out pc))
                    {
                        if (pc.IsNoChangeForPatching())
                        {
                            continue;
                        }
                    }
                    return;
                }
            }
            e.Enabled = false;
        }
Example #3
0
        public override void OnExecute(CommandEventArgs e)
        {
            IPendingChangesManager pcm = e.GetService <IPendingChangesManager>();

            PendingChange.RefreshContext       rc = new PendingChange.RefreshContext(e.Context);
            Dictionary <string, PendingChange> selectedChanges = new Dictionary <string, PendingChange>(StringComparer.OrdinalIgnoreCase);
            List <SvnItem> resources = new List <SvnItem>();

            foreach (SvnItem item in e.Selection.GetSelectedSvnItems(true))
            {
                PendingChange pc;

                if (PendingChange.CreateIfPending(rc, item, out pc))
                {
                    if (!pc.IsNoChangeForPatching())
                    {
                        selectedChanges.Add(pc.FullPath, pc);
                        resources.Add(pc.SvnItem);
                    }
                }
            }

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

            using (PendingChangeSelector pcs = new PendingChangeSelector())
            {
                pcs.Text = CommandStrings.CreatePatchTitle;
                pcs.PreserveWindowPlacement = true;
                pcs.LoadItems(resources);

                DialogResult dr = pcs.ShowDialog(e.Context);

                if (dr != DialogResult.OK)
                {
                    return;
                }

                string fileName = GetFileName(e.Context.DialogOwner);
                if (string.IsNullOrEmpty(fileName))
                {
                    return;
                }

                PendingChangeCreatePatchArgs pca = new PendingChangeCreatePatchArgs();
                pca.FileName = fileName;
                IAnkhSolutionSettings ss = e.GetService <IAnkhSolutionSettings>();
                pca.RelativeToPath      = ss.ProjectRoot;
                pca.AddUnversionedFiles = true;

                List <PendingChange> patchChanges = new List <PendingChange>(pcs.GetSelection());
                e.GetService <IPendingChangeHandler>().CreatePatch(patchChanges, pca);
            }
        }
 public ItemLister(IAnkhServiceProvider context, IEnumerable <SvnItem> items)
     : base(context)
 {
     if (items == null)
     {
         throw new ArgumentNullException("items");
     }
     _items = items;
     _rc    = new PendingChange.RefreshContext(context);
 }
Example #5
0
        private void Reload()
        {
            PendingChange.RefreshContext rc = new PendingChange.RefreshContext(Context);
            Dictionary<string, bool> checkedCache = new Dictionary<string, bool>(StringComparer.OrdinalIgnoreCase);

            foreach (PendingCommitItem pci in pendingList.Items)
            {
                checkedCache[pci.FullPath] = pci.Checked;
            }

            pendingList.ClearItems();
            foreach (SvnItem i in _allItems)
            {
                if (_filter != null && !_filter(i))
                    continue;

                PendingChange pc = new PendingChange(rc, i);
                PendingCommitItem pci = new PendingCommitItem(pendingList, pc);

                bool chk;
                if (checkedCache.TryGetValue(i.FullPath, out chk))
                    pci.Checked = chk;
                else if (_checkedFilter != null && !_checkedFilter(i))
                    pci.Checked = false;

                pendingList.Items.Add(pci);
            }
        }