summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--iw/autopart_type.py36
-rw-r--r--ui/autopart.glade211
3 files changed, 197 insertions, 55 deletions
diff --git a/ChangeLog b/ChangeLog
index de53955b7..eb6e37032 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>