Skip to content

Instantly share code, notes, and snippets.

@joseivanlopez
Last active February 23, 2022 09:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joseivanlopez/46f11f146ec898f1b15aebd279e024e0 to your computer and use it in GitHub Desktop.
Save joseivanlopez/46f11f146ec898f1b15aebd279e024e0 to your computer and use it in GitHub Desktop.

Improving Modules and Extensions Dialog

The dialog for selecting modules and extensions consists on a scrollable list of checkboxes. Each checkbox has 3 possible states: selected, auto-selected and unselected. Checboxes can be disabled too. When a checkbox is checked, its dependencies are auto-selected if they are not selected yet. Similarly, when a checkbox in unchecked, its dependencies are deselected if they are auto-selected. Moreover, the details of the currently selected item are shown in a Details box below the list of checkboxes.

This dialog presents some usability problems:

  • You could not realize about auto-selected items when such items are out of scroll.
  • After selecting some items, it is difficult to know what is the master item for each auto-selected item.
  • Filtering or sorting items could be desirable, for example, you would like to see the list of selected (or unselected) items without scrolling the full list.
  • In Qt, you have to select the item to see its description. If you are not interested on that module, then you have to deselect it again.

All this is currently implemented with a RichText emulating checkboxes. And it still presents more problems:

  • There are scroll jumps when an item is selected/deselected (the RichText content is rendered again).
  • It does not allow to properly adapt styles for the RichText content.
  • The images for emulating checkboxes cannot be changed according to the selected theme.

For SLE-15-SP4 we could improve some of the inherent issues to the RichText usage, keeping the current look&feel as much as possible. Improving the usability issues would require to re-think the whole dialog.

Some possible fixes for SLE-15-SP4 could be:

  • To use a native libyui widget instead of a RichText, for example:

    • CustomStatusItemSelector: this widget should be offer a way to render items without description, borders or spaces around.
    • A new widget, similar to MultiSelectionBox, but adding support for multiple states.
  • Continue using a RichText, but with the workaround from David to make possible to style it: yast/yast-registration#566.

In both cases, checkbox icons are still a problem when using different themes. The very same icons are always used, so some mechanism to select images according to the theme would be required (with a fallback, of course).

All these would be temporary solutions. IMHO, this dialog requires a full rethink and redesign for next products or service packs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment