From f3aa23f58d25ad808094c6df06920558b0e45297 Mon Sep 17 00:00:00 2001 From: Jeremy Katz Date: Mon, 2 Apr 2007 17:21:37 +0000 Subject: 2007-04-02 Jeremy Katz * iw/autopart_type.py (PartitionTypeWindow._fillBootStore): Work to ensure that we don't traceback here in cases where there aren't drives (#234697 and others) --- iw/autopart_type.py | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'iw') diff --git a/iw/autopart_type.py b/iw/autopart_type.py index 2a65924f2..6f3393b50 100644 --- a/iw/autopart_type.py +++ b/iw/autopart_type.py @@ -70,6 +70,13 @@ class PartitionTypeWindow(InstallWindow): # pop the boot device to be first in the drive list defiter = self.bootcombo.get_active_iter() + if defiter is None: + self.intf.messageWindow(_("Error"), + "Must select a drive to use as " + "the bootable device.", + type="warning", custom_icon="error") + raise gui.StayOnScreen + defboot = self.bootcombo.get_model().get_value(defiter, 1) self.anaconda.id.bootloader.drivelist.remove(defboot) self.anaconda.id.bootloader.drivelist.insert(0, defboot) @@ -233,6 +240,25 @@ class PartitionTypeWindow(InstallWindow): self.partitions.autoClearPartDrives, self.drivelist, disallowDrives=[self.anaconda.updateSrc]) + self._fillBootStore() + + def _fillBootStore(self): + bootstore = self.bootcombo.get_model() + bootstore.clear() + if len(self.anaconda.id.bootloader.drivelist) > 0: + defaultBoot = self.anaconda.id.bootloader.drivelist[0] + else: + defaultBoot = None + for disk in self.diskset.disks.values(): + size = partedUtils.getDeviceSizeMB(disk.dev) + dispstr = "%s %8.0f MB %s" %(disk.dev.path[5:], size, disk.dev.model) + i = bootstore.append(None) + bootstore[i] = (dispstr, disk.dev.path[5:]) + if disk.dev.path[5:] == defaultBoot: + self.bootcombo.set_active_iter(i) + + if len(bootstore) <= 1: + self.bootcombo.set_sensitive(False) def getScreen(self, anaconda): @@ -283,17 +309,7 @@ class PartitionTypeWindow(InstallWindow): bootstore = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING) self.bootcombo.set_model(bootstore) - defaultBoot = self.anaconda.id.bootloader.drivelist[0] - for disk in self.diskset.disks.values(): - size = partedUtils.getDeviceSizeMB(disk.dev) - dispstr = "%s %8.0f MB %s" %(disk.dev.path[5:], size, disk.dev.model) - i = bootstore.append(None) - bootstore[i] = (dispstr, disk.dev.path[5:]) - if disk.dev.path[5:] == defaultBoot: - self.bootcombo.set_active_iter(i) - - if len(bootstore) <= 1: - self.bootcombo.set_sensitive(False) + self._fillBootStore() self.prevrev = None self.review = not self.dispatch.stepInSkipList("partition") -- cgit