diff options
author | Bence Ferdinandy <bence@ferdinandy.com> | 2022-10-19 13:21:41 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-10-19 20:27:58 +0200 |
commit | c3bb3aa2a8908eaeb201a740fb12d70968cc3bac (patch) | |
tree | 44cb8ade5dcbd03077b8a461f236b16149a25c9f /widgets | |
parent | 6eed15c579017099c31d73821e70bc363e0fe7b8 (diff) | |
download | aerc-c3bb3aa2a8908eaeb201a740fb12d70968cc3bac.tar.gz |
msgview: add separate date formatting
The ThisDayTimeFormat and friends are missing from the message view
which just uses the message list's default setting. This might not be
desirable since the amount of space available is different. Introduce
separate settings for formatting dates in the message view.
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
Acked-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/msgviewer.go | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go index 7475789d..f8b2816f 100644 --- a/widgets/msgviewer.go +++ b/widgets/msgviewer.go @@ -52,7 +52,7 @@ func NewMessageViewer(acct *AccountView, hf := HeaderLayoutFilter{ layout: HeaderLayout(conf.Viewer.HeaderLayout), keep: func(msg *models.MessageInfo, header string) bool { - return fmtHeader(msg, header, "2") != "" + return fmtHeader(msg, header, "2", "3", "4", "5") != "" }, } layout := hf.forMessage(msg.MessageInfo()) @@ -61,8 +61,14 @@ func NewMessageViewer(acct *AccountView, hv := &HeaderView{ conf: conf, Name: header, - Value: fmtHeader(msg.MessageInfo(), header, - acct.UiConfig().TimestampFormat), + Value: fmtHeader( + msg.MessageInfo(), + header, + acct.UiConfig().MessageViewTimestampFormat, + acct.UiConfig().MessageViewThisDayTimeFormat, + acct.UiConfig().MessageViewThisWeekTimeFormat, + acct.UiConfig().MessageViewThisYearTimeFormat, + ), uiConfig: acct.UiConfig(), } showInfo := false @@ -142,7 +148,9 @@ func NewMessageViewer(acct *AccountView, return mv } -func fmtHeader(msg *models.MessageInfo, header string, timefmt string) string { +func fmtHeader(msg *models.MessageInfo, header string, + timefmt string, todayFormat string, thisWeekFormat string, thisYearFormat string, +) string { if msg == nil || msg.Envelope == nil { return "error: no envelope for this message" } @@ -161,7 +169,13 @@ func fmtHeader(msg *models.MessageInfo, header string, timefmt string) string { case "Bcc": return format.FormatAddresses(msg.Envelope.Bcc) case "Date": - return msg.Envelope.Date.Local().Format(timefmt) + return format.DummyIfZeroDate( + msg.Envelope.Date.Local(), + timefmt, + todayFormat, + thisWeekFormat, + thisYearFormat, + ) case "Subject": return msg.Envelope.Subject case "Labels": @@ -686,7 +700,7 @@ func (pv *PartViewer) writeMailHeaders() { } // virtual header if len(info.Labels) != 0 { - labels := fmtHeader(info, "Labels", "") + labels := fmtHeader(info, "Labels", "", "", "", "") _, err := pv.pagerin.Write([]byte(fmt.Sprintf("Labels: %s\n", labels))) if err != nil { logging.Errorf("failed to write to stdin of pager: %v", err) |