From 9973a116d12cf0a043ed415c0dcd276d4a277c04 Mon Sep 17 00:00:00 2001 From: Paolo Ghibaudo Date: Sat, 29 Jun 2024 14:17:16 +0200 Subject: [PATCH] Improved color graph lines --- src/Models/CommitGraph.cs | 50 ++++++++++++++++++++++++++++++------ src/ViewModels/Repository.cs | 2 +- src/Views/Histories.axaml.cs | 1 + 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/Models/CommitGraph.cs b/src/Models/CommitGraph.cs index 6b26eba5..ea00d691 100644 --- a/src/Models/CommitGraph.cs +++ b/src/Models/CommitGraph.cs @@ -8,15 +8,49 @@ namespace SourceGit.Models { public class CommitGraph { + static SolidColorBrush CreateBrushFromHex(string hex) + { + // Rimuove il carattere '#' se presente all'inizio del codice esadecimale + if (hex.StartsWith("#")) + { + hex = hex.Substring(1); + } + + // Converte il codice esadecimale in un valore ARGB + uint argb = uint.Parse(hex, System.Globalization.NumberStyles.HexNumber); + + // Estrae i componenti del colore + byte a = (byte)((argb >> 24) & 0xFF); + byte r = (byte)((argb >> 16) & 0xFF); + byte g = (byte)((argb >> 8) & 0xFF); + byte b = (byte)(argb & 0xFF); + + // Crea un oggetto Color + Color color = Color.FromArgb(a, r, g, b); + + // Crea e restituisce un SolidColorBrush usando il colore ottenuto + return new SolidColorBrush(color); + } + public static readonly Pen[] Pens = [ - new Pen(Brushes.Orange, 2), - new Pen(Brushes.ForestGreen, 2), - new Pen(Brushes.Gold, 2), - new Pen(Brushes.Magenta, 2), - new Pen(Brushes.Red, 2), - new Pen(Brushes.Gray, 2), - new Pen(Brushes.Turquoise, 2), - new Pen(Brushes.Olive, 2), + new Pen(CreateBrushFromHex("#ff15a0bf")), + new Pen(CreateBrushFromHex("#ff0669f7")), + new Pen(CreateBrushFromHex("#ff8e00c2")), + new Pen(CreateBrushFromHex("#ffc517b6")), + new Pen(CreateBrushFromHex("#ffd90171")), + new Pen(CreateBrushFromHex("#ffcd0101")), + new Pen(CreateBrushFromHex("#fff25d2e")), + new Pen(CreateBrushFromHex("#fff2ca33")), + new Pen(CreateBrushFromHex("#ff7bd938")), + new Pen(CreateBrushFromHex("#ff2ece9d")), + //new Pen(Brushes.Orange, 2), + //new Pen(Brushes.ForestGreen, 2), + //new Pen(Brushes.Gold, 2), + //new Pen(Brushes.Magenta, 2), + //new Pen(Brushes.Red, 2), + //new Pen(Brushes.Gray, 2), + //new Pen(Brushes.Turquoise, 2), + //new Pen(Brushes.Olive, 2), ]; public class Path diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index d4bffa0d..30e5710a 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -685,7 +685,7 @@ namespace SourceGit.ViewModels } var commits = new Commands.QueryCommits(FullPath, limits).Result(); - var graph = Models.CommitGraph.Parse(commits, 8); + var graph = Models.CommitGraph.Parse(commits, 10); Dispatcher.UIThread.Invoke(() => { diff --git a/src/Views/Histories.axaml.cs b/src/Views/Histories.axaml.cs index 37ad441d..161bec31 100644 --- a/src/Views/Histories.axaml.cs +++ b/src/Views/Histories.axaml.cs @@ -158,6 +158,7 @@ namespace SourceGit.Views var geo = new StreamGeometry(); var pen = Models.CommitGraph.Pens[line.Color]; + pen.Thickness = 2.5; using (var ctx = geo.Open()) { var started = false;