[pve-devel] [PATCH manager v2 4/4] spice: Add enhancements to VM Creation wizard
Aaron Lauterer
a.lauterer at proxmox.com
Tue Sep 24 16:58:38 CEST 2019
On 9/20/19 9:00 AM, Thomas Lamprecht wrote:
> On 18.09.19 12:22, Dominik Csapak wrote:
>> lgtm, i find it understandable that the 'spice enhancments' are disabled
>> because spice is not selected, but maybe someone else has a comment on that?
>>
>
> IMO this is highly confusing and bad UX... The fields relation is
> not visible, also it looks like a checkbox misses "Spice enhancements"
> as it's really not clear that this should be some sort of "option group
> heading"
>
>> On 9/17/19 11:35 AM, Aaron Lauterer wrote:
>>> For a cleaner UI the SCSI Controller (pveScsiHwSelector) is moved to the
>>> left column below the VGA selector. The new Spice enhancements
>>> components is placed in the right column and enabled if qxl/spice is
>>> selected in the VGA selector.
>>>
>
> 1. I'd omit the extra "Spice enhancements:" and just include "SPICE" (note here:
> keep the uppercase consistent, the display selector uses SPICE and is before your
> patch, try to orient on such things) in the settings, like "SPICE folder sharing"
Yep, sounds good.
> 2. Please keep the SCSI controller where it is, no reason or improvement to move it
> just breaks muscle memory of existing users. We're not a super market, random movement
> of fields to make people look for them and thus find new "buttons to buy" should thus
> be rather avoided ;)
Okay, I am going to try how we could do this in another way, without
destroying old muscle memory.
> 3. It's a bit strange that here the spice enhancements are with the display settings but
> then, after VM creation the display settings are in the HW tab while this is in the
> Options. While it could fit there for sure, it makes one search for this.. But OK,
> that's maybe a bit hard to solve right, more confusing is the fact that I cannot change
> those in the Wizard on creation if SPICE is not selected, but I can do so afterwards in
> the options edit, also a semantic difference, which may not be to ideal for UX.
> A simple hint, like we do for OVMF/EFI Disk could be enough.
The same with regards to placement is valid for the qemu agent. In the
creation wizard it is in the System tab, close to the setting that can
enable these features.
Once the VM is created I expect settings like these in the options panel
and not the hardware panel.
Having all the SPICE enhancement settings in the display / hardware
settings would surely confuse me more.
I will add a hint in the options -> spice dialog that spice needs to be
enabled for the settings to have any effect if it is not the selected
graphics card.
> 4. As others mentioned, the enhancements may also make sense without a QXL display, while
> our code path doesn't really allow this separation as is this should at least not be
> made hard for the future. I mean, if I think about this it seems to fit better with
> QEMU Agent, as Guest Integration Enhancement, than with the display itself?
So we could just add the two new settings (folder sharing, video
streaming) in the same plain way as the qemu agent and if a user enables
either of these two options and spice is not selected show the same hint
that they will only have an effect if spice is selected as graphics card.
Other possibilities would be to group some options in fieldsets or
something similar. In the end this comes down to taste, how these items
should be structured and how simple the UI should be kept.
>
> Maybe just move this to advanced here and show it always?
Move these items to the advanced area and have it always enabled in the
system tab? I don't like that idea as it would break the UI's behavior
in a much harder way.
>
> The, "SPICE dual monitor", "three monitors", .. could also be integrated in such settings?
> I.e., a simple spinner with monitor count and a single SPICE in the display combo box.
>
> As an additional spice enhancement convenience feature one could add a checkbox, or the
> like, here with which a spice USB port gets added from the wizard?
> But the latter two should be additional patches, if done.
These two ideas sound good for me, especially when thinking about making
these settings easily accessible during the wizard and thus reducing the
needed interactions after the wizard is done.
For the future, if we go down the road of having more of these settings
in the wizard grouping them in some way might be a good idea.
What about making these additional settings (number of monitors, spice
USB port, etc.) only visible if spice is selected as graphics card? This
would help to keep the clutter to a minimum.
They should not go to the advanced area IMHO because once spice is
selected some of these settings are essential and the others we don't
want to hide from the user because then we could skip adding them to the
wizard in the first place.
Another thing that just hit me is that we will need an additional hint
to tell users that folder sharing is only supported in the Linux version
of virt-viewer to not get any Windows desktop users all excited for nothing.
>
>>> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
>>> ---
>>> www/manager6/qemu/SystemEdit.js | 34 ++++++++++++++++++++++++---------
>>> 1 file changed, 25 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/www/manager6/qemu/SystemEdit.js b/www/manager6/qemu/SystemEdit.js
>>> index 846baa73..dac0cc04 100644
>>> --- a/www/manager6/qemu/SystemEdit.js
>>> +++ b/www/manager6/qemu/SystemEdit.js
>>> @@ -79,7 +79,26 @@ Ext.define('PVE.qemu.SystemInputPanel', {
>>> deleteEmpty: false,
>>> fieldLabel: gettext('Graphic card'),
>>> name: 'vga',
>>> - comboItems: PVE.Utils.kvm_vga_driver_array()
>>> + comboItems: PVE.Utils.kvm_vga_driver_array(),
>>> + listeners: {
>>> + change: function(f, value, old) {
>>> + var sef = this.up('pveQemuSystemPanel').down('pveSpiceEnhancementSelector');
>
> what's "sef" ? use variable names with a bit better, more descriptive, names.
> "spice_enhancements" works better than the abbreviation for Spice Enhancement Field, IMO.
Okay
>
>>> + if (/^(qxl)(\d?)$/.test(value)) {
>>> + sef.setDisabled(false);
>>> + } else {
>>> + sef.setDisabled(true);
>>> + }
>>> + }
>>> + }
>>> + },
>>> + {
>>> + xtype: 'pveScsiHwSelector',
>>> + name: 'scsihw',
>>> + value: '__default__',
>>> + bind: {
>>> + value: '{current.scsihw}'
>>> + },
>>> + fieldLabel: gettext('SCSI Controller')
>>> },
>>> {
>>> xtype: 'proxmoxcheckbox',
>>> @@ -88,18 +107,15 @@ Ext.define('PVE.qemu.SystemInputPanel', {
>>> defaultValue: 0,
>>> deleteDefaultValue: true,
>>> fieldLabel: gettext('Qemu Agent')
>>> - }
>>> + },
>>> ],
>>> column2: [
>>> {
>>> - xtype: 'pveScsiHwSelector',
>>> - name: 'scsihw',
>>> - value: '__default__',
>>> - bind: {
>>> - value: '{current.scsihw}'
>>> - },
>>> - fieldLabel: gettext('SCSI Controller')
>>> + xtype: 'pveSpiceEnhancementSelector',
>>> + name: 'spice_enhancements',
>>> + insideWizard: true,
>>> + disabled: true,
>>> }
>>> ],
>>>
>
More information about the pve-devel
mailing list