diff options
Diffstat (limited to 'alot/widgets/thread.py')
-rw-r--r-- | alot/widgets/thread.py | 15 |
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() |