aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
authorBence Ferdinandy <bence@ferdinandy.com>2022-10-19 13:21:41 +0200
committerRobin Jarry <robin@jarry.cc>2022-10-19 20:27:58 +0200
commitc3bb3aa2a8908eaeb201a740fb12d70968cc3bac (patch)
tree44cb8ade5dcbd03077b8a461f236b16149a25c9f /widgets
parent6eed15c579017099c31d73821e70bc363e0fe7b8 (diff)
downloadaerc-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.go26
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)