diff options
-rw-r--r-- | lib/indexformat.go | 10 | ||||
-rw-r--r-- | widgets/msglist.go | 15 |
2 files changed, 20 insertions, 5 deletions
diff --git a/lib/indexformat.go b/lib/indexformat.go index 3e139e6..8a329db 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 89aa52f..1afe487 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 { |