feat: add gpg format switcher

This commit is contained in:
Gadfly 2024-05-31 00:25:30 +08:00
parent b2996acb7b
commit 80dfa059ce
No known key found for this signature in database
7 changed files with 154 additions and 27 deletions

View file

@ -17,7 +17,19 @@ namespace SourceGit.ViewModels
set;
}
public bool GPGSigningEnabled
public Models.GPGFormat GPGFormat
{
get;
set;
}
public bool GPGCommitSigningEnabled
{
get;
set;
}
public bool GPGTagSigningEnabled
{
get;
set;
@ -44,8 +56,14 @@ namespace SourceGit.ViewModels
UserName = name;
if (_cached.TryGetValue("user.email", out var email))
UserEmail = email;
if (_cached.TryGetValue("commit.gpgsign", out var gpgsign))
GPGSigningEnabled = gpgsign == "true";
if (_cached.TryGetValue("commit.gpgsign", out var gpgCommitSign))
GPGCommitSigningEnabled = gpgCommitSign == "true";
if (_cached.TryGetValue("tag.gpgSign", out var gpgTagSign))
GPGTagSigningEnabled = gpgTagSign == "true";
if (_cached.TryGetValue("gpg.format", out var gpgFormat))
GPGFormat = Models.GPGFormat.Supported.Find(x => x.Value == gpgFormat);
else
GPGFormat = Models.GPGFormat.OPENPGP;
if (_cached.TryGetValue("user.signingkey", out var signingKey))
GPGUserSigningKey = signingKey;
if (_cached.TryGetValue("http.proxy", out var proxy))
@ -58,20 +76,22 @@ namespace SourceGit.ViewModels
{
SetIfChanged("user.name", UserName);
SetIfChanged("user.email", UserEmail);
SetIfChanged("commit.gpgsign", GPGSigningEnabled ? "true" : "false");
SetIfChanged("commit.gpgsign", GPGCommitSigningEnabled ? "true" : "false");
SetIfChanged("tag.gpgSign", GPGTagSigningEnabled ? "true" : "false");
SetIfChanged("gpg.format", GPGFormat?.Value, Models.GPGFormat.OPENPGP.Value);
SetIfChanged("user.signingkey", GPGUserSigningKey);
SetIfChanged("http.proxy", HttpProxy);
return null;
}
private void SetIfChanged(string key, string value)
private void SetIfChanged(string key, string value, string defaultValue = null)
{
bool changed = false;
if (_cached.TryGetValue(key, out var old))
{
changed = old != value;
}
else if (!string.IsNullOrEmpty(value))
else if (!string.IsNullOrEmpty(value) && value != defaultValue)
{
changed = true;
}