* Bold the summary text in the disk shopping cart. * Add DiskOverviews in such a way that they don't take up the whole horizontal space. * Add an info area at the bottom of the screen if no disks are selected. * Add a scrolled window and viewport to the Local Standard Disks area to give it a border (and also in case you have a bunch of local disks). * Connect the Back button signal. * Give the spoke a title. * Don't let the various Continue dialogs take up so much horizontal space. --- pyanaconda/ui/gui/spokes/storage.py | 36 +++++--- pyanaconda/ui/gui/spokes/storage.ui | 168 ++++++++++++++++++----------------- 2 files changed, 109 insertions(+), 95 deletions(-) diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py index e403a2e..41e40f6 100644 --- a/pyanaconda/ui/gui/spokes/storage.py +++ b/pyanaconda/ui/gui/spokes/storage.py @@ -192,12 +192,12 @@ class SelectedDisksDialog(UIObject): size = Size(bytes=long(size)).humanReadable().upper() free = Size(bytes=long(free)).humanReadable().upper() - text = P_(("%d disk; %s capacity; %s free space " + text = P_(("<b>%d disk; %s capacity; %s free space</b> " "(unpartitioned and in filesystems)"), - ("%d disks; %s capacity; %s free space " + ("<b>%d disks; %s capacity; %s free space</b> " "(unpartitioned and in filesystems)"), count) % (count, size, free) - self._summary_label.set_text(text) + self._summary_label.set_markup(text) # signal handlers def on_remove_clicked(self, button): @@ -251,8 +251,9 @@ class InstallOptions1Dialog(UIObject): options_label = self.builder.get_object("options1_label") options_text = (_("You have plenty of space to install <b>%s</b>, so " - "we can automatically configure the rest of the " - "installation for you.\n\nYou're all set!") + "we can automatically\n" + "configure the rest of the installation for you.\n\n" + "You're all set!") % productName) options_label.set_markup(options_text) @@ -316,8 +317,8 @@ class InstallOptions2Dialog(InstallOptions1Dialog): self._set_free_space_labels(disk_free, fs_free) label_text = (_("<b>You don't have enough space available to install " - "%s</b>, but we can help you reclaim space by " - "shrinking or removing existing partitions.") + "%s</b>, but we can help you\n" + "reclaim space by shrinking or removing existing partitions.") % productName) self.builder.get_object("options2_label2").set_markup(label_text) @@ -333,7 +334,7 @@ class InstallOptions3Dialog(InstallOptions1Dialog): def setup(self, required_space, disk_free, fs_free): sw_text = self._get_sw_needs_text(required_space) label_text = (_("%s\nYou don't have enough space available to install " - "<b>%s</b>, even if you used all of the free space " + "<b>%s</b>, even if you used all of the free space\n" "available on the selected disks.") % (sw_text, productName)) self.builder.get_object("options3_label1").set_markup(label_text) @@ -343,11 +344,11 @@ class InstallOptions3Dialog(InstallOptions1Dialog): self._set_free_space_labels(disk_free, fs_free) label_text = _("<b>You don't have enough space available to install " - "%s</b>, even if you used all of the free space " - "available on the selected disks.You could add more " - "disks for additional space, modify your software " - "selection to install a smaller version of <b>%s</b>, " - "or quit the installer.") % (productName, productName) + "%s</b>, even if you used all of the free space\n" + "available on the selected disks. You could add more " + "disks for additional space,\n" + "modify your software selection to install a smaller " + "version of <b>%s</b>, or quit the installer.") % (productName, productName) self.builder.get_object("options3_label2").set_markup(label_text) class StorageSpoke(NormalSpoke): @@ -400,7 +401,7 @@ class StorageSpoke(NormalSpoke): # properties: kind, description, capacity, os, popup-info for disk in self.disks: if disk.removable: - kind = "drive-removable" + kind = "drive-removable-media" else: kind = "drive-harddisk" @@ -410,7 +411,7 @@ class StorageSpoke(NormalSpoke): kind, size, popup=popup_info) - local_disks_box.add(overview) + local_disks_box.pack_start(overview, False, False, 0) # FIXME: this will need to get smarter # @@ -455,6 +456,11 @@ class StorageSpoke(NormalSpoke): Size(spec="%dmb" % free).humanReadable().upper())) self.builder.get_object("summary_button").set_label(summary) + if count == 0: + self.window.set_info(Gtk.MessageType.WARNING, _("No disks selected; please select at least one disk to install to.")) + else: + self.window.clear_info() + def _update_disk_list(self): """ Update ignoredisk.onlyuse based on the UI. """ print "UPDATING DISK LIST" diff --git a/pyanaconda/ui/gui/spokes/storage.ui b/pyanaconda/ui/gui/spokes/storage.ui index c36124d..4bb80b4 100644 --- a/pyanaconda/ui/gui/spokes/storage.ui +++ b/pyanaconda/ui/gui/spokes/storage.ui @@ -294,6 +294,7 @@ <object class="GtkGrid" id="grid1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="margin_left">6</property> <property name="row_spacing">6</property> <property name="column_spacing">6</property> <property name="row_homogeneous">True</property> @@ -536,6 +537,7 @@ <object class="GtkGrid" id="grid2"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="margin_left">6</property> <property name="row_spacing">6</property> <property name="column_spacing">6</property> <property name="row_homogeneous">True</property> @@ -680,7 +682,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> - <property name="halign">center</property> + <property name="halign">end</property> <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_close_clicked" swapped="no"/> @@ -722,96 +724,94 @@ </packing> </child> <child> - <object class="GtkTreeView" id="disk_tree_view"> + <object class="GtkScrolledWindow" id="scrolledwindow2"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="model">disk_store</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="disk_selection"> - <signal name="changed" handler="on_selection_changed" swapped="no"/> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="description_column"> - <property name="spacing">6</property> - <property name="title" translatable="yes">Description</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="description_renderer"/> - <attributes> - <attribute name="text">0</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="capacity_column"> - <property name="spacing">6</property> - <property name="title" translatable="yes">Capacity</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="capacity_renderer"/> - <attributes> - <attribute name="text">1</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="free_column"> - <property name="spacing">6</property> - <property name="title" translatable="yes">Free</property> - <child> - <object class="GtkCellRendererText" id="free_renderer"/> - <attributes> - <attribute name="text">2</attribute> - </attributes> - </child> - </object> - </child> + <property name="shadow_type">in</property> <child> - <object class="GtkTreeViewColumn" id="id_column"> - <property name="spacing">6</property> - <property name="title" translatable="yes">Id</property> + <object class="GtkViewport" id="viewport2"> + <property name="visible">True</property> + <property name="can_focus">False</property> <child> - <object class="GtkCellRendererText" id="id_renderer"/> - <attributes> - <attribute name="text">3</attribute> - </attributes> + <object class="GtkTreeView" id="disk_tree_view"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="model">disk_store</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection1"/> + </child> + <child> + <object class="GtkTreeViewColumn" id="description_column"> + <property name="spacing">6</property> + <property name="title" translatable="yes">Description</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="description_renderer"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="capacity_column"> + <property name="spacing">6</property> + <property name="title" translatable="yes">Capacity</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="capacity_renderer"/> + <attributes> + <attribute name="text">1</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="free_column"> + <property name="spacing">6</property> + <property name="title" translatable="yes">Free</property> + <child> + <object class="GtkCellRendererText" id="free_renderer"/> + <attributes> + <attribute name="text">2</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="id_column"> + <property name="spacing">6</property> + <property name="title" translatable="yes">Id</property> + <child> + <object class="GtkCellRendererText" id="id_renderer"/> + <attributes> + <attribute name="text">3</attribute> + </attributes> + </child> + </object> + </child> + </object> </child> </object> </child> </object> <packing> - <property name="expand">False</property> + <property name="expand">True</property> <property name="fill">True</property> <property name="position">1</property> </packing> </child> <child> - <object class="GtkButtonBox" id="buttonbox1"> + <object class="GtkButton" id="remove_button"> + <property name="label">_Remove</property> + <property name="use_action_appearance">False</property> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">6</property> - <property name="layout_style">start</property> - <child> - <object class="GtkButton" id="remove_button"> - <property name="label">_Remove</property> - <property name="use_action_appearance">False</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="halign">center</property> - <property name="use_action_appearance">False</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_remove_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="use_underline">True</property> + <signal name="clicked" handler="on_remove_clicked" swapped="no"/> </object> <packing> <property name="expand">False</property> @@ -825,6 +825,7 @@ <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Disk summary goes here</property> + <property name="use_markup">True</property> </object> <packing> <property name="expand">False</property> @@ -855,9 +856,10 @@ <object class="AnacondaSpokeWindow" id="storageWindow"> <property name="startup_id">filler</property> <property name="can_focus">False</property> - <property name="border_width">6</property> <property name="startup_id">filler</property> <property name="mnemonics_visible">False</property> + <property name="window_name">INSTALL DESTINATION</property> + <signal name="back-clicked" handler="on_back_clicked" swapped="no"/> <child internal-child="main_box"> <object class="GtkBox" id="AnacondaSpokeWindow-main_box1"> <property name="can_focus">False</property> @@ -891,6 +893,9 @@ <property name="xalign">0</property> <property name="label" translatable="yes">LOCAL STANDARD DISKS</property> <property name="track_visited_links">False</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> </object> <packing> <property name="expand">False</property> @@ -913,8 +918,8 @@ <object class="GtkBox" id="local_disks_box"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <property name="homogeneous">True</property> + <property name="border_width">6</property> + <property name="spacing">30</property> <child> <placeholder/> </child> @@ -942,6 +947,9 @@ <object class="GtkBox" id="box2"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="margin_left">6</property> + <property name="margin_right">6</property> + <property name="margin_bottom">6</property> <property name="spacing">6</property> <child> <object class="GtkButton" id="summary_button"> @@ -965,7 +973,7 @@ </child> <child> <object class="GtkButton" id="continue_button"> - <property name="label" translatable="yes">_Continue</property> + <property name="label" translatable="yes">_CONTINUE</property> <property name="use_action_appearance">False</property> <property name="visible">True</property> <property name="can_focus">True</property> -- 1.7.6 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list