This patch proposes a number of small quality of life improvements to the way UILists behave.
I'm putting it here in a WIP state to see if I can get some early feedback. Some of the changes require tweaks to the python UI code, which I have only done for Shape Keys so far, so please test with those for now.
- Alphabetical and Reverse order sorting functionality don't combine, but this wasn't really indicated by the UI before. You could have them both enabled, even though in that case, reverse sort overwrites alphabetical. Now, enabling one will automatically disable the other.
- When filtering or sorting is active, the move up/down buttons are disabled, since their behaviour becomes unpredictable.
- When changing the filter text, we no longer force scroll to the active item. (controversial?)
- When filter/sort UI is hidden, its functionality is now also disabled.
- When adding a new element to a list, filter/sort UI becomes hidden, and therefore disabled. This prevents the newly added element from being invisible.
- When the active element is filtered out, the delete button is disabled, to prevent users from deleting things they can't see.
- When filtering or sorting is active, deleting the active element will result in the new active element being more predictable, rather than "jumping around" based on the original unfiltered and unsorted order.
- When deleting the active element, the new active one will become the one that was underneath the deleted one, rather than the one that was above it. This lets you better see ahead when deleting a large number of things.
Stepping (Up/Down arrow keys):
- Now loops around so pressing uparrow on the top-most element goes to the bottom-most one and vice versa.
- When the active element is hidden by filtering, stepping up or down will make the last or first element active.
- Sorting/filtering UI becomes hidden when undo-ing a deletion.
- Sometimes crashes when undo-ing many deletions :) isn't that great
- Add up/down move buttons to UV Maps, Vertex Color, etc.
- Just like Shape Keys already were, the up/down move buttons should only show up when there is an element, but be grayed out when there is only one element.
- Implement neccessary python code changes to the other lists that have add/delete/move buttons (vertex groups, uv maps, etc)