From 2abe2e3f6ab3ab13eb9af05736eadbe18fcd6de4 Mon Sep 17 00:00:00 2001 From: Patrick Totzke Date: Tue, 18 Oct 2011 14:40:26 +0100 Subject: use header blacklist in envelope buffer --- alot/buffers.py | 4 ++-- alot/defaults/alot.rc | 3 +++ alot/widgets.py | 18 ++++++++++++------ 3 files changed, 17 insertions(+), 8 deletions(-) (limited to 'alot') 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: -- cgit v1.2.3