applets/kicker: don't hide visible columns when querying & use fixed width for runner columns
Kicker sensibly does not show runner columns with no matches. The problem is that when the user is typing and the model is updated as new results come in, it will typically remove the existing ones and add the new matches, so it's briefly zero. So kicker will hide them only to immediately show them again, resizing the whole thing. This showing, hiding and resizing causes a lot of visual noise, and seems rather expensive - the interface feels not just noisy, but also slow.
Instead, we could just not hide the empty column that was just visible while it's still searching. This will often keep things exactly where they are, just replacing the contents, cuts down on the flickering and resizing, and feels snappier. If there are no matches anymore, hiding it when the search is done is soon enough.
Also, drop a debugging leftover.
Kicker's ItemListView dynamically resizes itself between a minimum of 14 gridUnits and a maximum of 21. This was added in b8762ede to support somewhat larger entries on the menu-like side (and may help in languages that tend to have longer strings), and generally works fine there as the root list and submenus tend to be simple. It is problematic for runner columns, however - these can have several dozen results and change very frequently as the runners report individually and the user may still be typing. This causes a whole cascade of runner columns appearing (as they now have matches), disappearing (as they now no longer have) and resizing themselves (as their longest match is now shorter or longer). This feels slow and looks very glitchy; but due to the asynchronous nature of everything it's hard to synchronize them for display without delaying everything.
Instead, we set the runner columns to a fixed size, intermediate between the minimum and maximum values at 17 gridUnits. This gives the runner search in kicker a much snappier and less glitchy feel, while still giving decent support for slightly longer application names and other columns that tend to be longer, such as file names and bookmarks. It will slightly increase the width for some typically short columns, but 4-5 columns should still comfortably fit on even smaller screens, and the view is scrollable in the rare case that there are more runners reporting matches.
Requires plasma-workspace!6150 (merged)
Both commits are technically independent, but with each of them the improvement isn't too great individually, but together they're much better I think.
This is mostly an alternative to !3379 (closed). We might still want a small delay for the very first results, similar to the one we have for kickoff/krunner, but that can be a much simpler one (and we can do that independently).
| before | after |
|---|---|
| kicker_resize_before | kicker_resize_after |