From 755aa9af731c6faac64cbe3ad77324fb2850a7ae Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 13 Jan 2019 14:32:22 -0500 Subject: Filter dirlist according to user config --- widgets/directories.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'widgets/directories.go') diff --git a/widgets/directories.go b/widgets/directories.go index a9ea7d4..16b0e5a 100644 --- 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++ } } -- cgit v1.2.3