[master/rhel7] tui ErrorDialog needs to be modal (#983316)

Brian C. Lane bcl at redhat.com
Fri Sep 20 15:58:29 UTC 2013


From: "Brian C. Lane" <bcl at redhat.com>

The dialog waits for any key to be hit, and it needs to be displayed
immediately so use a modal screen.
---
 pyanaconda/packaging/yumpayload.py | 3 ++-
 pyanaconda/ui/tui/__init__.py      | 2 +-
 pyanaconda/ui/tui/tuiobject.py     | 2 ++
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index 5c9bbc1..d9630f9 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -1525,7 +1525,8 @@ reposdir=%s
         except DependencyError as e:
             if errorHandler.cb(e) == ERROR_RAISE:
                 progressQ.send_quit(1)
-                sys.exit(1)
+                while True:
+                    time.sleep(100000)
 
         # doPreInstall
         # create mountpoints for protected device mountpoints (?)
diff --git a/pyanaconda/ui/tui/__init__.py b/pyanaconda/ui/tui/__init__.py
index cb3e511..c3e8471 100644
--- a/pyanaconda/ui/tui/__init__.py
+++ b/pyanaconda/ui/tui/__init__.py
@@ -258,7 +258,7 @@ class TextUserInterface(ui.UserInterface):
         """Internal helper function that MUST BE CALLED FROM THE MAIN THREAD"""
 
         error_window = ErrorDialog(self._app, message)
-        self._app.switch_screen(error_window)
+        self._app.switch_screen_modal(error_window)
 
     def showDetailedError(self, message, details):
         return self._show_message_in_main_thread(self._showDetailedError, (message, details))
diff --git a/pyanaconda/ui/tui/tuiobject.py b/pyanaconda/ui/tui/tuiobject.py
index e2c96f7..da82909 100644
--- a/pyanaconda/ui/tui/tuiobject.py
+++ b/pyanaconda/ui/tui/tuiobject.py
@@ -44,6 +44,7 @@ class ErrorDialog(tui.UIScreen):
         tui.UIScreen.refresh(self, args)
         text = tui.TextWidget(self._message)
         self._window.append(tui.CenterWidget(text))
+        return True
 
     def prompt(self, args = None):
         return _("Press enter to exit.")
@@ -51,6 +52,7 @@ class ErrorDialog(tui.UIScreen):
     def input(self, args, key):
         """This dialog is closed by any input."""
         self.close()
+        return None
 
 class YesNoDialog(tui.UIScreen):
     """Dialog screen for Yes - No questions."""
-- 
1.8.3.1



More information about the anaconda-patches mailing list