* Define `X_AVAILABLE` if that's the case so the X11-specific code can
actually ever be effective
* Make the default for `CAPSLOCK_DETECTION` simply depending on whether it
can be configured instead of making it platform dependent
* Simplify code and avoid warnings in X11-specific code
The `CMAKE_INSTALL_DATAROOTDIR` variable might be overridden by the project
to point to some custom location (e.g. `share/games` instead of `share`)
but this doesn't mean we will be able to find icons there.
Since icons are almost always under `/usr/share/icons` it makes sense to
add that location as one last hard-coded fallback to avoid having to
specify `BUILTIN_ICON_THEMES_SEARCH_PATH` in that common case.
Whether an application can retranslate the UI dynamically likely differs
from whether the other appearance related settings can be applied
dynamically so this needs to be configurable individually.
Additionally, the environment settings can never be applied dynamically so
the notice on that page should always be shown.
This covers the settings dialog itself and option pages based on
`UiFileBasedOptionPage`. Other option pages need to react to the
new `OptionPageWidget::retranslationRequired()` signal or handle
the `QEvent::LanguageChange` event which is now propageted to the
page's widget.
The web view is only an optional enhancement in my applications so having
the support disabled is rather common. So for a better out-of-the-box
experience when configuring my projects it makes sense not having to
disable web view support explicitly if Qt WebEngine is not installed
anyways.
For some reason the tool button's palette changes back to the old palette
when applying changes. So it cannot be used to hold the intermediately
selected paletted.
The change for avoiding a warning from MSVC about 64-bit shift operations
introduced a different warning from GCC. Hopefully this now avoids warnings
in all compilers.