summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--iw/network_gui.py2
-rw-r--r--network.py2
-rw-r--r--textw/network_text.py83
3 files changed, 58 insertions, 29 deletions
diff --git a/iw/network_gui.py b/iw/network_gui.py
index 95e32102b..1da6d4c19 100644
--- a/iw/network_gui.py
+++ b/iw/network_gui.py
@@ -160,7 +160,7 @@ class NetworkWindow(InstallWindow):
# NetworkWindow tag="netconf"
- def getScreen(self, network):
+ def getScreen(self, network, dispatch):
box = GtkVBox()
box.set_border_width(5)
self.network = network
diff --git a/network.py b/network.py
index 11f6ab96e..6a6e27927 100644
--- a/network.py
+++ b/network.py
@@ -69,7 +69,6 @@ class Network:
self.secondaryNS = ""
self.ternaryNS = ""
self.domains = []
- self.readData = 0
self.isConfigured = 0
self.hostname = "localhost.localdomain"
@@ -96,7 +95,6 @@ class Network:
if info.has_key("HOSTNAME"):
self.hostname = info["HOSTNAME"]
- self.readData = 1
try:
f = open("/etc/resolv.conf", "r")
except:
diff --git a/textw/network_text.py b/textw/network_text.py
index a820c178a..4dff360ff 100644
--- a/textw/network_text.py
+++ b/textw/network_text.py
@@ -54,37 +54,36 @@ class NetworkWindow:
ns = isys.inet_calcNS (net)
self.ns.set (ns)
- def __call__(self, screen, network):
+ def runScreen(self, screen, network, dev):
-
- devices = network.available ()
- if not devices:
- return INSTALL_NOOP
-
- if network.readData:
- # XXX expert mode, allow changing network settings here
- return INSTALL_NOOP
-
- list = devices.keys ()
- list.sort()
- dev = devices[list[0]]
-
- firstg = Grid (1, 1)
+ firstg = Grid (1, 3)
boot = dev.get ("bootproto")
+ onboot = dev.get('onboot')
+ onbootIsOn = ((dev == network.available().values()[0] and not onboot)
+ or onboot == 'yes')
if not boot:
boot = "dhcp"
+ firstg.setField (Label (_("Network Device: %s") %
+ (dev.info['DEVICE'],)),
+ 0, 0, padding = (0, 0, 0, 1), anchorLeft = 1)
self.cb = Checkbox (_("Use bootp/dhcp"),
isOn = (boot == "dhcp"))
- firstg.setField (self.cb, 0, 0, anchorLeft = 1)
+ firstg.setField (self.cb, 0, 1, anchorLeft = 1)
+ self.onboot = Checkbox(_("Activate on boot"), isOn = onbootIsOn)
+ firstg.setField (self.onboot, 0, 2, anchorLeft = 1)
secondg = Grid (2, 6)
secondg.setField (Label (_("IP address:")), 0, 0, anchorLeft = 1)
secondg.setField (Label (_("Netmask:")), 0, 1, anchorLeft = 1)
- secondg.setField (Label (_("Default gateway (IP):")), 0, 2, anchorLeft = 1)
- secondg.setField (Label (_("Primary nameserver:")), 0, 3, anchorLeft = 1)
- secondg.setField (Label (_("Secondary nameserver:")), 0, 4, anchorLeft = 1)
- secondg.setField (Label (_("Ternary nameserver:")), 0, 5, anchorLeft = 1)
+ secondg.setField (Label (_("Default gateway (IP):")), 0, 2,
+ anchorLeft = 1)
+ secondg.setField (Label (_("Primary nameserver:")), 0, 3,
+ anchorLeft = 1)
+ secondg.setField (Label (_("Secondary nameserver:")), 0, 4,
+ anchorLeft = 1)
+ secondg.setField (Label (_("Ternary nameserver:")), 0, 5,
+ anchorLeft = 1)
self.ip = Entry (16)
self.ip.set (dev.get ("ipaddr"))
@@ -112,7 +111,8 @@ class NetworkWindow:
bb = ButtonBar (screen, (TEXT_OK_BUTTON, TEXT_BACK_BUTTON))
- toplevel = GridFormHelp (screen, _("Network Configuration"),
+ toplevel = GridFormHelp (screen, _("Network Configuration for %s") %
+ (dev.info['DEVICE']),
"network", 1, 3)
toplevel.add (firstg, 0, 0, (0, 0, 0, 1), anchorLeft = 1)
toplevel.add (secondg, 0, 1, (0, 0, 0, 1))
@@ -122,12 +122,18 @@ class NetworkWindow:
while 1:
result = toplevel.run ()
+ screen.suspend()
+ if self.onboot.selected() != 0:
+ dev.set (('onboot', 'yes'))
+ else:
+ dev.unset ('onboot')
if self.cb.selected ():
dev.set (("bootproto", "dhcp"))
dev.unset ("ipaddr", "netmask", "network", "broadcast")
else:
try:
- (net, bc) = isys.inet_calcNetBroad (self.ip.value (), self.nm.value ())
+ (net, bc) = isys.inet_calcNetBroad (self.ip.value (),
+ self.nm.value ())
except:
ButtonChoiceWindow(screen, _("Invalid information"),
_("You must enter valid IP information to continue"),
@@ -135,7 +141,8 @@ class NetworkWindow:
continue
dev.set (("bootproto", "static"))
- dev.set (("ipaddr", self.ip.value ()), ("netmask", self.nm.value ()),
+ dev.set (("ipaddr", self.ip.value ()), ("netmask",
+ self.nm.value ()),
("network", net), ("broadcast", bc))
network.gateway = self.gw.value ()
network.primaryNS = self.ns.value ()
@@ -145,16 +152,40 @@ class NetworkWindow:
screen.popWindow()
break
- dev.set (("onboot", "yes"))
-
rc = bb.buttonPressed (result)
if rc == TEXT_BACK_CHECK:
return INSTALL_BACK
return INSTALL_OK
+ def __call__(self, screen, network, dispatch):
+
+ devices = network.available ()
+ if not devices:
+ return INSTALL_NOOP
+
+ list = devices.keys ()
+ list.sort()
+ devLen = len(list)
+ if dispatch.dir == 1:
+ currentDev = 0
+ else:
+ currentDev = devLen - 1
+
+ while currentDev < devLen and currentDev >= 0:
+ rc = self.runScreen(screen, network, devices[list[currentDev]])
+ if rc == INSTALL_BACK:
+ currentDev = currentDev - 1
+ else:
+ currentDev = currentDev + 1
+
+ if currentDev < 0:
+ return INSTALL_BACK
+ else:
+ return INSTALL_OK
+
class HostnameWindow:
- def __call__(self, screen, network):
+ def __call__(self, screen, network, dispatch):
devices = network.available ()
if not devices:
return INSTALL_NOOP