[PATCH] Give autofilters feature parity with manual level filters for indoor mapping
Despite the availability of a level=* autofilter, I see experienced indoor mappers continue to use manually defined filters. This is because the autofilters do not yet have feature parity with manual filters:
- Manual filters can either disable or hide elements. Autofilters can only disable elements.
- Manual filters can consider more than one key. With indoor mapping, this is relevant for repeat_on.
- You can use more than one manual filter at the same time, e.g. if you want to draw steps between level 3 and level 4 and therefore need to see features from both levels.
- Manual filters let you find elements without the relevant key.
There are also a few other inconvenient behaviors:
- As soon as level ranges (such as level=3-6) are used, the autofilter buttons for level=* show fractional levels (such as 3.5) even though they're not actually used in the building. (Since they were added in #...)
- The list of buttons is not reliably updated when a tag with a relevant key is added or the last element with the relevant tag is deleted.
- Buttons are not always large enough to show the value, especially on systems with UI scaling.
I'm providing patches to fix all of these:
- Support repeat_on in level autofilter (autofilter_01_repeat_on)
- Allow hiding auto-filtered elements (autofilter_02_hiding)
- Only show fractional autofilter values if they are explicitly used (autofilter_03_fractional)
- Allow more than one autofilter value to be selected at the same time (autofilter_04_multi)
- Add an autofilter for missing level value (autofilter_05_none)
- Get autofilter button size after adding it for more accurate values (autofilter_06_button_size)
- Update the autofilter buttons after tag changes and element deletions (autofilter_07_update)
The patches are best applied in the order listed.