summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--alot/widgets/thread.py50
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')