This commit is contained in:
Nathan Baulch 2025-06-06 14:10:55 +10:00 committed by GitHub
parent 0c22409b7b
commit 7bba40d03f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
39 changed files with 84 additions and 84 deletions

View file

@ -56,7 +56,7 @@ You can find the current translation status in [TRANSLATION.md](https://github.c
**To use this tool, you need to install Git(>=2.25.1) first.** **To use this tool, you need to install Git(>=2.25.1) first.**
You can download the latest stable from [Releases](https://github.com/sourcegit-scm/sourcegit/releases/latest) or download workflow artifacts from [Github Actions](https://github.com/sourcegit-scm/sourcegit/actions) to try this app based on latest commits. You can download the latest stable from [Releases](https://github.com/sourcegit-scm/sourcegit/releases/latest) or download workflow artifacts from [GitHub Actions](https://github.com/sourcegit-scm/sourcegit/actions) to try this app based on latest commits.
This software creates a folder `$"{System.Environment.SpecialFolder.ApplicationData}/SourceGit"`, which is platform-dependent, to store user settings, downloaded avatars and crash logs. This software creates a folder `$"{System.Environment.SpecialFolder.ApplicationData}/SourceGit"`, which is platform-dependent, to store user settings, downloaded avatars and crash logs.
@ -93,7 +93,7 @@ For **macOS** users:
brew tap ybeapps/homebrew-sourcegit brew tap ybeapps/homebrew-sourcegit
brew install --cask --no-quarantine sourcegit brew install --cask --no-quarantine sourcegit
``` ```
* If you want to install `SourceGit.app` from Github Release manually, you need run following command to make sure it works: * If you want to install `SourceGit.app` from GitHub Release manually, you need run following command to make sure it works:
```shell ```shell
sudo xattr -cr /Applications/SourceGit.app sudo xattr -cr /Applications/SourceGit.app
``` ```

View file

@ -12,4 +12,4 @@
dotnet publish -c Release -r $RUNTIME_IDENTIFIER -o $DESTINATION_FOLDER src/SourceGit.csproj dotnet publish -c Release -r $RUNTIME_IDENTIFIER -o $DESTINATION_FOLDER src/SourceGit.csproj
``` ```
> [!NOTE] > [!NOTE]
> Please replace the `$RUNTIME_IDENTIFIER` with one of `win-x64`,`win-arm64`,`linux-x64`,`linux-arm64`,`osx-x64`,`osx-arm64`, and replece the `$DESTINATION_FOLDER` with the real path that will store the output executable files. > Please replace the `$RUNTIME_IDENTIFIER` with one of `win-x64`,`win-arm64`,`linux-x64`,`linux-arm64`,`osx-x64`,`osx-arm64`, and replace the `$DESTINATION_FOLDER` with the real path that will store the output executable files.

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- This manifest is used on Windows only. <!-- This manifest is used on Windows only.
Don't remove it as it might cause problems with window transparency and embeded controls. Don't remove it as it might cause problems with window transparency and embedded controls.
For more details visit https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests --> For more details visit https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests -->
<assemblyIdentity version="1.0.0.0" name="SourceGit.Desktop"/> <assemblyIdentity version="1.0.0.0" name="SourceGit.Desktop"/>

View file

@ -89,7 +89,7 @@ namespace SourceGit.Commands
private readonly Models.BlameData _result = new Models.BlameData(); private readonly Models.BlameData _result = new Models.BlameData();
private readonly StringBuilder _content = new StringBuilder(); private readonly StringBuilder _content = new StringBuilder();
private readonly string _dateFormat = Models.DateTimeFormat.Actived.DateOnly; private readonly string _dateFormat = Models.DateTimeFormat.Active.DateOnly;
private string _lastSHA = string.Empty; private string _lastSHA = string.Empty;
private bool _needUnifyCommitSHA = false; private bool _needUnifyCommitSHA = false;
private int _minSHALen = 64; private int _minSHALen = 64;

View file

@ -24,7 +24,7 @@ namespace SourceGit.Commands
if (!File.Exists(toolPath)) if (!File.Exists(toolPath))
{ {
Dispatcher.UIThread.Post(() => App.RaiseException(repo, $"Can NOT found external merge tool in '{toolPath}'!")); Dispatcher.UIThread.Post(() => App.RaiseException(repo, $"Can NOT find external merge tool in '{toolPath}'!"));
return false; return false;
} }
@ -54,7 +54,7 @@ namespace SourceGit.Commands
if (!File.Exists(toolPath)) if (!File.Exists(toolPath))
{ {
Dispatcher.UIThread.Invoke(() => App.RaiseException(repo, $"Can NOT found external diff tool in '{toolPath}'!")); Dispatcher.UIThread.Invoke(() => App.RaiseException(repo, $"Can NOT find external diff tool in '{toolPath}'!"));
return false; return false;
} }

View file

@ -37,10 +37,10 @@ namespace SourceGit.Models
public List<Decorator> Decorators { get; set; } = new List<Decorator>(); public List<Decorator> Decorators { get; set; } = new List<Decorator>();
public bool HasDecorators => Decorators.Count > 0; public bool HasDecorators => Decorators.Count > 0;
public string AuthorTimeStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateTime); public string AuthorTimeStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Active.DateTime);
public string CommitterTimeStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateTime); public string CommitterTimeStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Active.DateTime);
public string AuthorTimeShortStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateOnly); public string AuthorTimeShortStr => DateTime.UnixEpoch.AddSeconds(AuthorTime).ToLocalTime().ToString(DateTimeFormat.Active.DateOnly);
public string CommitterTimeShortStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Actived.DateOnly); public string CommitterTimeShortStr => DateTime.UnixEpoch.AddSeconds(CommitterTime).ToLocalTime().ToString(DateTimeFormat.Active.DateOnly);
public bool IsMerged { get; set; } = false; public bool IsMerged { get; set; } = false;
public bool IsCommitterVisible => !Author.Equals(Committer) || AuthorTime != CommitterTime; public bool IsCommitterVisible => !Author.Equals(Committer) || AuthorTime != CommitterTime;

