This change makes it so OBS will still launch even if a theme is
missing. This change also deprecates the "CurrentTheme" config key, and
is replaced by "CurrentTheme2".
This is because a previous change to make sure OBS fell back to the
System theme in case of a missing theme had been accidentally removed.
Changing the key prevents a new version of OBS setting a theme that
doesn't exist in an older version, which would prevent that version from
launching.
Fixes an issue where when trying to connect a Twitch account, and the
Twitch two-factor authentication check fails, the user will still
technically be logged in because the cookies will still be present, thus
when they try to click the "Connect" button again, it will skip the
login part (because they're already technically logged in), and just
give them the two-factor failure message without letting them enter in
their login information again.
In the current user interface code, OBSBasic::AddSceneCollection has a
qname parameter to allow explicitly specifying a name, but that code
path is unused in the UI code itself, and qname is typically empty. If
qname is not empty, it does not properly generate a file name associated
with that specified scene collection name. This fixes that issue.
When the panels start up for the very first time, the dark theme is not
used due to the local storage variable not being set by the first panel.
When the program is restarted, it'll be dark from then on out because
it's set by the secondary panels rather than the primary panel. This
modifies it so that the locale storage variable is properly set by the
primary panel.
(This commit also modifies the UI)
This solves the issue where OBS would be deprioritized by Windows over
fullscreen games, causing OBS to lag out whereas the games would still
run fine.
Unfortunately, due to some conflicts between FFZ and BTTV (particularly
the fact that having FFZ enabled removes the BTTV settings menu items),
one of them needs to be removed. For the time being, we'll remove FFZ,
because BTTV shows FFZ emojis anyway.
When using custom FFmpeg output mode, the check would instead use the
standard recording path which is no longer visible in the settings. This
commit also simplifies the checks by moving the duplicated code to a new
function.
If audio is determined to be deactivated via the audio source (via the
new "audio_activate" and "audio_deactivate" signals), hide the audio
source in the mixer.
This was actually the line of code that the mixer dock widget crash was
triggered by. This technically shouldn't ever be null, but better to be
safe than sorry.
The function added to the BrowserDock class is SetWidget, not setWidget.
I realize now that using the same exact function name but with an
uppercase starting letter rather than a lowercase starting letter wasn't
smart.
The extra browser panels would always create on startup due to the
visibility change. This fixes that by ensuring that this call blocks
signals, and ensures that the call only happens on first creation by the
user and not when the user is loading on startup.
In the view -> Docks menu, when a user first creates a custom browser
dock, the menu item associated with them used to hide/show them will be
unchecked in the menu by mistake. This ensures they're checked when
first created.
This reverts commit b5843caa48.
This breaks some hotkeys because the signals are tied to a signal which
is now triggered because "toggled" is used instead of "clicked", so just
revert it for now for the release and look at it later post-patch.
Lookahead causes playback issues when bitrate changes mid-stream.
Bitrate can suddenly drop to 0, and other issues such as audio
stuttering on Twitch have been observed. Turning off lookahead fixed
the issue. Lookahead is normally off by default anyway.
This commit fixes various issues with screen readers in the main OBS
interface. These were tested using NVDA on Windows 10 1903.
Checkboxes or buttons which toggle, when receiving an activate signal
from the screen reader would visually update, but not perform any
action. This is because they're listening only for clicks. They should
all now be listening for toggles instead.
The screen reader would navigate through the UI in the order that
elements are defined in the .ui XML, and not by their row positions.
The XML has been reordered so that things should be defined in their row
order.
Audio track selection now says Track 1, 2, etc, rather than just the
number. Various checkboxes that just say "Enable" now have accessible
text that says what the enable is for (since it says "checkbox", the
fact it's an enable should hopefully be clear). Type in the recording
tab of output now has accessible text which says "Recording Type".
All the right side buttons in hotkeys now have tooltips, and by
extension, accessible text. Currently it does not yet say what hotkey
the action is in relation to, but that would require more locales.
When the streaming audio track was separated from the recording tracks
in advanced output mode in be8c06334, it mistakenly removed the opus
audio encoder code when FTL is used. This restores that code.
This change adds the ability to box select by clicking and dragging from
an empty part of the preview.
Shift + Drag add any items in the box to the selection. Alt + Drag will
remove items in the box from the selection. Ctrl + Drag inverts the
selected state for items in the box.