0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 21:13:04 +02:00
Commit Graph

2581 Commits

Author SHA1 Message Date
derrod
5620a469a9 UI: Remove compatibility for QT < 5.10 2022-07-31 21:47:01 -07:00
jpark37
ff88e0b8ac UI: Restore color format/space warning
Callbacks had the wrong signature.
2022-07-31 21:45:51 -07:00
Translation Updater
81734be37c Update translations from Crowdin 2022-07-31 23:40:53 +00:00
Chip Bradford
df446c3f6e UI: Add Virtual Camera source selector dialog 2022-07-31 15:39:18 -07:00
PatTheMav
f1cf3ff141 UI: Fix Qt call on UI thread from graphics thread
Calling `devicePixelRatioF` from any thread but the main UI thread
triggers thread-safety warnings at runtime on macOS, because Qt uses
NSView calls to determine the value.

NSView calls are only allowed to be made from the main thread on macOS,
so instead the value is stored as a property of the OBSQTDisplay at
initialization, to be retrieved from the preview object later.

Static functions that do not have access to the preview object have the
pixel ratio passed in their call signature.
2022-07-31 19:36:34 +02:00
gxalpha
37526e9ac9 UI: Add macOS permissions window
Co-Authored-By: Matt Gajownik <git@wizardcm.com>
2022-07-31 18:14:41 +02:00
gxalpha
b7a20cd5e4 UI: Add function to open privacy preferences on macOS 2022-07-31 18:14:41 +02:00
Matt Gajownik
43ef6699e3 UI: Fix toolbutton colour in Yami 2022-07-31 20:45:52 +10:00
gxalpha
e75b509bba UI: Include OpenSans font with OBS
Also reinstates the font-family statement removed in 2941c48
2022-07-31 20:23:19 +10:00
cg2121
e072976ccf UI: Add audio mixer toolbar
This adds a toolbar to the audio mixer dock, so it is
easier to access advanced audio dialog and unhide/vertical
actions.
2022-07-31 20:22:02 +10:00
PatTheMav
11325e6a35 UI: Remove permission code paths for Mac OS X before 10.15 2022-07-31 12:21:35 +02:00
Warchamp7
8a3abf1de7 UI: Add toolButton styling property for buttons
Allows making QPushButtons use the QToolButton styling.
Current usage is for transitions dock buttons.

May be unneeded after #6756 but doesn't hurt to have
2022-07-31 20:20:15 +10:00
Matt Gajownik
68499222ad UI: Fix panning when preview scaling is enabled 2022-07-31 14:19:27 +10:00
Clayton Groeneveld
2d6a9c9cc1 UI: Show spacing helpers in preview
This shows distance between sides of preview and edges of sources.
This will allow users to more easily align sources.

Co-authored-by: Palakis <contact@slepin.fr>
2022-07-30 19:41:18 -07:00
jpark37
eb7bb07a79 UI: JXR screenshots on Windows
Use JXR for HDR video on Windows. Other operating systems will tonemap
HDR to SDR, and save to PNG. Continue to take PNG screenshots for SDR.
We will probably support EXR for Mac/Linux someday.
2022-07-30 16:33:57 -07:00
tytan652
91c46af767 UI: Fix close display before native surfaces
A QPlatformSurfaceEvent constant is used in a switch that only accept
QEvent type.

timerEvent() is missing the override keyword.

f8d415afbe
2022-07-30 16:21:36 -07:00
cg2121
5bdd4fe658 UI: Fix studio mode label not updating
When studio mode is enabled and OBS is first started, the program
scene label would be empty.
2022-07-31 09:18:14 +10:00
gxalpha
ea9350bcbf UI: Add hotkey to split file
Adds a frontend hotkey that splits the current recording file. Ideally,
this would only appear if file splitting is enabled like the replay
buffer hotkey, however that is an output hotkey which is hidden because
the output doesn't exist. This doesn't work here since the recording
output is obviously always available, but is unaware of whether file
splitting is enabled until the output is started.
2022-07-30 15:21:08 +02:00
gxalpha
0c8befd4b3 UI: Add file splitting option "Only split manually" 2022-07-30 15:21:08 +02:00
gxalpha
8fd2f164b7 obs-ffmpeg: Enable file splitting with obs_data directly
Also modifies UI accordingly.

This can enable file splitting even if no time or storage limit is set.
2022-07-30 15:21:08 +02:00
gxalpha
467f73d4c9 obs-frontend-api: Add function for manual file splitting 2022-07-30 18:50:13 +10:00
Matt Gajownik
cb8bc3413a UI: Add support for theme meta, parent theme palette
Theme Meta allows individual themes to provide additional information to
OBS.

