diff options
author | Patrick Totzke <patricktotzke@gmail.com> | 2013-05-07 09:18:30 +0100 |
---|---|---|
committer | Patrick Totzke <patricktotzke@gmail.com> | 2013-05-07 09:18:30 +0100 |
commit | 50f80419b0b76f557823925436d79aadbe6771e9 (patch) | |
tree | 892658d4eacb933ed76eb8dcfecb6a51db0e2c32 /alot | |
parent | 10a763910c00a299ef9e78d9db6838256e14b906 (diff) | |
parent | 749f4ef9ec85e4570aa79cb25b49d50320c83c9b (diff) |
Merge branch '0.3.4-fix-headers-601'
Diffstat (limited to 'alot')
-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') |