It seems that WAV is the only format supported across most versions of
Qt (5 & 6) and most operating systems.
Existing "run program" configurations will be adjusted if they still
contain Ogg files with the installation directory placeholder.
In Qt5 it is impossible to enumerate the file formats actually
supported by Qt.
In Qt6 it is possible to enumerate them. However, that list seems to
be incorrect. Tests on Windows showed both false negatives (e.g. the
enumeration didn't contain WAV files, but playing them worked just
fine) and false positives (e.g. the enumeration contained WebM & Opus,
but playing Opus-in-WebM didn't work).
Several files have OS-specific names like "…/windows.cpp", and they
should only be compiled when currently compiling for that OS. The
three main OS mentioned in the build system are Linux, macOS and
Windows. Other Unices like FreeBSD aren't mentioned explicitly and
should be treated the same as Linux (as the code in those
Linux-specific files is rather Unix-but-not-macOS-specific).
Fixes#3316.
So far if there was a canonical and/or extlang form that was different
form what the user entered those pieces of information were shown as
warnings.
With this change the state of the preferences are taken into
account. The same pieces of information are now only a warning if the
different normalization form is the one selected in the preferences as
the one to normalize to.
For example: if you enter `yue` (which is a canonical form with the
corresponding extlang form `zh-yue`) & your preferences are set to
"canonical", then this situation is judged "OK" as the text entered
matches the form you want according to the preferences. A text with an
"info" icon is shown, stating that there's an extlang form of `zh-yue`
available.
If, however, your preferences are set to "extlang", then a text with
a "warning" icon is shown stating what the extlang form would be.
If your preferences are set to "no normalization" the messages are
always shown with an "info" icon.
Part of the implementation of #3307.