Example #1
0
        private void InitializeSoft()
        {
            GitStash gitStash = Stashes.SelectedItem as GitStash;

            Stashed.SetDiffs();

            Loading.Visible                       = true;
            Loading.IsAnimating                   = true;
            Stashes.Enabled                       = false;
            refreshToolStripButton.Enabled        = false;
            toolStripButton_customMessage.Enabled = false;
            if (gitStash == _currentWorkingDirStashItem)
            {
                toolStripButton_customMessage.Enabled = true;
                _asyncLoader.LoadAsync(() => Module.GetAllChangedFiles(), LoadGitItemStatuses);
                Clear.Enabled = false; // disallow Drop  (of current working directory)
                Apply.Enabled = false; // disallow Apply (of current working directory)
            }
            else if (gitStash != null)
            {
                _asyncLoader.LoadAsync(() => Module.GetStashDiffFiles(gitStash.Name), LoadGitItemStatuses);
                Clear.Enabled = true; // allow Drop
                Apply.Enabled = true; // allow Apply
            }
        }
Example #2
0
 private void LoadGitItemStatuses(IReadOnlyList <GitItemStatus> gitItemStatuses)
 {
     Stashed.SetDiffs(items: gitItemStatuses);
     Loading.Visible = false;
     Stashes.Enabled = true;
     refreshToolStripButton.Enabled = true;
 }
Example #3
0
        private void LoadGitItemStatuses(IReadOnlyList <GitItemStatus> gitItemStatuses)
        {
            GitStash gitStash = Stashes.SelectedItem as GitStash;

            if (gitStash == _currentWorkingDirStashItem)
            {
                // FileStatusList has no interface for both worktree<-index, index<-HEAD at the same time
                // Must be handled when displaying
                var headId   = Module.RevParse("HEAD");
                var headRev  = new GitRevision(headId);
                var indexRev = new GitRevision(ObjectId.IndexId)
                {
                    ParentIds = new[] { headId }
                };
                var workTreeRev = new GitRevision(ObjectId.WorkTreeId)
                {
                    ParentIds = new[] { ObjectId.IndexId }
                };
                var indexItems    = gitItemStatuses.Where(item => item.Staged == StagedStatus.Index).ToList();
                var workTreeItems = gitItemStatuses.Where(item => item.Staged != StagedStatus.Index).ToList();
                Stashed.SetStashDiffs(headRev, indexRev, ResourceManager.Strings.Index, indexItems, workTreeRev, ResourceManager.Strings.Workspace, workTreeItems);
            }
            else
            {
                var firstId    = Module.RevParse(gitStash.Name + "^");
                var selectedId = Module.RevParse(gitStash.Name);
                var firstRev   = firstId == null ? null : new GitRevision(firstId);
                var secondRev  = selectedId == null ? null : new GitRevision(selectedId)
                {
                    ParentIds = new[] { firstId }
                };
                Stashed.SetDiffs(firstRev, secondRev, gitItemStatuses);
            }

            Loading.Visible                = false;
            Loading.IsAnimating            = false;
            Stashes.Enabled                = true;
            refreshToolStripButton.Enabled = true;
        }
Example #4
0
 private void FileViewer_BottomScrollReached(object sender, EventArgs e)
 {
     Stashed.SelectNextVisibleItem();
     View.ScrollToTop();
 }
Example #5
0
 private void FileViewer_TopScrollReached(object sender, EventArgs e)
 {
     Stashed.SelectPreviousVisibleItem();
     View.ScrollToBottom();
 }