On Mon, Apr 30, 2018 at 11:44:23AM +0100, Daniel P. Berrangé wrote: > The current OS distro selection UI is fairly cumbersome to use. First > you need to decide on a variant, then decide a distro and then look for > the version you want. The list is filtered by default so only a subset > of OS are displayed. So for less common distros you'll then need to > start again and tell it to show all OS to try to find the one you want. > > The core problem is that we have an incredibly large list and want to > make it easy for the user to find a specific entry. The modern UI > paradigm for this problem is to provide interactive search with > live updated results. The current UI does provide an interactive search > facility on the OS version results, but you still have to first select a > variant to be able to use the search which is unhelpful. > > This patch attempts to better apply the search UI design to the OS selection > problem. We get rid of the notion of variants, distros and version, and > provide a single text entry box in which the user can type a few letters > of the OS name. As they type, a popover displays the matching results > filtered on OS name. By default end of life OS will be hidden, so in > general there will only be a small handful of results left after just > typing a few characters. This makes it very quick to find and select the > desired OS, without needing to provide a mutli-step navigation hierarchy. > > https://bugzilla.redhat.com/show_bug.cgi?id=1464306 > > Signed-off-by: Daniel P. Berrangé <[email protected]> > --- > tests/osdict.py | 26 ---- > ui/create.ui | 205 +++++++----------------- > ui/oslist.ui | 104 +++++++++++++ > virtManager/create.py | 423 > +++++++++----------------------------------------- > virtManager/oslist.py | 106 +++++++++++++ > virtinst/osdict.py | 88 +++-------- > 6 files changed, 359 insertions(+), 593 deletions(-) > create mode 100644 ui/oslist.ui > create mode 100644 virtManager/oslist.py
[...]
> diff --git a/ui/oslist.ui b/ui/oslist.ui
> new file mode 100644
> index 00000000..2424e900
> --- /dev/null
> +++ b/ui/oslist.ui
> @@ -0,0 +1,104 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!-- Generated with glade 3.20.4 -->
> +<interface>
> + <requires lib="gtk+" version="3.14"/>
> + <object class="GtkPopover" id="vmm-oslist">
> + <property name="width_request">400</property>
> + <property name="height_request">300</property>
s/300/280/
The popover is to large to fit into the non-resizable vm-create window.
[...]
> diff --git a/virtManager/create.py b/virtManager/create.py
> index 5afe0afe..5e93869d 100644
> --- a/virtManager/create.py
> +++ b/virtManager/create.py
[...]
> @@ -1221,21 +1009,8 @@ class vmmCreate(vmmGObjectUI):
> elif instmethod == INSTALL_PAGE_VZ_TEMPLATE:
> install = _("Virtuozzo container")
>
> - osstr = ""
> - have_os = True
> - if self._guest.os.is_container():
> - osstr = _("Linux")
> - elif not distro:
> - osstr = _("Generic")
> - have_os = False
> - elif not version:
> - osstr = _("Generic") + " " + dlabel
> - have_os = False
> - else:
> - osstr = vlabel
> -
> - self.widget("finish-warn-os").set_visible(not have_os)
> - self.widget("summary-os").set_text(osstr)
> + self.widget("finish-warn-os").set_visible(self._os is None)
This will never happen because of the check in _validate_install_page()
and the "finish-warn-os" can be removed completely from the UI.
> + self.widget("summary-os").set_text(self._os and self._os.label or
> _("Unknown"))
> self.widget("summary-install").set_text(install)
> self.widget("summary-mem").set_text(mem)
> self.widget("summary-cpu").set_text(cpu)
Otherwise the code looks good. Awesome change!
Reviewed-by: Pavel Hrdina <[email protected]>
signature.asc
Description: PGP signature
_______________________________________________ virt-tools-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-tools-list
