USB3 checkbox was always checked if the device / port supports USB3
even though USB3 was disabled on purpose.

The behaviour now is that for an existing configuration the checkbox
reflects what is set. When selecting a device or port that is not the
configured one the checkbox reflects the USB3 support of the selected
device / port.

Signed-off-by: Aaron Lauterer <a.laute...@proxmox.com>
---

What started out to fix the problem discussed in the previous patch
series [0] turned into a refactoring of the controller.

I hope I got the regexes right.

Since we do not disable the USB3 checkbox anymore I am not sure why we
kept the whole if else clause around `savedVal`.


[0]: https://pve.proxmox.com/pipermail/pve-devel/2019-September/039111.html

 www/manager6/qemu/USBEdit.js | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/www/manager6/qemu/USBEdit.js b/www/manager6/qemu/USBEdit.js
index f41c3d21..73df7b30 100644
--- a/www/manager6/qemu/USBEdit.js
+++ b/www/manager6/qemu/USBEdit.js
@@ -17,19 +17,19 @@ Ext.define('PVE.qemu.USBInputPanel', {
                change: function(field, newValue, oldValue) {
                    var usb3field = this.lookupReference('usb3');
                    var usbval = field.getUSBValue();
-                   var dev_is_usb3 = /usb3=1/.test(usbval);
-
-                   if (dev_is_usb3) {
-                       usb3field.savedVal = usb3field.getValue();
-                       usb3field.setValue(true);
+                   var confid = this.view.confid;
+                   var vmconfig = this.view.vmconfig[confid];
+                   var dev_is_usb3 = false;
+                   var hostregex = /host=([^,]*)/;
+
+                   if (/^host/.test(vmconfig) &&
+                       vmconfig.match(hostregex)[1] === 
usbval.match(hostregex)[1]) {
+                       dev_is_usb3 = /usb3=1/.test(vmconfig);
                    } else {
-                       if (usb3field.savedVal !== undefined) {
-                           usb3field.setValue(usb3field.savedVal);
-                       } else {
-                           usb3field.setValue(usb3field.originalValue);
-                       }
-                       usb3field.setDisabled(false);
+                       dev_is_usb3 = /usb3=1/.test(usbval);
                    }
+
+                   usb3field.setValue(dev_is_usb3);
                }
            }
        }
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to