feature: add tooltip for branches (#228)

This commit is contained in:
leo 2024-07-02 10:23:21 +08:00
parent 7965338d7c
commit 4ef0f1180f
No known key found for this signature in database
21 changed files with 54 additions and 48 deletions

View file

@ -71,7 +71,7 @@ namespace SourceGit.ViewModels
if (branch.IsLocal)
LocalBranches.Add(branch.Name);
else
RemoteBranches.Add($"{branch.Remote}/{branch.Name}");
RemoteBranches.Add(branch.FriendlyName);
}
if (RemoteBranches.Count > 0)

View file

@ -69,6 +69,17 @@ namespace SourceGit.ViewModels
set => SetProperty(ref _isSelected, value);
}
public string Tooltip
{
get
{
if (Backend is Models.Branch b)
return b.FriendlyName;
return null;
}
}
public CornerRadius CornerRadius
{
get => _cornerRadius;

View file

@ -72,8 +72,7 @@ namespace SourceGit.ViewModels
foreach (var b in creator._repo.Branches)
{
var test = b.IsLocal ? b.Name : $"{b.Remote}/{b.Name}";
if (test == name)
if (b.FriendlyName == name)
return new ValidationResult("A branch with same name already exists!");
}

View file

@ -35,9 +35,8 @@ namespace SourceGit.ViewModels
if (branch.IsLocal && !string.IsNullOrEmpty(branch.Upstream))
{
var upstream = branch.Upstream.Substring(13);
TrackingRemoteBranch = repo.Branches.Find(x => !x.IsLocal && $"{x.Remote}/{x.Name}" == upstream);
DeleteTrackingRemoteTip = new Views.NameHighlightedTextBlock("DeleteBranch.WithTrackingRemote", upstream);
TrackingRemoteBranch = repo.Branches.Find(x => x.FullName == branch.Upstream);
DeleteTrackingRemoteTip = new Views.NameHighlightedTextBlock("DeleteBranch.WithTrackingRemote", TrackingRemoteBranch.FriendlyName);
}
View = new Views.DeleteBranch() { DataContext = this };

View file

@ -37,7 +37,7 @@ namespace SourceGit.ViewModels
{
foreach (var target in Targets)
{
SetProgressDescription($"Deleting remote branch : {target.Remote}/{target.Name}");
SetProgressDescription($"Deleting remote branch : {target.FriendlyName}");
Commands.Branch.DeleteRemote(_repo.FullPath, target.Remote, target.Name);
}
}

View file

@ -39,8 +39,7 @@ namespace SourceGit.ViewModels
var check = $"{starter._prefix}{name}";
foreach (var b in starter._repo.Branches)
{
var test = b.IsLocal ? b.Name : $"{b.Remote}/{b.Name}";
if (test == check)
if (b.FriendlyName == check)
return new ValidationResult("A branch with same name already exists!");
}
}

View file

@ -175,7 +175,7 @@ namespace SourceGit.ViewModels
}
else if (d.Type == Models.DecoratorType.RemoteBranchHead)
{
var b = _repo.Branches.Find(x => !x.IsLocal && d.Name == $"{x.Remote}/{x.Name}");
var b = _repo.Branches.Find(x => !x.IsLocal && d.Name == x.FriendlyName);
FillRemoteBranchMenu(menu, b, current, commit.IsMerged);
}
else if (d.Type == Models.DecoratorType.Tag)
@ -583,7 +583,7 @@ namespace SourceGit.ViewModels
private void FillRemoteBranchMenu(ContextMenu menu, Models.Branch branch, Models.Branch current, bool merged)
{
var name = $"{branch.Remote}/{branch.Name}";
var name = branch.FriendlyName;
var submenu = new MenuItem();
submenu.Icon = App.CreateMenuIcon("Icons.Branch");

View file

@ -1202,7 +1202,7 @@ namespace SourceGit.ViewModels
if (upstream != null)
{
var fastForward = new MenuItem();
fastForward.Header = new Views.NameHighlightedTextBlock("BranchCM.FastForward", $"{upstream.Remote}/{upstream.Name}");
fastForward.Header = new Views.NameHighlightedTextBlock("BranchCM.FastForward", upstream.FriendlyName);
fastForward.Icon = App.CreateMenuIcon("Icons.FastForward");
fastForward.IsEnabled = !string.IsNullOrEmpty(branch.UpstreamTrackStatus) && branch.UpstreamTrackStatus.IndexOf('↑') < 0;
fastForward.Click += (o, e) =>
@ -1491,9 +1491,10 @@ namespace SourceGit.ViewModels
{
var menu = new ContextMenu();
var current = Branches.Find(x => x.IsCurrent);
var name = branch.FriendlyName;
var checkout = new MenuItem();
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", $"{branch.Remote}/{branch.Name}");
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", name);
checkout.Icon = App.CreateMenuIcon("Icons.Check");
checkout.Click += (o, e) =>
{
@ -1506,7 +1507,7 @@ namespace SourceGit.ViewModels
if (current != null)
{
var pull = new MenuItem();
pull.Header = new Views.NameHighlightedTextBlock("BranchCM.PullInto", $"{branch.Remote}/{branch.Name}", current.Name);
pull.Header = new Views.NameHighlightedTextBlock("BranchCM.PullInto", name, current.Name);
pull.Icon = App.CreateMenuIcon("Icons.Pull");
pull.Click += (o, e) =>
{
@ -1516,17 +1517,17 @@ namespace SourceGit.ViewModels
};
var merge = new MenuItem();
merge.Header = new Views.NameHighlightedTextBlock("BranchCM.Merge", $"{branch.Remote}/{branch.Name}", current.Name);
merge.Header = new Views.NameHighlightedTextBlock("BranchCM.Merge", name, current.Name);
merge.Icon = App.CreateMenuIcon("Icons.Merge");
merge.Click += (o, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Merge(this, $"{branch.Remote}/{branch.Name}", current.Name));
PopupHost.ShowPopup(new Merge(this, name, current.Name));
e.Handled = true;
};
var rebase = new MenuItem();
rebase.Header = new Views.NameHighlightedTextBlock("BranchCM.Rebase", current.Name, $"{branch.Remote}/{branch.Name}");
rebase.Header = new Views.NameHighlightedTextBlock("BranchCM.Rebase", current.Name, name);
rebase.Icon = App.CreateMenuIcon("Icons.Rebase");
rebase.Click += (o, e) =>
{
@ -1573,7 +1574,7 @@ namespace SourceGit.ViewModels
menu.Items.Add(new MenuItem() { Header = "-" });
var delete = new MenuItem();
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", $"{branch.Remote}/{branch.Name}");
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", name);
delete.Icon = App.CreateMenuIcon("Icons.Clear");
delete.Click += (o, e) =>
{
@ -1617,7 +1618,7 @@ namespace SourceGit.ViewModels
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (o, e) =>
{
App.CopyText(branch.Remote + "/" + branch.Name);
App.CopyText(name);
e.Handled = true;
};
@ -1810,7 +1811,7 @@ namespace SourceGit.ViewModels
{
var dup = b;
var target = new MenuItem();
target.Header = b.IsLocal ? b.Name : $"{b.Remote}/{b.Name}";
target.Header = b.FriendlyName;
target.Icon = App.CreateMenuIcon(b.IsCurrent ? "Icons.Check" : "Icons.Branch");
target.Click += (_, e) =>
{