Commit Graph
3131 Commits
Author SHA1 Message Date
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 61781d154d UI: Replace SIGNAL and SLOT macros in aja-/decklink-output-ui 2023-07-21 13:19:52 +02:00
gxalpha 34f871e605 UI: Replace SIGNAL and SLOT macros in frontend-tools 2023-07-21 13:19:52 +02:00
gxalpha 0513e848d9 UI: Replace SIGNAL and SLOT macros in settings 2023-07-21 13:19:52 +02:00
gxalpha a0ef6e1baa UI: Replace SIGNAL and SLOT macros in importer 2023-07-21 13:19:52 +02:00
gxalpha f7a7c652ab UI: Replace SIGNAL and SLOT macros in filters 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
gxalpha e22ba27f2a UI: Replace SIGNAL and SLOT macros in auto-config 2023-07-21 13:16:04 +02:00
gxalpha d5447fb2e5 UI: Replace SIGNAL and SLOT macros in transitions 2023-07-21 13:16:04 +02:00
gxalpha 24c97ed31b UI: Replace SIGNAL and SLOT macros in about dialog 2023-07-21 13:16:04 +02:00
gxalpha e8147a9abb UI: Replace SIGNAL and SLOT macros in properties-view 2023-07-21 13:16:04 +02:00
gxalpha e467f17501 UI: Replace SIGNAL and SLOT macros in obs-app 2023-07-21 13:16:04 +02:00
gxalpha 7f5fe30e36 UI: Replace SIGNAL and SLOT macros in remux
Also removes a GCC 4.8-workaround that should have been solved using
.data() on the QPointer instead of using a temporary variable.
2023-07-21 13:16:04 +02:00
gxalpha c4d2d98720 UI: Replace SIGNAL and SLOT macros in projectors 2023-07-21 13:16:04 +02:00
gxalpha cddb9dae45 UI: Replace SIGNAL and SLOT macros in missing files 2023-07-21 13:16:04 +02:00
gxalpha 43c692d386 UI: Replace SIGNAL and SLOT macros in media controls 2023-07-21 13:16:04 +02:00
gxalpha ac170a2d83 UI: Replace SIGNAL and SLOT macros in custom widgets 2023-07-21 13:16:04 +02:00
gxalpha fc07e59754 UI: Replace SIGNAL and SLOT macros in auth 2023-07-21 13:16:04 +02:00
gxalpha c1be5827c0 UI: Replace SIGNAL and SLOT macros in adv-audio-control 2023-07-21 13:16:03 +02:00
1c84071830 UI: Redesign status bar
This redesigns the status bar to look more modern.

Co-authored-by: Warchamp7 <warchamp2003@hotmail.com>
Co-authored-by: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
2023-07-19 17:53:57 -07:00
gxalpha 9d611a064f cmake: Remove Qt version selection and Qt 5 support 2023-07-19 11:56:54 -04:00
gxalpha 79ab526f03 UI: Remove remaining Qt 6 ifdef 2023-07-19 11:56:54 -04:00
gxalpha 6a6cb3edcd UI: Avoid QT_TO_UTF8(QTStr()) double conversion 2023-07-18 15:07:25 -04:00
cg2121 04629afe68 UI: Adjust size policy for properties view
Now the properties won't be squished when making the properties
dialog smaller.
2023-07-17 17:46:46 -03:00
PatTheMav 902843634c CI: Add new build and packaging scripts for macOS 2023-07-17 19:49:18 +02:00
cg2121 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 Stanway 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
gxalpha 84f1e962a1 UI: Don't set fragmentation movflags in lossless mode 2023-07-15 16:36:35 -07:00
gxalpha f7d5d80b04 UI: Localize font picker window title 2023-07-15 16:20:04 -07:00
derrod 593664dcdb clang-format: Set AllowShortLambdasOnASingleLine to Inline 2023-07-15 16:14:55 -07:00
derrod dcc07cfe4e clang-format: Set AllowAllConstructorInitializersOnNextLine to false 2023-07-15 16:14:55 -07:00
Benjamin Schubert 2fbc0dabda UI: Don't call activateWindow() when hidden 2023-07-15 16:11:27 -07:00
Clayton Groeneveld e121ac1587 UI, libobs: Add RAII wrappers for faders/volume meters
They can now be automatically deleted.
2023-07-15 16:06:36 -07:00
Kurt Kartaltepe 425be04014 UI: Disable QSV for simple mode on Linux
Linux QSV drivers have varying capabilities depending on if the
free/non-free Intel drivers are installed. This means we cannot safely
expose QSV in simple mode as users may be unable stream without changing
to advanced mode.
2023-07-14 12:19:33 -04:00
gxalpha a4834efde9 UI: Remove Qt 5 ifdef guards and code 2023-07-12 13:22:13 -04:00
Norihiro Kamae 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
derrod ad5f04e53d UI: Soft-delete scene collections
Instead of actually removing the file, simply rename it to the .bak
version which OBS ignores in most cases. That allows users to recover
accidentally deleted collections more easily, while only taking up a
few kilobytes of disk space at most.
2023-07-08 16:39:03 -07:00
Yoshimasa Niwa 9ab5271d69 UI: Fix crash radio list without items
Check items count before accessing first item,
or it will crash due to out-of-bound access.
2023-07-08 16:08:21 -07:00
Norihiro Kamae 65e35bec7d UI: Fix scenes only multiview label position 2023-07-07 16:38:52 -07:00
derrod 46525f5175 updater: Fix updating without patch files 2023-07-07 12:50:02 -04:00
Lain cececf4e55 UI: Wait for full vcam deactivation to destroy its view
A bug which was technically introduced in df446c3f6e: the author
assigned video mixes to the virtual camera and did not realize you have
to wait for full capture stop with the "deactivate" signal rather than
the "stop" signal. This situation is understandable because these
signals are likely confusing and need more documentation.

