Commit Graph
848 Commits
Author SHA1 Message Date
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
Matt GajownikandLain b429d00440 UI: Show link to release notes in Help menu 2023-08-12 16:46:38 -07: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
田七不甜andLain e8dbeede76 UI: Make title bar "SAFE MODE" translatable 2023-08-05 17:21:22 -07:00
tytan652andLain 049f4454d4 UI: Fix YouTubeAppDock restore dock state 2023-08-05 16:44:16 -07:00
gxalphaandLain 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
tytan652andLain c946090203 UI: Use new add dock path for YouTubeAppDock 2023-08-05 03:46:50 -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
Yuriy ChumakandLain 81b588137a UI: Add "YouTube Control Panel" dock panel
New dock panel with integrated youtube studio live control room.
This commit also modifies CI files.
2023-08-02 17:49:05 -07:00
derrodandLain f0407dd1cd UI: Migrate from libff 2023-07-30 15:58:21 -07:00
cg2121andLain 5e198db647 UI: Add new scene at current row
Instead of having a new scene at the bottom of the list, have
it added after the current item.
2023-07-29 17:20:47 -07:00
ExeldroandLain 91f00eac87 UI: Split toggle preview program hotkey into hotkey pair 2023-07-29 16:48:25 -07:00
LainandGitHub 346b93c9c4 Merge pull request #8689 from gxalpha/no-more-signal-slot-macro
UI: SIGNAL and SLOT macros begone!
2023-07-29 16:32:56 -07:00
LainandGitHub 106e28d60f Merge pull request #9302 from derrod/ui-update-nlohmann
UI: Migrate WhatsNew, update branches, and Windows update check to nlohmann JSON
2023-07-29 16:06:28 -07:00
James HurleyandLain 488a96bc4b UI: Add IPv4 / IPv6 selection setting
This commit adds a field in Settings -> Advanced called
'IP Address Family' that allows users to select IPv4 and
IPv6, IPv4 Only, or IPv6 Only.
2023-07-24 17:10:30 -07:00
derrod 8955338624 UI: Migrate WhatsNew to nlohmann JSON 2023-07-23 09:24:33 +02:00
derrod 396cfdb416 UI: Add Safe Mode 2023-07-21 23:22:07 +02:00
gxalpha ef26f14f18 UI: Replace SIGNAL and SLOT macros for AddProjectorMenuMonitors method
A small refactor of AddProjectorMenuMonitors, as template functions need
to be fully defined in header files.
Also makes the function static as there is no point of it being a
non-static member function. In theory it could also be moved out of
OBSBasic but there isn't really a better place for it so let's leave it
where it is for simplicity.
2023-07-21 13:19:52 +02:00
gxalpha d97d3a1871 UI: Replace SIGNAL and SLOT macros in window-basic-main 2023-07-21 13:19:50 +02:00
cg2121andLain c33fa8bfa2 UI: Fix transform shortcuts for audio only sources
The edit, copy, paste and reset transform shortcuts would still work
for audio only sources, even though the menu was hidden for these.
2023-07-17 10:22:04 -07:00
Richard StanwayandLain d997a56fb6 UI: Destroy the frontend API after OBS_FRONTEND_EVENT_EXIT
The frontend API was never explicitly cleaned up which has lead to
several crashes from plugins continuing to call it even after OBS itself
has been destroyed. We now destroy the API after the exit event, so
further calls by plugins will be no-ops instead of potentially accessing
destroyed OBS state.

