Add message view commands, :close
This commit is contained in:
parent
04d9ab3ce6
commit
5d0402aeea
6 changed files with 47 additions and 5 deletions
6
aerc.go
6
aerc.go
|
@ -12,6 +12,7 @@ import (
|
|||
"git.sr.ht/~sircmpwn/aerc2/config"
|
||||
"git.sr.ht/~sircmpwn/aerc2/commands"
|
||||
"git.sr.ht/~sircmpwn/aerc2/commands/account"
|
||||
"git.sr.ht/~sircmpwn/aerc2/commands/msgview"
|
||||
"git.sr.ht/~sircmpwn/aerc2/commands/terminal"
|
||||
libui "git.sr.ht/~sircmpwn/aerc2/lib/ui"
|
||||
"git.sr.ht/~sircmpwn/aerc2/widgets"
|
||||
|
@ -24,6 +25,11 @@ func getCommands(selected libui.Drawable) []*commands.Commands {
|
|||
account.AccountCommands,
|
||||
commands.GlobalCommands,
|
||||
}
|
||||
case *widgets.MessageViewer:
|
||||
return []*commands.Commands{
|
||||
msgview.MessageViewCommands,
|
||||
commands.GlobalCommands,
|
||||
}
|
||||
case *widgets.Terminal:
|
||||
return []*commands.Commands{
|
||||
terminal.TerminalCommands,
|
||||
|
|
21
commands/msgview/close.go
Normal file
21
commands/msgview/close.go
Normal file
|
@ -0,0 +1,21 @@
|
|||
package msgview
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"git.sr.ht/~sircmpwn/aerc2/widgets"
|
||||
)
|
||||
|
||||
func init() {
|
||||
register("close", CommandClose)
|
||||
}
|
||||
|
||||
func CommandClose(aerc *widgets.Aerc, args []string) error {
|
||||
if len(args) != 1 {
|
||||
return errors.New("Usage: close")
|
||||
}
|
||||
mv, _ := aerc.SelectedTab().(*widgets.MessageViewer)
|
||||
aerc.RemoveTab(mv)
|
||||
return nil
|
||||
}
|
||||
|
16
commands/msgview/msgview.go
Normal file
16
commands/msgview/msgview.go
Normal file
|
@ -0,0 +1,16 @@
|
|||
package msgview
|
||||
|
||||
import (
|
||||
"git.sr.ht/~sircmpwn/aerc2/commands"
|
||||
)
|
||||
|
||||
var (
|
||||
MessageViewCommands *commands.Commands
|
||||
)
|
||||
|
||||
func register(name string, cmd commands.AercCommand) {
|
||||
if MessageViewCommands == nil {
|
||||
MessageViewCommands = commands.NewCommands()
|
||||
}
|
||||
MessageViewCommands.Register(name, cmd)
|
||||
}
|
|
@ -14,10 +14,7 @@ func CommandClose(aerc *widgets.Aerc, args []string) error {
|
|||
if len(args) != 1 {
|
||||
return errors.New("Usage: close")
|
||||
}
|
||||
term, ok := aerc.SelectedTab().(*widgets.Terminal)
|
||||
if !ok {
|
||||
return errors.New("Error: not a terminal")
|
||||
}
|
||||
term, _ := aerc.SelectedTab().(*widgets.Terminal)
|
||||
term.Close(nil)
|
||||
aerc.RemoveTab(term)
|
||||
return nil
|
||||
|
|
|
@ -32,7 +32,7 @@ c = :cf<space>
|
|||
$ = :term<space>
|
||||
| = :pipe<space>
|
||||
|
||||
[msgview]
|
||||
[view]
|
||||
q = :close<Enter>
|
||||
| = :pipe<space>
|
||||
r = :reply<Enter>
|
||||
|
|
|
@ -93,6 +93,8 @@ func (aerc *Aerc) getBindings() *config.KeyBindings {
|
|||
switch aerc.SelectedTab().(type) {
|
||||
case *AccountView:
|
||||
return aerc.conf.Bindings.MessageList
|
||||
case *MessageViewer:
|
||||
return aerc.conf.Bindings.MessageView
|
||||
case *Terminal:
|
||||
return aerc.conf.Bindings.Terminal
|
||||
default:
|
||||
|
|
Loading…
Reference in a new issue