[virt-tools-list] [virt-manager PATCH] details: disable "Remove Hardware" popup menu for USB controller

Cole Robinson crobinso at redhat.com
Thu Apr 17 16:38:56 UTC 2014


On 04/17/2014 12:35 PM, Chen Hanxiao wrote:
> 
> On 04/18/2014 12:12 AM, Cole Robinson wrote:
>> On 04/17/2014 11:13 AM, Chen Hanxiao wrote:
>>> From: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
>>>
>>> We could not delete USB controller by "Remove" button.
>>> But we could delete it by right click option.
>>> This patch will disable remove popup menu for USB controller.
>>>
>>> Signed-off-by: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
>>> ---
>>>   virtManager/details.py | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/virtManager/details.py b/virtManager/details.py
>>> index 2e8991b..beb2dcd 100644
>>> --- a/virtManager/details.py
>>> +++ b/virtManager/details.py
>>> @@ -1081,7 +1081,8 @@ class vmmDetails(vmmGObjectUI):
>>>               return
>>>             rmdev = self._addhwmenuitems["remove"]
>>> -        if hasattr(devobj, "virtual_device_type"):
>>> +        if (hasattr(devobj, "virtual_device_type") and
>>> +                devobj.type != "usb"):
>>>               rmdev.show()
>>>           else:
>>>               rmdev.hide()
>>>
>> This would require duplicating all the logic in two places. And this fix isn't
>> exhaustive, since for example it will still allow right-click removal of ps2
>> mouse which is also disallowed.
>>
>> Can we do something like check if the 'remove' button is sensitive or visible?
>> And make the same change for the popup window.
>>
>> - Cole
>>
> Do you mean we should do something like:
> 
> diff --git a/virtManager/details.py b/virtManager/details.py
> index beb2dcd..798edd0 100644
> --- a/virtManager/details.py
> +++ b/virtManager/details.py
> @@ -1082,7 +1082,7 @@ class vmmDetails(vmmGObjectUI):
> 
>          rmdev = self._addhwmenuitems["remove"]
>          if (hasattr(devobj, "virtual_device_type") and
> -                devobj.type != "usb"):
> +                self.widget("config-remove").get_sensitive()):
>              rmdev.show()
>          else:
>              rmdev.hide()
> 

Yeah something like that. Though while you are there, I'd drop the
'virtual_device_type' hack as well. And just do roughly:

rmdev.set_visible(self.widget("config-remove").get_visible())
rmdev.set_sensitive(self.widget("config-remove").get_sensitive())

> But popup menu could be shown before selecting controllers.
> 

Can you change the hardware list selection while the popup menu is visible? I
can't find a way.

- Cole




More information about the virt-tools-list mailing list