The primarily goal is for a theme to define a "parent", allowing to
extend existing themes with additional attributes.
2022-07-30 18:48:19 +10:00
gxalpha
64abfca620 UI/themes: Add image to QGroupBox checkbox on Yami 2022-07-30 17:13:52 +10:00
jp9000
8ef134be79 UI: Set default theme to Yami
Note that this adds a new CurrentTheme3 config variable to preserve
settings of versions older than 28, making this change safely
backward-compatible.
2022-07-28 20:38:51 -07:00
jp9000
2b3c90d2cc UI: Show warning on plugin load failure
Allows the user to know what plugins failed to load. This is
particularly useful if we're going to block Qt5 plugins as well, or if
certain plugins can't load because they're incompatible with a newer
version.
2022-07-28 16:36:01 -07:00
Ryan Foster
4e4afcd6d1 UI: Deduplicate UI element names
Prevent some warnings from AutoUIC.
2022-07-28 15:38:22 -04:00
Tommy Vercetti
fb30837a7c UI: Remove unused header for macOS 2022-07-28 14:04:01 -04:00
Norihiro Kamae
766d1bb5b1 UI: Search combo item with QVariant type
A combobox with `OBS_COMBO_FORMAT_FLOAT` type couldn't be initialized to
select current item from the settings data. This commit will create
QVariant value with the similar code as that of adding the items and
search the current item using that value.
2022-07-28 12:21:33 -04:00
Warchamp7
f9e7d237ad UI: Clean up Settings Output form
- Adds frames around certain elements for a better element hierarchy
- Moves the scroll areas into the tabs themselves
- Hides stacked widgets that aren't visible to prevent scrolling of invisible content
2022-07-28 12:19:20 -04:00
VodBox
76ae9cbc3d UI: Respect DPI for preview interactions
This change makes it so that selection outlines, handles and all
interaction events properly respect DPI scaling for the preview.
2022-07-27 22:43:32 -04:00
VodBox
580ebcc935 UI: Add scene item rotation handle
Add a rotation handle to the scene item selection box that will rotate
the source when clicked and dragged.
2022-07-27 22:40:01 -04:00
VodBox
e5175e851b UI: Make status bar inactive icons color-blind safe 2022-07-27 21:37:30 -04:00
VodBox
77694d76e8 UI: Add Accessibility menu to settings
This change introduces an accessibility menu to settings, along with
options for overriding the colors used by OBS in the mixer and in the
preview to be more color blind friendly than the options provided by the
current theme.
2022-07-27 21:37:30 -04:00
VodBox
9299a3dbce UI: Change crop border line style 2022-07-27 21:37:30 -04:00
gxalpha
f8b31f6f90 UI: Fix macOS permissions availability check
Documentation appears to wrongly claim that this is available in 10.15,
while in reality it's only 11+. This would lead to a crash on 10.15
since the symbol doesn't exist there.
2022-07-27 19:55:09 +02:00
Ryan Foster
81bd1d42f0 CI: Use VS2022 and clang-format 13
Switch to Visual Studio 2022 and clang-format 13.

The Ubuntu 22.04 image currently has clang-format 12.0.1, 13.0.1, and
14.0.0. VS2022 17.2 ships clang-format 13.0.1, so let's use that for now
until VS2022 17.3 is available with clang-format 14.

This commit also makes the necessary changes to allow the clang-format
check to pass.

This commit also updates the obs-browser submodules with the necessary
changes.
2022-07-27 11:09:59 -04:00
gxalpha
2e7c84a62b UI/forms: Improve macOS dock overlay icons 2022-07-27 14:55:56 +02:00
Norihiro Kamae
a88b34507a UI: Fix missing file list not including transitions
Call the callback to check missing files during LoadTransition method.
2022-07-27 12:42:32 +10:00
Clayton Groeneveld
aae15fc497 UI: Fix bugs with missing files refactor
With https://github.com/obsproject/obs-studio/pull/5148, it was
brought up that the loading of the missing files was not thread
safe, as the missing files were being loaded late in the loading
process. This PR tries to fix that problem, while still simplifying
the original missing files code.
2022-07-27 12:42:32 +10:00
jp9000
48819def6d UI: Omit stream codecs the service doesn't support
This change makes it so that if you select a service, it will check to
see what codecs that service supports, and only list encoders of those
codecs.

