summary refs log tree commit diff stats
path: root/commands
diff options
context:
space:
mode:
authorDaniel Bridges <bridges2@gmail.com>2019-07-22 16:29:07 -0700
committerDrew DeVault <sir@cmpwn.com>2019-07-26 14:22:04 -0400
commit67fb0938a66605a0b6a837005804637b348b250d (patch)
treeb9bb363185b248ae8eed29e7b8388d8a71433d3e /commands
parent1b673b5ea7d06ef914e9d48ff7299f8b5f2119fd (diff)
downloadaerc-67fb0938a66605a0b6a837005804637b348b250d.tar.gz
Support configurable header layout in compose widget
Diffstat (limited to 'commands')
-rw-r--r--commands/account/compose.go4
-rw-r--r--commands/msg/reply.go17
-rw-r--r--commands/msg/unsubscribe.go14
3 files changed, 20 insertions, 15 deletions
diff --git a/commands/account/compose.go b/commands/account/compose.go
index cafba78..f615c0b 100644
--- a/commands/account/compose.go
+++ b/commands/account/compose.go
@@ -27,9 +27,9 @@ func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error {
 	}
 	acct := aerc.SelectedAccount()
 	composer := widgets.NewComposer(
-		aerc.Config(), acct.AccountConfig(), acct.Worker())
+		aerc.Config(), acct.AccountConfig(), acct.Worker(), nil)
 	tab := aerc.NewTab(composer, "New email")
-	composer.OnSubjectChange(func(subject string) {
+	composer.OnHeaderChange("Subject", func(subject string) {
 		if subject == "" {
 			tab.Name = "New email"
 		} else {
diff --git a/commands/msg/reply.go b/commands/msg/reply.go
index 85c5d3a..029cb42 100644
--- a/commands/msg/reply.go
+++ b/commands/msg/reply.go
@@ -113,14 +113,15 @@ func (_ reply) Execute(aerc *widgets.Aerc, args []string) error {
 		}
 	}
 
+	defaults := map[string]string{
+		"To":          strings.Join(to, ", "),
+		"Cc":          strings.Join(cc, ", "),
+		"Subject":     subject,
+		"In-Reply-To": msg.Envelope.MessageId,
+	}
+
 	composer := widgets.NewComposer(
-		aerc.Config(), acct.AccountConfig(), acct.Worker()).
-		Defaults(map[string]string{
-			"To":          strings.Join(to, ", "),
-			"Cc":          strings.Join(cc, ", "),
-			"Subject":     subject,
-			"In-Reply-To": msg.Envelope.MessageId,
-		})
+		aerc.Config(), acct.AccountConfig(), acct.Worker(), defaults)
 
 	if args[0] == "reply" {
 		composer.FocusTerminal()
@@ -128,7 +129,7 @@ func (_ reply) Execute(aerc *widgets.Aerc, args []string) error {
 
 	addTab := func() {
 		tab := aerc.NewTab(composer, subject)
-		composer.OnSubjectChange(func(subject string) {
+		composer.OnHeaderChange("Subject", func(subject string) {
 			if subject == "" {
 				tab.Name = "New email"
 			} else {
diff --git a/commands/msg/unsubscribe.go b/commands/msg/unsubscribe.go
index 720ff43..f18da07 100644
--- a/commands/msg/unsubscribe.go
+++ b/commands/msg/unsubscribe.go
@@ -83,15 +83,19 @@ func parseUnsubscribeMethods(header string) (methods []*url.URL) {
 func unsubscribeMailto(aerc *widgets.Aerc, u *url.URL) error {
 	widget := aerc.SelectedTab().(widgets.ProvidesMessage)
 	acct := widget.SelectedAccount()
-	composer := widgets.NewComposer(aerc.Config(), acct.AccountConfig(),
-		acct.Worker())
-	composer.Defaults(map[string]string{
+	defaults := map[string]string{
 		"To":      u.Opaque,
 		"Subject": u.Query().Get("subject"),
-	})
+	}
+	composer := widgets.NewComposer(
+		aerc.Config(),
+		acct.AccountConfig(),
+		acct.Worker(),
+		defaults,
+	)
 	composer.SetContents(strings.NewReader(u.Query().Get("body")))
 	tab := aerc.NewTab(composer, "unsubscribe")
-	composer.OnSubjectChange(func(subject string) {
+	composer.OnHeaderChange("Subject", func(subject string) {
 		if subject == "" {
 			tab.Name = "unsubscribe"
 		} else {