The way an output works when it stops is it has three stages:
- "stopping", which is the moment the user themselves stop the output
- "stop", when the output's implementation has stopped and returns
  success or an error code
- "deactivate", when the output inself (not the implementation) has
  fully stopped capturing encoded or raw frame data after the
  implementation has stopped. This is done in a separate thread,
  end_data_capture_thread(), for performance and data race reasons, and
  is when it's "actually fully stopped for real this time"

(Lain note: I sincerely apologize for this confusing signal design)

The author of df446c3f6e was likely confused as to why they could not
destroy the video mix in the "stop" signal without triggering a race
condition in end_data_capture_thread(), and instead decided to make a
workaround to clear the video mix set to the output before destroying
the video mix. Unsetting the video mix I'm guessing *seemed* to fix the
problem for them at the time, and destroying the video mix separately
after that automatically stops capture, so it *technically* worked
because the deactivate thread cannot be called until the
implementation's stop signal has executed. However, it was still the
incorrect way to handle the problem, because it circumvents the output's
mechanism for deactivating the frame data capture by destroying the view
instead.

The reason this was the incorrect way to handle the problem became
exposed in 7cd7ca80f8, when tytan made it so it uses the main video mix
under certain circumstances. The main view is special and cannot be
destroyed, so the mechanism to stop frame data capture that the
virtualcam was using before failed, and raw frame data capture continued
perpetually until the end of the program erroneously.

This fix solves the bug by using the "deactivate" signal rather than the
"stop" signal, thus allowing the output to fully end its data capture
and *then* destroy the video mix.

Fixes obsproject/obs-studio#9153
2023-07-06 15:37:28 -07:00
derrod 7773ea0180 UI: Fix utf-8 paths in shared updater components 2023-07-02 05:09:17 +02:00
Penwywern 0a610dcc7a UI: Add logging of Program scene changes in studio mode 2023-06-30 14:14:31 -07:00
PatTheMav c586c1d06f cmake: Add support for unobfuscated OAuth secrets
Unobfuscated secrets require the hash values to be set to 0, by default
CMake will treat 0 as a falsy value. This commit adds support for
_either_ 0 _or_ a valid hexadecimal hash.
2023-06-30 12:22:42 -04:00
PatTheMav db895092ed cmake: Add changes for CMake build framework 3.0
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
2023-06-29 10:11:32 -04:00
derrod 67f7712d83 UI: Migrate undo/redo to using UUIDs 2023-06-28 11:04:56 -07:00
pkv 457c88b138 UI: Change surround sound warning to signal YouTube support
YouTube Live now supports 5.1 surround sound.
The surround sound warning in Settings has been updated to reflect that.

Signed-off-by: pkv <pkv@obsproject.com>
2023-06-24 17:11:01 -07:00
cg2121 80f43998e6 UI: Fix icon paths of transition buttons
In Qt Creator, the transition add/remove buttons had no icons,
as the paths were incorrect.
2023-06-25 09:25:36 +10:00
Clayton Groeneveld f2f4582141 UI: Add ability to reorder filters by drag & drop
This adds the ability for filters to be dragged and dropped
to be reordered, similar to scenes and sources.
2023-06-21 15:33:48 -07:00
cg2121 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