about summary refs log tree commit diff stats
path: root/widgets
diff options
context:
space:
mode:
authorBen Burwell <ben@benburwell.com>2019-07-07 22:43:58 -0400
committerDrew DeVault <sir@cmpwn.com>2019-07-08 16:06:28 -0400
commitc610c3cd9dd47c400e52c1858e987f5f32a7a45b (patch)
tree6e521ba706d87ea4a03ce81d57ff84317506f3df /widgets
parent88c379dcbaaf9fd549cd271817e79fe634b1dd84 (diff)
downloadaerc-c610c3cd9dd47c400e52c1858e987f5f32a7a45b.tar.gz
Factor IMAP-specific structs out of UI models
Before, we were using several IMAP-specific concepts to represent
information being displayed in the UI. Factor these structures out of
the IMAP package to make it easier for other backends to provide the
required information.
Diffstat (limited to 'widgets')
-rw-r--r--widgets/msglist.go3
-rw-r--r--widgets/msgviewer.go17
-rw-r--r--widgets/providesmessage.go6
3 files changed, 11 insertions, 15 deletions
diff --git a/widgets/msglist.go b/widgets/msglist.go
index 7051478..8968653 100644
--- a/widgets/msglist.go
+++ b/widgets/msglist.go
@@ -4,7 +4,6 @@ import (
 	"fmt"
 	"log"
 
-	"github.com/emersion/go-imap"
 	"github.com/gdamore/tcell"
 	"github.com/mattn/go-runewidth"
 
@@ -86,7 +85,7 @@ func (ml *MessageList) Draw(ctx *ui.Context) {
 		// unread message
 		seen := false
 		for _, flag := range msg.Flags {
-			if flag == imap.SeenFlag {
+			if flag == models.SeenFlag {
 				seen = true
 			}
 		}
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go
index 6a645f9..f6bef2d 100644
--- a/widgets/msgviewer.go
+++ b/widgets/msgviewer.go
@@ -9,7 +9,6 @@ import (
 	"strings"
 
 	"github.com/danwakefield/fnmatch"
-	"github.com/emersion/go-imap"
 	"github.com/emersion/go-message"
 	_ "github.com/emersion/go-message/charset"
 	"github.com/emersion/go-message/mail"
@@ -66,12 +65,12 @@ func NewMessageViewer(acct *AccountView, conf *config.AercConfig,
 	headers.AddChild(
 		&HeaderView{
 			Name:  "From",
-			Value: lib.FormatAddresses(msg.Envelope.From),
+			Value: models.FormatAddresses(msg.Envelope.From),
 		}).At(0, 0)
 	headers.AddChild(
 		&HeaderView{
 			Name:  "To",
-			Value: lib.FormatAddresses(msg.Envelope.To),
+			Value: models.FormatAddresses(msg.Envelope.To),
 		}).At(0, 1)
 	headers.AddChild(
 		&HeaderView{
@@ -112,7 +111,7 @@ handle_error:
 }
 
 func enumerateParts(conf *config.AercConfig, store *lib.MessageStore,
-	msg *models.MessageInfo, body *imap.BodyStructure,
+	msg *models.MessageInfo, body *models.BodyStructure,
 	showHeaders bool, index []int) ([]*PartViewer, error) {
 
 	var parts []*PartViewer
@@ -324,7 +323,7 @@ type PartViewer struct {
 	msg         *models.MessageInfo
 	pager       *exec.Cmd
 	pagerin     io.WriteCloser
-	part        *imap.BodyStructure
+	part        *models.BodyStructure
 	showHeaders bool
 	sink        io.WriteCloser
 	source      io.Reader
@@ -334,7 +333,7 @@ type PartViewer struct {
 
 func NewPartViewer(conf *config.AercConfig,
 	store *lib.MessageStore, msg *models.MessageInfo,
-	part *imap.BodyStructure, showHeaders bool,
+	part *models.BodyStructure, showHeaders bool,
 	index []int) (*PartViewer, error) {
 
 	var (
@@ -365,11 +364,11 @@ func NewPartViewer(conf *config.AercConfig,
 			case "subject":
 				header = msg.Envelope.Subject
 			case "from":
-				header = lib.FormatAddresses(msg.Envelope.From)
+				header = models.FormatAddresses(msg.Envelope.From)
 			case "to":
-				header = lib.FormatAddresses(msg.Envelope.To)
+				header = models.FormatAddresses(msg.Envelope.To)
 			case "cc":
-				header = lib.FormatAddresses(msg.Envelope.Cc)
+				header = models.FormatAddresses(msg.Envelope.Cc)
 			}
 			if f.Regex.Match([]byte(header)) {
 				filter = exec.Command("sh", "-c", f.Command)
diff --git a/widgets/providesmessage.go b/widgets/providesmessage.go
index d8b1e77..a1cfaa8 100644
--- a/widgets/providesmessage.go
+++ b/widgets/providesmessage.go
@@ -1,8 +1,6 @@
 package widgets
 
 import (
-	"github.com/emersion/go-imap"
-
 	"git.sr.ht/~sircmpwn/aerc/lib"
 	"git.sr.ht/~sircmpwn/aerc/lib/ui"
 	"git.sr.ht/~sircmpwn/aerc/models"
@@ -10,8 +8,8 @@ import (
 
 type PartInfo struct {
 	Index []int
-	Msg   *types.MessageInfo
-	Part  *imap.BodyStructure
+	Msg   *models.MessageInfo
+	Part  *models.BodyStructure
 	Store *lib.MessageStore
 }