Some systems, like those that use musl libc, do not have the `locale` program. This change fixes a crash in that case.
Methodology:
1. try to run `locale -a`, if success, use that output
2. if that fails, check the environment variable `LANG`
3. if `LANG` is empty or unset, return an empty locale list
Just deleting the media will result in a redownload, but in 24 hours.
Who has time for that?
This change explicitly downloads the media after deleting it.
It does not redownload media that are present,
so other customized media will not be reset.
This does turn the reset button into a super secret
'download the media now' button.
Don't worry, no-one will ever know. They couldn't possibly find out.
Using a set instead of two booleans simplifies the code that uses it, and I've added code to actually save these flags.
They are not being saved anywhere, but I think they could be useful to
prevent automatic updates of user-selected artwork. I think this would only
matter if we want to remember that the user selected no artwork though.
The media will be download by the 'sync_media' stuff eventually anyway;
better to get it right away.
This makes the "Apply" button slower, but I think with an
explicit button it's not too bad like this.
Resolves#4523
Downloaded icons are 128x128 png files, so custom icons should be too.
We still display at 32x32, even in High-DPI modes,
but this should open the door for improvement in the future.
The default makes some banners look quite poor,
like banners with large solid colored areas and some hard lines.
This won't affect PNGs (icons), those just ignores the quality option.
Disable the 'Cache' button once the downloading begins,
and make the dialog properly modal.
This does not ensure that you can't change the cache path during
download or installation, but it discourages it- you'd need to open
a second installer window to do it.
Resolves#4509
These are not working via GET at the moment, though the should.
But POST supports are longer query, so it is better even if both work.
So lets use that.
Resolves#4500