summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJeffas <dev@jeffas.io>2019-07-17 21:51:02 +0100
committerDrew DeVault <sir@cmpwn.com>2019-07-17 17:34:43 -0400
commitfb124139f3a84c03708079e45c2f7d41d6ededca (patch)
tree042131a7f9ccaec78ed5de8a867ee5c22cb5b720
parent4a5aa7dc27cd1b48db4d6211f74e909de1aa558d (diff)
downloadaerc-fb124139f3a84c03708079e45c2f7d41d6ededca.tar.gz
Add option to always show mimetype in viewer
A user may want to be able to see what mimetype they are viewing, so
that they can determine what program it may be opened in or for some
other reason.

The config option is under the [viewer] section and is called
'always-show-mime'. It defaults to false to preserve the current
behaviour.
-rw-r--r--config/aerc.conf.in5
-rw-r--r--config/config.go9
-rw-r--r--doc/aerc-config.5.scd5
-rw-r--r--widgets/msgviewer.go10
4 files changed, 21 insertions, 8 deletions
diff --git a/config/aerc.conf.in b/config/aerc.conf.in
index d490831..4219042 100644
--- a/config/aerc.conf.in
+++ b/config/aerc.conf.in
@@ -69,6 +69,11 @@ show-headers=false
 # Default: From|To,Cc|Bcc,Date,Subject
 header-layout=From|To,Cc|Bcc,Date,Subject
 
+# Whether to always show the mimetype of an email, even when it is just a single part
+#
+# Default: false
+always-show-mime=false
+
 [compose]
 #
 # Specifies the command to run the editor with. It will be shown in an embedded
diff --git a/config/config.go b/config/config.go
index 9e081fd..6f3345d 100644
--- a/config/config.go
+++ b/config/config.go
@@ -77,10 +77,11 @@ type FilterConfig struct {
 }
 
 type ViewerConfig struct {
-	Pager        string
-	Alternatives []string
-	ShowHeaders  bool       `ini:"show-headers"`
-	HeaderLayout [][]string `ini:"-"`
+	Pager          string
+	Alternatives   []string
+	ShowHeaders    bool `ini:"show-headers"`
+	AlwaysShowMime bool `ini:"always-show-mime"`
+	HeaderLayout   [][]string `ini:"-"`
 }
 
 type AercConfig struct {
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
index 3d39ef6..665f4f4 100644
--- a/doc/aerc-config.5.scd
+++ b/doc/aerc-config.5.scd
@@ -133,6 +133,11 @@ These options are configured in the *[viewer]* section of aerc.conf.
 
 	Default: false
 
+*always-show-mime*
+	Whether to always show the mimetype of an email, even when it is just a single part.
+
+	Default: false
+
 ## COMPOSE
 
 These options are configured in the *[compose]* section of aerc.conf.
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go
index 1f0b0e4..3f9b7fe 100644
--- a/widgets/msgviewer.go
+++ b/widgets/msgviewer.go
@@ -38,9 +38,10 @@ type MessageViewer struct {
 
 type PartSwitcher struct {
 	ui.Invalidatable
-	parts       []*PartViewer
-	selected    int
-	showHeaders bool
+	parts          []*PartViewer
+	selected       int
+	showHeaders    bool
+	alwaysShowMime bool
 }
 
 func NewMessageViewer(acct *AccountView, conf *config.AercConfig,
@@ -165,6 +166,7 @@ func createSwitcher(switcher *PartSwitcher, conf *config.AercConfig,
 	store *lib.MessageStore, msg *models.MessageInfo) error {
 	var err error
 	switcher.showHeaders = conf.Viewer.ShowHeaders
+	switcher.alwaysShowMime = conf.Viewer.AlwaysShowMime
 
 	if len(msg.BodyStructure.Parts) == 0 {
 		switcher.selected = 0
@@ -312,7 +314,7 @@ func (ps *PartSwitcher) Event(event tcell.Event) bool {
 
 func (ps *PartSwitcher) Draw(ctx *ui.Context) {
 	height := len(ps.parts)
-	if height == 1 {
+	if height == 1 && !ps.alwaysShowMime {
 		ps.parts[ps.selected].Draw(ctx)
 		return
 	}