diff options
| author | Ben Burwell <ben@benburwell.com> | 2019-07-07 22:43:58 -0400 | 
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2019-07-08 16:06:28 -0400 | 
| commit | c610c3cd9dd47c400e52c1858e987f5f32a7a45b (patch) | |
| tree | 6e521ba706d87ea4a03ce81d57ff84317506f3df /widgets | |
| parent | 88c379dcbaaf9fd549cd271817e79fe634b1dd84 (diff) | |
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.go | 3 | ||||
| -rw-r--r-- | widgets/msgviewer.go | 17 | ||||
| -rw-r--r-- | widgets/providesmessage.go | 6 | 
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  } | 
