diff options
| author | Kevin Kuehler <kkuehler@brave.com> | 2019-06-10 22:05:57 -0700 | 
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2019-06-11 09:34:48 -0400 | 
| commit | 9746f4858c6b21673a85a19df3ff8b8e076c36d5 (patch) | |
| tree | 5bcedf8f02847ce2065a1a4ee3cdc3929318d19d | |
| parent | a54f4adb8f28855e7a8e5f24072f4d969b3b674d (diff) | |
commands/msgview: Add next/prev commands
Signed-off-by: Kevin Kuehler <kkuehler@brave.com>
| -rw-r--r-- | commands/account/next.go | 6 | ||||
| -rw-r--r-- | commands/msgview/next.go | 36 | 
2 files changed, 40 insertions, 2 deletions
| 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 +} | 
