diff options
author | Cole Robinson <crobinso@redhat.com> | 2014-03-12 17:22:48 -0400 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2014-03-12 17:22:48 -0400 |
commit | 4f7f1adc47d0a9524d677ae635fc94f1374e1bb8 (patch) | |
tree | 774c4b7ec3aa0d80acf909017e2ea4743ef1f88a | |
parent | abb3920ac6b1e24d2f50faad2772e31ddabcb1c9 (diff) | |
download | virt-manager-4f7f1adc47d0a9524d677ae635fc94f1374e1bb8.tar.gz |
addhw: Desensitive the 'create storage' UI for cdrom/floppy
Since we already fail in that case anyways, it makes things a bit clearer.
-rw-r--r-- | ui/addhardware.ui | 1 | ||||
-rw-r--r-- | ui/addstorage.ui | 180 | ||||
-rw-r--r-- | virtManager/addhardware.py | 11 | ||||
-rw-r--r-- | virtManager/addstorage.py | 1 |
4 files changed, 100 insertions, 93 deletions
diff --git a/ui/addhardware.ui b/ui/addhardware.ui index f45c0006..b4f7bca9 100644 --- a/ui/addhardware.ui +++ b/ui/addhardware.ui @@ -169,6 +169,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">start</property> + <signal name="changed" handler="on_config_storage_devtype_changed" swapped="no"/> <child internal-child="accessible"> <object class="AtkObject" id="config-storage-devtype-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Device Type Field</property> diff --git a/ui/addstorage.ui b/ui/addstorage.ui index 425d3459..a73eac13 100644 --- a/ui/addstorage.ui +++ b/ui/addstorage.ui @@ -10,12 +10,13 @@ <object class="GtkVBox" id="config-storage-box"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">4</property> + <property name="spacing">6</property> <child> - <object class="GtkHBox" id="hbox6"> + <object class="GtkBox" id="config-storage-create-box"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> + <property name="orientation">vertical</property> + <property name="spacing">3</property> <child> <object class="GtkRadioButton" id="config-storage-create"> <property name="visible">True</property> @@ -24,6 +25,7 @@ <property name="xalign">0</property> <property name="active">True</property> <property name="draw_indicator">True</property> + <property name="group">config-storage-select</property> <child> <object class="GtkLabel" id="label123"> <property name="visible">True</property> @@ -31,49 +33,60 @@ <property name="label" translatable="yes">C_reate a disk image on the computer's hard drive</property> <property name="use_markup">True</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">config-storage-create</property> </object> </child> </object> <packing> - <property name="expand">False</property> + <property name="expand">True</property> <property name="fill">True</property> <property name="position">0</property> </packing> </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment4"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="bottom_padding">6</property> - <property name="left_padding">22</property> <child> - <object class="GtkVBox" id="vbox18"> + <object class="GtkAlignment" id="alignment1"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">4</property> + <property name="left_padding">22</property> <child> - <object class="GtkHBox" id="hbox7"> + <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> + <property name="spacing">4</property> <child> - <object class="GtkSpinButton" id="config-storage-size"> + <object class="GtkHBox" id="hbox1"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">5</property> - <property name="text" translatable="yes">0.0</property> - <property name="xalign">1</property> - <property name="adjustment">adjustment1</property> - <property name="climb_rate">1</property> - <property name="digits">1</property> + <property name="can_focus">False</property> + <property name="spacing">6</property> + <child> + <object class="GtkSpinButton" id="config-storage-size"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="width_chars">5</property> + <property name="text" translatable="yes">0.0</property> + <property name="xalign">1</property> + <property name="adjustment">adjustment1</property> + <property name="climb_rate">1</property> + <property name="digits">1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_GB</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> </object> <packing> <property name="expand">False</property> @@ -82,92 +95,78 @@ </packing> </child> <child> - <object class="GtkLabel" id="label31"> + <object class="GtkLabel" id="phys-hd-label"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">_GB</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">config-storage-size</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="phys-hd-label"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="xalign">0</property> - <property name="label"><span color='#484848'>Free Space</span></property> - <property name="use_markup">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox14"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkCheckButton" id="config-storage-nosparse"> - <property name="label" translatable="yes">_Allocate entire disk now</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> <property name="xalign">0</property> - <property name="draw_indicator">True</property> + <property name="label"><span color='#484848'>Free Space</span></property> + <property name="use_markup">True</property> </object> <packing> <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> + <property name="fill">False</property> + <property name="position">1</property> </packing> </child> <child> - <object class="GtkImage" id="config-storage-nosparse-info"> + <object class="GtkHBox" id="hbox2"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">Fully allocating storage may take longer now, but the OS install phase will be quicker. + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="config-storage-nosparse"> + <property name="label" translatable="yes">_Allocate entire disk now</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkImage" id="config-storage-nosparse-info"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Fully allocating storage may take longer now, but the OS install phase will be quicker. Skipping allocation can also cause space issues on the host machine, if the maximum image size exceeds available storage space. Tip: Storage format qcow2 and qed do not support full allocation.</property> - <property name="stock">gtk-info</property> + <property name="stock">gtk-info</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> </object> <packing> <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> + <property name="fill">False</property> + <property name="position">2</property> </packing> </child> </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> </child> </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> </child> </object> <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> </packing> </child> <child> @@ -181,7 +180,6 @@ Tip: Storage format qcow2 and qed do not support full allocation.</property> <property name="receives_default">False</property> <property name="xalign">0</property> <property name="draw_indicator">True</property> - <property name="group">config-storage-create</property> <signal name="toggled" handler="on_config_storage_select_toggled" swapped="no"/> <child> <object class="GtkLabel" id="label124"> diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py index 18f2aef9..1e915057 100644 --- a/virtManager/addhardware.py +++ b/virtManager/addhardware.py @@ -98,6 +98,7 @@ class vmmAddHardware(vmmGObjectUI): "on_hw_list_changed": self.hw_selected, "on_config_storage_bustype_changed": self.populate_disk_device, + "on_config_storage_devtype_changed": self.change_storage_devtype, "on_mac_address_clicked" : self.change_macaddr_use, @@ -766,7 +767,6 @@ class vmmAddHardware(vmmGObjectUI): if len(model) > 0: widget.set_active(0) - def populate_disk_device(self, src): ignore = src @@ -797,7 +797,6 @@ class vmmAddHardware(vmmGObjectUI): if len(model) > 0: devlist.set_active(0) - def populate_input_model(self, model): model.clear() model.append([_("EvTouch USB Graphics Tablet"), "tablet", "usb"]) @@ -1096,6 +1095,14 @@ class vmmAddHardware(vmmGObjectUI): act = src.get_active() self.populate_disk_format_combo_wrapper(not act) + def change_storage_devtype(self, ignore): + devtype = self.get_config_disk_device() + allow_create = devtype not in ["cdrom", "floppy"] + self.addstorage.widget("config-storage-create-box").set_sensitive( + allow_create) + if not allow_create: + self.addstorage.widget("config-storage-select").set_active(True) + # Network listeners def change_macaddr_use(self, ignore=None): if self.widget("mac-address").get_active(): diff --git a/virtManager/addstorage.py b/virtManager/addstorage.py index 2d15a57e..9204ee47 100644 --- a/virtManager/addstorage.py +++ b/virtManager/addstorage.py @@ -191,6 +191,7 @@ class vmmAddStorage(vmmGObjectUI): self.widget("config-storage-size").set_value(8) self.widget("config-storage-entry").set_text("") self.widget("config-storage-nosparse").set_active(True) + self.widget("config-storage-create-box").set_sensitive(True) fmt = self.conn.get_default_storage_format() can_alloc = fmt in ["raw"] |