summaryrefslogtreecommitdiff
path: root/widgets/pgpinfo.go
diff options
context:
space:
mode:
authorReto Brunner <reto@labrat.space>2020-05-27 07:37:02 +0200
committerReto Brunner <reto@labrat.space>2020-05-27 07:57:10 +0200
commit0f78f06610c0e8887aba2ae50e99b86477a384b3 (patch)
treeff4cd6581d3af0911954a37550602366d2bb0e2f /widgets/pgpinfo.go
parent6c4ed3cfe2fe66a1e5f26c404ea90e048142db72 (diff)
downloadaerc-0f78f06610c0e8887aba2ae50e99b86477a384b3.zip
Add Style configuration
The following functionalities are added to configure aerc ui styles. - Read stylesets from file with very basic fnmatch wildcard matching - Add default styleset - Support different stylesets as part of UiConfig allowing contextual styles. - Move widgets/ui elements to use the stylesets. - Add configuration manual for the styleset
Diffstat (limited to 'widgets/pgpinfo.go')
-rw-r--r--widgets/pgpinfo.go34
1 files changed, 18 insertions, 16 deletions
diff --git a/widgets/pgpinfo.go b/widgets/pgpinfo.go
index 5da9141..94fb877 100644
--- a/widgets/pgpinfo.go
+++ b/widgets/pgpinfo.go
@@ -3,40 +3,40 @@ package widgets
import (
"errors"
+ "git.sr.ht/~sircmpwn/aerc/config"
"git.sr.ht/~sircmpwn/aerc/lib/ui"
- "github.com/gdamore/tcell"
"golang.org/x/crypto/openpgp"
pgperrors "golang.org/x/crypto/openpgp/errors"
)
type PGPInfo struct {
ui.Invalidatable
- details *openpgp.MessageDetails
+ details *openpgp.MessageDetails
+ uiConfig config.UIConfig
}
-func NewPGPInfo(details *openpgp.MessageDetails) *PGPInfo {
- return &PGPInfo{details: details}
+func NewPGPInfo(details *openpgp.MessageDetails, uiConfig config.UIConfig) *PGPInfo {
+ return &PGPInfo{details: details, uiConfig: uiConfig}
}
func (p *PGPInfo) DrawSignature(ctx *ui.Context) {
- errorStyle := tcell.StyleDefault.Background(tcell.ColorRed).
- Foreground(tcell.ColorWhite).Bold(true)
- softErrorStyle := tcell.StyleDefault.Foreground(tcell.ColorYellow).Bold(true)
- validStyle := tcell.StyleDefault.Foreground(tcell.ColorGreen).Bold(true)
+ errorStyle := p.uiConfig.GetStyle(config.STYLE_ERROR)
+ warningStyle := p.uiConfig.GetStyle(config.STYLE_WARNING)
+ validStyle := p.uiConfig.GetStyle(config.STYLE_SUCCESS)
+ defaultStyle := p.uiConfig.GetStyle(config.STYLE_DEFAULT)
// TODO: Nicer prompt for TOFU, fetch from keyserver, etc
if errors.Is(p.details.SignatureError, pgperrors.ErrUnknownIssuer) ||
p.details.SignedBy == nil {
- x := ctx.Printf(0, 0, softErrorStyle, "*")
- x += ctx.Printf(x, 0, tcell.StyleDefault,
+ x := ctx.Printf(0, 0, warningStyle, "*")
+ x += ctx.Printf(x, 0, defaultStyle,
" Signed with unknown key (%8X); authenticity unknown",
p.details.SignedByKeyId)
} else if p.details.SignatureError != nil {
x := ctx.Printf(0, 0, errorStyle, "Invalid signature!")
- x += ctx.Printf(x, 0, tcell.StyleDefault.
- Foreground(tcell.ColorRed).Bold(true),
+ x += ctx.Printf(x, 0, errorStyle,
" This message may have been tampered with! (%s)",
p.details.SignatureError.Error())
} else {
@@ -44,24 +44,26 @@ func (p *PGPInfo) DrawSignature(ctx *ui.Context) {
ident := entity.PrimaryIdentity()
x := ctx.Printf(0, 0, validStyle, "✓ Authentic ")
- x += ctx.Printf(x, 0, tcell.StyleDefault,
+ x += ctx.Printf(x, 0, defaultStyle,
"Signature from %s (%8X)",
ident.Name, p.details.SignedByKeyId)
}
}
func (p *PGPInfo) DrawEncryption(ctx *ui.Context, y int) {
- validStyle := tcell.StyleDefault.Foreground(tcell.ColorGreen).Bold(true)
+ validStyle := p.uiConfig.GetStyle(config.STYLE_SUCCESS)
+ defaultStyle := p.uiConfig.GetStyle(config.STYLE_DEFAULT)
entity := p.details.DecryptedWith.Entity
ident := entity.PrimaryIdentity()
x := ctx.Printf(0, y, validStyle, "✓ Encrypted ")
- x += ctx.Printf(x, y, tcell.StyleDefault,
+ x += ctx.Printf(x, y, defaultStyle,
"To %s (%8X) ", ident.Name, p.details.DecryptedWith.PublicKey.KeyId)
}
func (p *PGPInfo) Draw(ctx *ui.Context) {
- ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', tcell.StyleDefault)
+ defaultStyle := p.uiConfig.GetStyle(config.STYLE_DEFAULT)
+ ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', defaultStyle)
if p.details.IsSigned && p.details.IsEncrypted {
p.DrawSignature(ctx)
p.DrawEncryption(ctx, 1)