about summary refs log tree commit diff stats
path: root/widgets/msgviewer.go
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/msgviewer.go')
-rw-r--r--widgets/msgviewer.go18
1 files changed, 17 insertions, 1 deletions
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go
index ee7dd50..25bebfa 100644
--- a/widgets/msgviewer.go
+++ b/widgets/msgviewer.go
@@ -52,7 +52,16 @@ type PartSwitcher struct {
 func NewMessageViewer(acct *AccountView, conf *config.AercConfig,
 	store *lib.MessageStore, msg *models.MessageInfo) *MessageViewer {
 
-	layout := HeaderLayout(conf.Viewer.HeaderLayout).forMessage(msg)
+	hf := HeaderLayoutFilter{
+		layout: HeaderLayout(conf.Viewer.HeaderLayout),
+		keep: func(msg *models.MessageInfo, header string) bool {
+			if fmtHeader(msg, header, "2") != "" {
+				return true
+			}
+			return false
+		},
+	}
+	layout := hf.forMessage(msg)
 	header, headerHeight := layout.grid(
 		func(header string) ui.Drawable {
 			return &HeaderView{
@@ -109,6 +118,8 @@ func fmtHeader(msg *models.MessageInfo, header string, timefmt string) string {
 		return msg.Envelope.Date.Local().Format(timefmt)
 	case "Subject":
 		return msg.Envelope.Subject
+	case "Labels":
+		return strings.Join(msg.Labels, ", ")
 	default:
 		return msg.RFC822Headers.Get(header)
 	}
@@ -580,6 +591,11 @@ func (pv *PartViewer) attemptCopy() {
 						"%s: %s\n", fields.Key(), fields.Value())
 					pv.sink.Write([]byte(field))
 				}
+				// virtual header
+				if len(pv.msg.Labels) != 0 {
+					labels := fmtHeader(pv.msg, "Labels", "")
+					pv.sink.Write([]byte(fmt.Sprintf("Labels: %s\n", labels)))
+				}
 				pv.sink.Write([]byte{'\n'})
 			}