This also required some changes to our own use of the API, as we relied
on the OBSBasic destructor to clean up some callbacks, by which point
the API should have already been destroyed.
2023-07-15 16:54:51 -07:00
derrodandLain 593664dcdb clang-format: Set AllowShortLambdasOnASingleLine to Inline 2023-07-15 16:14:55 -07:00
derrodandLain dcc07cfe4e clang-format: Set AllowAllConstructorInitializersOnNextLine to false 2023-07-15 16:14:55 -07:00
Benjamin SchubertandLain 2fbc0dabda UI: Don't call activateWindow() when hidden 2023-07-15 16:11:27 -07:00
gxalphaandRyan Foster a4834efde9 UI: Remove Qt 5 ifdef guards and code 2023-07-12 13:22:13 -04:00
Norihiro KamaeandRyan Foster 39d4b53f6b UI: Fix preprocessor directives for platform integrations
The macros `YOUTUBE_ENABLED`, `RESTREAM_ENABLED`, and `TWITCH_ENABLED`
are not defined when the associated features are not enabled.
When the code was originally implemented, there were definitions to set
`0` if the feature is disabled. However a later commit 349372b removes
the definition. Now, the use of `#ifdef` is better than just `#if`.
2023-07-12 11:09:36 -04:00
derrodandLain 67f7712d83 UI: Migrate undo/redo to using UUIDs 2023-06-28 11:04:56 -07:00
cg2121andLain e863bea7fb UI: Add QDataStream opreators for OBSSource
Allows serializing/deserializing sources in and out of QDataStreams via
their UUID
2023-06-21 15:33:48 -07:00
Norihiro KamaeandLain a1c88d58fc UI: Fix checked state of source toolbar menu item
After the source toolbar was hidden or shown by a hotkey, the checked
state of the menu item was not updated.
2023-06-17 16:36:59 -07:00
PatTheMavandRyan Foster 343055c889 UI: Wrap unreachable code in comment to fix clang warnings
The branch is never taken and the code acts as documentation for a
(possible) future use case. According to YAGNI it could be removed
entirely, wrapping it in a comment is the less destructive approach.
2023-06-16 14:12:58 -04:00
cg2121andLain 45e895206d UI: Render preview lines above safe areas
Moves the preview lines around sources to be rendered above the
preview safe area lines.
2023-06-10 17:35:57 -07:00
derrodandLain ef3a67708e UI: Support PCM in MP4 2023-06-10 17:10:30 -07:00
cg2121andLain 5cc319d97f UI: Change name of ResetProxyStyleSliders function
Changes the name to ThemeChanged, as the function now does more than
reset the volume sliders.
2023-06-10 16:06:16 -07:00
dd392188b8 UI: Enable WHIP service in UI
This provides the UI glue to enable the WHIP service introduced in the
obs-webrtc plugin.

Co-authored-by: John Bradley <jocbrad@twitch.tv>
Signed-off-by: pkv <pkv@obsproject.com>
2023-06-09 20:20:49 -05:00
tytan652andLain 90d96e92c2 obs-frontend-api,UI,docs: Add API to add custom docks with no toggle
Some plugin does that by deleting the QAction returned by
obs_frontend_add_dock().

Now that obs_frontend_add_dock() is deprecated,
obs_frontend_add_custom_qdock() replace this usage.
2023-06-03 16:47:01 -07:00
tytan652andLain f2fa54120a UI: Avoid having two dock with the same object name
https://doc.qt.io/qt-6/qmainwindow.html#saveState

You should make sure that this property is unique for each QToolBar and
QDockWidget you add to the QMainWindow.
2023-06-03 16:47:01 -07:00
Igor BochkariovandMatt Gajownik df3b294fc3 UI: allow side docks to be tall
before: widgets docked on the sides of the preview are of the height of
the preview

after: the user can toggle the setting in the docks menu so the side
widgets are of the height of the whole window

UI: change menu label to Full-height docks
2023-06-04 09:39:47 +10:00
cg2121andLain 382edcebb7 UI: Also toggle mixer toolbar in view menu
This change makes the mixer toolbar also show/hide when toggling
the source toolbars in the view menu.
2023-06-03 16:03:37 -07:00
tytan652andLain 7cd7ca80f8 UI: Use main video on the virtual camera if program
This change allows the virtual camera to really output what is in the
program view, some plugin interract with this view but their changes
does not appear on the virtual camera.
2023-05-30 16:16:07 -07:00
cg2121andLain 016ce128b7 UI: Fix menu actions missing shortcuts
The scene and source rename/remove actions were missing shortcuts
in the context menu.
2023-05-27 16:26:02 -07:00
Norihiro KamaeandRyan Foster b21edafe98 UI: Fix crash on patronJsonThread
If a user exit obs while patronJsonThread is running, the thread crashed
with the error below.
  QThread: Destroyed while thread is still running
2023-05-26 12:54:33 -04:00
cg2121andLain fc8c428521 UI: Move saving of scene tree grid mode
Widget shouldn't save their own states, as then they can't be used
elsewhere.
2023-05-21 01:48:13 -07:00
cg2121andLain 3a53882675 UI: Add scene grid mode to view menu
Makes toggling of the scene list grid mode also available in the
view menu.
2023-05-20 17:06:18 -07:00
Lain 106c7aa61f Update copyrights/names 2023-05-20 01:31:18 -07:00
derrodandJim 2918d77e58 UI: Process Qt events once after destroy queue finishes 2023-05-13 16:53:17 -07:00
derrodandJim 1c3ae0707c UI: Only update vcam output if necessary 2023-05-13 16:51:11 -07:00
derrodandJim 14a6673e2f UI: Reset VCam when clearing scene data 2023-05-13 16:51:11 -07:00
derrodandJim 4419786840 UI: Exit and show error if clearing scene data fails 2023-05-07 11:03:53 -07:00