Commit graph

905 commits

Author SHA1 Message Date
derrod 608d3bfc26 UI: Set default container for beta builds to hybrid MP4 2024-06-17 12:12:20 -04:00
cg2121 dcd2f19c83 UI: Remove redundant addAction call
This removes a redundant addAction call in the studio mode program
context menu.
2024-06-15 16:08:24 -07:00
derrod 0680b642e9 UI: Always show chapter marker hotkey 2024-06-08 17:03:09 -07:00
Richard Stanway f9f4171d56 UI: Add null checks before doing some API calls
Harmless, but generated a debug warning for null pointers passed into
the API.
2024-06-08 15:25:04 -04:00
Ryan Foster da8fc0d516 UI: Disable Multitrack Video by default 2024-06-06 14:00:34 -04:00
tytan652 511385891c UI: Separate controls dock from the main window 2024-06-05 17:39:54 -04:00
tytan652 eed5578e4c UI: Remove setStreamText lambda
Avoid tangling controls dock stream button to OBSBasic with a lambda.
2024-06-05 17:39:54 -04:00
tytan652 178205257e UI: Set system tray text explicitly
Avoid using controls dock buttons as a source for text for system tray
elements.
2024-06-05 17:39:54 -04:00
tytan652 d23b65a2bf UI: Track streaming state in OBSBasic
Avoid using controls dock buttons for streaming state. Use signals and
OBSBasic member variables instead.
2024-06-05 17:39:54 -04:00
tytan652 9093275336 UI: Track recording state in OBSBasic
Avoid using controls dock buttons for recording states. Use signals and
OBSBasic member variables instead.
2024-06-05 17:39:54 -04:00
tytan652 cb024a0696 UI: Use connection with modeSwitch button 2024-06-05 17:39:54 -04:00
derrod 29994afe7f UI: Retain existing last output resolution 2024-06-05 13:44:24 -07:00
Ruwen Hahn c8950900c3 UI: Add eRTMP Multitrack Video Output 2024-06-04 20:50:46 -04:00
derrod 8ac8118b7f UI: Add chapter frontend API and hotkey 2024-05-26 23:11:48 +02:00
gxalpha 175b0cbc83 UI: Update edit menu on source filter changes
Currently, when adding a filter to a source and then right-clicking it
or using the menu bar edit menu, it's not possible to copy the source's
filters. This is because the edit menu does not update on filter
changes.
Listening to the new global filters add/remove signal and updating the
edit menu will enable the copy option if a filter get added or disable
the option if the last filter gets removed.
2024-05-25 17:08:42 -07:00
gxalpha 4cf18a9abf UI: Add undo/redo to Paste Filters on audio mixer and scenes
Copy-Pasting filters on a scene or on a source via the audio mixer
context menu would not add an undo/redo action. This commit factors the
undo/redo logic out into a generic paste filters function that can be
used for pasting filters everywhere.
2024-05-25 17:06:21 -07:00
gxalpha 8184fa10a3 UI: Inline OBSBasic::ThemeChanged()
The majority of this method got removed in a prior commit [1]. Let's
inline the rest.

[1] 8dcfae9a39
2024-05-25 17:04:58 -07:00
Ryan Foster cffdc15aac UI: Fix Grid Mode not persisting from View Menu
When clicking Grid Mode or List Mode from the context menu within the
Scenes list, whether or not Grid Mode is enabled persists between OBS
sessions. When clicking Grid or List from the View Menu, the setting
does not persist between OBS sessions. This seems to be a regression
from fc8c428521.

