aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelle Besseling <jelle@pingiun.com>2019-08-04 16:05:06 +0200
committerDrew DeVault <sir@cmpwn.com>2019-08-07 15:02:11 +0900
commit3650b72ca64b9fb6a7e7b058ad6ef67894c2866d (patch)
tree1833f2166b90bf1ef88f1b7415cdd889b7c2bca4
parent1f6c108c0412a03bfadd01ac81607e76ecbcd2d7 (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.go10
-rw-r--r--lib/msgstore.go6
-rw-r--r--widgets/dirlist.go6
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