aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYash Srivastav <yash111998@gmail.com>2019-06-08 18:40:14 +0530
committerDrew DeVault <sir@cmpwn.com>2019-06-08 10:59:51 -0400
commit5f651b32e535716d99a9c1bea7c0ab5826bd633c (patch)
treef9b5f64959a6f9ebb21b827a483dbed249338118
parent06e1b45a7851b58ea0d238f1fbfa2e8cee7bba8f (diff)
downloadaerc-5f651b32e535716d99a9c1bea7c0ab5826bd633c.tar.gz
msglist: use distinct style for unread emails
-rw-r--r--lib/indexformat.go10
-rw-r--r--widgets/msglist.go15
2 files changed, 20 insertions, 5 deletions
diff --git a/lib/indexformat.go b/lib/indexformat.go
index 3e139e65..8a329db6 100644
--- a/lib/indexformat.go
+++ b/lib/indexformat.go
@@ -171,16 +171,16 @@ func ParseIndexFormat(conf *config.AercConfig, number int,
var delFlag = ""
var flaggedFlag = ""
for _, flag := range msg.Flags {
- if flag == "\\Seen" {
+ if flag == imap.SeenFlag {
readFlag = "O" // message is old
- } else if flag == "\\Recent" {
+ } else if flag == imap.RecentFlag {
readFlag = "N" // message is new
- } else if flag == "\\Answered" {
+ } else if flag == imap.AnsweredFlag {
readFlag = "r" // message has been replied to
- } else if flag == "\\Deleted" {
+ } else if flag == imap.DeletedFlag {
delFlag = "D"
// TODO: check if attachments
- } else if flag == "\\Flagged" {
+ } else if flag == imap.FlaggedFlag {
flaggedFlag = "!"
}
// TODO: check gpg stuff
diff --git a/widgets/msglist.go b/widgets/msglist.go
index 89aa52f1..1afe4879 100644
--- a/widgets/msglist.go
+++ b/widgets/msglist.go
@@ -4,6 +4,7 @@ import (
"fmt"
"log"
+ "github.com/emersion/go-imap"
"github.com/gdamore/tcell"
"github.com/mattn/go-runewidth"
@@ -75,12 +76,26 @@ func (ml *MessageList) Draw(ctx *ui.Context) {
}
style := tcell.StyleDefault
+
+ // current row
if row == ml.selected-ml.scroll {
style = style.Reverse(true)
}
+ // deleted message
if _, ok := store.Deleted[msg.Uid]; ok {
style = style.Foreground(tcell.ColorGray)
}
+ // unread message
+ seen := false
+ for _, flag := range msg.Flags {
+ if flag == imap.SeenFlag {
+ seen = true
+ }
+ }
+ if !seen {
+ style = style.Bold(true)
+ }
+
ctx.Fill(0, row, ctx.Width(), 1, ' ', style)
fmtStr, args, err := lib.ParseIndexFormat(ml.conf, i, msg)
if err != nil {