If the service doesn't support a codec and you currently have an
unsupported codec selected in output settings, then it'll prompt you
with a dialog telling the user it will switch to a supported codec, and
if they click yes, then it'll change the codec for the user. If they
click no, then it'll switch back to the previously selected service.
2022-07-26 09:23:35 -07:00
jp9000
ea5fb710a9 UI: Refactor simple encoders to a func 2022-07-26 09:23:35 -07:00
tytan652
a595128602 aja-output-ui: Add Qt::Gui to find_qt on Linux
The target is linked to Qt::GuiPrivate without finding the Qt::Gui
component.
2022-07-26 17:34:26 +02:00
tytan652
9c85ff8673 cmake,UI: Refactor find_qt macro
If QT_VERSION is not defined, it gets define with the AUTO value. And
its definition is moved to the helper file.

find_qt now:
- Check quietly for Qt5 and Qt6
- If QT_VERSION is set to AUTO. It checks firstly if Qt5 was found it
  will use it. If not it do the same for Qt6
- If QT_VERSION is set to 5 or 6, it checks if the choice was found and
  use it. And if not, it falls back to the other if found.
- If neither Qt5 or Qt6 are found, a fatal error is emitted.
- The macro saved the _QT_VERSION in the cache to replace QT_VERSION,
  so the process is not repeated each time that find_qt is used.
- When Qt::Gui is in the Linux component list, Qt::GuiPrivate is added.
  So using the versioned one is no longer required.
2022-07-26 17:34:26 +02:00
jp9000
64701a1cea UI: Only check major.minor for "what's new" 2022-07-26 07:49:09 -07:00
jp9000
a7ed93d88d UI: Use separate version string for what's new, save it
Uses a separate version entry for the "what's new" version check to
ensure that it properly resets whenever a "what's new" entry is ready to
be displayed.
2022-07-26 07:40:12 -07:00
jp9000
277e34fbb8 UI: Clean up OBSBasic::ReceivedIntroJson a bit
Just moves some defines above the function rather than have messy
defines all throughout the function.
2022-07-26 07:40:12 -07:00
jp9000
2df1ad5b39 UI: Ensure thread signal posts to UI thread
This is more of a safety precaution to ensure that the "what's new"
thread only executes its result function in the UI thread when emitted,
because the result function can read/write config files.
2022-07-26 07:40:11 -07:00
gxalpha
edc509c642 UI/themes: Correctly specify rgb instead of rgba 2022-07-27 00:36:13 +10:00
derrod
9c40e448b6 UI: Add File Integrity Check 2022-07-27 00:34:04 +10:00
Clayton Groeneveld
3dae4a35a1 UI: Relatively center multiple scene items
Before the scene items would be centered at the same spot
when centering them, now they are moved relatively to each
other.
2022-07-27 00:29:32 +10:00
Clayton Groeneveld
b3c5524a48 UI: Add scene names to preview/program labels
This makes it easier for users to determine what
is the current preview or program scene.
2022-07-26 23:28:05 +10:00
PatTheMav
e15fdf69c0 UI: Add functions to check for and request macOS permissions
Adds functions to check and/or request specific macOS permissions
(audio device access, video device access, accessibility access, and
screen capture access).

