!24 右键菜单增加取消追踪,并在删除相关的远程分支时自动取消跟踪

Merge pull request !24 from Jai/feature/unset-upstream
This commit is contained in:
ZCShou 2021-09-08 00:19:36 +00:00 committed by Gitee
commit 50fe327a89
5 changed files with 37 additions and 7 deletions

View file

@ -58,7 +58,7 @@ namespace SourceGit.Views.Widgets {
var watcher = Models.Watcher.Get(repo.Path);
watcher.Navigate += NavigateTo;
watcher.BranchChanged += UpdateBraches;
watcher.BranchChanged += UpdateBranches;
watcher.BranchChanged += UpdateCommits;
watcher.WorkingCopyChanged += UpdateWorkingCopy;
watcher.StashChanged += UpdateStashes;
@ -94,7 +94,7 @@ namespace SourceGit.Views.Widgets {
#region DATA
public void Refresh() {
UpdateBraches();
UpdateBranches();
UpdateWorkingCopy();
UpdateStashes();
UpdateTags();
@ -190,7 +190,7 @@ namespace SourceGit.Views.Widgets {
foreach (var node in nodes) SortBranches(node.Children);
}
private void UpdateBraches() {
private void UpdateBranches() {
if (!isFirstLoaded) return;
Task.Run(() => {
@ -678,12 +678,22 @@ namespace SourceGit.Views.Widgets {
if (branch.Upstream == b.FullName) target.Icon = currentTrackingIcon;
target.Click += (o, e) => {
new Commands.Branch(repo.Path, branch.Name).SetUpstream(upstream);
UpdateBraches();
UpdateBranches();
e.Handled = true;
};
tracking.Items.Add(target);
}
var unsetUpstream = new MenuItem();
unsetUpstream.Header = App.Text("BranchCM.UnsetUpstream");
unsetUpstream.Click += (_, e) => {
new Commands.Branch(repo.Path, branch.Name).SetUpstream(string.Empty);
UpdateBranches();
e.Handled = true;
};
tracking.Items.Add(new Separator());
tracking.Items.Add(unsetUpstream);
menu.Items.Add(tracking);
}
@ -793,7 +803,12 @@ namespace SourceGit.Views.Widgets {
var delete = new MenuItem();
delete.Header = App.Text("BranchCM.Delete", branch.Name);
delete.Click += (o, e) => {
new Popups.DeleteBranch(repo.Path, branch.Name, branch.Remote).Show();
new Popups.DeleteBranch(repo.Path, branch.Name, branch.Remote)
.Then(() => {
repo.Branches.FindAll(item => item.Upstream == branch.FullName).ForEach(item =>
new Commands.Branch(repo.Path, item.Name).SetUpstream(string.Empty));
})
.Show();
e.Handled = true;
};