View file

@ -25,7 +25,7 @@ namespace SourceGit.Models
set; set;
} = 0; } = 0;
public static DateTimeFormat Actived public static DateTimeFormat Active
{ {
get => Supported[ActiveIndex]; get => Supported[ActiveIndex];
} }

View file

@ -19,7 +19,7 @@ namespace SourceGit.Models
{ {
try try
{ {
_singletoneLock = File.Open(Path.Combine(Native.OS.DataDir, "process.lock"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); _singletonLock = File.Open(Path.Combine(Native.OS.DataDir, "process.lock"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
_isFirstInstance = true; _isFirstInstance = true;
_server = new NamedPipeServerStream( _server = new NamedPipeServerStream(
"SourceGitIPCChannel" + Environment.UserName, "SourceGitIPCChannel" + Environment.UserName,
@ -67,7 +67,7 @@ namespace SourceGit.Models
public void Dispose() public void Dispose()
{ {
_cancellationTokenSource?.Cancel(); _cancellationTokenSource?.Cancel();
_singletoneLock?.Dispose(); _singletonLock?.Dispose();
} }
private async void StartServer() private async void StartServer()
@ -96,7 +96,7 @@ namespace SourceGit.Models
} }
} }
private FileStream _singletoneLock = null; private FileStream _singletonLock = null;
private bool _isFirstInstance = false; private bool _isFirstInstance = false;
private NamedPipeServerStream _server = null; private NamedPipeServerStream _server = null;
private CancellationTokenSource _cancellationTokenSource = null; private CancellationTokenSource _cancellationTokenSource = null;

View file

@ -32,7 +32,7 @@ namespace SourceGit.Models
set; set;
} = false; } = false;
public bool OnlyHighlighCurrentBranchInHistories public bool OnlyHighlightCurrentBranchInHistories
{ {
get; get;
set; set;
@ -188,7 +188,7 @@ namespace SourceGit.Models
set; set;
} = false; } = false;
public string PreferedOpenAIService public string PreferredOpenAIService
{ {
get; get;
set; set;

View file

@ -11,6 +11,6 @@ namespace SourceGit.Models
public ulong Time { get; set; } = 0; public ulong Time { get; set; } = 0;
public string Message { get; set; } = ""; public string Message { get; set; } = "";
public string TimeStr => DateTime.UnixEpoch.AddSeconds(Time).ToLocalTime().ToString(DateTimeFormat.Actived.DateTime); public string TimeStr => DateTime.UnixEpoch.AddSeconds(Time).ToLocalTime().ToString(DateTimeFormat.Active.DateTime);
} }
} }

View file

@ -23,7 +23,7 @@ namespace SourceGit.Models
get get
{ {
if (IsDetached) if (IsDetached)
return $"deteched HEAD at {Head.AsSpan(10)}"; return $"detached HEAD at {Head.AsSpan(10)}";
if (Branch.StartsWith("refs/heads/", StringComparison.Ordinal)) if (Branch.StartsWith("refs/heads/", StringComparison.Ordinal))
return Branch.Substring(11); return Branch.Substring(11);

View file

@ -120,8 +120,8 @@ namespace SourceGit.Native
private string FindExecutable(string filename) private string FindExecutable(string filename)
{ {
var pathVariable = Environment.GetEnvironmentVariable("PATH") ?? string.Empty; var pathVariable = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
var pathes = pathVariable.Split(Path.PathSeparator, StringSplitOptions.RemoveEmptyEntries); var paths = pathVariable.Split(Path.PathSeparator, StringSplitOptions.RemoveEmptyEntries);
foreach (var path in pathes) foreach (var path in paths)
{ {
var test = Path.Combine(path, filename); var test = Path.Combine(path, filename);
if (File.Exists(test)) if (File.Exists(test))

View file

@ -80,17 +80,17 @@ namespace SourceGit.Native
var p = IntPtrToPixelPoint(lParam); var p = IntPtrToPixelPoint(lParam);
GetWindowRect(hWnd, out var rcWindow); GetWindowRect(hWnd, out var rcWindow);
var borderThinkness = (int)(4 * window.RenderScaling); var borderThickness = (int)(4 * window.RenderScaling);
int y = 1; int y = 1;
int x = 1; int x = 1;
if (p.X >= rcWindow.left && p.X < rcWindow.left + borderThinkness) if (p.X >= rcWindow.left && p.X < rcWindow.left + borderThickness)
x = 0; x = 0;
else if (p.X < rcWindow.right && p.X >= rcWindow.right - borderThinkness) else if (p.X < rcWindow.right && p.X >= rcWindow.right - borderThickness)
x = 2; x = 2;
if (p.Y >= rcWindow.top && p.Y < rcWindow.top + borderThinkness) if (p.Y >= rcWindow.top && p.Y < rcWindow.top + borderThickness)
y = 0; y = 0;
else if (p.Y < rcWindow.bottom && p.Y >= rcWindow.bottom - borderThinkness) else if (p.Y < rcWindow.bottom && p.Y >= rcWindow.bottom - borderThickness)
y = 2; y = 2;
var zone = y * 3 + x; var zone = y * 3 + x;
@ -351,10 +351,10 @@ namespace SourceGit.Native
Microsoft.Win32.RegistryView.Registry64); Microsoft.Win32.RegistryView.Registry64);
// VSCodium (system) // VSCodium (system)
var systemVScodium = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{88DA3577-054F-4CA1-8122-7D820494CFFB}_is1"); var systemVSCodium = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{88DA3577-054F-4CA1-8122-7D820494CFFB}_is1");
if (systemVScodium != null) if (systemVSCodium != null)
{ {
return systemVScodium.GetValue("DisplayIcon") as string; return systemVSCodium.GetValue("DisplayIcon") as string;
} }
var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey( var currentUser = Microsoft.Win32.RegistryKey.OpenBaseKey(

View file

@ -766,7 +766,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGEN</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGEN</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ALLES STAGEN</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ALLES STAGEN</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">ALS UNVERÄNDERT ANGENOMMENE ANZEIGEN</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">ALS UNVERÄNDERT ANGENOMMENE ANZEIGEN</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">ARBEITSPLATZ: </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">ARBEITSPLATZ: </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Arbeitsplätze konfigurieren...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Arbeitsplätze konfigurieren...</x:String>

View file

@ -791,7 +791,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE ALL</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE ALL</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VIEW ASSUME UNCHANGED</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VIEW ASSUME UNCHANGED</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE: </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE: </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configure Workspaces...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configure Workspaces...</x:String>

View file

@ -794,7 +794,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODO</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODO</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VER ASSUME UNCHANGED</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VER ASSUME UNCHANGED</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Plantilla: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Plantilla: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">ESPACIO DE TRABAJO: </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">ESPACIO DE TRABAJO: </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Espacios de Trabajo...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Espacios de Trabajo...</x:String>

View file

@ -733,7 +733,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON INDEXÉ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON INDEXÉ</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">INDEXER</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">INDEXER</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">INDEXER TOUT</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">INDEXER TOUT</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VOIR LES FICHIERS PRÉSUMÉS INCHANGÉS</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VOIR LES FICHIERS PRÉSUMÉS INCHANGÉS</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Modèle: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Modèle: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">ESPACE DE TRAVAIL : </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">ESPACE DE TRAVAIL : </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurer les espaces de travail...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurer les espaces de travail...</x:String>

View file

@ -776,7 +776,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON IN STAGE</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">NON IN STAGE</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">FAI LO STAGE</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">FAI LO STAGE</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">FAI LO STAGE DI TUTTO</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">FAI LO STAGE DI TUTTO</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VISUALIZZA COME NON MODIFICATO</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VISUALIZZA COME NON MODIFICATO</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE:</x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">WORKSPACE:</x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Workspaces...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configura Workspaces...</x:String>

View file

@ -731,7 +731,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未ステージのファイル</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未ステージのファイル</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ステージへ移動</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ステージへ移動</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">すべてステージへ移動</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">すべてステージへ移動</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">変更されていないとみなしたものを表示</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">変更されていないとみなしたものを表示</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">テンプレート: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">テンプレート: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">ワークスペース: </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">ワークスペース: </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">ワークスペースを設定...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">ワークスペースを設定...</x:String>

View file

@ -667,7 +667,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">UNSTAGED</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">STAGE</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODOS</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">STAGE TODOS</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">VER SUPOR NÃO ALTERADO</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">VER SUPOR NÃO ALTERADO</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Template: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">Workspaces: </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">Workspaces: </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurar workspaces...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Configurar workspaces...</x:String>

View file

@ -791,7 +791,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕСФОРМИРОВАННЫЕ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕСФОРМИРОВАННЫЕ</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">СФОРМИРОВАТЬ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">СФОРМИРОВАТЬ</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">СФОРМИРОВАТЬ ВСЁ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">СФОРМИРОВАТЬ ВСЁ</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">ОТКРЫТЬ СПИСОК НЕОТСЛЕЖИВАЕМЫХ ФАЙЛОВ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">ОТКРЫТЬ СПИСОК НЕОТСЛЕЖИВАЕМЫХ ФАЙЛОВ</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">РАБОЧЕЕ ПРОСТРАНСТВО: </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">РАБОЧЕЕ ПРОСТРАНСТВО: </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Настройка рабочего пространства...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Настройка рабочего пространства...</x:String>

View file

@ -732,7 +732,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">நிலைநீக்கு</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">நிலைநீக்கு</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">நிலைபடுத்து</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">நிலைபடுத்து</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">அனைத்தும் நிலைபடுத்து</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">அனைத்தும் நிலைபடுத்து</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">மாறாதது எனநினைப்பதை பார்</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">மாறாதது எனநினைப்பதை பார்</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">வளர்புரு: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">வளர்புரு: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">பணியிடம்:</x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">பணியிடம்:</x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">பணியிடங்களை உள்ளமை...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">பணியிடங்களை உள்ளமை...</x:String>

View file

@ -742,7 +742,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕПРОІНДЕКСОВАНІ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">НЕПРОІНДЕКСОВАНІ</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ІНДЕКСУВАТИ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">ІНДЕКСУВАТИ</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ІНДЕКСУВАТИ ВСЕ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">ІНДЕКСУВАТИ ВСЕ</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">ПЕРЕГЛЯНУТИ ФАЙЛИ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">ПЕРЕГЛЯНУТИ ФАЙЛИ, ЩО ВВАЖАЮТЬСЯ НЕЗМІНЕНИМИ</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">Шаблон: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">РОБОЧИЙ ПРОСТІР: </x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">РОБОЧИЙ ПРОСТІР: </x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Налаштувати робочі простори...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">Налаштувати робочі простори...</x:String>

View file

@ -795,7 +795,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暂存</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暂存</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暂存选中</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暂存选中</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暂存所有</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暂存所有</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">查看忽略变更文件</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">查看忽略变更文件</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">模板:${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">模板:${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">工作区:</x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">工作区:</x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">配置工作区...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">配置工作区...</x:String>

View file

@ -795,7 +795,7 @@
<x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暫存</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged" xml:space="preserve">未暫存</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暫存選取的檔案</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.Stage" xml:space="preserve">暫存選取的檔案</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暫存所有檔案</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.StageAll" xml:space="preserve">暫存所有檔案</x:String>
<x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchaged" xml:space="preserve">檢視不追蹤變更的檔案</x:String> <x:String x:Key="Text.WorkingCopy.Unstaged.ViewAssumeUnchanged" xml:space="preserve">檢視不追蹤變更的檔案</x:String>
<x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">範本: ${0}$</x:String> <x:String x:Key="Text.WorkingCopy.UseCommitTemplate" xml:space="preserve">範本: ${0}$</x:String>
<x:String x:Key="Text.Workspace" xml:space="preserve">工作區:</x:String> <x:String x:Key="Text.Workspace" xml:space="preserve">工作區:</x:String>
<x:String x:Key="Text.Workspace.Configure" xml:space="preserve">設定工作區...</x:String> <x:String x:Key="Text.Workspace.Configure" xml:space="preserve">設定工作區...</x:String>

View file

@ -25,7 +25,7 @@ namespace SourceGit.ViewModels
{ {
if (!string.IsNullOrEmpty(file)) if (!string.IsNullOrEmpty(file))
{ {
var log = _repo.CreateLog("Remove Assue Unchanged File"); var log = _repo.CreateLog("Remove Assume Unchanged File");
new Commands.AssumeUnchanged(_repo.FullPath, file, false).Use(log).Exec(); new Commands.AssumeUnchanged(_repo.FullPath, file, false).Use(log).Exec();
log.Complete(); log.Complete();
Files.Remove(file); Files.Remove(file);

View file

@ -31,7 +31,7 @@ namespace SourceGit.ViewModels
[Required(ErrorMessage = "Feature prefix is required!!!")] [Required(ErrorMessage = "Feature prefix is required!!!")]
[RegularExpression(@"^[\w\-\.]+/$", ErrorMessage = "Bad feature prefix format!")] [RegularExpression(@"^[\w\-\.]+/$", ErrorMessage = "Bad feature prefix format!")]
public string FeturePrefix public string FeaturePrefix
{ {
get => _featurePrefix; get => _featurePrefix;
set => SetProperty(ref _featurePrefix, value, true); set => SetProperty(ref _featurePrefix, value, true);

View file

@ -360,7 +360,7 @@ namespace SourceGit.ViewModels
if (!Path.Exists(node.Id)) if (!Path.Exists(node.Id))
{ {
App.RaiseException(node.Id, "Repository does NOT exists any more. Please remove it."); App.RaiseException(node.Id, "Repository does NOT exist any more. Please remove it.");
return; return;
} }

View file

@ -127,12 +127,12 @@ namespace SourceGit.ViewModels
public bool OnlyHighlightCurrentBranchInHistories public bool OnlyHighlightCurrentBranchInHistories
{ {
get => _settings.OnlyHighlighCurrentBranchInHistories; get => _settings.OnlyHighlightCurrentBranchInHistories;
set set
{ {
if (value != _settings.OnlyHighlighCurrentBranchInHistories) if (value != _settings.OnlyHighlightCurrentBranchInHistories)
{ {
_settings.OnlyHighlighCurrentBranchInHistories = value; _settings.OnlyHighlightCurrentBranchInHistories = value;
OnPropertyChanged(); OnPropertyChanged();
} }
} }
@ -787,7 +787,7 @@ namespace SourceGit.ViewModels
if (_currentBranch == null) if (_currentBranch == null)
{ {
App.RaiseException(_fullpath, "Can NOT found current branch!!!"); App.RaiseException(_fullpath, "Can NOT find current branch!!!");
return; return;
} }
@ -811,7 +811,7 @@ namespace SourceGit.ViewModels
if (_currentBranch == null) if (_currentBranch == null)
{ {
App.RaiseException(_fullpath, "Can NOT found current branch!!!"); App.RaiseException(_fullpath, "Can NOT find current branch!!!");
return; return;
} }
@ -1304,7 +1304,7 @@ namespace SourceGit.ViewModels
{ {
if (_currentBranch == null) if (_currentBranch == null)
{ {
App.RaiseException(_fullpath, "Git do not hold any branch until you do first commit."); App.RaiseException(_fullpath, "Git cannot create a branch before your first commit.");
return; return;
} }
@ -1370,7 +1370,7 @@ namespace SourceGit.ViewModels
{ {
if (_currentBranch == null) if (_currentBranch == null)
{ {
App.RaiseException(_fullpath, "Git do not hold any branch until you do first commit."); App.RaiseException(_fullpath, "Git cannot create a branch before your first commit.");
return; return;
} }
@ -1449,7 +1449,7 @@ namespace SourceGit.ViewModels
App.GetLauncher()?.OpenRepositoryInTab(node, null); App.GetLauncher()?.OpenRepositoryInTab(node, null);
} }
public List<Models.OpenAIService> GetPreferedOpenAIServices() public List<Models.OpenAIService> GetPreferredOpenAIServices()
{ {
var services = Preferences.Instance.OpenAIServices; var services = Preferences.Instance.OpenAIServices;
if (services == null || services.Count == 0) if (services == null || services.Count == 0)
@ -1458,11 +1458,11 @@ namespace SourceGit.ViewModels
if (services.Count == 1) if (services.Count == 1)
return [services[0]]; return [services[0]];
var prefered = _settings.PreferedOpenAIService; var preferred = _settings.PreferredOpenAIService;
var all = new List<Models.OpenAIService>(); var all = new List<Models.OpenAIService>();
foreach (var service in services) foreach (var service in services)
{ {
if (service.Name.Equals(prefered, StringComparison.Ordinal)) if (service.Name.Equals(preferred, StringComparison.Ordinal))
return [service]; return [service];
all.Add(service); all.Add(service);

View file

@ -127,10 +127,10 @@ namespace SourceGit.ViewModels
private set; private set;
} }
public string PreferedOpenAIService public string PreferredOpenAIService
{ {
get => _repo.Settings.PreferedOpenAIService; get => _repo.Settings.PreferredOpenAIService;
set => _repo.Settings.PreferedOpenAIService = value; set => _repo.Settings.PreferredOpenAIService = value;
} }
public AvaloniaList<Models.CustomAction> CustomActions public AvaloniaList<Models.CustomAction> CustomActions
@ -156,8 +156,8 @@ namespace SourceGit.ViewModels
foreach (var service in Preferences.Instance.OpenAIServices) foreach (var service in Preferences.Instance.OpenAIServices)
AvailableOpenAIServices.Add(service.Name); AvailableOpenAIServices.Add(service.Name);
if (AvailableOpenAIServices.IndexOf(PreferedOpenAIService) == -1) if (AvailableOpenAIServices.IndexOf(PreferredOpenAIService) == -1)
PreferedOpenAIService = "---"; PreferredOpenAIService = "---";
_cached = new Commands.Config(repo.FullPath).ListAll(); _cached = new Commands.Config(repo.FullPath).ListAll();
if (_cached.TryGetValue("user.name", out var name)) if (_cached.TryGetValue("user.name", out var name))

View file

@ -52,7 +52,7 @@ namespace SourceGit.ViewModels
Counter = 1; Counter = 1;
} }
public static List<SubmoduleTreeNode> Build(IList<Models.Submodule> submodules, HashSet<string> expaneded) public static List<SubmoduleTreeNode> Build(IList<Models.Submodule> submodules, HashSet<string> expanded)
{ {
var nodes = new List<SubmoduleTreeNode>(); var nodes = new List<SubmoduleTreeNode>();
var folders = new Dictionary<string, SubmoduleTreeNode>(); var folders = new Dictionary<string, SubmoduleTreeNode>();
@ -79,13 +79,13 @@ namespace SourceGit.ViewModels
} }
else if (lastFolder == null) else if (lastFolder == null)
{ {
lastFolder = new SubmoduleTreeNode(folder, depth, expaneded.Contains(folder)); lastFolder = new SubmoduleTreeNode(folder, depth, expanded.Contains(folder));
folders.Add(folder, lastFolder); folders.Add(folder, lastFolder);
InsertFolder(nodes, lastFolder); InsertFolder(nodes, lastFolder);
} }
else else
{ {
var cur = new SubmoduleTreeNode(folder, depth, expaneded.Contains(folder)); var cur = new SubmoduleTreeNode(folder, depth, expanded.Contains(folder));
folders.Add(folder, cur); folders.Add(folder, cur);
InsertFolder(lastFolder.Children, cur); InsertFolder(lastFolder.Children, cur);
lastFolder = cur; lastFolder = cur;

View file

@ -63,7 +63,7 @@ namespace SourceGit.ViewModels
Counter = 1; Counter = 1;
} }
public static List<TagTreeNode> Build(List<Models.Tag> tags, HashSet<string> expaneded) public static List<TagTreeNode> Build(List<Models.Tag> tags, HashSet<string> expanded)
{ {
var nodes = new List<TagTreeNode>(); var nodes = new List<TagTreeNode>();
var folders = new Dictionary<string, TagTreeNode>(); var folders = new Dictionary<string, TagTreeNode>();
@ -90,13 +90,13 @@ namespace SourceGit.ViewModels
} }
else if (lastFolder == null) else if (lastFolder == null)
{ {
lastFolder = new TagTreeNode(folder, expaneded.Contains(folder), depth); lastFolder = new TagTreeNode(folder, expanded.Contains(folder), depth);
folders.Add(folder, lastFolder); folders.Add(folder, lastFolder);
InsertFolder(nodes, lastFolder); InsertFolder(nodes, lastFolder);
} }
else else
{ {
var cur = new TagTreeNode(folder, expaneded.Contains(folder), depth); var cur = new TagTreeNode(folder, expanded.Contains(folder), depth);
folders.Add(folder, cur); folders.Add(folder, cur);
InsertFolder(lastFolder.Children, cur); InsertFolder(lastFolder.Children, cur);
lastFolder = cur; lastFolder = cur;

View file

@ -1099,7 +1099,7 @@ namespace SourceGit.ViewModels
var menu = new ContextMenu(); var menu = new ContextMenu();
var ai = null as MenuItem; var ai = null as MenuItem;
var services = _repo.GetPreferedOpenAIServices(); var services = _repo.GetPreferredOpenAIServices();
if (services.Count > 0) if (services.Count > 0)
{ {
ai = new MenuItem(); ai = new MenuItem();
@ -1497,7 +1497,7 @@ namespace SourceGit.ViewModels
return null; return null;
} }
var services = _repo.GetPreferedOpenAIServices(); var services = _repo.GetPreferredOpenAIServices();
if (services.Count == 0) if (services.Count == 0)
{ {
App.RaiseException(_repo.FullPath, "Bad configuration for OpenAI"); App.RaiseException(_repo.FullPath, "Bad configuration for OpenAI");
@ -1707,7 +1707,7 @@ namespace SourceGit.ViewModels
if (!_repo.CanCreatePopup()) if (!_repo.CanCreatePopup())
{ {
App.RaiseException(_repo.FullPath, "Repository has unfinished job! Please wait!"); App.RaiseException(_repo.FullPath, "Repository has an unfinished job! Please wait!");
return; return;
} }

View file

@ -110,7 +110,7 @@ namespace SourceGit.Views
context.DrawLine(pen, new Point(j * 32, 0), new Point(j * 32, 192)); context.DrawLine(pen, new Point(j * 32, 0), new Point(j * 32, 192));
// Selected // Selected
if (_hightlightedTableRect is { } rect) if (_highlightedTableRect is { } rect)
context.DrawRectangle(new Pen(Brushes.White, 2), rect); context.DrawRectangle(new Pen(Brushes.White, 2), rect);
} }
@ -143,7 +143,7 @@ namespace SourceGit.Views
protected override void OnDataContextChanged(EventArgs e) protected override void OnDataContextChanged(EventArgs e)
{ {
base.OnDataContextChanged(e); base.OnDataContextChanged(e);
_hightlightedTableRect = null; _highlightedTableRect = null;
} }
protected override Size MeasureOverride(Size availableSize) protected override Size MeasureOverride(Size availableSize)
@ -161,9 +161,9 @@ namespace SourceGit.Views
var col = (int)Math.Floor(p.X / 32.0); var col = (int)Math.Floor(p.X / 32.0);
var row = (int)Math.Floor(p.Y / 32.0); var row = (int)Math.Floor(p.Y / 32.0);
var rect = new Rect(col * 32 + 2, row * 32 + 2, 28, 28); var rect = new Rect(col * 32 + 2, row * 32 + 2, 28, 28);
if (!rect.Equals(_hightlightedTableRect)) if (!rect.Equals(_highlightedTableRect))
{ {
_hightlightedTableRect = rect; _highlightedTableRect = rect;
SetCurrentValue(ValueProperty, COLOR_TABLE[row, col].ToUInt32()); SetCurrentValue(ValueProperty, COLOR_TABLE[row, col].ToUInt32());
} }
@ -172,32 +172,32 @@ namespace SourceGit.Views
if (_darkestRect.Rect.Contains(p)) if (_darkestRect.Rect.Contains(p))
{ {
_hightlightedTableRect = null; _highlightedTableRect = null;
SetCurrentValue(ValueProperty, _darkestColor.ToUInt32()); SetCurrentValue(ValueProperty, _darkestColor.ToUInt32());
} }
else if (_darkerRect.Contains(p)) else if (_darkerRect.Contains(p))
{ {
_hightlightedTableRect = null; _highlightedTableRect = null;
SetCurrentValue(ValueProperty, _darkerColor.ToUInt32()); SetCurrentValue(ValueProperty, _darkerColor.ToUInt32());
} }
else if (_darkRect.Contains(p)) else if (_darkRect.Contains(p))
{ {
_hightlightedTableRect = null; _highlightedTableRect = null;
SetCurrentValue(ValueProperty, _darkColor.ToUInt32()); SetCurrentValue(ValueProperty, _darkColor.ToUInt32());
} }
else if (_lightRect.Contains(p)) else if (_lightRect.Contains(p))
{ {
_hightlightedTableRect = null; _highlightedTableRect = null;
SetCurrentValue(ValueProperty, _lightColor.ToUInt32()); SetCurrentValue(ValueProperty, _lightColor.ToUInt32());
} }
else if (_lighterRect.Contains(p)) else if (_lighterRect.Contains(p))
{ {
_hightlightedTableRect = null; _highlightedTableRect = null;
SetCurrentValue(ValueProperty, _lighterColor.ToUInt32()); SetCurrentValue(ValueProperty, _lighterColor.ToUInt32());
} }
else if (_lightestRect.Rect.Contains(p)) else if (_lightestRect.Rect.Contains(p))
{ {
_hightlightedTableRect = null; _highlightedTableRect = null;
SetCurrentValue(ValueProperty, _lightestColor.ToUInt32()); SetCurrentValue(ValueProperty, _lightestColor.ToUInt32());
} }
} }
@ -234,7 +234,7 @@ namespace SourceGit.Views
private Rect _lightRect = new Rect(160, 200, 32, 32); private Rect _lightRect = new Rect(160, 200, 32, 32);
private Rect _lighterRect = new Rect(192, 200, 32, 32); private Rect _lighterRect = new Rect(192, 200, 32, 32);
private RoundedRect _lightestRect = new RoundedRect(new Rect(224, 200, 32, 32), new CornerRadius(0, 4, 4, 0)); private RoundedRect _lightestRect = new RoundedRect(new Rect(224, 200, 32, 32), new CornerRadius(0, 4, 4, 0));
private Rect? _hightlightedTableRect = null; private Rect? _highlightedTableRect = null;
private Color _darkestColor; private Color _darkestColor;
private Color _darkerColor; private Color _darkerColor;

View file

@ -46,7 +46,7 @@
Height="26" Height="26"
VerticalAlignment="Center" VerticalAlignment="Center"
CornerRadius="2" CornerRadius="2"
Text="{Binding FeturePrefix, Mode=TwoWay}"/> Text="{Binding FeaturePrefix, Mode=TwoWay}"/>
<TextBlock Grid.Row="4" Grid.Column="0" <TextBlock Grid.Row="4" Grid.Column="0"
HorizontalAlignment="Right" VerticalAlignment="Center" HorizontalAlignment="Right" VerticalAlignment="Center"

View file

@ -284,7 +284,7 @@ namespace SourceGit.Views
base.OnKeyDown(e); base.OnKeyDown(e);
// Record unhandled key modifers. // Record unhandled key modifiers.
if (!e.Handled) if (!e.Handled)
{ {
_unhandledModifiers = e.KeyModifiers; _unhandledModifiers = e.KeyModifiers;

View file

@ -509,7 +509,7 @@
Height="28" Padding="8,0" Height="28" Padding="8,0"
VerticalAlignment="Center" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalAlignment="Stretch"
ItemsSource="{Binding AvailableOpenAIServices}" ItemsSource="{Binding AvailableOpenAIServices}"
SelectedItem="{Binding PreferedOpenAIService, Mode=TwoWay}"> SelectedItem="{Binding PreferredOpenAIService, Mode=TwoWay}">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center"> <StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">

View file

@ -136,7 +136,7 @@
<DataTemplate DataType="m:StatisticsReport"> <DataTemplate DataType="m:StatisticsReport">
<Grid ColumnDefinitions="256,*"> <Grid ColumnDefinitions="256,*">
<Grid Grid.Column="0" RowDefinitions="*,16"> <Grid Grid.Column="0" RowDefinitions="*,16">
<!-- Table By Autor --> <!-- Table By Author -->
<ListBox Grid.Column="0" <ListBox Grid.Column="0"
ItemsSource="{Binding Authors}" ItemsSource="{Binding Authors}"
SelectedItem="{Binding SelectedAuthor, Mode=TwoWay}" SelectedItem="{Binding SelectedAuthor, Mode=TwoWay}"

View file

@ -73,7 +73,7 @@
Classes="icon_button" Classes="icon_button"
Width="26" Height="14" Width="26" Height="14"
Padding="0" Padding="0"
ToolTip.Tip="{DynamicResource Text.WorkingCopy.Unstaged.ViewAssumeUnchaged}" ToolTip.Tip="{DynamicResource Text.WorkingCopy.Unstaged.ViewAssumeUnchanged}"
Command="{Binding OpenAssumeUnchanged}"> Command="{Binding OpenAssumeUnchanged}">
<Path Width="14" Height="14" Data="{StaticResource Icons.File.Ignore}"/> <Path Width="14" Height="14" Data="{StaticResource Icons.File.Ignore}"/>
</Button> </Button>