Previously, SceneTree's SetGridMode would set this config value. If the
intent is to not have SetGridMode directly set the config value, then
any function that calls SetGridMode other than the OBSBasic constructor
must instead set the config value.
2024-05-25 16:12:39 -07:00
Warchamp7 8dcfae9a39 UI: Remove unnecessary ProxyStyle usage 2024-05-23 18:55:43 -04:00
cg2121 b82a49e881 UI: Use OBSSourceLabel for VolControl
The OBSSourceLabel handles renaming of a source, so we don't have
to use the rename signals for volume controls.
2024-05-11 18:18:13 -07:00
cg2121 cd918a7f4c UI: Move projector rename signal
This moves the renaming of projectors from OBSBasic to OBSProjector.
2024-05-11 17:51:47 -07:00
gxalpha 79f680cab6 UI: Use weak_source_expired instead of getting the source 2024-05-10 17:42:28 -04:00
gxalpha fad6f43608 UI: Set default recording format to Fragmented MOV on macOS
In 22205d582c, the change to default to
Fragmented MP4/MOV on all platforms was reverted due to compatibility
issues with the default video player on Windows.
On macOS however, the default player (QuickTime Player) works fine with
fragmented formats, and instead is unable to play MKV files (which have
always been the default format for OBS). This change makes videos with
the default settings playable on macOS with the default player.
2024-05-04 17:20:05 -07:00
Aleks Todorov ec31c7e5bf UI: Set recording paused before anything else
When this call was first introduced in eab10d48b2, it was at top of this
block, albeit after the calls to `pause`. Over time it has slowly
shifted lower and lower in the block.

In reality, it should be the first thing in the block to ensure that
further calls have accurate information about the pause state to update
themselves.
2024-05-04 13:39:34 -07:00
derrod 31aa700d22 UI: Always retain collection data of unloaded modules 2024-04-13 16:06:28 -07:00
powersagitar b5b9d1c373 Extend min panel width to eliminate text clipping
Change size policy of "Start Virtual Camera" button to ensure the
minimum width of `Controls` panel is the same as "Start Virtual
Camera" button plus the gear (settings) icon, therefore to
eliminate text clipping when overflow.
2024-04-09 20:57:37 -04:00
Penwywern b80d45f132 UI: Log available encoders on load 2024-04-08 16:35:16 -04:00
Ryan Foster 22205d582c Revert "UI: Change default format for release builds to fMP4/fMOV"
This reverts commit 9488bb20b6.

