stop being clever in handling of escape in network screens

This commit is contained in:
Michael Hudson-Doyle 2017-04-04 16:20:56 +12:00
parent 618c4e6e72
commit 395b30451e
9 changed files with 26 additions and 38 deletions

View File

@ -100,7 +100,7 @@ class IdentityView(BaseView):
]
return Pile(buttons)
def cancel(self, button):
def cancel(self, button=None):
self.controller.cancel()
def done(self, button):

View File

@ -36,7 +36,7 @@ from subiquitycore.ui.views import (NetworkView,
NetworkConfigureWLANView)
from subiquitycore.ui.views.network import ApplyingConfigWidget
from subiquitycore.ui.dummy import DummyView
from subiquitycore.controller import BaseController, view
from subiquitycore.controller import BaseController
from subiquitycore.utils import run_command_start, run_command_summarize
log = logging.getLogger("subiquitycore.controller.network")
@ -341,17 +341,9 @@ class NetworkController(BaseController):
self.observer.wlan_listener.trigger_scan(dev.ifindex)
def cancel(self):
if len(self.view_stack) <= 1:
self.signal.emit_signal('prev-screen')
else:
self.prev_view()
self.signal.emit_signal('prev-screen')
def default(self):
self.view_stack = []
self.start()
@view
def start(self):
title = "Network connections"
excerpt = ("Configure at least one interface this server can use to talk to "
"other machines, and which preferably provides sufficient access for "
@ -428,45 +420,37 @@ class NetworkController(BaseController):
self.signal.emit_signal('network-config-written', self.netplan_path)
self.signal.emit_signal('next-screen')
@view
def set_default_v4_route(self):
self.ui.set_header("Default route")
self.ui.set_body(NetworkSetDefaultRouteView(self.model, socket.AF_INET, self))
@view
def set_default_v6_route(self):
self.ui.set_header("Default route")
self.ui.set_body(NetworkSetDefaultRouteView(self.model, socket.AF_INET6, self))
@view
def bond_interfaces(self):
self.ui.set_header("Bond interfaces")
self.ui.set_body(NetworkBondInterfacesView(self.model, self))
@view
def network_configure_interface(self, iface):
self.ui.set_header("Network interface {}".format(iface))
self.ui.set_body(NetworkConfigureInterfaceView(self.model, self, iface))
@view
def network_configure_ipv4_interface(self, iface):
self.ui.set_header("Network interface {} manual IPv4 "
"configuration".format(iface))
self.ui.set_body(NetworkConfigureIPv4InterfaceView(self.model, self, iface))
@view
def network_configure_wlan_interface(self, iface):
self.ui.set_header("Network interface {} WIFI "
"configuration".format(iface))
self.ui.set_body(NetworkConfigureWLANView(self.model, self, iface))
@view
def network_configure_ipv6_interface(self, iface):
self.ui.set_header("Network interface {} manual IPv6 "
"configuration".format(iface))
self.ui.set_body(NetworkConfigureIPv6InterfaceView(self.model, self, iface))
@view
def install_network_driver(self):
self.ui.set_body(DummyView(self))

View File

@ -260,5 +260,5 @@ class NetworkView(BaseView):
def done(self, result):
self.controller.network_finish(self.model.render())
def cancel(self, button):
def cancel(self, button=None):
self.controller.cancel()

View File

@ -127,8 +127,8 @@ class NetworkBondInterfacesView(BaseView):
return
log.debug('bond: successful bond creation')
self.controller.prev_view()
self.controller.default()
def cancel(self, button):
log.debug('bond: button_cancel')
self.controller.prev_view()
self.controller.default()

View File

@ -115,7 +115,7 @@ class NetworkConfigureInterfaceView(BaseView):
self.dev = self.model.get_netdev_by_name(self.dev.name)
except KeyError:
# The interface is gone
self.controller.prev_view()
self.controller.default()
return
if self.dev.type == 'wlan':
self.wifi_info.contents = [ (obj, ('pack', None)) for obj in _build_wifi_info(self.dev) ]
@ -155,5 +155,8 @@ class NetworkConfigureInterfaceView(BaseView):
def show_ipv6_configuration(self, btn):
self.controller.network_configure_ipv6_interface(self.dev.name)
def cancel(self):
self.controller.default()
def done(self, result):
self.controller.prev_view()
self.controller.default()

View File

@ -146,8 +146,7 @@ class BaseNetworkConfigureManualView(BaseView):
self.dev = self.model.get_netdev_by_name(self.dev.name)
except KeyError:
# The interface is gone
self.controller.prev_view()
self.controller.prev_view()
self.controller.default()
return
def _build_set_as_default_gw_button(self):
@ -193,11 +192,11 @@ class BaseNetworkConfigureManualView(BaseView):
self.dev.add_network(self.ip_version, result)
# return
self.controller.prev_view()
self.controller.network_configure_interface(self.dev.name)
def cancel(self, sender):
def cancel(self, sender=None):
self.model.default_gateway = None
self.controller.prev_view()
self.controller.network_configure_interface(self.dev.name)
class NetworkConfigureIPv4InterfaceView(BaseNetworkConfigureManualView):
ip_version = 4

View File

@ -138,8 +138,7 @@ class NetworkConfigureWLANView(BaseView):
self.dev = self.model.get_netdev_by_name(self.dev.name)
except KeyError:
# The interface is gone
self.controller.prev_view()
self.controller.prev_view()
self.controller.default()
return
self.inputs.contents = [ (obj, ('pack', None)) for obj in self._build_iface_inputs() ]
@ -156,7 +155,7 @@ class NetworkConfigureWLANView(BaseView):
else:
psk = None
self.dev.set_ssid_psk(ssid, psk)
self.controller.prev_view()
self.controller.network_configure_interface(self.dev.name)
def cancel(self, sender):
self.controller.prev_view()
def cancel(self, sender=None):
self.controller.network_configure_interface(self.dev.name)

View File

@ -139,7 +139,7 @@ class NetworkSetDefaultRouteView(BaseView):
except ValueError:
# FIXME: raise UX error message
pass
self.controller.prev_view()
self.controller.default()
def cancel(self, button):
self.controller.prev_view()
def cancel(self, button=None):
self.controller.default()

View File

@ -38,12 +38,15 @@ class BaseView(WidgetWrap):
self._w = self.orig_w
self.orig_w = None
def cancel(self):
pass
def keypress(self, size, key):
if key in ['ctrl x']:
self.controller.signal.emit_signal('control-x-quit')
return None
key = super().keypress(size, key)
if key == 'esc':
self.controller.cancel()
self.cancel()
return None
return key