diff options
-rw-r--r-- | alot/widgets/thread.py | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/alot/widgets/thread.py b/alot/widgets/thread.py index 5d2e2bda..17b43883 100644 --- a/alot/widgets/thread.py +++ b/alot/widgets/thread.py @@ -271,33 +271,37 @@ class MessageTree(CollapsibleTree): def construct_header_pile(self, headers=None, normalize=True): mail = self._message.get_email() + lines = [] + if headers is None: + # collect all header/value pairs in the order they appear headers = mail.keys() + for key, value in mail.items(): + dvalue = decode_header(value, normalize=normalize) + lines.append((key, dvalue)) else: - headers = [k for k in headers if - k.lower() == 'tags' or k in mail] - - lines = [] - for key in headers: - if key in mail: - if key.lower() in ['cc', 'bcc', 'to']: - values = mail.get_all(key) - values = [decode_header( - v, normalize=normalize) for v in values] + # only a selection of headers should be displayed. + # use order of the `headers` parameter + for key in headers: + if key in mail: + if key.lower() in ['cc', 'bcc', 'to']: + values = mail.get_all(key) + values = [decode_header( + v, normalize=normalize) for v in values] + lines.append((key, ', '.join(values))) + else: + for value in mail.get_all(key): + dvalue = decode_header(value, normalize=normalize) + lines.append((key, dvalue)) + elif key.lower() == 'tags': + logging.debug('want tags header') + values = [] + for t in self._message.get_tags(): + tagrep = settings.get_tagstring_representation(t) + if t is not tagrep['translated']: + t = '%s (%s)' % (tagrep['translated'], t) + values.append(t) lines.append((key, ', '.join(values))) - else: - for value in mail.get_all(key): - dvalue = decode_header(value, normalize=normalize) - lines.append((key, dvalue)) - elif key.lower() == 'tags': - logging.debug('want tags header') - values = [] - for t in self._message.get_tags(): - tagrep = settings.get_tagstring_representation(t) - if t is not tagrep['translated']: - t = '%s (%s)' % (tagrep['translated'], t) - values.append(t) - lines.append((key, ', '.join(values))) key_att = settings.get_theming_attribute('thread', 'header_key') value_att = settings.get_theming_attribute('thread', 'header_value') |