diff options
author | Bence Ferdinandy <bence@ferdinandy.com> | 2022-12-08 14:15:33 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-12-14 11:24:43 +0100 |
commit | adf74be4b5c55faa724d35ca7bea2603c3ef42f9 (patch) | |
tree | 87de802bbfef7a8455ad6e9d48f2a1f0b38a517a | |
parent | c05c2ffe0424b048b10e7dd1aca59ae9cf631f12 (diff) | |
download | aerc-adf74be4b5c55faa724d35ca7bea2603c3ef42f9.tar.gz |
msglist: add attachment indicator
Add indicator of an attachment to the flags and make the character used
to be configurable.
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
Tested-by: Jens Grassel <jens@wegtam.com>
-rw-r--r-- | config/triggers.go | 1 | ||||
-rw-r--r-- | config/ui.go | 1 | ||||
-rw-r--r-- | doc/aerc-config.5.scd | 7 | ||||
-rw-r--r-- | lib/format/format.go | 10 | ||||
-rw-r--r-- | widgets/msglist.go | 1 |
5 files changed, 17 insertions, 3 deletions
diff --git a/config/triggers.go b/config/triggers.go index 5f315362..7b461e70 100644 --- a/config/triggers.go +++ b/config/triggers.go @@ -64,6 +64,7 @@ func (trig *TriggersConfig) ExecNewEmail( Ui.ThisDayTimeFormat, Ui.ThisWeekTimeFormat, Ui.ThisYearTimeFormat, + Ui.IconAttachment, format.Ctx{ FromAddress: account.From, AccountName: account.Name, diff --git a/config/ui.go b/config/ui.go index 0fb6a248..440fccf3 100644 --- a/config/ui.go +++ b/config/ui.go @@ -45,6 +45,7 @@ type UIConfig struct { IconSignedEncrypted string `ini:"icon-signed-encrypted"` IconUnknown string `ini:"icon-unknown"` IconInvalid string `ini:"icon-invalid"` + IconAttachment string `ini:"icon-attachment"` DirListFormat string `ini:"dirlist-format"` DirListDelay time.Duration `ini:"dirlist-delay"` DirListTree bool `ini:"dirlist-tree"` diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd index 4fd04bfa..2ef3b000 100644 --- a/doc/aerc-config.5.scd +++ b/doc/aerc-config.5.scd @@ -112,7 +112,7 @@ These options are configured in the *[ui]* section of _aerc.conf_. | _%v_ : sender first name (e.g. "Alex" in "Alex Smith <smith@example.net>") | _%Z_ -: flags (O=old, N=new, r=answered, D=deleted, !=flagged, \*=marked) +: flags (O=old, N=new, r=answered, D=deleted, !=flagged, \*=marked, a=attachment) *timestamp-format* = _<timeformat>_ See time.Time#Format at https://godoc.org/time#Time.Format @@ -323,6 +323,11 @@ These options are configured in the *[ui]* section of _aerc.conf_. Default: _[s!]_ +*icon-attachment* = _<string>_ + The icon to display index-format when the message has an attachment. + + Default: _a_ + *fuzzy-complete* = _true_|_false_ When typing a command or option, the popover will now show not only the items /starting/ with the string input by the user, but it will also show diff --git a/lib/format/format.go b/lib/format/format.go index e340c496..346702c6 100644 --- a/lib/format/format.go +++ b/lib/format/format.go @@ -80,7 +80,7 @@ type Ctx struct { } func ParseMessageFormat(format string, timeFmt string, thisDayTimeFmt string, - thisWeekTimeFmt string, thisYearTimeFmt string, ctx Ctx) ( + thisWeekTimeFmt string, thisYearTimeFmt string, iconAttachment string, ctx Ctx) ( string, []interface{}, error, ) { if ctx.MsgInfo.Error != nil { @@ -298,6 +298,7 @@ func ParseMessageFormat(format string, timeFmt string, thisDayTimeFmt string, delFlag := "" flaggedFlag := "" markedFlag := "" + hasattachment := "" seen := false recent := false answered := false @@ -333,8 +334,13 @@ func ParseMessageFormat(format string, timeFmt string, thisDayTimeFmt string, if ctx.MsgIsMarked { markedFlag = "*" } + for _, bS := range ctx.MsgInfo.BodyStructure.Parts { + if strings.ToLower(bS.Disposition) == "attachment" { + hasattachment = iconAttachment + } + } retval = append(retval, '4', 's') - args = append(args, readReplyFlag+delFlag+flaggedFlag+markedFlag) + args = append(args, readReplyFlag+delFlag+flaggedFlag+markedFlag+hasattachment) // Move the below cases to proper alphabetical positions once // implemented diff --git a/widgets/msglist.go b/widgets/msglist.go index 4c805d51..a12a4687 100644 --- a/widgets/msglist.go +++ b/widgets/msglist.go @@ -257,6 +257,7 @@ func (ml *MessageList) drawRow(textWidth int, ctx *ui.Context, uid uint32, row i uiConfig.ThisDayTimeFormat, uiConfig.ThisWeekTimeFormat, uiConfig.ThisYearTimeFormat, + uiConfig.IconAttachment, fmtCtx) if err != nil { ctx.Printf(0, row, style, "%v", err) |