summaryrefslogtreecommitdiff
path: root/alot
diff options
context:
space:
mode:
authorPatrick Totzke <patricktotzke@gmail.com>2011-10-18 14:40:26 +0100
committerPatrick Totzke <patricktotzke@gmail.com>2011-10-18 14:40:26 +0100
commit2abe2e3f6ab3ab13eb9af05736eadbe18fcd6de4 (patch)
tree81a922efae3375a9e1b5bbd2f5ff91a2aacb1559 /alot
parent7e9e86eb67ba8b945accd99be5b727a6bef78f3b (diff)
use header blacklist in envelope buffer
Diffstat (limited to 'alot')
-rw-r--r--alot/buffers.py4
-rw-r--r--alot/defaults/alot.rc3
-rw-r--r--alot/widgets.py18
3 files changed, 17 insertions, 8 deletions
diff --git a/alot/buffers.py b/alot/buffers.py
index 57fe9ecb..aee57ffc 100644
--- a/alot/buffers.py
+++ b/alot/buffers.py
@@ -111,9 +111,9 @@ class EnvelopeBuffer(Buffer):
def rebuild(self):
displayed_widgets = []
- dh = settings.config.getstringlist('general', 'displayed_headers')
+ hidden = settings.config.getstringlist('general', 'envelope_headers_blacklist')
self.header_wgt = widgets.MessageHeaderWidget(self.mail,
- displayed_headers=dh)
+ hidden_headers=hidden)
displayed_widgets.append(self.header_wgt)
#display attachments
diff --git a/alot/defaults/alot.rc b/alot/defaults/alot.rc
index a2a1ec57..767ff829 100644
--- a/alot/defaults/alot.rc
+++ b/alot/defaults/alot.rc
@@ -21,6 +21,9 @@ display_content_in_threadline = False
# headers that get displayed by default
displayed_headers = From,To,Cc,Bcc,Subject
+# headers that are hidden in envelope buffers by default
+envelope_headers_blacklist = Content-Type,MIME-Version
+
# editor command
editor_cmd = /usr/bin/vim -f -c 'set filetype=mail' +
editor_writes_encoding = UTF-8
diff --git a/alot/widgets.py b/alot/widgets.py
index b5af55a7..b6e6563f 100644
--- a/alot/widgets.py
+++ b/alot/widgets.py
@@ -485,34 +485,40 @@ class MessageHeaderWidget(urwid.AttrMap):
RFC 2822 style encoded values are decoded into utf8 first.
"""
- def __init__(self, eml, displayed_headers=None):
+ def __init__(self, eml, displayed_headers=None, hidden_headers=None):
"""
:param eml: the email
:type eml: email.Message
:param displayed_headers: a whitelist of header fields to display
- :type state: list(str)
+ :type displayed_headers: list(str)
+ :param hidden_headers: a blacklist of header fields to display
+ :type hidden_headers: list(str)
"""
self.eml = eml
self.display_all = False
self.displayed_headers = displayed_headers
- headerlines = self._build_lines(displayed_headers)
+ self.hidden_headers = hidden_headers
+ headerlines = self._build_lines(displayed_headers, hidden_headers)
urwid.AttrMap.__init__(self, urwid.Pile(headerlines), 'message_header')
def toggle_all(self):
if self.display_all:
self.display_all = False
- headerlines = self._build_lines(self.displayed_headers)
+ headerlines = self._build_lines(self.displayed_headers,
+ self.hidden_headers)
else:
self.display_all = True
- headerlines = self._build_lines(None)
+ headerlines = self._build_lines(None, None)
logging.info('all : %s' % headerlines)
self.original_widget = urwid.Pile(headerlines)
- def _build_lines(self, displayed):
+ def _build_lines(self, displayed, hidden):
max_key_len = 1
headerlines = []
if not displayed:
displayed = self.eml.keys()
+ if hidden:
+ displayed = filter(lambda x: x not in hidden, displayed)
for key in displayed:
if key in self.eml:
if len(key) > max_key_len: