From 5e74dc98aad36025621d14b36faeb0c649bf8b9b Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Wed, 24 May 2006 22:56:58 +0000 Subject: [PATCH] fix summary screens --- mytest.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/mytest.py b/mytest.py index 5f574ad8..36a9382a 100644 --- a/mytest.py +++ b/mytest.py @@ -147,32 +147,36 @@ class Session: if callback is not None: callback(*retval) - def execBegin(self): + def execBegin(self, first=True): assert not self.in_exec self.in_exec = True c = self.current_dialog - self.pushSummary() - - summary = c.createSummary() or SimpleSummary - self.summary = self.instantiateSummaryDialog(summary, c) - self.summary.show() + # when this is an execbegin after a execend of a "higher" dialog, + # popSummary already did the right thing. + if first: + self.pushSummary() + summary = c.createSummary() or SimpleSummary + self.summary = self.instantiateSummaryDialog(summary, c) + self.summary.show() + c.addSummary(self.summary) - c.addSummary(self.summary) c.execBegin() # when execBegin opened a new dialog, don't bother showing the old one. if c == self.current_dialog: c.show() - def execEnd(self): + def execEnd(self, last=True): assert self.in_exec self.in_exec = False self.current_dialog.execEnd() self.current_dialog.hide() - self.current_dialog.removeSummary(self.summary) - self.popSummary() + + if last: + self.current_dialog.removeSummary(self.summary) + self.popSummary() def create(self, screen, arguments, **kwargs): # creates an instance of 'screen' (which is a class) @@ -231,12 +235,12 @@ class Session: def pushCurrent(self): if self.current_dialog is not None: self.dialog_stack.append(self.current_dialog) - self.execEnd() + self.execEnd(last=False) def popCurrent(self): if len(self.dialog_stack): self.current_dialog = self.dialog_stack.pop() - self.execBegin() + self.execBegin(first=False) else: self.current_dialog = None -- 2.30.2