diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | iw/autopart_type.py | 36 | ||||
-rw-r--r-- | ui/autopart.glade | 211 |
3 files changed, 197 insertions, 55 deletions
@@ -1,5 +1,10 @@ 2007-03-05 Jeremy Katz <katzj@redhat.com> + * iw/autopart_type.py (PartitionTypeWindow.getScreen): Add a combo + to select where to install the bootloader. This is extra needed + with the combination of installing to USB and EDD. + * ui/autopart.glade: Add the UI bits. + * scripts/mk-images (FSMODS): Hey, lookie there... someone made ext2 a module. diff --git a/iw/autopart_type.py b/iw/autopart_type.py index 8f051dc54..bf3a0e6d7 100644 --- a/iw/autopart_type.py +++ b/iw/autopart_type.py @@ -68,6 +68,12 @@ class PartitionTypeWindow(InstallWindow): if not autopart.queryAutoPartitionOK(self.anaconda): raise gui.StayOnScreen + # pop the boot device to be first in the drive list + defiter = self.bootcombo.get_active_iter() + defboot = self.bootcombo.get_model().get_value(defiter, 1) + self.anaconda.id.bootloader.drivelist.remove(defboot) + self.anaconda.id.bootloader.drivelist.insert(0, defboot) + if self.xml.get_widget("reviewButton").get_active(): self.dispatch.skipStep("partition", skip = 0) self.dispatch.skipStep("bootloader", skip = 0) @@ -91,6 +97,7 @@ class PartitionTypeWindow(InstallWindow): self.xml.get_widget("reviewButton").set_active(True) self.xml.get_widget("reviewButton").set_sensitive(False) self.xml.get_widget("driveScroll").set_sensitive(False) + self.xml.get_widget("bootDriveCombo").set_sensitive(False) else: if self.prevrev == None: self.xml.get_widget("reviewButton").set_active(self.review) @@ -100,6 +107,7 @@ class PartitionTypeWindow(InstallWindow): self.xml.get_widget("reviewButton").set_sensitive(True) self.xml.get_widget("driveScroll").set_sensitive(True) + self.xml.get_widget("bootDriveCombo").set_sensitive(True) def addIscsiDrive(self): if not network.hasActiveNetDev(): @@ -236,12 +244,15 @@ class PartitionTypeWindow(InstallWindow): (self.xml, vbox) = gui.getGladeWidget("autopart.glade", "parttypeBox") + gui.widgetExpander(self.xml.get_widget("mainlabel")) + self.combo = self.xml.get_widget("partitionTypeCombo") + gui.widgetExpander(self.combo) cell = gtk.CellRendererText() self.combo.pack_start(cell, True) self.combo.set_attributes(cell, text = 0) - cell.set_property("wrap-width", 475) - self.combo.set_size_request(480, -1) + cell.set_property("wrap-width", 495) + self.combo.set_size_request(500, -1) store = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_INT) self.combo.set_model(store) @@ -266,6 +277,24 @@ class PartitionTypeWindow(InstallWindow): self.xml.get_widget("driveScroll").add(self.drivelist) + self.bootcombo = self.xml.get_widget("bootDriveCombo") + thecell = gtk.CellRendererText() + self.bootcombo.pack_start(thecell, True) + + 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.prevrev = None self.review = not self.dispatch.stepInSkipList("partition") self.xml.get_widget("reviewButton").set_active(self.review) @@ -282,6 +311,9 @@ class PartitionTypeWindow(InstallWindow): self.xml.get_widget("reviewButton").set_active(True) self.xml.get_widget("reviewButton").set_sensitive(False) + self.xml.get_widget("driveScroll").set_sensitive(False) + self.xml.get_widget("bootDriveCombo").set_sensitive(False) + sigs = { "on_partitionTypeCombo_changed": self.comboChanged, "on_addButton_clicked": self.addDrive } self.xml.signal_autoconnect(sigs) diff --git a/ui/autopart.glade b/ui/autopart.glade index 1aa3ec980..9717931c8 100644 --- a/ui/autopart.glade +++ b/ui/autopart.glade @@ -27,7 +27,7 @@ <property name="spacing">18</property> <child> - <widget class="GtkLabel" id="label1"> + <widget class="GtkLabel" id="mainlabel"> <property name="label" translatable="yes" context="yes">Installation requires partitioning of your hard drive. By default, a partitioning layout is chosen which is reasonable for most users. You can either choose to use this or create your own.</property> <property name="use_underline">False</property> <property name="use_markup">False</property> @@ -90,54 +90,13 @@ <property name="right_padding">0</property> <child> - <widget class="GtkVBox" id="driveVbox"> - <property name="border_width">6</property> + <widget class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">2</property> <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="label2"> - <property name="label" translatable="yes" context="yes">_Select the drive(s) to use for this installation.</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="mnemonic_widget">partitionTypeCombo</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkScrolledWindow" id="driveScroll"> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <placeholder/> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> + <property name="row_spacing">6</property> + <property name="column_spacing">12</property> <child> <widget class="GtkButton" id="addButton"> @@ -187,9 +146,9 @@ <property name="visible">True</property> <property name="label" translatable="yes">_Advanced storage configuration</property> <property name="use_underline">True</property> - <property name="use_markup">False</property> + <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> + <property name="wrap">True</property> <property name="selectable">False</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> @@ -212,9 +171,76 @@ </child> </widget> <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label2"> + <property name="label" translatable="yes" context="yes">_Select the drive(s) to use for this installation.</property> + <property name="use_underline">True</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="mnemonic_widget">partitionTypeCombo</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkAlignment" id="alignment5"> + <property name="visible">True</property> + <property name="xalign">0.10000000149</property> + <property name="yalign">0</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkScrolledWindow" id="driveScroll"> + <property name="visible">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + + <child> + <placeholder/> + </child> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> </packing> </child> </widget> @@ -244,6 +270,85 @@ <property name="pack_type">GTK_PACK_END</property> </packing> </child> + + <child> + <widget class="GtkAlignment" id="alignment4"> + <property name="visible">True</property> + <property name="xalign">0.10000000149</property> + <property name="yalign">0.10000000149</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkVBox" id="bootloaderBox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">6</property> + + <child> + <widget class="GtkLabel" id="label4"> + <property name="label" translatable="yes" context="yes">What drive would you like to boot this installation from?</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">True</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkAlignment" id="alignment3"> + <property name="visible">True</property> + <property name="xalign">0.10000000149</property> + <property name="yalign">0.5</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkComboBox" id="bootDriveCombo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> </widget> </child> </widget> |