Instead of making all TUI hubs continuing when 'b' is entered instead of 'c' move the code to the Summary hub that is the only one really wanting such behaviour.
Signed-off-by: Vratislav Podzimek vpodzime@redhat.com --- pyanaconda/ui/tui/hubs/__init__.py | 11 ++--------- pyanaconda/ui/tui/hubs/summary.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/pyanaconda/ui/tui/hubs/__init__.py b/pyanaconda/ui/tui/hubs/__init__.py index 905de25..b637f94 100644 --- a/pyanaconda/ui/tui/hubs/__init__.py +++ b/pyanaconda/ui/tui/hubs/__init__.py @@ -105,18 +105,11 @@ class TUIHub(TUIObject, common.Hub): except (ValueError, KeyError): # If we get a continue, check for unfinished spokes. If unfinished # don't continue - # TRANSLATORS: 'b' to begin installation - if key == _('b'): + # TRANSLATORS: 'c' to continue + if key == _('c'): for spoke in self._spokes.values(): if not spoke.completed and spoke.mandatory: print(_("Please complete all spokes before continuing")) return False - if self.app._screens: - self.app.close_screen() - return True - # Kind of a hack, but we want to ignore if anyone presses 'c' - # which is the global TUI key to close the current screen - elif key == _('c'): - return False
return key diff --git a/pyanaconda/ui/tui/hubs/summary.py b/pyanaconda/ui/tui/hubs/summary.py index 4074997..c0ea6db 100644 --- a/pyanaconda/ui/tui/hubs/summary.py +++ b/pyanaconda/ui/tui/hubs/summary.py @@ -77,3 +77,31 @@ class SummaryHub(TUIHub): # override the default prompt since we want to offer the 'b' to begin # installation option here return _(" Please make your choice from above ['q' to quit | 'b' to begin installation |\n 'r' to refresh]: ") + + def input(self, args, key): + """Handle user input. Numbers are used to show a spoke, the rest is passed + to the higher level for processing.""" + try: + number = int(key) + self.app.switch_screen_with_return(self._keys[number]) + return None + + except (ValueError, KeyError): + # If we get a continue, check for unfinished spokes. If unfinished + # don't continue + # TRANSLATORS: 'b' to begin installation + if key == _('b'): + for spoke in self._spokes.values(): + if not spoke.completed and spoke.mandatory: + print(_("Please complete all spokes before continuing")) + return False + if self.app._screens: + self.app.close_screen() + return True + # TRANSLATORS: 'c' to continue + elif key == _('c'): + # Kind of a hack, but we want to ignore if anyone presses 'c' + # which is the global TUI key to close the current screen + return False + else: + super(SummaryHub, self).input(args, key)