From 2172c5189f9b65a27adc6503e4d0358fc99242f1 Mon Sep 17 00:00:00 2001 From: Chris Lumens Date: Wed, 27 Jan 2010 14:50:49 -0500 Subject: Allow getScreen methods to indicate the screen should be skipped. This is sometimes useful, like when we won't know until the screen is being populated whether or not we actually want to display it. --- gui.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gui.py b/gui.py index 69559b94d..4de661a9f 100755 --- a/gui.py +++ b/gui.py @@ -1352,7 +1352,7 @@ class InstallControlWindow: (file, className) = stepToClass[step] newScreenClass = None - while 1: + while True: try: found = imputil.imp.find_module(file) loaded = imputil.imp.load_module(className, found[0], found[1], @@ -1386,8 +1386,18 @@ class InstallControlWindow: self.currentWindow = newScreenClass(ics) new_screen = self.currentWindow.getScreen(anaconda) + + # If the getScreen method returned None, that means the screen did not + # want to be displayed for some reason and we should skip to the next + # step. However, we do not want to remove the current step from the + # list as later events may cause the screen to be displayed. if not new_screen: - return + if self.anaconda.dispatch.dir == DISPATCH_FORWARD: + self.anaconda.dispatch.gotoNext() + else: + self.anaconda.dispatch.gotoPrev() + + return self.setScreen() self.update (ics) -- cgit