aerc

Working clone of aerc-mail.org
git clone git://git.danielmoch.com/aerc.git
Log | Files | Refs | README | LICENSE

commit 755aa9af731c6faac64cbe3ad77324fb2850a7ae
parent 2349b7de869e5abc16a419a073273af99b62aad2
Author: Drew DeVault <sir@cmpwn.com>
Date:   Sun, 13 Jan 2019 14:32:22 -0500

Filter dirlist according to user config

Diffstat:
Mwidgets/account.go | 2+-
Mwidgets/directories.go | 23++++++++++++++++++-----
2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/widgets/account.go b/widgets/account.go @@ -53,7 +53,7 @@ func NewAccountView( } } - dirlist := NewDirectoryList(logger, worker) + dirlist := NewDirectoryList(conf, logger, worker) grid.AddChild(ui.NewBordered(dirlist, ui.BORDER_RIGHT)).Span(2, 1) acct := &AccountView{ diff --git a/widgets/directories.go b/widgets/directories.go @@ -6,19 +6,23 @@ import ( "github.com/gdamore/tcell" + "git.sr.ht/~sircmpwn/aerc2/config" "git.sr.ht/~sircmpwn/aerc2/lib/ui" "git.sr.ht/~sircmpwn/aerc2/worker/types" ) type DirectoryList struct { + conf *config.AccountConfig dirs []string logger *log.Logger onInvalidate func(d ui.Drawable) worker *types.Worker } -func NewDirectoryList(logger *log.Logger, worker *types.Worker) *DirectoryList { - return &DirectoryList{logger: logger, worker: worker} +func NewDirectoryList(conf *config.AccountConfig, + logger *log.Logger, worker *types.Worker) *DirectoryList { + + return &DirectoryList{conf: conf, logger: logger, worker: worker} } func (dirlist *DirectoryList) UpdateList() { @@ -49,10 +53,19 @@ func (dirlist *DirectoryList) Invalidate() { func (dirlist *DirectoryList) Draw(ctx *ui.Context) { ctx.Fill(0, 0, ctx.Width(), ctx.Height(), ' ', tcell.StyleDefault) - for i, name := range dirlist.dirs { - if i >= ctx.Height() { + row := 0 + for _, name := range dirlist.dirs { + if row >= ctx.Height() { break } - ctx.Printf(0, i, tcell.StyleDefault, "%s", name) + if len(dirlist.conf.Folders) > 1 { + idx := sort.SearchStrings(dirlist.conf.Folders, name) + if idx == len(dirlist.conf.Folders) || + dirlist.conf.Folders[idx] != name { + continue + } + } + ctx.Printf(0, row, tcell.StyleDefault, "%s", name) + row++ } }