summaryrefslogtreecommitdiff
path: root/alot/widgets/thread.py
diff options
context:
space:
mode:
Diffstat (limited to 'alot/widgets/thread.py')
-rw-r--r--alot/widgets/thread.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/alot/widgets/thread.py b/alot/widgets/thread.py
index 155aa9f0..548b392a 100644
--- a/alot/widgets/thread.py
+++ b/alot/widgets/thread.py
@@ -162,9 +162,9 @@ class MessageTree(CollapsibleTree):
:type odd: bool
"""
self._message = message
- self._summaryw = MessageSummaryWidget(message, even=(not odd))
-
+ self._odd = odd
self.display_source = False
+ self._summaryw = None
self._bodytree = None
self._sourcetree = None
self.display_all_headers = False
@@ -181,6 +181,10 @@ class MessageTree(CollapsibleTree):
def reassemble(self):
self._maintree._treelist = self._assemble_structure()
+ def refresh(self):
+ self._summaryw = None
+ self.reassemble()
+
def debug(self):
logging.debug('collapsed %s' % self.is_collapsed(self.root))
logging.debug('display_source %s' % self.display_source)
@@ -206,7 +210,7 @@ class MessageTree(CollapsibleTree):
mainstruct.append((self._get_body(), None))
structure = [
- (self._summaryw, mainstruct)
+ (self._get_summary(), mainstruct)
]
return structure
@@ -218,6 +222,11 @@ class MessageTree(CollapsibleTree):
self.set_position_collapsed(
self.root, self._message.matches(querystring))
+ def _get_summary(self):
+ if self._summaryw is None:
+ self._summaryw = MessageSummaryWidget(self._message, even=(not self._odd))
+ return self._summaryw
+
def _get_source(self):
if self._sourcetree is None:
sourcetxt = self._message.get_email().as_string()