aerc/commands/msg/toggle-threads.go
Koni Marti 2512c0403f statusline: implement per-account status
Implement a statusline state for each account. Keep the ex line and the
push notifications global. Add account name prefix to push
notifications. Prefix status line with account name when multiple
accounts are available.

Use account-specific status line for each tab where an account is
defined.

Handle threading, filter/search, viewer passthrough and connection
status.

Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
2022-03-18 23:42:07 +01:00

42 lines
785 B
Go

package msg
import (
"errors"
"git.sr.ht/~rjarry/aerc/lib/statusline"
"git.sr.ht/~rjarry/aerc/widgets"
)
type ToggleThreads struct{}
func init() {
register(ToggleThreads{})
}
func (ToggleThreads) Aliases() []string {
return []string{"toggle-threads"}
}
func (ToggleThreads) Complete(aerc *widgets.Aerc, args []string) []string {
return nil
}
func (ToggleThreads) Execute(aerc *widgets.Aerc, args []string) error {
if len(args) != 1 {
return errors.New("Usage: toggle-threads")
}
h := newHelper(aerc)
acct, err := h.account()
if err != nil {
return err
}
store, err := h.store()
if err != nil {
return err
}
store.SetBuildThreads(!store.BuildThreads())
acct.SetStatus(statusline.Threading(store.BuildThreads()))
acct.Messages().Invalidate()
return nil
}