summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Poldrack <git@moritz.sh>2022-06-22 12:19:40 +0200
committerRobin Jarry <robin@jarry.cc>2022-06-24 21:44:05 +0200
commitb7d8918bbd75502e7144a146dd3400a17a441c36 (patch)
tree87e4dcdb4ddbb892f6dd0b616b1e1814a9d9c910
parentecf47542cb5ec5da7d699b36cf8b8af2cbf0a7a6 (diff)
downloadaerc-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.scd8
-rw-r--r--widgets/msgviewer.go6
-rw-r--r--widgets/pgpinfo.go25
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)
}
}