Introduce 4 filtering types per device spec:
- "exclusive", which only includes OS' that match one of the specified
tags, and discards any OS that is untagged.
- "exclusive_prefix", which only includes OS' that prefix-match one of
the specified tags, discarding any OS that is untagged.
- "inclusive", which discards any OS that doesn't include one of the
specified tags, but includes untagged images.
- "inclusive_prefix", which discards any OS that doesn't prefix match
one of the specified tags, but includes untagged images.
Removed preferred widths for OS, device buttons, and set one for the
storage button. This allows the storage label (generally the longest)
to fit on the control face reliably.
Prior to this change, you could enter a submenu of the OS selector,
close the window, and then change device filter - presenting stale information
when you went back in to the OS selector.
Work around this by resetting the OS selector sequence when you close
the OS selector window.
Rather than a drop down dialog, which could present users with images
that may not run on their hardware, allow selection of Raspberry Pi as a
first stage. If users adopt this feature, they are presented with a
subset of images that we know will actually run on their hardware.
This is achieved by leveraging @maxnet's excellent OS filtering scheme.
Future work will attach image and description support to this OS list.
If you load a custom image by running `rpi-imager my_image.img.xz` then
the Advanced Options button is not shown. This is triggered if you set
a file association to load rpi-imager and then double-click an image
file.
The fix is simply to set the visibility on this button on start-up
(custom images set on the command-line are loaded before this).
Fixes#451