diff options
author | Jelle Besseling <jelle@pingiun.com> | 2019-08-04 16:05:06 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-08-07 15:02:11 +0900 |
commit | 3650b72ca64b9fb6a7e7b058ad6ef67894c2866d (patch) | |
tree | 1833f2166b90bf1ef88f1b7415cdd889b7c2bca4 | |
parent | 1f6c108c0412a03bfadd01ac81607e76ecbcd2d7 (diff) |
Implement next-folder using NextPrev with amount
This fixes ~sircmpwn/aerc2#182
https://todo.sr.ht/~sircmpwn/aerc2/182
-rw-r--r-- | commands/account/next-folder.go | 10 | ||||
-rw-r--r-- | lib/msgstore.go | 6 | ||||
-rw-r--r-- | widgets/dirlist.go | 6 |
3 files changed, 10 insertions, 12 deletions
diff --git a/commands/account/next-folder.go b/commands/account/next-folder.go index 414e606..537a351 100644 --- a/commands/account/next-folder.go +++ b/commands/account/next-folder.go @@ -40,12 +40,10 @@ func (_ NextPrevFolder) Execute(aerc *widgets.Aerc, args []string) error { if acct == nil { return errors.New("No account selected") } - for ; n > 0; n-- { - if args[0] == "prev-folder" { - acct.Directories().Prev() - } else { - acct.Directories().Next() - } + if args[0] == "prev-folder" { + acct.Directories().NextPrev(-n) + } else { + acct.Directories().NextPrev(n) } return nil } diff --git a/lib/msgstore.go b/lib/msgstore.go index b346129..1061c8e 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -337,7 +337,7 @@ func (store *MessageStore) Select(index int) { } } -func (store *MessageStore) nextPrev(delta int) { +func (store *MessageStore) NextPrev(delta int) { uids := store.Uids() if len(uids) == 0 { return @@ -361,11 +361,11 @@ func (store *MessageStore) nextPrev(delta int) { } func (store *MessageStore) Next() { - store.nextPrev(1) + store.NextPrev(1) } func (store *MessageStore) Prev() { - store.nextPrev(-1) + store.NextPrev(-1) } func (store *MessageStore) Search(c *imap.SearchCriteria, cb func([]uint32)) { diff --git a/widgets/dirlist.go b/widgets/dirlist.go index 078973a..b0807ae 100644 --- a/widgets/dirlist.go +++ b/widgets/dirlist.go @@ -136,7 +136,7 @@ func (dirlist *DirectoryList) Draw(ctx *ui.Context) { } } -func (dirlist *DirectoryList) nextPrev(delta int) { +func (dirlist *DirectoryList) NextPrev(delta int) { curIdx := sort.SearchStrings(dirlist.dirs, dirlist.selected) if curIdx == len(dirlist.dirs) { return @@ -152,11 +152,11 @@ func (dirlist *DirectoryList) nextPrev(delta int) { } func (dirlist *DirectoryList) Next() { - dirlist.nextPrev(1) + dirlist.NextPrev(1) } func (dirlist *DirectoryList) Prev() { - dirlist.nextPrev(-1) + dirlist.NextPrev(-1) } // filterDirsByFoldersConfig sets dirlist.dirs to the filtered subset of the |