From 9746f4858c6b21673a85a19df3ff8b8e076c36d5 Mon Sep 17 00:00:00 2001 From: Kevin Kuehler Date: Mon, 10 Jun 2019 22:05:57 -0700 Subject: [PATCH] commands/msgview: Add next/prev commands Signed-off-by: Kevin Kuehler --- commands/account/next.go | 6 ++++-- commands/msgview/next.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 commands/msgview/next.go diff --git a/commands/account/next.go b/commands/account/next.go index 7e8541f..88c4fd4 100644 --- a/commands/account/next.go +++ b/commands/account/next.go @@ -48,9 +48,11 @@ func NextPrevMessage(aerc *widgets.Aerc, args []string) error { } for ; n > 0; n-- { if args[0] == "prev-message" || args[0] == "prev" { - acct.Messages().Prev() + acct.Store().Prev() + acct.Messages().Scroll() } else { - acct.Messages().Next() + acct.Store().Next() + acct.Messages().Scroll() } } return nil diff --git a/commands/msgview/next.go b/commands/msgview/next.go new file mode 100644 index 0000000..0c86839 --- /dev/null +++ b/commands/msgview/next.go @@ -0,0 +1,36 @@ +package msgview + +import ( + "errors" + + "git.sr.ht/~sircmpwn/aerc/widgets" +) + +func init() { + register("next", NextPrevMessage) + register("next-message", NextPrevMessage) + register("prev", NextPrevMessage) + register("prev-message", NextPrevMessage) +} + +func NextPrevMessage(aerc *widgets.Aerc, args []string) error { + mv, _ := aerc.SelectedTab().(*widgets.MessageViewer) + acct := mv.SelectedAccount() + store := mv.Store() + if acct == nil { + return errors.New("No account selected") + } + if args[0] == "prev-message" || args[0] == "prev" { + store.Prev() + } else { + store.Next() + } + nextMsg := store.Selected() + if nextMsg == nil { + aerc.RemoveTab(mv) + return nil + } + nextMv := widgets.NewMessageViewer(acct, aerc.Config(), store, nextMsg) + aerc.ReplaceTab(mv, nextMv, nextMsg.Envelope.Subject) + return nil +}