On Tue, 2013-04-30 at 15:40 -0400, Chris Lumens wrote:
I'm doing this by marking the labels next to the fields as
sensitive or
insensitive as well. This relies upon the labels being mnemonic widgets
for some other widget, which they ought to be anyway. Just don't break
that assumption.
---
pyanaconda/ui/gui/spokes/custom.py | 61 ++++++++++++++++++++++----------------
1 file changed, 36 insertions(+), 25 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py
index c104d1e..62069ed 100644
--- a/pyanaconda/ui/gui/spokes/custom.py
+++ b/pyanaconda/ui/gui/spokes/custom.py
@@ -207,6 +207,16 @@ def validate_mountpoint(mountpoint, used_mountpoints, strict=True):
return valid
+def fancy_set_sensitive(widget, value):
+ """Set the sensitivity of a widget, and then set the sensitivity of
+ all widgets it is a mnemonic widget for. This has the effect of
+ marking both an entry and its label as sensitive/insensitive, for
+ instance.
+ """
+ widget.set_sensitive(value)
+ for w in widget.list_mnemonic_labels():
+ w.set_sensitive(value)
+
Nice idea! I think this function could live in pyanaconda.ui.gui.utils,
it could come handy in other spokes as well.
class AddDialog(GUIObject):
builderObjects = ["addDialog", "mountPointStore",
"mountPointCompletion", "mountPointEntryBuffer"]
mainWidgetName = "addDialog"
@@ -372,8 +382,10 @@ class ContainerDialog(GUIObject):
dialog_label.set_text(dialog_text)
# populate the dialog widgets
- self._nameEntry.set_text(self.name)
- self._nameEntry.set_sensitive(not self.exists)
+ name_entry = self.builder.get_object("container_name_entry")
+ name_entry.set_text(self.name)
+ name_entry.set_sensitive(not self.exists)
+ fancy_set_sensitive(name_entry, not self.exists)
You don't need to cal
set_sensitive on the name_entry,
fancy_set_sensitive will do it.
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic