Currently the extension selection dialog uses fixed layout with check boxes.
This can lead to bugs like bnc#967387 where the check boxes do not fit the screen. A similar problem exists also in the text mode (esp. in the 80x25 text resolution).
The check boxes with labels are clipped off even when some addons are moved to the second column on the right side.
There are basically three important RichText
widget properties which we could use
to solve this issue:
- The text area is scrollable
- It can contain hyper links which can be clicked - already used e.g. in the installation proposal
- Rich text can contain images
- The content can be styled (to some extent)
The idea is basically switch to a RichText widget and display the check boxes as images with text inside hyperlinks to allow user interaction.
File extensions_rich_text.rb
(see at the bottom) contains an experimental code
for using a RichText with check boxes.
You can run it using /sbin/yast2 ./extensions_rich_text.rb
(Qt GUI) or
/sbin/yast ./extensions_rich_text.rb
(Ncurses text mode).
Note: The code does not handle the user interaction, i.e. the state of the check boxes cannot be changed.
Here are the screenshots when running the experimental code.
Note: The screenshots were taken in running openSUSE so the theme is different
than in SLE, but the check boxes use the same icons as the YaST QSS style so
they should look exactly same as the other standard CheckBox
widgets.
In an reasonably large dialog it would look like this:
After resizing it down it looks like this (note the scroll bar at the right side, long texts are also wrapped):
The default 80x25 resolution would look like this (again note the scroll bar):
With more space available:
So far I found out these disadvantages:
- The check boxes cannot have a keyboard shortcut
- The look is a bit different than the standard check boxes (esp. in the text mode)
- After changing a check box state we need to regenerate the RichText content. However, we cannot focus the previously active link, the user would have to again navigate from the top item. (Again mainly the text mode would be affected, in GUI the mouse position is not changed.)
IMHO the advantage (scrollable area) overweights the disadvantages and it makes sense to change the dialog to the layout.
Another option would be to use the MultiSelectionBox
widget. However it does not allow to disable specific list items, it can be
disabled as a whole widget only. Additionally you cannot indent the items
to visually mark dependent extensions.
Note: Discussed with Ken, the mentioned drawbacks are acceptable given that it fixes the main problem (completely broken layout with hardly readable labels).