mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-22 12:45:00 +00:00
ux: only show Set as tracking branch
option if selected remote branch is not upstream of selected local branch
This commit is contained in:
parent
6dface0b62
commit
08567a7420
2 changed files with 17 additions and 22 deletions
|
@ -19,25 +19,7 @@ namespace SourceGit.ViewModels
|
|||
set
|
||||
{
|
||||
if (SetProperty(ref _selectedLocalBranch, value))
|
||||
{
|
||||
// If selected local branch has upstream branch. Try to find it's remote.
|
||||
if (!string.IsNullOrEmpty(value.Upstream))
|
||||
{
|
||||
var branch = _repo.Branches.Find(x => x.FullName == value.Upstream);
|
||||
if (branch != null)
|
||||
{
|
||||
var remote = _repo.Remotes.Find(x => x.Name == branch.Remote);
|
||||
if (remote != null && remote != _selectedRemote)
|
||||
{
|
||||
SelectedRemote = remote;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Re-generate remote branches and auto-select remote branches.
|
||||
AutoSelectBranchByRemote();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -73,7 +55,11 @@ namespace SourceGit.ViewModels
|
|||
public Models.Branch SelectedRemoteBranch
|
||||
{
|
||||
get => _selectedRemoteBranch;
|
||||
set => SetProperty(ref _selectedRemoteBranch, value);
|
||||
set
|
||||
{
|
||||
if (SetProperty(ref _selectedRemoteBranch, value))
|
||||
IsSetTrackOptionVisible = value != null && _selectedLocalBranch.Upstream != value.FullName;
|
||||
}
|
||||
}
|
||||
|
||||
public bool PushAllTags
|
||||
|
@ -82,6 +68,12 @@ namespace SourceGit.ViewModels
|
|||
set;
|
||||
}
|
||||
|
||||
public bool IsSetTrackOptionVisible
|
||||
{
|
||||
get => _isSetTrackOptionVisible;
|
||||
private set => SetProperty(ref _isSetTrackOptionVisible, value);
|
||||
}
|
||||
|
||||
public bool Tracking
|
||||
{
|
||||
get;
|
||||
|
@ -160,7 +152,7 @@ namespace SourceGit.ViewModels
|
|||
remoteBranchName,
|
||||
PushAllTags,
|
||||
ForcePush,
|
||||
Tracking,
|
||||
_isSetTrackOptionVisible && Tracking,
|
||||
SetProgressDescription).Exec();
|
||||
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||
return succ;
|
||||
|
@ -218,5 +210,6 @@ namespace SourceGit.ViewModels
|
|||
private Models.Remote _selectedRemote = null;
|
||||
private List<Models.Branch> _remoteBranches = new List<Models.Branch>();
|
||||
private Models.Branch _selectedRemoteBranch = null;
|
||||
private bool _isSetTrackOptionVisible = false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue