Commit Graph

3213 Commits

Author SHA1 Message Date
Wooster
655cc23d7f UI: Fix capitalization of "WebSocket" 2023-08-19 16:45:16 -07:00
derrod
3c28903979 UI: Log if user is ignoring service limits 2023-08-19 16:37:08 -07:00
Lain
a44ab2efcc UI: Add timer to NewYouTubeAppDock()
CEF apparently doesn't like it and is unable to handle when you
destroy/recreate CEF instances very quickly, so... let's just put a
timer on this insanely terrible function. I guess. Whatever.
2023-08-18 11:28:16 -07:00
derrod
4e5be319e4 UI: Move restart to end of main() 2023-08-18 07:16:41 -07:00
Lain
b8d85d84a4 UI: Fix potential null pointer dereference
If you're using an encoder from a plugin, and you remove that plugin,
this value will be null, causing a crash. (Lain note: I realize that
this isn't the best solution to this problem, though there really isn't
any way to infer what type of encoder the prior encoder was. Should also
save the encoder type as additional setting metadata in future
versions.)
2023-08-17 17:06:24 -07:00
Norihiro Kamae
ad740735d2 UI: Fix memory leak in OBSQTDisplay
In my previous commit fd502cbd4, SurfaceEventFilter was not destroyed
and caused memory leaks.
2023-08-17 11:46:28 -07:00
derrod
a06d6893b9 UI: Remove silent OpenGL fallback on Windows 2023-08-16 11:03:00 -07:00
Jimi Huotari
f83b0d93f1 UI: Fix compiling without nlohmann JSON
After commit 8955338624, 'UI/update/models/whatsnew.hpp' is included
unconditionally, even with 'ENABLE_WHATSNEW=OFF', which breaks
building OBS Studio without nlohmann JSON.
2023-08-16 19:43:46 +02:00
Lain
c8d95005c1 UI: Fix unnecessary GetCurrentScene() call
Missed this with the parent commit; the scene variable is now already
available, thus there is no need to call GetCurrentScene() twice.
2023-08-15 17:20:44 -07:00
Lain
e0f7bcaf3f UI: Hold reference to scene when drawing spacers
Just holds a reference to the scene as a safety precaution.
2023-08-15 17:11:23 -07:00
PatTheMav
8d82263513 UI: Fix possible race condition in DrawSpacingHelpers
The use of GetCurrentSceneItem can lead to a race condition between
the graphics thread (where this function will be run) and the main UI
thread, as both access the scene list model and iterate through its
members which can change during iteration (as there is no lock around
its access).
2023-08-15 16:05:04 -07:00
gxalpha
518bdc7af1 UI: Fix transform shortcuts with multiple items selected
Firstly, removes the UpdateTransformShortcuts() method introduced in
c33fa8b which was trying to re-implement the behavior of
UpdateEditMenu().
Secondly, updates UpdateEditMenu() to account for sources without video.
Sources without video shouldn't be able to have their transform edited,
copied, pasted, or changed in any other way (because they don't have
one).
2023-08-15 15:56:43 -07:00
derrod
3e29844af7 UI: Set advanced audio encoder to invalid if missing 2023-08-15 15:54:07 -07:00
Lain
fee4f2dc48 Merge pull request #9435 from norihiro/qtdisplay-destroy-at-surface-event-3
Fix crash at render_display while shutdown on macOS
2023-08-15 15:49:54 -07:00
jpark37
bb12fe9db5 decklink: Add HDR playback support 2023-08-15 13:15:45 -07:00
Ryan Foster
f049d04af4 UI: Store dock titles in BrowserDock instead of relying on Qt
Attempting to set the window title of a BrowserDock that is closed, then
opening the BrowserDock, would show that BrowserDock with an incorrect
title. We can handle this by overriding the showEvent of BrowserDock and
manually setting the window title after the showEvent is called,
hopefully ensuring that we are only setting the window title on a window
that exists.
2023-08-15 12:27:18 -04:00
Ryan Foster
25b97df6eb UI: Update text for custom browser dock menu items manually
Instead of relying on the dock's having their window title already set
for the menu items to be updated, let's just manually update the menu
item text ourselves when updating the item.
2023-08-15 12:27:18 -04:00
Ryan Foster
20e4f0cad3 UI: Track custom browser dock names internally
This is a workaround for a change in Qt behavior between 6.5.1 and
6.5.2[1] which affected the outcome of attempting to set the window
title of a window that is not currently open. In Qt 6.4.3 and 6.5.1, the
window title would be set. In Qt 6.5.2, the window title will become
NULL/empty.

Instead of relying on Qt to have valid titles for custom browser dock
windows that we manage, let's track the names ourselves.

[1]: c153066baa
2023-08-15 12:27:18 -04:00
Matt Gajownik
7d9f8e7cac UI: Set browser dock title in constructor
Works around a bug in Qt where setWindowTitle called on a native window
that hasn't been initialised yet causes the title data to be lost,
resulting in the window's title never being set.
2023-08-15 12:27:18 -04:00
Norihiro Kamae
dfce9b929a UI: Fix crash at resizing display followed by destruction on macOS
The resize event was triggered during the shtudown of OBS. A commit
9f330050ef moves the actual resize code in `gl_update` to the main
thread without synchronizing between the main thread and the graphics
thread. When the display context is destroyed just after the resizing,
the delayed resize code can read the destroyed display context.
As a workaround, this commit will destroy the display context at the
earlier timing of the shutdown process.
2023-08-15 14:01:11 +09:00
Norihiro Kamae
fd502cbd4d UI: Fix crash at render_display while shutdown on macOS
The display context was sometimes created again by a resize event after
destruction from `OBSBasic::closeEvent`. That resulted in the display
context alive until reaching the destructor of the `OBSQTDisplay` class
and caused a crash in `render_display` on macOS. To avoid this, destroy
the display context at the event `SurfaceAboutToBeDestroyed` and let not
create the display context again.
2023-08-15 13:40:09 +09:00
Norihiro Kamae
fa17168ba2 UI: Removes the workaround of not receiving expose event
The commit e67fdbca79 is a workaround for QtWayland bug that the
`QEvent::Expose` was never received on a certain condition.
The bugfix was introduced to QtWayland 6.1.0 so that the workaround is
not necessary for now.
2023-08-15 13:12:34 +09:00
Translation Updater
ecf914dd67 Update translations from Crowdin 2023-08-13 14:09:15 +00:00
prgmitchell
2a9b9c9298 UI/importers: Ignore empty Streamlabs hotkeys
Ignore empty hotkeys when importing a scene collection file from
Streamlabs Desktop.
2023-08-12 22:31:01 -04:00
Matt Gajownik
b429d00440 UI: Show link to release notes in Help menu 2023-08-12 16:46:38 -07:00
Friedhelm Birth
a599dd50f6 UI: Add high frame rate 119.88 fps to capture device properties 2023-08-12 16:16:24 -07:00
Friedhelm Birth
11ae49da73 UI: Add high frame rates (120, 144, 240) to general video properties 2023-08-12 16:16:24 -07:00
gxalpha
6721154924 UI: Use QCheckBox::toggled signal for checkbox changes
Like in 4f8b17d61, "toggled" is the signal that listens for changes
however they may have happened (including through things like
accessibility software), whereas clicked only is emitted on mouse
clicks. We should react to any kind of change, whatever prompted it.
2023-08-12 13:58:06 -04:00
gxalpha
d2ef4d21b3 UI: Don't cap auto-config wizard FPS whole number precision at 2
Capping the precision for whole numbers results in scientific notation
being used for any number that's larger than what can be displayed with
the given precision. In case of 2, that would be anything larger than
99, resulting in 120 for example to be shown as 1.2e+02.
Let's not cap the precision for whole numbers ourselves and just use the
default value (which at the time of writing would be 6).
2023-08-11 21:36:44 -04:00
gxalpha
4f8b17d612 UI: Use QGroupBox::toggled signal for group changes
The QGroupBox::clicked is specifically for mouse clicks. This means that
it's not emitted if the "checked" property is modified through other
means than the mouse, for example programatically or through
accessibility software like VoiceOver.
However, we do want to catch such events, so the QGroupBox::toggle
signal (which as per the Qt documentation is the notified signal for the
"checked" property) is the appropriate one to use.
2023-08-11 21:10:11 -04:00
gxalpha
49ef1d4b98 UI: Set loading to true when loading accessibility settings
When loading a settings pane, "loading" should be set to true to stop
signals being emitted by settings changes to trigger while the settings
are loading. This should have always been set here as well, but wasn't
detected so far because currently there are no settings in accessibility
that have signals connected that track changes.
2023-08-11 21:10:11 -04:00
Lain
b79e6d219f UI: Fix YouTube not saving stream key in auto config
Commit 85f9a8661b did not take into account whether YouTube was using a
stream key or not, it would prevent the auto-configuration dialog from
being able to save a YouTube stream key if the user opted to enter in a
stream key instead of connecting their YouTube account.

This simply fixes that by checking to see whether or not the user fully
connected their account or not.

Fixes obsproject/obs-studio#6406
2023-08-11 16:01:37 -07:00
gxalpha
b962daa3c8 UI: Use static function instead of macro to set color
Macros can be hard to read and are usually not very friendly to use in a
debugger. Using a static function instead gives the advantage of better
syntax highlighting in IDEs and better debugger support.
2023-08-11 11:42:18 -04:00
derrod
014f7683cf updater: Pass through parameters to restarted OBS instance 2023-08-11 00:34:36 +02:00
derrod
38f41f4f94 UI: Copy OBS command line arguments to updater launch 2023-08-11 00:34:36 +02:00
PatTheMav
7628265099 Update .clang-format rules for ObjC files for version 16 2023-08-10 17:12:30 -04:00
Ryan Foster
64139a6bbd CI: Update to clang-format 16
This commit also modifies UI, libobs, and plugins.
2023-08-10 16:07:25 -04:00
gxalpha
2404036575 UI: Make simple mode settings warnings float at bottom of page 2023-08-09 20:38:59 -04:00
tytan652
db8ae46ca8 UI: Avoid showing YouTubeAppDock each time settings are updated 2023-08-05 18:32:18 -07:00
田七不甜
e8dbeede76 UI: Make title bar "SAFE MODE" translatable 2023-08-05 17:21:22 -07:00
Ryan Foster
2f8ea190b2 UI: Update CMake minimum to 3.22
Since Ubuntu 22.04 is now our minimum supported Ubuntu version, and it
has CMake 3.22, let's make CMake 3.22 the minimum CMake version.
2023-08-05 16:45:46 -07:00
tytan652
049f4454d4 UI: Fix YouTubeAppDock restore dock state 2023-08-05 16:44:16 -07:00
gxalpha
6a42d88ca7 UI: Don't call obs_source_get_output_flags on a NULL source 2023-08-05 16:30:44 -07:00
Lain
78cb2aa361 UI: Fix case where cef func may not be present
Due to a particular... plugin we all know and love, the new
QCefWidget::executeJavascript() function may not actually be present as
it should be. So, we have to verify that it's available, and only use it
in that case.
2023-08-05 04:35:31 -07:00
tytan652
c946090203 UI: Use new add dock path for YouTubeAppDock 2023-08-05 03:46:50 -07:00
Lain
e86b2950a2 UI: Fix build error (forgot macro) 2023-08-03 18:43:01 -07:00
Lain
0c6fa0a2ba UI: Fix YouTubeAppDock crash
Apparently the YouTube app dock thing didn't take into consideration the
fact that the user may have the browser source available, but may not
have browser docks available (via the `cef` global). This is because
certain system configurations do not support browser widgets, such as
Wayland on Linux.

(Lain note: There's multiple things I'm unhappy about here. I'm mostly
going to blame myself for multiple reasons.)
2023-08-03 18:25:25 -07:00
Lain
9d2715fe72 frontend-tools: Disable properties deferring in script dialog
Prevents scripts from being able to defer their settings in the
properties view (because there's nothing to really defer to).
2023-08-03 16:28:00 -07:00
Lain
2a2472e326 UI: Add func to disable properties view deferring 2023-08-03 16:27:55 -07:00
Lain
d2d3e46e14 Revert "UI: Only defer property updates for input and transition sources"
This reverts commit 58fb63030c.

This is not the ideal fix for the fact that scripts can use a deferred
update flag because it makes it so that filters in general cannot use
flags. We need to disable this via other means.
2023-08-03 16:09:31 -07:00