aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2020-05-28 10:32:32 -0400
committerDrew DeVault <sir@cmpwn.com>2020-05-28 10:32:32 -0400
commit76a91813d8dc0f0011202f8120fc197097f022aa (patch)
treeff4cd6581d3af0911954a37550602366d2bb0e2f
parentb9af9b5fb1c4f226499ab9c56d3e24f2b9b2db24 (diff)
downloadaerc-76a91813d8dc0f0011202f8120fc197097f022aa.tar.gz
Revert "Remove duration from the status methods"
This reverts commit f06d683688e3d2139b14f67b7e349089e7200bf4.
-rw-r--r--commands/account/mkdir.go5
-rw-r--r--commands/account/view.go3
-rw-r--r--commands/compose/attach.go9
-rw-r--r--commands/compose/detach.go3
-rw-r--r--commands/compose/postpone.go8
-rw-r--r--commands/compose/send.go10
-rw-r--r--commands/exec.go7
-rw-r--r--commands/msg/archive.go5
-rw-r--r--commands/msg/copy.go5
-rw-r--r--commands/msg/delete.go7
-rw-r--r--commands/msg/forward.go3
-rw-r--r--commands/msg/modify-labels.go5
-rw-r--r--commands/msg/move.go5
-rw-r--r--commands/msg/pipe.go9
-rw-r--r--commands/msg/read.go9
-rw-r--r--commands/msg/recall.go3
-rw-r--r--commands/msg/reply.go3
-rw-r--r--commands/msgview/next.go4
-rw-r--r--commands/msgview/open.go9
-rw-r--r--commands/msgview/save.go4
-rw-r--r--commands/pwd.go3
-rw-r--r--commands/term.go3
-rw-r--r--commands/util.go8
-rw-r--r--widgets/account-wizard.go7
-rw-r--r--widgets/account.go3
-rw-r--r--widgets/aerc.go20
-rw-r--r--widgets/compose.go5
-rw-r--r--widgets/msglist.go3
-rw-r--r--widgets/tabhost.go10
29 files changed, 104 insertions, 74 deletions
diff --git a/commands/account/mkdir.go b/commands/account/mkdir.go
index fa0832d5..f99fc01d 100644
--- a/commands/account/mkdir.go
+++ b/commands/account/mkdir.go
@@ -3,6 +3,7 @@ package account
import (
"errors"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/aerc/widgets"
"git.sr.ht/~sircmpwn/aerc/worker/types"
@@ -36,10 +37,10 @@ func (MakeDir) Execute(aerc *widgets.Aerc, args []string) error {
}, func(msg types.WorkerMessage) {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus("Directory created.")
+ aerc.PushStatus("Directory created.", 10*time.Second)
acct.Directories().Select(name)
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
}
})
return nil
diff --git a/commands/account/view.go b/commands/account/view.go
index b421666b..d4653be2 100644
--- a/commands/account/view.go
+++ b/commands/account/view.go
@@ -2,6 +2,7 @@ package account
import (
"errors"
+ "time"
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/widgets"
@@ -41,7 +42,7 @@ func (ViewMessage) Execute(aerc *widgets.Aerc, args []string) error {
lib.NewMessageStoreView(msg, store, aerc.DecryptKeys,
func(view lib.MessageView, err error) {
if err != nil {
- aerc.PushError(err.Error())
+ aerc.PushError(err.Error(), 10*time.Second)
return
}
viewer := widgets.NewMessageViewer(acct, aerc.Config(), view)
diff --git a/commands/compose/attach.go b/commands/compose/attach.go
index 148442b0..6b8d72fc 100644
--- a/commands/compose/attach.go
+++ b/commands/compose/attach.go
@@ -4,6 +4,7 @@ import (
"fmt"
"os"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/aerc/commands"
"git.sr.ht/~sircmpwn/aerc/widgets"
@@ -34,23 +35,23 @@ func (Attach) Execute(aerc *widgets.Aerc, args []string) error {
path, err := homedir.Expand(path)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
return err
}
pathinfo, err := os.Stat(path)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
return err
} else if pathinfo.IsDir() {
- aerc.PushError("Attachment must be a file, not a directory")
+ aerc.PushError("Attachment must be a file, not a directory", 10*time.Second)
return nil
}
composer, _ := aerc.SelectedTab().(*widgets.Composer)
composer.AddAttachment(path)
- aerc.PushSuccess(fmt.Sprintf("Attached %s", pathinfo.Name()))
+ aerc.PushSuccess(fmt.Sprintf("Attached %s", pathinfo.Name()), 10*time.Second)
return nil
}
diff --git a/commands/compose/detach.go b/commands/compose/detach.go
index b48159d0..8bc0e887 100644
--- a/commands/compose/detach.go
+++ b/commands/compose/detach.go
@@ -3,6 +3,7 @@ package compose
import (
"fmt"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/aerc/widgets"
)
@@ -42,7 +43,7 @@ func (Detach) Execute(aerc *widgets.Aerc, args []string) error {
return err
}
- aerc.PushSuccess(fmt.Sprintf("Detached %s", path))
+ aerc.PushSuccess(fmt.Sprintf("Detached %s", path), 10*time.Second)
return nil
}
diff --git a/commands/compose/postpone.go b/commands/compose/postpone.go
index 4427ff66..90b6134b 100644
--- a/commands/compose/postpone.go
+++ b/commands/compose/postpone.go
@@ -63,7 +63,7 @@ func (Postpone) Execute(aerc *widgets.Aerc, args []string) error {
go func() {
errStr := <-errChan
if errStr != "" {
- aerc.PushError(" " + errStr)
+ aerc.PushError(" "+errStr, 10*time.Second)
return
}
@@ -71,7 +71,7 @@ func (Postpone) Execute(aerc *widgets.Aerc, args []string) error {
ctr := datacounter.NewWriterCounter(ioutil.Discard)
err = composer.WriteMessage(header, ctr)
if err != nil {
- aerc.PushError(errors.Wrap(err, "WriteMessage").Error())
+ aerc.PushError(errors.Wrap(err, "WriteMessage").Error(), 10*time.Second)
composer.Close()
return
}
@@ -86,11 +86,11 @@ func (Postpone) Execute(aerc *widgets.Aerc, args []string) error {
}, func(msg types.WorkerMessage) {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus("Message postponed.")
+ aerc.PushStatus("Message postponed.", 10*time.Second)
r.Close()
composer.Close()
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
r.Close()
composer.Close()
}
diff --git a/commands/compose/send.go b/commands/compose/send.go
index e7ace858..a22be8f8 100644
--- a/commands/compose/send.go
+++ b/commands/compose/send.go
@@ -221,14 +221,14 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
}
go func() {
- aerc.PushStatus("Sending...")
+ aerc.PushStatus("Sending...", 10*time.Second)
nbytes, err := sendAsync()
if err != nil {
aerc.SetError(" " + err.Error())
return
}
if config.CopyTo != "" {
- aerc.PushStatus("Copying to " + config.CopyTo)
+ aerc.PushStatus("Copying to "+config.CopyTo, 10*time.Second)
worker := composer.Worker()
r, w := io.Pipe()
worker.PostAction(&types.AppendMessage{
@@ -240,12 +240,12 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
}, func(msg types.WorkerMessage) {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus("Message sent.")
+ aerc.PushStatus("Message sent.", 10*time.Second)
r.Close()
composer.SetSent()
composer.Close()
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
r.Close()
composer.Close()
}
@@ -254,7 +254,7 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
composer.WriteMessage(header, w)
w.Close()
} else {
- aerc.PushStatus("Message sent.")
+ aerc.PushStatus("Message sent.", 10*time.Second)
composer.SetSent()
composer.Close()
}
diff --git a/commands/exec.go b/commands/exec.go
index f4a05a22..0a5470dc 100644
--- a/commands/exec.go
+++ b/commands/exec.go
@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"os/exec"
+ "time"
"git.sr.ht/~sircmpwn/aerc/widgets"
)
@@ -30,16 +31,16 @@ func (ExecCmd) Execute(aerc *widgets.Aerc, args []string) error {
go func() {
err := cmd.Run()
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
} else {
if cmd.ProcessState.ExitCode() != 0 {
aerc.PushError(fmt.Sprintf(
"%s: completed with status %d", args[0],
- cmd.ProcessState.ExitCode()))
+ cmd.ProcessState.ExitCode()), 10*time.Second)
} else {
aerc.PushStatus(fmt.Sprintf(
"%s: completed with status %d", args[0],
- cmd.ProcessState.ExitCode()))
+ cmd.ProcessState.ExitCode()), 10*time.Second)
}
}
}()
diff --git a/commands/msg/archive.go b/commands/msg/archive.go
index afd0d55e..ba7e1f7f 100644
--- a/commands/msg/archive.go
+++ b/commands/msg/archive.go
@@ -5,6 +5,7 @@ import (
"fmt"
"path"
"sync"
+ "time"
"git.sr.ht/~sircmpwn/aerc/commands"
"git.sr.ht/~sircmpwn/aerc/models"
@@ -85,7 +86,7 @@ func (Archive) Execute(aerc *widgets.Aerc, args []string) error {
case *types.Done:
wg.Done()
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
success = false
wg.Done()
}
@@ -95,7 +96,7 @@ func (Archive) Execute(aerc *widgets.Aerc, args []string) error {
go func() {
wg.Wait()
if success {
- aerc.PushStatus("Messages archived.")
+ aerc.PushStatus("Messages archived.", 10*time.Second)
}
}()
return nil
diff --git a/commands/msg/copy.go b/commands/msg/copy.go
index 9a8bcb83..e822c5c1 100644
--- a/commands/msg/copy.go
+++ b/commands/msg/copy.go
@@ -3,6 +3,7 @@ package msg
import (
"errors"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/getopt"
@@ -57,9 +58,9 @@ func (Copy) Execute(aerc *widgets.Aerc, args []string) error {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus("Messages copied.")
+ aerc.PushStatus("Messages copied.", 10*time.Second)
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
}
})
return nil
diff --git a/commands/msg/delete.go b/commands/msg/delete.go
index 46633838..482b60c1 100644
--- a/commands/msg/delete.go
+++ b/commands/msg/delete.go
@@ -2,6 +2,7 @@ package msg
import (
"errors"
+ "time"
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/models"
@@ -44,9 +45,9 @@ func (Delete) Execute(aerc *widgets.Aerc, args []string) error {
store.Delete(uids, func(msg types.WorkerMessage) {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus("Messages deleted.")
+ aerc.PushStatus("Messages deleted.", 10*time.Second)
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
}
})
@@ -67,7 +68,7 @@ func (Delete) Execute(aerc *widgets.Aerc, args []string) error {
lib.NewMessageStoreView(next, store, aerc.DecryptKeys,
func(view lib.MessageView, err error) {
if err != nil {
- aerc.PushError(err.Error())
+ aerc.PushError(err.Error(), 10*time.Second)
return
}
nextMv := widgets.NewMessageViewer(acct, aerc.Config(), view)
diff --git a/commands/msg/forward.go b/commands/msg/forward.go
index 28abbed1..5dd51b29 100644
--- a/commands/msg/forward.go
+++ b/commands/msg/forward.go
@@ -9,6 +9,7 @@ import (
"os"
"path"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/aerc/models"
"git.sr.ht/~sircmpwn/aerc/widgets"
@@ -83,7 +84,7 @@ func (forward) Execute(aerc *widgets.Aerc, args []string) error {
composer, err := widgets.NewComposer(aerc, acct, aerc.Config(), acct.AccountConfig(),
acct.Worker(), template, defaults, original)
if err != nil {
- aerc.PushError("Error: " + err.Error())
+ aerc.PushError("Error: "+err.Error(), 10*time.Second)
return nil, err
}
diff --git a/commands/msg/modify-labels.go b/commands/msg/modify-labels.go
index 02e64786..d74aece5 100644
--- a/commands/msg/modify-labels.go
+++ b/commands/msg/modify-labels.go
@@ -2,6 +2,7 @@ package msg
import (
"errors"
+ "time"
"git.sr.ht/~sircmpwn/aerc/commands"
"git.sr.ht/~sircmpwn/aerc/widgets"
@@ -55,9 +56,9 @@ func (ModifyLabels) Execute(aerc *widgets.Aerc, args []string) error {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus("labels updated")
+ aerc.PushStatus("labels updated", 10*time.Second)
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
}
})
return nil
diff --git a/commands/msg/move.go b/commands/msg/move.go
index 504beda9..a19194ee 100644
--- a/commands/msg/move.go
+++ b/commands/msg/move.go
@@ -3,6 +3,7 @@ package msg
import (
"errors"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/getopt"
@@ -68,9 +69,9 @@ func (Move) Execute(aerc *widgets.Aerc, args []string) error {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus("Message moved to " + joinedArgs)
+ aerc.PushStatus("Message moved to "+joinedArgs, 10*time.Second)
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
}
})
return nil
diff --git a/commands/msg/pipe.go b/commands/msg/pipe.go
index 15e0fdab..15b8c52a 100644
--- a/commands/msg/pipe.go
+++ b/commands/msg/pipe.go
@@ -5,6 +5,7 @@ import (
"fmt"
"io"
"os/exec"
+ "time"
"git.sr.ht/~sircmpwn/aerc/commands"
"git.sr.ht/~sircmpwn/aerc/widgets"
@@ -74,7 +75,7 @@ func (Pipe) Execute(aerc *widgets.Aerc, args []string) error {
doTerm := func(reader io.Reader, name string) {
term, err := commands.QuickTerm(aerc, cmd, reader)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
return
}
aerc.NewTab(term, name)
@@ -92,16 +93,16 @@ func (Pipe) Execute(aerc *widgets.Aerc, args []string) error {
}()
err = ecmd.Run()
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
} else {
if ecmd.ProcessState.ExitCode() != 0 {
aerc.PushError(fmt.Sprintf(
"%s: completed with status %d", cmd[0],
- ecmd.ProcessState.ExitCode()))
+ ecmd.ProcessState.ExitCode()), 10*time.Second)
} else {
aerc.PushStatus(fmt.Sprintf(
"%s: completed with status %d", cmd[0],
- ecmd.ProcessState.ExitCode()))
+ ecmd.ProcessState.ExitCode()), 10*time.Second)
}
}
}
diff --git a/commands/msg/read.go b/commands/msg/read.go
index a08b8074..e27f7433 100644
--- a/commands/msg/read.go
+++ b/commands/msg/read.go
@@ -3,6 +3,7 @@ package msg
import (
"errors"
"sync"
+ "time"
"git.sr.ht/~sircmpwn/getopt"
@@ -90,9 +91,9 @@ func submitReadChange(aerc *widgets.Aerc, store *lib.MessageStore,
store.Read(uids, newState, func(msg types.WorkerMessage) {
switch msg := msg.(type) {
case *types.Done:
- aerc.PushStatus(msg_success)
+ aerc.PushStatus(msg_success, 10*time.Second)
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
}
})
}
@@ -105,7 +106,7 @@ func submitReadChangeWg(aerc *widgets.Aerc, store *lib.MessageStore,
case *types.Done:
wg.Done()
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
*success = false
wg.Done()
}
@@ -135,7 +136,7 @@ func submitToggle(aerc *widgets.Aerc, store *lib.MessageStore, h *helper) error
go func() {
wg.Wait()
if success {
- aerc.PushStatus(msg_success)
+ aerc.PushStatus(msg_success, 10*time.Second)
}
}()
return nil
diff --git a/commands/msg/recall.go b/commands/msg/recall.go
index 7c9ac193..6c5e9736 100644
--- a/commands/msg/recall.go
+++ b/commands/msg/recall.go
@@ -2,6 +2,7 @@ package msg
import (
"io"
+ "time"
"github.com/emersion/go-message"
_ "github.com/emersion/go-message/charset"
@@ -91,7 +92,7 @@ func (Recall) Execute(aerc *widgets.Aerc, args []string) error {
}, func(msg types.WorkerMessage) {
switch msg := msg.(type) {
case *types.Error:
- aerc.PushError(" " + msg.Error.Error())
+ aerc.PushError(" "+msg.Error.Error(), 10*time.Second)
composer.Close()
}
})
diff --git a/commands/msg/reply.go b/commands/msg/reply.go
index 28ce245d..455c7ca5 100644
--- a/commands/msg/reply.go
+++ b/commands/msg/reply.go
@@ -7,6 +7,7 @@ import (
"io"
gomail "net/mail"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/getopt"
@@ -139,7 +140,7 @@ func (reply) Execute(aerc *widgets.Aerc, args []string) error {
composer, err := widgets.NewComposer(aerc, acct, aerc.Config(),
acct.AccountConfig(), acct.Worker(), template, defaults, original)
if err != nil {
- aerc.PushError("Error: " + err.Error())
+ aerc.PushError("Error: "+err.Error(), 10*time.Second)
return err
}
diff --git a/commands/msgview/next.go b/commands/msgview/next.go
index 978cf10f..f9fb3d7b 100644
--- a/commands/msgview/next.go
+++ b/commands/msgview/next.go
@@ -1,6 +1,8 @@
package msgview
import (
+ "time"
+
"git.sr.ht/~sircmpwn/aerc/commands/account"
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/widgets"
@@ -40,7 +42,7 @@ func (NextPrevMsg) Execute(aerc *widgets.Aerc, args []string) error {
lib.NewMessageStoreView(nextMsg, store, aerc.DecryptKeys,
func(view lib.MessageView, err error) {
if err != nil {
- aerc.PushError(err.Error())
+ aerc.PushError(err.Error(), 10*time.Second)
return
}
nextMv := widgets.NewMessageViewer(acct, aerc.Config(), view)
diff --git a/commands/msgview/open.go b/commands/msgview/open.go
index e2545e35..7f26542a 100644
--- a/commands/msgview/open.go
+++ b/commands/msgview/open.go
@@ -7,6 +7,7 @@ import (
"io/ioutil"
"mime"
"os"
+ "time"
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/widgets"
@@ -48,23 +49,23 @@ func (Open) Execute(aerc *widgets.Aerc, args []string) error {
tmpFile, err := ioutil.TempFile(os.TempDir(), "aerc-*"+extension)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
return
}
defer tmpFile.Close()
_, err = io.Copy(tmpFile, reader)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
return
}
err = lib.OpenFile(tmpFile.Name())
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
}
- aerc.PushStatus("Opened")
+ aerc.PushStatus("Opened", 10*time.Second)
})
return nil
diff --git a/commands/msgview/save.go b/commands/msgview/save.go
index 7dbb0df7..ea1b8f34 100644
--- a/commands/msgview/save.go
+++ b/commands/msgview/save.go
@@ -128,10 +128,10 @@ func (Save) Execute(aerc *widgets.Aerc, args []string) error {
go func() {
err := <-ch
if err != nil {
- aerc.PushError(fmt.Sprintf("Save failed: %v", err))
+ aerc.PushError(fmt.Sprintf("Save failed: %v", err), 10*time.Second)
return
}
- aerc.PushStatus("Saved to " + path)
+ aerc.PushStatus("Saved to "+path, 10*time.Second)
}()
return nil
}
diff --git a/commands/pwd.go b/commands/pwd.go
index fc9a411a..d3f0e0c1 100644
--- a/commands/pwd.go
+++ b/commands/pwd.go
@@ -3,6 +3,7 @@ package commands
import (
"errors"
"os"
+ "time"
"git.sr.ht/~sircmpwn/aerc/widgets"
)
@@ -29,6 +30,6 @@ func (PrintWorkDir) Execute(aerc *widgets.Aerc, args []string) error {
if err != nil {
return err
}
- aerc.PushStatus(pwd)
+ aerc.PushStatus(pwd, 10*time.Second)
return nil
}
diff --git a/commands/term.go b/commands/term.go
index 00f6937b..90232859 100644
--- a/commands/term.go
+++ b/commands/term.go
@@ -2,6 +2,7 @@ package commands
import (
"os/exec"
+ "time"
"github.com/riywo/loginshell"
@@ -46,7 +47,7 @@ func TermCore(aerc *widgets.Aerc, args []string) error {
term.OnClose = func(err error) {
aerc.RemoveTab(term)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
}
}
return nil
diff --git a/commands/util.go b/commands/util.go
index bab97743..7c7b6ab1 100644
--- a/commands/util.go
+++ b/commands/util.go
@@ -8,6 +8,7 @@ import (
"path/filepath"
"sort"
"strings"
+ "time"
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/models"
@@ -31,11 +32,12 @@ func QuickTerm(aerc *widgets.Aerc, args []string, stdin io.Reader) (*widgets.Ter
term.OnClose = func(err error) {
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
// remove the tab on error, otherwise it gets stuck
aerc.RemoveTab(term)
} else {
- aerc.PushStatus("Process complete, press any key to close.")
+ aerc.PushStatus("Process complete, press any key to close.",
+ 10*time.Second)
term.OnEvent = func(event tcell.Event) bool {
aerc.RemoveTab(term)
return true
@@ -54,7 +56,7 @@ func QuickTerm(aerc *widgets.Aerc, args []string, stdin io.Reader) (*widgets.Ter
err := <-status
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
}
}
diff --git a/widgets/account-wizard.go b/widgets/account-wizard.go
index 9bdac982..e247dd23 100644
--- a/widgets/account-wizard.go
+++ b/widgets/account-wizard.go
@@ -10,6 +10,7 @@ import (
"path"
"strconv"
"strings"
+ "time"
"github.com/gdamore/tcell"
"github.com/go-ini/ini"
@@ -428,7 +429,7 @@ func (wizard *AccountWizard) ConfigureTemporaryAccount(temporary bool) {
func (wizard *AccountWizard) errorFor(d ui.Interactive, err error) {
if d == nil {
- wizard.aerc.PushError(" " + err.Error())
+ wizard.aerc.PushError(" "+err.Error(), 10*time.Second)
wizard.Invalidate()
return
}
@@ -443,7 +444,7 @@ func (wizard *AccountWizard) errorFor(d ui.Interactive, err error) {
wizard.step = step
wizard.focus = focus
wizard.Focus(true)
- wizard.aerc.PushError(" " + err.Error())
+ wizard.aerc.PushError(" "+err.Error(), 10*time.Second)
wizard.Invalidate()
return
}
@@ -554,7 +555,7 @@ func (wizard *AccountWizard) finish(tutorial bool) {
term.OnClose = func(err error) {
wizard.aerc.RemoveTab(term)
if err != nil {
- wizard.aerc.PushError(" " + err.Error())
+ wizard.aerc.PushError(" "+err.Error(), 10*time.Second)
}
}
}
diff --git a/widgets/account.go b/widgets/account.go
index 113cbf78..564a95d1 100644
--- a/widgets/account.go
+++ b/widgets/account.go
@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"log"
+ "time"
"github.com/gdamore/tcell"
@@ -289,7 +290,7 @@ func (acct *AccountView) getSortCriteria() []*types.SortCriterion {
}
criteria, err := sort.GetSortCriteria(acct.UiConfig().Sort)
if err != nil {
- acct.aerc.PushError(" ui.sort: " + err.Error())
+ acct.aerc.PushError(" ui.sort: "+err.Error(), 10*time.Second)
return nil
}
return criteria
diff --git a/widgets/aerc.go b/widgets/aerc.go
index 47d7cc29..57d6cef9 100644
--- a/widgets/aerc.go
+++ b/widgets/aerc.go
@@ -386,16 +386,16 @@ func (aerc *Aerc) SetError(status string) *StatusMessage {
return aerc.statusline.SetError(status)
}
-func (aerc *Aerc) PushStatus(text string) *StatusMessage {
- return aerc.statusline.Push(text, 10*time.Second)
+func (aerc *Aerc) PushStatus(text string, expiry time.Duration) *StatusMessage {
+ return aerc.statusline.Push(text, expiry)
}
-func (aerc *Aerc) PushError(text string) *StatusMessage {
- return aerc.statusline.PushError(text, 10*time.Second)
+func (aerc *Aerc) PushError(text string, expiry time.Duration) *StatusMessage {
+ return aerc.statusline.PushError(text, expiry)
}
-func (aerc *Aerc) PushSuccess(text string) *StatusMessage {
- return aerc.statusline.PushSuccess(text, 10*time.Second)
+func (aerc *Aerc) PushSuccess(text string, expiry time.Duration) *StatusMessage {
+ return aerc.statusline.PushSuccess(text, expiry)
}
func (aerc *Aerc) focus(item ui.Interactive) {
@@ -424,11 +424,11 @@ func (aerc *Aerc) BeginExCommand(cmd string) {
exline := NewExLine(aerc.conf, cmd, func(cmd string) {
parts, err := shlex.Split(cmd)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
}
err = aerc.cmd(parts)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
}
// only add to history if this is an unsimulated command,
// ie one not executed from a keybinding
@@ -452,7 +452,7 @@ func (aerc *Aerc) RegisterPrompt(prompt string, cmd []string) {
}
err := aerc.cmd(cmd)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
}
}, func(cmd string) []string {
return nil // TODO: completions
@@ -479,7 +479,7 @@ func (aerc *Aerc) RegisterChoices(choices []Choice) {
}
err := aerc.cmd(cmd)
if err != nil {
- aerc.PushError(" " + err.Error())
+ aerc.PushError(" "+err.Error(), 10*time.Second)
}
}, func(cmd string) []string {
return nil // TODO: completions
diff --git a/widgets/compose.go b/widgets/compose.go
index a0faf588..f85e1f34 100644
--- a/widgets/compose.go
+++ b/widgets/compose.go
@@ -73,7 +73,7 @@ func NewComposer(aerc *Aerc, acct *AccountView, conf *config.AercConfig,
templateData := templates.ParseTemplateData(defaults, original)
cmpl := completer.New(conf.Compose.AddressBookCmd, func(err error) {
aerc.PushError(
- fmt.Sprintf("could not complete header: %v", err))
+ fmt.Sprintf("could not complete header: %v", err), 10*time.Second)
worker.Logger.Printf("could not complete header: %v", err)
}, aerc.Logger())
layout, editors, focusable := buildComposeHeader(aerc, cmpl, defaults)
@@ -261,7 +261,8 @@ func (c *Composer) readSignatureFromFile() []byte {
signature, err := ioutil.ReadFile(sigFile)
if err != nil {
c.aerc.PushError(
- fmt.Sprintf(" Error loading signature from file: %v", sigFile))
+ fmt.Sprintf(" Error loading signature from file: %v", sigFile),
+ 10*time.Second)
return nil
}
return signature
diff --git a/widgets/msglist.go b/widgets/msglist.go
index b440f3e0..5d12f8e3 100644
--- a/widgets/msglist.go
+++ b/widgets/msglist.go
@@ -3,6 +3,7 @@ package widgets
import (
"fmt"
"log"
+ "time"
"github.com/gdamore/tcell"
"github.com/mattn/go-runewidth"
@@ -185,7 +186,7 @@ func (ml *MessageList) MouseEvent(localX int, localY int, event tcell.Event) {
lib.NewMessageStoreView(msg, store, ml.aerc.DecryptKeys,
func(view lib.MessageView, err error) {
if err != nil {
- ml.aerc.PushError(err.Error())
+ ml.aerc.PushError(err.Error(), 10*time.Second)
return
}
viewer := NewMessageViewer(acct, ml.aerc.Config(), view)
diff --git a/widgets/tabhost.go b/widgets/tabhost.go
index b6b3041d..1322a0aa 100644
--- a/widgets/tabhost.go
+++ b/widgets/tabhost.go
@@ -1,11 +1,15 @@
package widgets
+import (
+ "time"
+)
+
type TabHost interface {
BeginExCommand(cmd string)
SetStatus(status string) *StatusMessage
SetError(err string) *StatusMessage
- PushStatus(text string) *StatusMessage
- PushError(text string) *StatusMessage
- PushSuccess(text string) *StatusMessage
+ PushStatus(text string, expiry time.Duration) *StatusMessage
+ PushError(text string, expiry time.Duration) *StatusMessage
+ PushSuccess(text string, expiry time.Duration) *StatusMessage
Beep()
}