This is currently a frequent support issue as Windows Media Player,
Movies & TV, and File Explorer all cannot seem to handle fMP4 files
correctly. Windows Media Player and Movies & TV will play the files
fine, but no duration is listed and the applications cannot seek the
file. File Explorer will simply not list the file's length/duration (the
field is shown as having no set value). This was somehow not caught
during a year's worth of beta and RC builds. The world just wasn't ready
for this. =(

We have reported these issues to Microsoft, and we will revisit this in
the future.
2024-04-05 14:46:53 -04:00
tytan652 78cd07bd58 UI,plugin: Refactor virtual camera enablement 2024-03-30 16:43:30 -07:00
Ryan Foster 11131682b1 UI: Check low disk space only if recording to a file
The Custom FFmpeg Output allows the user to configure it to output to a
URL instead of a file. In OBSBasic::StartRecording(), we unconditionally
call LowDiskSpace() to check for low disk space because we assume that a
"recording" will always be to disk. When os_get_free_disk_space() is
called on a non-existent path, it returns 0, which causes OBS to emit a
low disk space warning. Instead, only call DiskSpaceMessage() if not
"recording" to a URL.
2024-03-30 16:24:04 -07:00
Rob Howell f5e77a4587 UI: Fix scene rename on tab and back tab 2024-03-30 16:09:41 -07:00
derrod 9488bb20b6 UI: Change default format for release builds to fMP4/fMOV 2024-03-11 18:40:14 -04:00
Exeldro f275080abb libobs: Fix crop to bounds ABI break 2024-02-20 21:18:51 -06:00
test 66d210cf1b UI: Fix problem with Yes/No message box buttons not translated 2024-02-20 18:08:16 -05:00
CrackThrough 7d25a80610 UI: Fix null pointer dereference
strcmp(obs_get_encoder_codec(option), "opus") causes the application to
segfault while loading service if find_encoder(id) returns NULL. Add a
null pointer check to prevent that from occurring.
2024-01-31 02:13:36 -06:00
derrod 0a8e00c478 UI: Add and migrate to GPU scaling options 2024-01-20 19:28:52 -06:00
pkv f186268507 UI: Enable audio multi-track w/ mpegts streaming
This enables audio multi-track support in UI for mpegts streams (srt,
rist ...).
The UI changes were coded though to allow re-use by other protocols.

Signed-off-by: pkv <pkv@obsproject.com>
2024-01-06 18:42:54 -06:00
tytan652 519c19aa4a UI: Fix unused-variable
Some variables were not guarded for being unused when built with FFmpeg 6.1
2024-01-06 18:24:58 -06:00
derrod 46c00a95cd UI: Save last used output resolution to scene collection 2024-01-06 17:06:00 -06:00
cg2121 ef99553a7e UI: Disable edit transform if item is locked
The transform window was still accessible if the scene item
was locked.
2023-12-10 01:27:28 +01:00
cg2121 cd01120740 UI: Don't paste transform on locked item
This disables pasting transforms on an item that is locked.
2023-12-09 18:09:33 -06:00
Penwywern 3cc7dc0e7c UI: Fall back in case of invalid scene name on load 2023-12-04 05:06:42 -06:00
Ryan Foster c0ee1e718d UI: Fix typo in Virtual Camera logging functions
cvam -> vcam
2023-11-07 19:09:25 -05:00
Penwywern a49b35c3de UI: Log Virtual Camera output type 2023-11-07 00:39:01 -06:00
gxalpha baa78b36ef UI: Enable "Paste Filters" after copying from scenes or mixer
Fixes an issue where if no filters had previously been copied and the
user copies a filter from either the scene tree or the audio mixer, the
"Paste Filters" action would not be available until the Edit menu
reloads (e.g., by selecting another source in the source tree).
2023-10-08 10:59:00 -06:00
derrod e4587ae9bd UI: Cleanup remaining uses of old version macros 2023-10-06 17:21:51 -06:00
Ryan Foster 02478d4939 UI: Use std::shared_ptr instead of QSharedPointer
Also use std::weak_ptr instead of QWeakPointer as needed.

Qt has been porting QSharedPointer and QWeakPointer to std::shared_ptr
and std::weak_ptr respectively. QSharedPointer is apparently 2x slower
than std::shared_ptr.

References:
 * https://bugreports.qt.io/browse/QTBUG-109570
 * https://codereview.qt-project.org/c/qt/qtbase/+/359678
 * https://codereview.qt-project.org/c/qt/qtgrpc/+/447780
 * https://codereview.qt-project.org/c/qt/qtbase/+/450134
 * https://codereview.qt-project.org/c/qt/qttools/+/450776
 * https://codereview.qt-project.org/c/qt/qttools/+/450777
 * https://codereview.qt-project.org/q/QSharedPointer
2023-10-04 18:36:20 -04:00
Ryan Foster 3d05d681b7 UI: Use C++11 ranged-for instead of Q_FOREACH
Qt has been porting uses of Q_FOREACH/foreach to C++11's ranged-for.
Let's do the same.

References:
 * https://doc.qt.io/qt-6/foreach-keyword.html
 * https://codereview.qt-project.org/q/Q_FOREACH
2023-10-04 17:58:02 -04:00
Richard Stanway c71bbcf4d9 UI: Avoid using newlines in error messages
Some errors include HTML links directing users to e.g. driver updates
or further information. Using a raw newline instead of <br> causes Qt to
skip parsing the HTML, resulting in an ugly mess of HTML displayed to
the user instead of the intended links.
2023-09-12 17:54:42 -07:00
gxalpha 3ff7cd5625 UI: Untangle ifdef'd if-statement to un-confuse Xcode
Like many IDEs, Xcode has this feature where it shows the declaration of
the method currently being worked in. However it gets confused by scopes
starting inside of preprocessor guards and ending outside them,
resulting in the declaration of OBSBasic::ReceivedIntroJson always being
shown in window-basic-main.cpp from that method downwards. We can work
around that by starting and ending the if-scope outside of the ifdefs.
2023-09-06 21:48:52 -07:00