Setting a QStyle resets the color palette. This is unhelpful when a few
lines before that we set a new palette. In theory the setStyle call
could just be moved up, but we don't need to since we always set the
same style so there's no reason to call it multiple times.
If the user just reselects the theme they're already on, we shouldn't
set it again, as setting a theme always introduces issues (that are
especially visible on macOS and Linux).
Parentheses are needed due to operator precedence (although the previous
code happened to work because POLLIN has the value 1).
Fixes: 91f986ec9969 ("linux-v4l2: Check udev fd events")
Plugins are expected to be in the .plugin bundle format. We do not want
to encourage usage of the old .so format, this is only kept at all for
backwards compatibility with existing plugins.
This crash is suspected to be a QT bug that happens in 6.2.4, as
it only happens in this version. This is the QT version that is in
the Ubuntu 22.04 ppa, so this fix is a necessary evil as it affects
Ubuntu users.
This fixes the crash by deferring the hiding of the audio mixer
item to the next event loop.
Users with AMD CPUs and Intel dGPUs (Arc) would find that QSV is
restricted to 1200p and missing features due to to this check failing.
Once the encoder gets rewritten for AV1 support we will fix this
properly.
udev_event_thread calls poll with two fds: the udev fd, and an eventfd
used for shutdown. On FreeBSD we were hanging on shutdown in
udev_monitor_receive_device after receiving the eventfd event.
Now, if the udev fd reports no events skip the
udev_monitor_receive_device call.
At shutdown the loop will exit via os_event_try().
Previously FreeBSD had an optional port that installed /etc/os-release
so it was already available on many FreeBSD systems, but os-release is
now provided by the base system and will be universally available.
Currently we use signals based on os_event's but the udev code blocks in
a 1s select (now poll) that cannot be signalled without an FD. This adds
an extra eventfd which will be signalled along with the os_event to
trigger the poll.
Also switches from select to poll to avoid issues with large fd values.
Increment checks for the what's new file were not working as intended;
old stored increments would unintentionally pass to newer versions if
the newer versions did not explicitly start up with a whatsnew.json file
that had their version. The previous attempt to fix made it so that it
used a completely separate global.ini entry when a matching entry was
found. However, this entry did not take into account the beta or release
candidate number of the current build. This fixes it to bake in the
beta/rc number into the entry.