diff options
author | Moritz Poldrack <git@moritz.sh> | 2022-06-22 12:19:40 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-06-24 21:44:05 +0200 |
commit | b7d8918bbd75502e7144a146dd3400a17a441c36 (patch) | |
tree | 87e4dcdb4ddbb892f6dd0b616b1e1814a9d9c910 | |
parent | ecf47542cb5ec5da7d699b36cf8b8af2cbf0a7a6 (diff) | |
download | aerc-b7d8918bbd75502e7144a146dd3400a17a441c36.zip |
pgp: add icon for unencrypted, unsigned messages if an icon is set
Signed-off-by: Moritz Poldrack <git@moritz.sh>
Tested-by: Tim Culverhouse <tim@timculverhouse.com>
-rw-r--r-- | doc/aerc-config.5.scd | 8 | ||||
-rw-r--r-- | widgets/msgviewer.go | 6 | ||||
-rw-r--r-- | widgets/pgpinfo.go | 25 |
3 files changed, 23 insertions, 16 deletions
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd index d13587c..518fe51 100644 --- a/doc/aerc-config.5.scd +++ b/doc/aerc-config.5.scd @@ -254,7 +254,8 @@ These options are configured in the *[ui]* section of aerc.conf. Have a look at *aerc-stylesets*(7) as to how a styleset looks like. *icon-unencrypted* - The icon to display for unencrypted mails. + The icon to display for unencrypted mails. The status indicator is only + displayed if an icon is set. Default: "" @@ -271,9 +272,10 @@ These options are configured in the *[ui]* section of aerc.conf. *icon-signed-encrypted* The icon to display for signed and encrypted mails where the signature - was successfully verified. + was successfully verified. The combined icon is only used if set, + otherwise the signed and encrypted icons are displayed separately. - Default: [s|e] + Default: "" *icon-unknown* The icon to display for signed mails which could not be verified due to diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go index 0e6af5b..d88785c 100644 --- a/widgets/msgviewer.go +++ b/widgets/msgviewer.go @@ -93,9 +93,9 @@ func NewMessageViewer(acct *AccountView, {Strategy: ui.SIZE_EXACT, Size: ui.Const(headerHeight)}, } - if msg.MessageDetails() != nil { + if msg.MessageDetails() != nil || conf.Ui.IconUnencrypted != "" { height := 1 - if msg.MessageDetails().IsSigned && msg.MessageDetails().IsEncrypted { + if msg.MessageDetails() != nil && msg.MessageDetails().IsSigned && msg.MessageDetails().IsEncrypted { height = 2 } rows = append(rows, ui.GridSpec{Strategy: ui.SIZE_EXACT, Size: ui.Const(height)}) @@ -125,7 +125,7 @@ func NewMessageViewer(acct *AccountView, borderChar := acct.UiConfig().BorderCharHorizontal grid.AddChild(header).At(0, 0) - if msg.MessageDetails() != nil { + if msg.MessageDetails() != nil || conf.Ui.IconUnencrypted != "" { grid.AddChild(NewPGPInfo(msg.MessageDetails(), acct.UiConfig())).At(1, 0) grid.AddChild(ui.NewFill(borderChar, borderStyle)).At(2, 0) grid.AddChild(switcher).At(3, 0) diff --git a/widgets/pgpinfo.go b/widgets/pgpinfo.go index 38118b7..2b21c22 100644 --- a/widgets/pgpinfo.go +++ b/widgets/pgpinfo.go @@ -40,7 +40,7 @@ func (p *PGPInfo) DrawSignature(ctx *ui.Context) { p.details.SignatureError) } else { icon := p.uiConfig.IconSigned - if p.details.IsEncrypted { + if p.details.IsEncrypted && p.uiConfig.IconSignedEncrypted != "" { icon = p.uiConfig.IconSignedEncrypted } x := ctx.Printf(0, 0, validStyle, "%s Authentic ", icon) @@ -55,29 +55,34 @@ func (p *PGPInfo) DrawEncryption(ctx *ui.Context, y int) { validStyle := p.uiConfig.GetStyle(config.STYLE_SUCCESS) defaultStyle := p.uiConfig.GetStyle(config.STYLE_DEFAULT) + // if a sign-encrypt combination icon is set, use that icon := p.uiConfig.IconEncrypted - if p.details.IsSigned && p.details.SignatureValidity == models.Valid { + if p.details.IsSigned && p.details.SignatureValidity == models.Valid && p.uiConfig.IconSignedEncrypted != "" { icon = strings.Repeat(" ", utf8.RuneCountInString(p.uiConfig.IconSignedEncrypted)) } - x := ctx.Printf(0, y, validStyle, "%s Encrypted ", icon) - x += ctx.Printf(x, y, defaultStyle, - "To %s (%8X) ", p.details.DecryptedWith, p.details.DecryptedWithKeyId) + x := ctx.Printf(0, y, validStyle, "%s Encrypted", icon) + x += ctx.Printf(x+1, y, defaultStyle, "To %s (%8X) ", p.details.DecryptedWith, p.details.DecryptedWithKeyId) if !p.details.IsSigned { - x += ctx.Printf(x, y, warningStyle, - "(message not signed!)") + x += ctx.Printf(x, y, warningStyle, "(message not signed!)") } } func (p *PGPInfo) Draw(ctx *ui.Context) { + warningStyle := p.uiConfig.GetStyle(config.STYLE_WARNING) defaultStyle := p.uiConfig.GetStyle(config.STYLE_DEFAULT) ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', defaultStyle) - if p.details.IsSigned && p.details.IsEncrypted { + + switch { + case p.details == nil && p.uiConfig.IconUnencrypted != "": + x := ctx.Printf(0, 0, warningStyle, "%s ", p.uiConfig.IconUnencrypted) + ctx.Printf(x, 0, defaultStyle, "message unencrypted and unsigned") + case p.details.IsSigned && p.details.IsEncrypted: p.DrawSignature(ctx) p.DrawEncryption(ctx, 1) - } else if p.details.IsSigned { + case p.details.IsSigned: p.DrawSignature(ctx) - } else if p.details.IsEncrypted { + case p.details.IsEncrypted: p.DrawEncryption(ctx, 0) } } |