[PATCH] Only the Summary TUI hub wants to accept 'b' to continue (#1077546)
Samantha N. Bueno
sbueno+anaconda at redhat.com
Tue Mar 18 13:24:01 UTC 2014
On Tue, Mar 18, 2014 at 11:28:32AM +0100, Vratislav Podzimek wrote:
> 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 at 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
Since only the summary hub controls whether you proceed with
installation, I think the check for whether each mandatory spoke is
completed is no longer necessary here. We can just return key.
> - 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)
> --
> 1.8.5.3
>
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
More information about the anaconda-patches
mailing list