From abdf9d7e75b88eb5a3df48fe759cbb77a8646212 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 13 Aug 2024 19:30:10 +0800 Subject: [PATCH] refactor: rewrite commit web links --- src/ViewModels/CommitDetail.cs | 18 ++++++++++++++++-- src/ViewModels/Repository.cs | 19 ------------------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs index 04fe4d06..2cf549f2 100644 --- a/src/ViewModels/CommitDetail.cs +++ b/src/ViewModels/CommitDetail.cs @@ -91,8 +91,9 @@ namespace SourceGit.ViewModels public AvaloniaList WebLinks { - get => _repo.TryGetCommitLinks(); - } + get; + private set; + } = new AvaloniaList(); public AvaloniaList IssueTrackerRules { @@ -102,6 +103,19 @@ namespace SourceGit.ViewModels public CommitDetail(Repository repo) { _repo = repo; + + foreach (var remote in repo.Remotes) + { + if (remote.TryGetVisitURL(out var url)) + { + if (url.StartsWith("https://github.com/", StringComparison.Ordinal)) + WebLinks.Add(new Models.CommitLink() { Name = "Github", URLTemplate = $"{url}/commit/SOURCEGIT_COMMIT_HASH_CODE" }); + else if (url.StartsWith("https://gitlab.com/", StringComparison.Ordinal)) + WebLinks.Add(new Models.CommitLink() { Name = "GitLab", URLTemplate = $"{url}/-/commit/SOURCEGIT_COMMIT_HASH_CODE" }); + else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal)) + WebLinks.Add(new Models.CommitLink() { Name = "Gitee", URLTemplate = $"{url}/commit/SOURCEGIT_COMMIT_HASH_CODE" }); + } + } } public void Cleanup() diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index 0ba1c51d..e304be0b 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -496,25 +496,6 @@ namespace SourceGit.ViewModels PopupHost.ShowAndStartPopup(new Cleanup(this)); } - public AvaloniaList TryGetCommitLinks() - { - var rs = new AvaloniaList(); - foreach (var remote in _remotes) - { - if (remote.TryGetVisitURL(out var url)) - { - if (url.StartsWith("https://github.com/", StringComparison.Ordinal)) - rs.Add(new Models.CommitLink() { Name = "Github", URLTemplate = $"{url}/commit/SOURCEGIT_COMMIT_HASH_CODE" }); - else if (url.StartsWith("https://gitlab.com/", StringComparison.Ordinal)) - rs.Add(new Models.CommitLink() { Name = "GitLab", URLTemplate = $"{url}/-/commit/SOURCEGIT_COMMIT_HASH_CODE" }); - else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal)) - rs.Add(new Models.CommitLink() { Name = "Gitee", URLTemplate = $"{url}/commit/SOURCEGIT_COMMIT_HASH_CODE" }); - } - } - - return rs; - } - public void ClearHistoriesFilter() { _settings.Filters.Clear();