[PATCH 2/2] Move the Modify SW button into a link in the text.

Chris Lumens clumens at redhat.com
Wed Feb 6 19:06:03 UTC 2013


This helps out a bit with the sea of buttons at the bottom of the dialog.
---
 pyanaconda/ui/gui/spokes/storage.glade | 18 ------------------
 pyanaconda/ui/gui/spokes/storage.py    | 30 +++++++++++++++++++++---------
 2 files changed, 21 insertions(+), 27 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/storage.glade b/pyanaconda/ui/gui/spokes/storage.glade
index c38a738..114d4d2 100644
--- a/pyanaconda/ui/gui/spokes/storage.glade
+++ b/pyanaconda/ui/gui/spokes/storage.glade
@@ -568,23 +568,6 @@
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="options3_modify_sw_button">
-                <property name="label" translatable="yes">_Modify software selection</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="tooltip_text" translatable="yes">Please wait... software metadata still loading.</property>
-                <property name="border_width">6</property>
-                <property name="use_underline">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-                <property name="non_homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
               <object class="GtkButton" id="options3_cancel_button">
                 <property name="label" translatable="yes">_Cancel</property>
                 <property name="visible">True</property>
@@ -764,7 +747,6 @@
     </child>
     <action-widgets>
       <action-widget response="4">options3_quit_button</action-widget>
-      <action-widget response="2">options3_modify_sw_button</action-widget>
       <action-widget response="0">options3_cancel_button</action-widget>
     </action-widgets>
   </object>
diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py
index ece68e0..a80ee00 100644
--- a/pyanaconda/ui/gui/spokes/storage.py
+++ b/pyanaconda/ui/gui/spokes/storage.py
@@ -198,9 +198,15 @@ class InstallOptions1Dialog(GUIObject):
         fs_free_text = size_str(fs_free)
         self.fs_free_label.set_text(fs_free_text)
 
+    def _modify_sw_link_clicked(self, label, uri):
+        if self._software_is_ready():
+            self.window.response(self.RESPONSE_MODIFY_SW)
+
+        return True
+
     def _get_sw_needs_text(self, required_space):
         required_space_text = size_str(required_space)
-        sw_text = (_("Your current <b>%s</b> software selection requires "
+        sw_text = (_("Your current <a href=\"\"><b>%s</b> software selection</a> requires "
                       "<b>%s</b> of available space.")
                    % (productName, required_space_text))
         return sw_text
@@ -215,7 +221,6 @@ class InstallOptions1Dialog(GUIObject):
 
     def _check_for_storage_thread(self, button):
         if self._software_is_ready():
-            button.set_sensitive(True)
             button.set_has_tooltip(False)
             button.show_all()
 
@@ -224,14 +229,13 @@ class InstallOptions1Dialog(GUIObject):
         else:
             return True
 
-    def _add_button_watcher(self, widgetName):
+    def _add_modify_watcher(self, widgetName):
         # If the payload fetching thread is still running, the user can't go to
         # modify the software selection screen.  Thus, we have to set the button
         # insensitive and wait until software selection is ready to go.
-        modify_button = self.builder.get_object(widgetName)
+        modify_widget = self.builder.get_object(widgetName)
         if not self._software_is_ready():
-            modify_button.set_sensitive(False)
-            GLib.timeout_add_seconds(1, self._check_for_storage_thread, modify_button)
+            GLib.timeout_add_seconds(1, self._check_for_storage_thread, modify_widget)
 
     # signal handlers
     def on_type_changed(self, combo):
@@ -249,7 +253,10 @@ class InstallOptions2Dialog(InstallOptions1Dialog):
         sw_text = self._get_sw_needs_text(required_space)
         label_text = _("%s\nThe disks you've selected have the following "
                        "amounts of free space:") % sw_text
-        self.builder.get_object("options2_label1").set_markup(label_text)
+        label = self.builder.get_object("options2_label1")
+        label.set_markup(label_text)
+        label.set_tooltip_text(_("Please wait... software metadata still loading."))
+        label.connect("activate-link", self._modify_sw_link_clicked)
 
         self.disk_free_label = self.builder.get_object("options2_disk_free_label")
         self.fs_free_label = self.builder.get_object("options2_fs_free_label")
@@ -262,6 +269,8 @@ class InstallOptions2Dialog(InstallOptions1Dialog):
                        "interface.") % productName
         self.builder.get_object("options2_label2").set_markup(label_text)
 
+        self._add_modify_watcher("options2_label1")
+
     @property
     def continue_response(self):
         return self.RESPONSE_CONTINUE_NONE
@@ -276,7 +285,10 @@ class InstallOptions3Dialog(InstallOptions1Dialog):
                         "<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)
+        label = self.builder.get_object("options3_label1")
+        label.set_markup(label_text)
+        label.set_tooltip_text(_("Please wait... software metadata still loading."))
+        label.connect("activate-link", self._modify_sw_link_clicked)
 
         self.disk_free_label = self.builder.get_object("options3_disk_free_label")
         self.fs_free_label = self.builder.get_object("options3_fs_free_label")
@@ -290,7 +302,7 @@ class InstallOptions3Dialog(InstallOptions1Dialog):
                        "version of <b>%s</b>, or quit the installer.") % (productName, productName)
         self.builder.get_object("options3_label2").set_markup(label_text)
 
-        self._add_button_watcher("options3_modify_sw_button")
+        self._add_modify_watcher("options3_label1")
 
     @property
     def continue_response(self):
-- 
1.7.11.2



More information about the anaconda-patches mailing list