This hides the dock icon when minimizing OBS to the tray on OSX. This
also fixes the bugs with minimizing on startup (and hides the dock icon
correctly in that case as well).
Closesobsproject/obs-studio#1430
If a group's sub-item is selected in the list box and you select the
group via the preview, the sub-item would be deselected, but that
deselection would not be applied to the sub-item in the list box despite
being deselected.
When a group's transform was scaled down, that scale would not apply to
grabbing the handles of sub-items, so the "handle radius" would
incorrectly be miscalculated (the handle radius calculation for the
sub-item would be scaled down by the parent's scaling, making it too
small to grab). Instead of calculating relative to the current parent,
this fixes the issue by operating in screen space at all times.
Fixes a design flaw where if renaming a source, the source's name would
revert if you de-focused (clicked away) from the rename edit widget.
Instead, the functionality for revert should really only just be when
the user presses the Escape key.
Allows the ability to specify release candidate versions in the
whatsnew.json in order to allow startup information dialogs to be
displayed to the user which are specific to release candidates.
This commit explicitly puts "32-bit" in the title bar and OBS log for
32-bit versions of OBS. It also changes "64bit" to "64-bit" to match the
string used for Windows version info.
QNetworkReply was added here in commit
5ba8b09c9c0ee3bd4cca7860e5892ee60d1f6cf6. Qt5Network was replaced in
commits 13bed1a448e3726819778e5759bdf456556b6bf9 and
39d1cda4e9b276f1b0770027e211aec0d9ecb927, but this one line referring to
QNetworkReply remained. Let's finally remove it.
This commit adds the ability to select a background color for a
scene-item, whether it's a custom color or one of eight presets.
As this is an initial implementation, it lacks theme customizability,
and it also lacks the ability for the user to set their own preset
colors, so only the hard-coded 8 are available.
Contrary to what the name would have you believe, QPointer<> is not used
to delete a pointer when it leaves its specific scope. Instead, it's
used to check to see if the pointer is still valid. For most
QWidget-based objects, this is actually fine because QWidgets that are
assigned to layouts or other widgets will automatically be destroyed --
however, for non-widget objects, this can cause a memory leak.
This patch replaces QPointer with QScopedPointer where applicable to
prevent memory leaks.
Closesobsproject/obs-studio#1367
In the Dark theme, disabled UI elements had text that was too close in
color to enabled UI elements. This commit switches them to use the
"light" palette color instead of the "lighter" palette color.
Currently the only thing preventing a user from trying to start multiple
streams or recordings is the UI buttons being disabled. The hotkey code
allowed the user to bypass that, which for streaming resulted in lots of
rtmp output connect threads spawning, which stomped all over each
other's data structures and resulted in crashes.
This fixes a crash in case the user selected the option to save
projectors on exit and had multiple monitors at that time. Later on,
when obs is started again if the monitor list is lower now the open
projector code will return null when trying to create the saved
projector.
Just check if the returned projector pointer is valid before trying
to restore the saved geometry.
Adds the ability to set the current palette for the program via adding
"OBSTheme" objects to the qss files. The values for the OBSTheme object
are the values used by QPalette::ColorRole.
Modifying the global palette allows the ability to easily/quickly look
up application theme colors (especially if you would like to use them
for QML), as well as the ability to fix the hyperlink color issue. (On
dark themes, links would still be dark blue, causing them to be
difficult to see)
When the user had advanced output mode selected and they created a new
profile, enforced service settings for advanced output mode would not be
applied because GetDataFromJsonFile would return a nullptr (because the
settings file did not yet exist). Instead of returning nullptr, always
return a valid data object, and in addition, apply the defaults of the
encoder to pass to obs_service_apply_encoder_settings just to be safe.
Allows the use of alt-cropping on scene items that have bounding box
enabled. The crop will simply apply to the source within the bounding
box rather than try to do anything fancy. A simple solution to an
annoying problem.