[master/rhel7-branch] Fix q for quit issue in text mode (#997405)
Samantha N. Bueno
sbueno+anaconda at redhat.com
Mon Sep 8 13:11:04 UTC 2014
On Mon, Sep 08, 2014 at 03:03:38PM +0200, Vratislav Podzimek wrote:
> On Mon, 2014-09-08 at 09:00 -0400, Samantha N. Bueno wrote:
> > Pressing 'q' to quit the installer in the ask VNC spoke of text mode was
> > not working. We can't rely on the global handling of this input,
> > unfortunately, since the installation environment is not set up at this
> > point. But, this should be a relatively simple way of adding the
> > functionality.
> >
> > Resolves: rhbz#997405
> > ---
> > pyanaconda/ui/tui/spokes/askvnc.py | 35 +++++++++++++++++++++--------------
> > 1 file changed, 21 insertions(+), 14 deletions(-)
> >
> > diff --git a/pyanaconda/ui/tui/spokes/askvnc.py b/pyanaconda/ui/tui/spokes/askvnc.py
> > index 200a5a6..52548f4 100644
> > --- a/pyanaconda/ui/tui/spokes/askvnc.py
> > +++ b/pyanaconda/ui/tui/spokes/askvnc.py
> > @@ -21,9 +21,10 @@
> >
> > from pyanaconda.ui.tui.spokes import NormalTUISpoke
> > from pyanaconda.ui.tui.simpleline import TextWidget, ColumnWidget
> > +from pyanaconda.ui.tui.tuiobject import YesNoDialog
> > from pyanaconda.constants import USEVNC, USETEXT
> > from pyanaconda.i18n import N_, _
> > -import getpass
> > +import getpass, subprocess
> >
> > class AskVNCSpoke(NormalTUISpoke):
> > title = N_("VNC")
> > @@ -68,22 +69,28 @@ class AskVNCSpoke(NormalTUISpoke):
> > """Override input so that we can launch the VNC password spoke"""
> >
> > try:
> > - number = int(key)
> > - choice = self._choices[number -1]
> > + choice = self._choices[int(key) - 1]
> > + if choice == USETEXT:
> > + self._usevnc = False
> > + else:
> > + self._usevnc = True
> > + newspoke = VNCPassSpoke(self.app, self.data, self.storage,
> > + self.payload, self.instclass)
> > + self.app.switch_screen_modal(newspoke)
> > +
> > + self.apply()
> > + self.close()
> > + return None
> > except (ValueError, KeyError, IndexError):
> > - return key
> > + pass
> >
> > - if choice == USETEXT:
> > - self._usevnc = False
> > + if key.lower() == _('q'):
> > + d = YesNoDialog(self.app, _(self.app.quit_message))
> > + self.app.switch_screen_modal(d)
> > + if d.answer:
> > + subprocess.Popen(["systemctl", "--no-wall", "reboot"])
> Is there any reason for rebooting system directly instead of calling
> sys.exit(1) and leaving it to the exit handler? The code above doesn't
> respect the inst.nokill option, for example.
Yes, if I call sys.exit then I just get "Pane is dead". Nothing of the
installation environment is really set up at this point.
Samantha
> --
> Vratislav Podzimek
>
> Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
>
> _______________________________________________
> 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