By default only audio capture, video capture, and accessibility are
requested on launch - the first two have straight-forward "Yes/No"
prompts, the latter requires people to enable OBS in the settings
application (but is required for hotkey functionality, independent
of scene setups).
2022-07-26 14:20:34 +02:00
Warchamp7
4a38131fb5 UI: Remove padding on QStackedWidget in Yami 2022-07-25 14:25:08 -07:00
jpark37
0d5ba81e32 UI: Add audioProcessOutputIcon to Yami 2022-07-25 16:35:24 -04:00
PatTheMav
c1740e3636 UI: Add initialization to ensure compat between pthread and NSThread
Ensures that Cocoa knows that we intend to use multiple threads, per
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html#//apple_ref/doc/uid/10000057i-CH15-SW21
2022-07-25 17:27:07 +02:00
gxalpha
eea2fd2f3f UI: Add status overlay for macOS dock icon
Adds an implementation for the dock icon status overlay on macOS (which
doesn't rely on QtMacExtras, which means it also works on Qt6).
2022-07-25 16:34:31 +02:00
gxalpha
f34393170e UI/forms: Add macOS specific dock overlay icons
Co-Authored-By: Misutaa Asriel <8140068+MisutaaAsriel@users.noreply.github.com>
2022-07-25 16:34:31 +02:00
jp9000
d68539e267 UI: Fix wrong AMD recording preset (simple output)
"hq" is not a valid preset. "quality" is the correct preset to use.
2022-07-24 11:18:18 -07:00
jpark37
1610ac04ff UI: Add application audio capture to toolbar 2022-07-23 17:41:34 -07:00
jpark37
9b46795d57 libobs, UI: Add OBS_ICON_TYPE_PROCESS_AUDIO_OUTPUT 2022-07-23 17:41:34 -07:00
tytan652
6c7f8853a8 UI: Use combobox data field for Theme value in settings
Use QComboBox item data rather than always checking for the default
theme custom string.
2022-07-24 10:23:18 +10:00
tytan652
6d06052c51 UI: Enforce Fusion Qt style on Linux
The Breeze Qt style plugin adds frame arround QDockWidget with QPainter
which can not be modifed. To avoid this the base style is enforce to the
Qt default style on Linux: Fusion.
2022-07-24 10:22:18 +10:00
PatTheMav
1766f01b7a UI: Fix crash on macOS if no python path is set in configuration
Obvious fix guarding against calling the std::string constructor with
a NULL pointer.
2022-07-24 10:11:54 +10:00
Norihiro Kamae
5ea10fec82 UI: Remove unused functions for audio mixers
Functions `save_audio_source` and `load_audio_source` are defined but
never called from any code. Also not defined in any header file.
2022-07-23 16:49:21 -07:00
tytan652
fc7af80f84 UI: Hide network features if a non-RTMP service is set
Reimplementation of bc80d0c and f2e6122, because they have to be
reverted by 0b9a8aa.
2022-07-23 16:29:10 -07:00
gxalpha
e3f416f3fc UI: Replace QMessageBox setButtonText with addButton 2022-07-22 09:37:17 -04:00
gxalpha
05c6a408e3 UI: Fix Qt 6 position deprecations 2022-07-22 09:37:17 -04:00
gxalpha
49e37db952 UI: Use pipe operator instead of plus for Qt keys 2022-07-22 09:37:17 -04:00
jp9000
2b957c9368 UI: Update simple output to use new AMD encoder 2022-07-21 15:29:25 -07:00
PatTheMav
ff4f4fcb92 frontend-tools: Upgrade legacy Python library paths to modern format
Updates the value at runtime and also stores it in the configuration.
2022-07-21 12:16:36 -04:00
Ryan Foster
d88ca3b243 UI: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-20 19:32:34 -04:00
gxalpha
80e2a980bf UI: Remove disable_high_dpi_scaling option on Qt 6
With Qt 6, high dpi scaling is always enabled and the
AA_DisableHighDpiScaling becomes no-op. As such, the command line
argument can get removed.
2022-07-20 14:14:38 -04:00
jp9000
0a218e06b7 UI: Add low latency audio buffering mode to UI
This feature is meant to reduce maximum audio buffering and turn off
dynamic buffering mode. This allows the lowest possible consistent
latency for audio buffering, which is useful for the decklink and NDI
outputs which cannot rely on audio timestamps for synchronization.

This can have a negative effect of making audio segments (partial or in
full) cut out. So audio glitching or audio loss can occur if this is
enabled.
2022-07-20 05:31:20 -07:00
tytan652
8befd830a9 aja-output-ui: Avoid using OBS_UNUSED
OBS_UNUSED is not portable to MSVC.
2022-07-20 09:03:31 +02:00
tytan652
91c353c774 UI: Fix undo stack uninitialized ui warning
Moving the declaration of `ui` above `undo_stack` fix the warning.

Co-authored-by: Richard Stanway <r1ch@r1ch.net>
2022-07-19 15:57:55 -04:00
Norihiro Kamae
317780ca1b aja: Remove unnecessary .keepme files
Since the directory contains some files, .keepme, which is intended to
keep an empty directory on a git repository, is unnecessary.
2022-07-19 14:40:32 -04:00
Norihiro Kamae
288f29fa2a decklink-output-ui: Fix memory leak
Add missing bfree by changing `char *` to `BPtr<char>`.
2022-07-19 14:35:01 -04:00
Clayton Groeneveld
41e2491fb4 UI: Add media control icons to Yami
The Yami theme never added the media control icons to
the qss file.
2022-07-19 11:02:20 -04:00
Norihiro Kamae
4ca0273a57 UI: Remove unnecessary UNUSED_PARAMETER 2022-07-19 11:01:00 -04:00
jp9000
0b9a8aa1fd Revert service json lookup refactor in UI
Certain services have custom server lits handling which I had forgotten
about, so although it would have been nice to have this refactor, we'll
have to live with relying on the plugin properties object directly for a
while.

This also reverts obsproject/obs-studio#6530 and
obsproject/obs-studio#6683 because that change depended on this
problematic refactor code.

This reverts commits:
f2e6122881,
bc80d0ca95,
050a29da1a,
22ffc04f73,
275e510aad,
2fa5ffe4df.
2022-07-18 14:52:26 -07:00
Clayton Groeneveld
6eb5a922a7 UI: Remove duplicate missing files code
The same code was in different places, so call single function to
clean up code.
2022-07-18 19:12:31 +02:00
jpark37
54a57b63ad UI: Disable LNK4099 warning
We are very unlikely to ship PDBs for deps.
2022-07-18 03:52:04 -07:00
jpark37
6f3f42eb1f aja-output-ui: Suppress C4996
NTV2TestPatternGen::DrawTestPattern overloads are deprecated.
2022-07-18 03:52:04 -07:00
mvji
c041deb433 UI: Check output path when starting replay buffer
Make a better error message for user,
in case recording path is invalid

Issue 6731
2022-07-16 16:50:32 -07:00
Clayton Groeneveld
b224a2cd47 UI: Add frame around transitions dock
The transitions dock doesn't have a proper container, like
the other docks.
2022-07-16 16:39:17 -07:00
Clayton Groeneveld
2012963d02 UI: Add menu icons to resource folder
The menu icons were never added to the resource
folder, so they didn't work in the System theme.
2022-07-16 16:30:29 -07:00
gxalpha
05c245532f UI: Correctly spell "ChromeOS" again
Google made up their minds after we merged ccc5767
2022-07-16 16:12:24 -04:00
Clayton Groeneveld
9b09ad9a7a UI: Fix menu icons not showing up
The menu icon was set only in the Yami theme.
2022-07-14 19:48:53 -04:00
tytan652
b65411c343 UI: Fix color format warning
bbeafeabdd change how the combobox is filled.

`UpdateColorFormatSpaceWarning` did not get the required change to use
the combobox data rather than the text.
2022-07-14 11:47:56 -04:00
Warchamp7
9febf96a61 UI: Fix text shifting on lineEdits 2022-07-13 19:14:03 +10:00
mvji
bbeafeabdd UI: Add more information to describe output format
In advanced settings
Also enable translation for color format
2022-07-12 23:37:01 +10:00
jpark37
df96e68ca6 cmake: Disable LNK4099 warning
We are very unlikely to ship PDBs for deps.
2022-07-11 22:07:10 -07:00
cg2121
a32793dd04 UI: Use more descriptive tooltips
This makes the scene/source tooltips easier to
understand.

Add -> Add Scene, Add Source
Remove -> Remove Selected Scene, Remove Selected Source(s)
MoveUp -> Move Scene Up, Move Source(s) Up
MoveDown -> Move Scene Down, Move Sources(s) Down
Properties -> Open Source Properties
Filters -> Open Source Filters
2022-07-11 18:17:04 -04:00
gxalpha
29ae00e4af UI: Add Apple H.264 hardware encoder to simple mode
Adds the Apple Silicon hardware encoder as a simple mode option. For
recordings this only requires being on Apple Silicon (since we use the
Constant Quality setting), while for streaming it requires the user to
be on macOS 13 or newer (since we're using CBR).
2022-07-11 23:45:43 +02:00
Tommy Vercetti
cabc3c8aec UI: Implement Taskbar Overlay for Qt6 2022-07-10 14:06:15 +10:00
Clayton Groeneveld
b307d38ef6 UI: Fix typo with SetSourceName function
The SetSoureName in the adv-audio-control.hpp had newName
misspelled as newNamw.
2022-07-10 14:00:35 +10:00
Clayton Groeneveld
1cf93a4b29 UI: Fix compiling error on nix platforms
On nix platforms, the compile would complain about
using non-const values for the function parameters.
2022-07-10 14:00:35 +10:00
Clayton Groeneveld
22dbf316df UI: Truncate push-to-* labels
The labels for the push-to-mute / push-to-talk hotkeys
were never truncated.
2022-07-10 14:00:35 +10:00
Clayton Groeneveld
e40a6be031 UI: Use new truncate function with hotkeys
This updates the hotkeys to use the new truncate label
function in qt-wrappers.cpp
2022-07-10 14:00:35 +10:00
Colin Edwards
50372164d0 UI: Move multiview render into a new class
Co-authored-by: tt2468 <tt2468@irltoolkit.com>
2022-07-10 13:45:43 +10:00