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

752 Commits

Author SHA1 Message Date
gxalpha
ea90b93c33 UI: Remove duplicated StreamingActive() function 2021-11-04 03:38:45 -07:00
Matt Gajownik
a2c3896e1a UI: Match Windows taskbar state to tray icon
This adds a status icon for active/paused outputs.

Stripped down version of #2442
2021-11-03 09:28:41 -07:00
jp9000
a4146a685b libobs: Allow last encoder error for last output error
(This commit also modifies UI)

This makes it more trivial for encoder plugins to communicate to users
why specifically an encoder error might have occurred mid-stream.
2021-10-25 12:24:16 -07:00
Clayton Groeneveld
d9b4fbba1a UI: Disable properties for groups in context menu
Makes it consistent with the source context menu.
2021-10-24 02:06:19 -07:00
Clayton Groeneveld
13c7998cb5 UI: Fix vertical/horizontal scene item alignment
If the transform position alignment was set to anything but
top left, or the item was flipped, the item would be moved to
the the wrong position when centering vertically or horizontally.
2021-10-24 02:01:56 -07:00
Jim
5a9d4d1b26
Merge pull request #5411 from derrod/yt-fixes
More YouTube fixes
2021-10-24 00:47:51 -07:00
Clayton Groeneveld
96a5e11cd9 UI: Cleanup advanced audio functions
This removes the AdvAudioPropsClicked and AdvAudioPropsDestroyed
functions. The click function was not being used anywhere and the
destroy function was redundant because the dialog is set
to be deleted on close.
2021-10-24 00:21:10 -07:00
jp9000
b173d1ce2c UI: Disable paste source menu items when removed
Disables the "Paste (Reference)" and "Paste (Copy)" for sources when the
sources that have been copied have been removed

Fixes obsproject/obs-studio#4074
Closes obsproject/obs-studio#4096
2021-10-15 22:11:03 -07:00
jp9000
52497d23bb UI: Don't copy via name, use weak refs
This change makes it so that when copying filters or sources, that it
stores a weak reference to the source(s) or filter(s) being copied
rather than relying on their names.
2021-10-15 22:10:33 -07:00
Mike
96449877ef UI: Update Edit menu item states before displaying
Originally, the states of the items in the Edit menu would only update
when a context menu popup was created for sources. This moves that code
out of the context menu creation, and into its own dedicated function.
That function is then used both before the Edit menu is shown, and
before the context menu is created.

Fixes obsproject/obs-studio#3827
2021-10-15 16:11:08 -07:00
derrod
9d8a011b78 UI: Fix broadcast button state for autostart without autostop 2021-10-13 12:41:49 +02:00
derrod
2170a6b8ac UI: Show warning if starting/stopping broadcast fails 2021-10-13 12:27:47 +02:00
jp9000
c46a719c9c UI: Fix formatting with both 12.0.0 and 12.0.1
This single line in the entire project causes a difference between
clang-format 12.0.0 and 12.0.1. So, just rearrange the code so it works
with both instead.
2021-10-13 02:44:31 -07:00
jp9000
de0610a03a UI: Fix formatting for clang-format 12.0.0 (I guess)
I guess visual studio uses 12.0.0 rather than 12.0.1 and apparently,
there's some ****ing difference between 12.0.1 and 12.0.0.

Whatever.
2021-10-13 02:22:31 -07:00
jp9000
095661905b UI: Fix formatting with clang-format 12 2021-10-13 02:12:18 -07:00
Ryan Foster
5f68991911 clang-format: Commit file changes for clang-format 12 2021-10-13 20:00:04 +11:00
PatTheMav
39aedc6c2f UI: Add new vector-based menubar icons for macOS 2021-10-12 08:33:54 +11:00
jpark37
64cb26d03d UI: Tuck variable inside macro guard 2021-10-10 19:12:45 -07:00
Bob van de Vijver
1b280e0ac4 UI: Add ShutDownActiveOutputsOnExit setting
Adds a new setting to the general OBS settings, which can be checked
in order to no longer show the "confirm close" dialog when there are
still streams/recordings running.
2021-10-07 09:07:06 -07:00
jp9000
da04907927 Revert "UI: Disable hotkeys when a user is expected to type text"
This reverts commit f832d14220.

Reverting this until we do more investigation. Currently, any text
that can be typed in a dialog requires the dialog to re-enable hotkeys
on destruction, which is frustrating. There has to be a better way.
2021-10-03 07:52:44 -07:00
Richard Stanway
422a206371 UI: Force minimum reconnect delay of 1 second
Setting this to zero breaks reconnecting (and OBS) entirely as various
parts of the reconnect system do not handle zero values properly, and
there are also possible race conditions with the reconnect thread. Set a
minimum of 1 second to avoid this.
2021-09-16 03:32:46 -07:00
Jim
5c9aa83e05
Merge pull request #5242 from derrod/yt-better-buttons
Adjustments to YouTube Broadcast Setup
2021-09-14 16:36:34 -07:00
tt2468
63a570ed00 UI: Remove unused RemoveSelectedSceneItem slot
Appears to be a remnant left by the undo/redo system changes, not used
at all by any parts of the UI. This slot does not have undo/redo
system functionality, so it is not useful in its current form.
2021-09-13 01:38:23 -07:00
derrod
ca3f244584 UI: Rework YouTube broadcast setup flow 2021-09-12 13:45:51 +02:00
Ryan Foster
bb5820b882 UI: Fix Qt6-incompatible operator usage
Commit 60d95cb5 introduced some code that used the + operator on two
Qt::Modifier items. Using a pipe operator instead fixes the compilation
error on Qt5 and Qt6.
2021-09-10 10:23:24 -07:00
derrod
d6f00ccfd7 UI: Only start YT check thread if auto-start is disabled 2021-09-05 04:04:46 +02:00
Ryan Foster
f832d14220 UI: Disable hotkeys when a user is expected to type text
Disable hotkeys when a user starts an interaction with the UI where they
are expected to type text and re-enable hotkeys when the interaction is
completed.
2021-09-04 15:22:21 -07:00
derrod
aba94c71e2 UI: Fix missing broadcast state reset on force-stop 2021-08-30 22:30:27 -07:00
derrod
5ea7aa3b7e UI: Start YouTube check thread after output starts
Fixes #5199
2021-08-30 22:30:27 -07:00
gxalpha
4382591be3 UI: Remove "Fullscreen Interface" menu on macOS
Removes the "View" -> "Fullscreen Interface" menu entry on macOS, since
macOS automatically adds an entry doing the same thing by itself.
2021-08-25 19:39:58 -07:00
Warchamp7
2f637ede0f UI: Fix source toolbar shifting when nothing is selected
#5125 added icons to the source toolbar but no icon is displayed when nothing is selected.

This adds a spacer on the right side of the label that gets toggled inversely to the source icon, to maintain the same width
2021-08-25 11:40:43 -07:00
Warchamp7
ba616fbac2 UI: Add styling for YouTube integration 2021-08-23 06:16:38 -07:00
Richard Stanway
64f3b29e02
Merge pull request #4678 from cg2121/logviewer-fixes
UI: Log viewer fixes
2021-08-21 21:59:05 +02:00
jp9000
a668e01788 UI: Fix minor leak
The authors of this function didn't realize that the data object
returned from obs_service_get_settings() is incremented, and must be
released.
2021-08-20 18:47:26 -07:00
Clayton Groeneveld
afd58a78e5 UI: Add option to draw safe areas in preview 2021-08-20 15:20:59 -07:00
Clayton Groeneveld
a3f3b9d03c UI: Show source icon in context bar
This shows the source icon next to the source label in the
context bar.
2021-08-17 18:26:11 -07:00
gxalpha
008c6e4805 UI: Add menu bar item to show missing files dialog
Adds an entry to the "Scene Collection" tab of the menu bar that makes
the missing files dialog come back in case it got dismissed of files got
removed while OBS was open
2021-08-17 13:59:04 -07:00
derrod
c2cd372b00 UI: Fix missing #if for autostart warning 2021-08-17 19:41:26 +02:00
derrod
fc3f349a31 UI: Add "Don't show again" checkbox to YT auto start warning
Also modifies the warning message to be more clear about what this
means.
2021-08-17 19:12:27 +02:00
gxalpha
c9302d13ce UI,obs-transitions: Enable missing files dialog for stinger transition
Adds transitions to the missing files check, allowing for stinger
transitions to be shown in the dialog
2021-08-16 08:29:54 -07:00
jp9000
228ca55661 UI: Fix frontend API cleanup/exit event order
Makes it so that the exit event is always called regardless of save
state, and that exit is always called after cleanup rather than before.
2021-08-15 06:44:23 -07:00
Exeldro
5b18faeb49 UI: Add functions to open properties and filters 2021-08-12 04:31:40 -07:00
Richard Stanway
64457e3d63 Revert "UI: Initialize Studio mode after loading scenes"
This reverts commit 8b50ad5e2a.
Regressions when loading a saved program / preview mode. Actual fix
probably needs to be done inside SetPreviewProgramMode.
2021-08-10 21:51:15 +02:00
Jim
5292d1ced2
Merge pull request #5047 from obsproject/obs-yt-integration
YouTube Integration
2021-08-08 00:22:52 -07:00
gxalpha
3e16296403 UI: Autoremux Replay Buffer
Replays from the replay buffer will be automatically remuxed to MP4 like
recordings are, if autoremux is enabled.
2021-08-07 23:15:12 -07:00
Yuriy Chumak
e6f1daab8c UI: Add YouTube integration 2021-08-07 01:07:04 -07:00
Exeldro
08d9069201 UI: Fix undo delete scene that is used as source 2021-07-31 15:25:00 -07:00
Georges Basile Stavracas Neto
4c07ba6886 Revert "UI: Disable drag/drop on Linux scenes/sources (for now)"
This reverts commit 457adcedd3.

Requires https://github.com/obsproject/obs-browser/pull/304
2021-07-28 10:28:49 +10:00
Richard Stanway
8b50ad5e2a UI: Initialize Studio mode after loading scenes
Switching to Studio mode tries to duplicate the current scene, which is
null until scenes are loaded, generating various errors.
2021-07-24 22:34:44 +02:00
Richard Stanway
4c8b209bf0 UI: Use larger buffer for scene collection filename
Though the maximum size of a scene name is 170 characters, after
worst-case UTF-8 expansion this could overflow the buffer, resulting
in the scene collection being "lost" as the .json extension was
truncated.

Fixes #2560
2021-07-24 22:34:43 +02:00
tt2468
502bc3bf0a UI: Add startup flag to disable missing files window
Adds a startup flag (--disable-missing-files-check) to disable the
missing files dialog from appearing on load. For some users, the
missing files dialog may interfere with automation of OBS, or the
user may also purposefully have missing files in their scene
collection which they do not want to be warned about.
2021-07-09 18:32:56 +12:00
Matt Gajownik
5485a91d4c UI: Log Show/Hide transitions on scene collection load 2021-07-04 08:25:33 -07:00
Rat
c1deaf9c3f UI: Fix audio mixer UI not updating from threads
When changing a source's audio mixers/tracks or sync offset with
obs_source_set_audio_mixers or obs_source_set_sync_offset
from a non UI thread while the advanced audio properties panel is open
the UI fields will not update until closed and reopened.

It just shows an error on stderr for the failed invokeMethod calls
that would do the update. For mixers and sync offset respectively:
QMetaMethod::invoke: Unable to handle unregistered datatype 'uint32_t'
QMetaMethod::invoke: Unable to handle unregistered datatype 'int64_t'

Added needed Qt registrations in window-basic-main as that's where
all the needed ones for the frontend UI seem to be put.
2021-07-04 04:34:06 -07:00
gxalpha
7526bf76ff UI: Check if recording is paused when trying to pause
Adds a safety check to the pause-functions, double-checking that they
won't be called whether it is already in the desired state
2021-07-01 00:23:58 -07:00
Ryan Foster
1fa45e63a3 UI: Remove fractional scaling ifdefs
Among the systems we officially support, the oldest Qt version is Qt 5.9
on Ubuntu 18.04. Fractional scaling is supported in Qt 5.6 and newer. We
should be able to safely remove these ifdefs.
2021-06-30 01:42:01 -07:00
Ryan Foster
b496f43d45 UI: Make projector display resolutions DPI-aware
Follow up to PR #3988 and commit
5cdd084c7f.
Without this change, displays listed as projector targets on systems
using a fractional scaling factor (e.g., 125%, 150%, 175%) will show an
incorrect width and height for their size. For a display with 125%
scaling, OBS would show 1536x864 instead of 1920x1080. With this change,
it will show 1920x1080.
2021-06-30 01:24:02 -07:00
jpark37
cd5873e9bc UI: Fix unused parameter warning 2021-06-11 07:20:50 -07:00
Exeldro
5998f4cc4d UI: Optimize backup scene for undo/redo 2021-06-08 23:29:17 -07:00
Matt Gajownik
4d647d8d15 UI: Translate Undo action "Delete Scene" and include scene name 2021-06-06 11:05:47 -07:00
Matt Gajownik
94404a4d28 UI: Don't execute or track empty SceneItem move actions
This would appear as "Undo Move '' in 'Scene Name'"
2021-06-05 20:07:57 -07:00
jp9000
2b69adf3bc Revert "UI: Cleanup on_scenes_currentItemChanged function"
This reverts commit c497342fd6.

Fixes a bug where the sources list would not update after 5b25dec714.
2021-06-04 20:44:20 -07:00
Ryan Foster
5517db5122 UI: Disable Copy Filters in scene list for scene with no filters
When you right-click on a source in the Sources list that does not have
any filters, the "Copy Filters" item is disabled. When you right-click
on a scene in the Scenes list that does not have any filters, the "Copy
Filters" item is enabled. This fixes the Scenes context menu to behave
like the Sources context menu.
2021-06-02 03:39:26 -07:00
Ryan Foster
efb2dc70b9 UI: Disable Copy Filters in Audio Mixer for source with no filters
When you right-click on a source in the Sources list that does not have
any filters, the "Copy Filters" item is disabled. When you right-click
on an audio source in the Audio Mixer that does not have any filters,
the "Copy Filters" item is enabled. This fixes the Audio Mixer context
menu to behave like the Sources context menu.

Fixes #4790.
2021-06-02 03:39:26 -07:00
jp9000
457adcedd3 UI: Disable drag/drop on Linux scenes/sources (for now)
Due to a Qt issue on Linux, disable drag/drop on the scenes/sources list
on Linux for the time being.
2021-05-31 12:18:45 -07:00
jp9000
8bcb2c3d42 UI: Add paste source undo/redo actions 2021-05-12 22:07:40 -07:00
Clayton Groeneveld
a5bb527ce5 UI: Delete log viewer when closing it
When the user would open the log viewer and close it, it would
just hide, instead of deleting it.
2021-05-09 20:35:28 -05:00
Clayton Groeneveld
7aedf78338 UI: Simplify log viewer on launch code
Removes redundant code when showing log viewer on start up.
2021-05-09 20:34:53 -05:00
Clayton Groeneveld
0452f05595 UI: Clear fade to black source
If the fade to black was active and the user switched scene collections,
or exited studio mode, the source wouldn't be cleared, causing the
transition not to work properly when used again.
2021-05-08 19:05:27 -07:00
Clayton Groeneveld
03b76c09e8 UI: Move clearing of copy/paste variables
It makes more sense for these to be in the ClearSceneData function.
2021-04-30 18:45:27 -07:00
Anton Bershanskiy
5f7e81d628 UI: Remove duplicate include 2021-04-30 14:12:39 -07:00
Anton Bershanskiy
f8ca45a276 UI: Fix Undo/Redo for pasting multiple filters
Fixes bug introduced in commit d7e4945eab
2021-04-30 09:09:23 -07:00
jp9000
d7e4945eab UI: Add Undo/Redo for pasting multiple filters
Closes obsproject/obs-studio#4616
2021-04-30 00:14:28 -07:00
jp9000
6372f51bda UI: Fix missing files dialog starting hidden (macOS)
An annoying hack to fix the dialog being hidden behind the main window
when the program starts up on macOS.
2021-04-29 01:33:40 -07:00
jp9000
cec8061d83 UI: Add Undo/Redo items for adv. audio properties
Rather than forcing the user to close the advanced audio properties
window in order to obtain an undo/redo action, use explicit undo/redo
actions for each widget change in the advanced audio properties dialog.
2021-04-27 21:08:08 -07:00
jp9000
78f1983f7d UI: Remove unnecessary Undo/Redo cleanup func
Since fixing the reference holding issue with scene/source deletion, the
undo/redo cleanup function (last param of add_action) is no longer
required.
2021-04-27 20:45:43 -07:00
Clayton Groeneveld
c497342fd6 UI: Cleanup on_scenes_currentItemChanged function
Removed unnecessary lines from the function. Also if the source happened to be
null, the SetCurrentScene function would be called anyway. Finally, the
UpdateContextBar and api lines were removed, as they are also being called with
SetCurrentScene.
2021-04-27 01:24:50 -07:00
jp9000
387a2c5f3e UI: Add undo/redo actions for move up/down/top/bottom
Fixes obsproject/obs-studio#4567
2021-04-26 10:52:28 -07:00
jp9000
f1c120df2e UI: Refactor scene action undo/redo
Allows this code to be used for other actions where the scene data needs
to be backed up
2021-04-23 12:39:32 -07:00
Clayton Groeneveld
44ee91188f UI: Fix crash when closing missing files window
A crash would occur when clicking the 'x' button in the missing files
dialog. This seemed to only happen in debug mode and using QT 5.15.0.

Closes obsproject/obs-studio#4363
Fixes obsproject/obs-studio#4359
2021-04-18 17:19:36 -07:00
Matt Gajownik
2aed4be7cf UI: Fix invalid check for Remove Multiple Sources dialog result
Fixes #4546
2021-04-18 17:13:01 +02:00
Clayton Groeneveld
bab21888f3 UI: Fix reordering scenes not working properly
If the user were reordering scenes, the preview scene would change
to a different one, than the one they were currently on.
2021-04-10 06:07:55 -07:00
Clayton Groeneveld
7dfd36f9e8 UI: Force current scene when using undo/redo
The undo/redo functions are setting the current scene. Everytime
it would do this, it would actually transition to the scene.
This forces the current scene, so it fixes a bug where the
transition would be grayed out when undoing/redoing.
2021-04-10 01:49:30 -07:00
Ford Smith
97e038f895 UI: Fix Undo/Redo holding source references
Holding references to sources is never a good idea. Instead, save and
restore the scene and its subsources on removal.

Co-authored-by: Jim <obs.jim@gmail.com>

Closes obsproject/obs-studio#4462
2021-04-09 06:05:03 -07:00
jp9000
e39fa5e902 UI: Clear undo stack in ClearSceneData() instead
Makes more sense to clear it here.
2021-04-09 04:19:31 -07:00
Matt Gajownik
baf980f7a6 Revert "UI: Remove unnecessary IS_WIN32 macro"
This reverts commit 113b6317e7.
2021-04-02 21:15:30 +11:00
Matt Gajownik
113b6317e7 UI: Remove unnecessary IS_WIN32 macro 2021-04-02 21:04:09 +11:00
Clayton Groeneveld
448c7f38d0 UI: Add save notifications to status bar
This shows notifications in the status bar with the following:
- When screenshot is saved
- When replay buffer is saved
- When recording is saved
- When recording is auto remuxed
2021-04-01 07:36:20 -07:00
Kurt Kartaltepe
fa8f95018d UI: Fix crash on exit with stuck encoder
If the encoder is hung and you try to exit these two values will still
be null when obs shutting down.
2021-03-31 01:21:51 -07:00
wangshaohui
f36b601aab UI: Fix character to prevent VS2019 compiler error
Apparently the specific character can cause VS2019 to have compiler
errors depending on the system's current character encoding, so just
remove it instead. (-Jim)
2021-03-30 23:02:23 -07:00
Vainock
3267f76c15 UI: Fix Horizontal Center Text
The horizontal center redo/undo works, but uses the vertical center string.
2021-03-30 05:25:13 -07:00
Ryan Foster
d445f9f9b6 UI: Remove ifdefs for Qt 5.9 and older
Among the systems we officially support, the oldest Qt version is Qt 5.9
on Ubuntu 18.04. We should be able to safely remove these ifdefs.
2021-03-30 03:52:04 -07:00
Jim
5d87f3c00b
Merge pull request #3426 from Programatic/undo_redo
UI: Implement Undo/Redo System
2021-03-30 03:16:24 -07:00
Ford Smith
a374c023a1 UI: Undo/Redo Scene Collections
Implements undo/redo for scene collections. This includes operations
including rename, delete, and addition.
2021-03-29 03:06:26 -04:00
Ford Smith
3c5e2ddc37 UI: Undo/Redo audio
Implements undo/redo for advanced audio properties.
2021-03-29 03:06:26 -04:00
Ford Smith
3a620c485e UI: Undo/Redo Transformations
Implements undo/redo for transformations of sources, both through
preview and the transformations properties.
2021-03-29 03:06:26 -04:00
Ford Smith
60d95cb5bd UI/libobs: Undo/Redo Sources and Scenes
Implements the Undo/Redo for scenes and sources, ranging from renaming,
deletion, addition. It also adds several elements to libobs that were
designed to facilitate undo/redo, and should not affect the rest of
libobs.
2021-03-29 03:06:26 -04:00
Exeldro
32e7ba1abe UI: Add visibility transitions
This also modifies libobs.

This adds the ability for scene items to have transitions
when their visibility is toggled.
2021-03-16 22:15:16 -07:00
Anton Bershanskiy
543f58d4a6 UI: Copy Filters menu is active only if applicable 2021-03-16 21:38:06 -07:00
Matt Gajownik
a86b4a9421 UI: Save video settings after 'Resize output (source size)'
Fixes #4207
2021-03-12 20:53:19 -08:00
Ryan Foster
37971e7bf9 UI: Force plugins to use version appropriate Qt Network
Make building against either Qt5 or Qt6 easier by checking the Qt
version used and loading the appropriate Qt Network DLL.
2021-03-09 09:16:07 -05:00
Kurt Kartaltepe
513bcb8e35 UI: Cleanup Qt for Qt6
This changes cleans up some deprecated functions that were removed in
Qt6. Some are placed behind version ifdefs and others are replaced for
their non-deprecated Qt5 version.
2021-03-08 21:41:13 -08:00
Mike
40f99da8a2 UI: Fix Qt signal connection warnings
Closes obsproject/obs-studio#4264
2021-03-08 21:39:43 -08:00
Clayton Groeneveld
753de748e5 UI: Remove redundant code
The UpdateSceneSelection function was doing the same thing as the
code in the SetCurrentScene function.
2021-03-07 22:53:08 -08:00
VodBox
eb98505a2c UI: Fix memory leak with missing files dialog 2021-03-06 15:33:12 +13:00
Georges Basile Stavracas Neto
b629265e7f UI: Disable and ignore Always On Top on Wayland platforms
This is a dangerous operation on Wayland, and is crashing not only
OBS Studio but also the whole compositor. Let's disable it for now
when running as a native Wayland client.

Some compositors (GNOME Shell, Plasma) still allow setting this
option on the window menu.
2021-02-09 09:39:17 -03:00
Jim
2eca4d80b6
Merge pull request #2233 from VodBox/missing-files-dialog
libobs + UI: Add Missing Files API & Dialog
2021-01-31 08:02:16 -08:00
jpark37
3d4e8c377c UI: Fix unused parameter 2021-01-30 00:25:25 -08:00
Exeldro
bacf83dbc9 UI: Close context menu on destroy of VolControl 2021-01-25 04:17:14 -08:00
Kurt Kartaltepe
77e4416c9f UI: Fix crash when systray is not enabled 2021-01-25 04:14:29 -08:00
Mike So
f79393a727 UI: fix unable to upload and view crash report in mac 2021-01-18 01:43:09 -08:00
Clayton Groeneveld
968a1a6ff0 UI: Add interact button to source toolbar
This adds a interact button to the source toolbar. It is only
shown when source is interactable.
2021-01-17 20:03:08 -08:00
VodBox
3273472019 UI: Add missing files dialog 2021-01-17 10:31:59 +13:00
Andrew Tropin
fb347c3c62 UI: Add support for OBS_PLUGINS*_PATH env variables
Allow to load obs plugins from arbitary directory, specified by
OBS_PLUGINS_PATH and OBS_PLUGINS_DATA_PATH environment variables.
2021-01-16 00:26:10 -08:00
Clayton Groeneveld
e38d8f10a6 UI: Add virtual camera to system tray
Adds ability to start and stop the virtual camera from the
system tray.
2021-01-15 18:16:41 -08:00
Clayton Groeneveld
3bc4e8ecba obs-frontend-api: Add frontend api functions for the virtual camera
This adds functions to the frontend api to start/stop the virtual
camera, to check if it is active and adds function to get the output
reference. It also adds api events for when the virtual camera is
started or stopped.
2021-01-13 09:46:04 -08:00
jp9000
cdd94b2b59 Revert "UI: Only apply new scaling behavior on newer installs"
This reverts commit 4e5f20dcbe.

This originally was added because of a faulty assumption that it would
change defaults, but defaults were apparently broken from 26.0.2 -> 26.1
because primaryScreen->size() changed its behavior, so the original code
technically fixed the original behavior.
2020-12-29 09:13:37 -08:00
jp9000
4e5f20dcbe UI: Only apply new scaling behavior on newer installs
The new scaling behavior affects defaults, so only apply it to new
installs of 26.2 or greater, while maintaining the previous behavior if
the user is upgrading from an older version.
2020-12-29 08:58:30 -08:00
Ryan Foster
5cdd084c7f UI: Support fractional scaling for Canvas/Base size
Without this change, new profiles created on systems using a fractional
scaling factor (e.g., 125%, 150%, 175%) will get an incorrect (X, Y)
pair for the new canvas size. For a display with 125% scaling, OBS would
set (1536, 864) instead of (1920, 1080). With this change, it will set
(1920, 1080).
2020-12-29 08:40:07 -08:00
Richard Stanway
38ad3ba18f UI: Add deferred function to update context bar
With the queued connection in d68484e7, the "Deselect" signal for
sources which are being deleted is never fired, as the object is gone by
the time the queued signal is processed. This results in the context bar
not updating.

This commit adds a new UpdateContextBarDeferred function, allowing
queuing of only the context bar update instead of the whole signal
handler.
2020-12-14 11:53:01 -08:00
Matt Gajownik
5f5b220048 UI: Correctly unregister Virtual Camera & Source Toolbar hotkeys
Fixes an issue where the hotkey entries would be duplicated
(including in the UI hotkey list) on every Profile switch.
2020-12-06 23:01:46 +11:00
Matt Gajownik
448599e761 UI: Sync 'Copy Filters' enabled state in the Source context menu
This matches the behaviour of Scenes and the Audio Mixer.
2020-12-04 21:10:37 +11:00
ckelsel
f4adc26864 UI: fix typo 2020-12-02 16:56:11 +08:00
Mike
f0593f3805 UI: Fix Save Replay button staying highlighted 2020-11-24 14:32:29 -08:00
Matt Gajownik
a88b262d5f UI: Set default source toolbar visibility to true
This significantly simplifies the
configuration setting's initial load.

This also fixes as issue where the source toolbar
would initialise as "TextLabel" with enabled
buttons if the user had not yet toggled the setting.

Fixes #3722
2020-11-24 14:19:57 -08:00
jp9000
9048d8095d UI: Force plugins to use our Qt5Network, not their own
The Elgato Streamdeck plugin ships their own Qt5Network.dll on Windows,
which may be ABI incompatible with newer Qt DLLs if we decide to update
our Qt version. So to prevent that plugins (and other plugins) from
using their Qt5Network.dll, we need to explicitly load our
Qt5Network.dll first so that we can prevent it from trying to load
theirs beforehand.

For context on this, previously, we didn't ship Qt5Network on Windows
because we would have to ship OpenSSL with it, but we didn't want to
ship it without SSL support. Because of that, Elgato's Streamdeck plugin
would ship their own Qt5Network.dll library (that didn't have SSL
support anyway). However, Qt recently added support for windows
schannel, which allows SSL support via the Windows API, making it so we
don't have to ship extra libraries to get SSL. So now we can start
shipping Qt5Network without worry.
2020-11-22 15:30:12 -08:00
PatTheMav
8110b8bd65
UI: Fix tray icon menu handling on macOS 2020-11-13 17:17:45 +01:00
PatTheMav
35e6f5e17a
UI: Update tray icons to use masks on macOS 2020-11-12 23:39:32 +01:00
jp9000
546dcc7a14 UI: Move "enforce" setting to "ignore" stream section
Moves the "Enforce streaming service bitrate" option from simple output
mode to the stream section, renames it to "Ignore streaming service
setting recommendations" (inverting it). When trying to check it, it
will now also display a message box warning the user that it's generally
a not-so-good idea.

Also displays recommended settings for the service.
2020-11-11 09:48:39 -08:00
jp9000
6b81c106d8 UI: Add VOD track support in advanced output
Adds a VOD track option (specific to Twitch) that allows a user to
specify which audio track to use for their Twitch VODs, which uses a
separate encoder to encode the track. This allows users the ability to
choose what audio goes on their VOD, separately from the live stream.
2020-11-04 00:15:25 -08:00
Richard Stanway
9a64adb4d1 UI: Don't update source context bar when hidden 2020-10-31 20:59:12 -07:00
Clayton Groeneveld
2b50263d5c UI, libobs: Add ability to copy/paste single filter 2020-10-15 10:14:22 -07:00
jp9000
3d51602690 UI: Fix replay buffer frontend event not triggering
The frontend API event OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED was not
being triggered when hotkeys were used because it was only set to
trigger when the replay buffer button was clicked, not when a hotkey was
used. This fixes it so that the frontend event sends a signal to the
frontend so that hotkeys will actually work.
2020-10-12 16:59:26 -07:00
hgonomeg
d3ec3e99d5
UI: Add replay buffer saved event to the frontend api (#3592)
* obs-frontend-api: add the event of saving replay buffer

Add OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED as given by RFC 33

* UI: Emit the replay buffer saved event to the api

Send the OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED to api (as in rfc33)

* docs/sphinx: Add replay buffer saved event

Documentation provided for OBS_FRONTEND_EVENT_REPLAY_BUFFER_SAVED (RFC33)
2020-10-10 17:53:13 -07:00
jp9000
86e04d00ec Revert "UI: Delete existing fullscreen projector"
This reverts commit 01fe9c990c.
2020-10-04 22:32:17 -07:00
Scratch
8a1ad18674 UI: Fix tab order for controls dock 2020-10-02 07:01:40 -07:00
Programatic
f79737d479 UI: Implement exit on CTRL + Q for linux
Fixes #3106
2020-10-02 03:40:26 -07:00
PatTheMav
cab32e7e67 UI: Disable QT's implicit colourspace conversion on macOS
Fixes issues as described in https://bugreports.qt.io/browse/QTBUG-47660
and halves CPU usage of OBS' UI by about 40-50%.
2020-10-01 23:54:58 -07:00
Richard Stanway
76fcfa9ed3 UI: Clarify system tray code
If the tray is disabled in settings, we no longer allow the command line
parameter to override it and create a tray icon regardless. This matches
the behavior in the UI, where "minimize to tray on startup" becomes
unavailable if the "tray enabled" setting is unselected.
2020-09-27 19:37:53 +02:00
Richard Stanway
e8c3ad1482 UI: Fix formatting 2020-09-27 19:18:02 +02:00
Richard Stanway
7d3fa7315a UI: Miscellaneous code cleanups
Remove a few unused variables and other minor changes. No functional
differences. Issues detected by PVS Studio.
2020-09-27 19:03:21 +02:00
jp9000
e5d8f345fc UI: Fix screenshots preventing auto-remux
Due to the fact that a global was used on GenerateSpecifiedFilename to
save the remux file name, when a screenshot was made, it would overwrite
the filename being remuxed, because screenshots use the same function to
generate filenames as well.

This solves that problem by removing the global and the changes to
GeneratedSpecifiedFilename, and isolating that to the output handler.

Coincidentally, this bug probably also happened with replay buffers
under certain circumstances.

Fixes obsproject/obs-studio#3497
Closes obsproject/obs-studio#3498
2020-09-26 08:19:27 -07:00
jp9000
2963b3b8ed UI: Create output before calling start stream event
Allows modifying the output OBS_FRONTEND_EVENT_STREAMING_STARTING.
2020-09-16 22:25:09 -07:00
jp9000
c0f19b95d5 UI: Do not always have log viewer loaded
This object should not always be created on startup. Instead, only load
it specifically when the user wants to load it.

This fixes a freeze some users were experiencing due to the text widget.
Unfortunately, it is not yet known how that freeze occurred with the log
viewer, so for the time being do not load the log viewer object unless
explicitly created.
2020-09-15 20:29:40 -07:00
jp9000
5978094fa0 UI: Fix certain buttons turning up white in dark theme
Fixes the browse button in the remux file dialog not having the proper
style applied. This is a bit of a workaround because it is still unknown
why the button was white.
2020-09-14 16:40:46 -07:00
Jim
32bb14ddea
Merge pull request #3451 from kkartaltepe/fix-upload-logs-linux
UI:Fix crash on log upload
2020-09-13 16:18:00 -07:00
Kurt Kartaltepe
74f9661556 UI:Fix crash on log upload
Earlier code calls enable on platform specific UI elements resulting in
crash since these elements are deleted on Linux.
2020-09-10 18:20:07 -07:00
Kurt Kartaltepe
02291f79b8 UI: Fix recording check when using url output
Previously this check would prevent you from using URL output if your
file output target was invalid.
2020-09-08 20:29:40 -07:00
Richard Stanway
063c69ad1e UI: Don't warn about bandwidth test mode if not authed
It was possible to enable the bandwidth test and disconnect your Twitch
account, resulting in a confusing prompt about streaming in bandwidth
test mode when trying to start a stream.
2020-09-09 01:31:48 +02:00
jp9000
50d3130b64 UI: Replace/simplify device toolbar
The old version of the device toolbar was a complex situation.  Because
of the fact that device properties can take significant time to query,
this put an unpleasant burden on the UI thread; so to fix this problem,
the device toolbar was made to be threaded.  However, threading is a
complex and dangerous thing, and there is a fear that this could cause
complications down the line whenever users are simply selecting devices.

So for the time being, as a safety precaution, simplify the device
toolbar down to just the "activate" button, and make it so that if users
really need to query and change the devices, that they need to
explicitly open the properties.  That way the devices aren't being
queried constantly every time a device source is selected.

Alternatively in the future, device enumeration could be cached, but
seeing as that's a significant amount of work and needs to take in to
account whether a user adds/removes a device while the process is
active, that's not going to happen any time soon.
2020-09-07 16:21:29 -07:00
Jim
86147d9719
Merge pull request #3415 from jpark37/default-color-space
Unify color space settings as 709
2020-09-07 13:29:44 -07:00
Jim
358f453938
Merge pull request #3400 from cg2121/studio-mode-bug
UI: Fix studio mode load bug
2020-09-07 06:34:15 -07:00
Daniel Escoz
c899729c12
UI: Ensure tray icon is themed in all cases 2020-09-07 00:06:33 +02:00
jpark37
bfa0224399 UI: Change the default color setting in the UI from sRGB to 709
It seems like YouTube applies nonlinear-to-linear sRGB, and
linear-to nonlinear-709 transformations to uploaded videos now. This
makes sRGB too dark on their platform for video players that alias 709
as sRGB, which is almost everyone. Make 709 the default to keep peace.
2020-09-06 12:33:02 -07:00
Jim
a66a8da093
Merge pull request #3383 from Programatic/warning_fix
UI: Fix compiler warning about needing parenthesis
2020-09-03 07:44:24 -07:00
jp9000
b99613b677 UI: Fix auto-remux not working w/ slash filesnames
When the feature was added to allow slashes in recording/replay
filenames to automatically create directories, auto-remux was not
accounted for, and all filenames were assumed to be complete.  It used
fi.completeBaseName() to construct the new name which would only add the
last part after the last slash as the filename, causing the remuxed file
to save in the base directory rather than the intended directory.  This
fixes that by simply using the input string as the output string,
removing the extension, appending the new extension.
2020-09-03 05:49:58 -07:00
jp9000
4869167f5c UI: Do not show tray icon if not active
Because the virtual camera stops immediately when you call
obs_output_stop() rather than with a delay like other outputs, it
exposed a bug where the tray icon would show OBS as active when stopping
the source, regardless of the fact that it was stopped.  The bug was
that the expression used to activate the tray icon did not check to make
sure that the output was actually active, so add that to the expression.
2020-09-03 05:49:58 -07:00
jp9000
28f56c0201 UI: Do not show media controls on network media source 2020-09-03 05:49:58 -07:00
Clayton Groeneveld
8a3b3da5e4 UI: Fix studio mode load bug
This fixes a bug where studio mode where it would transition
to the preview scene when loaded instead of using previous
program scene.
2020-09-02 22:53:35 -05:00
Programatic
e1fd89a4e5 UI: Fix compiler warning about needing parenthesis
It was the only thing blocking me from a clean and satisfying compile.
2020-09-01 12:53:25 -05:00
Jim
afb6e8acb6
Merge pull request #3343 from cg2121/output-source-delete
UI: Fix output channels not being deleted
2020-08-26 01:13:09 -07:00
Jim
7b43e2072a
Merge pull request #3342 from RytoEX/disable-rename-shortcuts-while-editing
UI: Disable scene rename shortcut key while renaming
2020-08-26 01:12:40 -07:00
Jim
466e5f6a6d
Merge pull request #3339 from Programatic/tray_fix
UI: Fix tray icon appearing when disabled in settings
2020-08-26 00:07:56 -07:00
Jim
e4e78db7a8
Merge pull request #3332 from WizardCM/log-focus
UI / Log Viewer: Bring to front rather than close, add minimize/maximize buttons
2020-08-26 00:06:29 -07:00
Clayton Groeneveld
08426c8710 UI: Fix output channels not being deleted
Output channel 6 was not being deleted, so use for loop
to delete all possible channels.
2020-08-25 23:19:10 -05:00
Ryan Foster
9cb36f803f UI: Disable scene rename shortcut key while renaming
While editing a scene name, the Qt shortcut key for the renameScene
action remained active. If the user pressed the shortcut key while
actively editing a scene name, the widget would retrigger the action,
causing the name edit to fail and discard the current changes to the
scene name. The scene name would be reset to its previous saved value
and reselected as if the user had pressed the shortcut key for the first
time.

This commit removes the QAction associated with the shortcut key from
the scenes dock widget when editing starts and adds the action back to
the widget once editing is done.

Fixes #3044.
2020-08-25 22:33:23 -04:00
Ford Smith
45c46fe24a UI: Fix tray icon appearing when disabled in settings 2020-08-25 18:12:23 -05:00
jp9000
fcf01304d2 UI: Defer device properties to separate thread
Because devices can take significant time to enumerate, defer the
properties creation to a separate thread.  The author of this commit
feels a great amount of displeasure over having to write this.
2020-08-25 08:21:29 -07:00
jp9000
1a7a47dd3b UI: Disable properties button if no properties 2020-08-25 00:46:33 -07:00
jp9000
68dcee824e UI: Clear context bar on scene collection change
Fixes a bug where the source toolbar would show the previously selected
source from the prior scene collection when changing to a new scene
collection
2020-08-25 00:46:02 -07:00
Matt Gajownik
a4e1049e67 UI: Add maximize and minimize support to Log Viewer 2020-08-25 14:30:21 +10:00
Matt Gajownik
fca5e45f22 UI: Bring Log Viewer to front instead of closing
This changes the "View Current Log" option in the
Help menu from a toggle to always open the log viewer,
and bring it to the front when it's already open.
2020-08-25 14:09:25 +10:00
Matt Gajownik
f72fa22858 UI: Don't open second dialog if close event is ignored
Affects Interact, Filter and Property dialogs.
2020-08-24 22:29:47 +10:00
Clayton Groeneveld
227f80ac48 UI: Fix always on top w/ projectors on Linux
Apparently, on Linux, you cannot update the window flags while it is
still open, so just close the projectors and reopen them again when the
setting changes.
2020-08-23 10:36:06 -07:00
Clayton Groeneveld
27f913843a UI: Add OBSBasic::ClearProjectors()
Allows the ability to clear projectors via a function rather than have
to manually iterate any time one needs to clear the projectors
2020-08-23 10:36:06 -07:00
Clayton Groeneveld
f580de0bc7 UI: Fix multiview update regression
Fixes bug where multiview won't update when reordering scenes with drag
and drop. Was originally fixed with #2114, but bcddf4d caused a
regression where it didn't work anymore.
2020-08-22 08:37:26 -07:00
Valentin
81f424d8e1 UI: Change default sample rate to 48 kHz
In a discussion on Discord the consensus was that 48 kHz is a better
default. This was prompted by the merge of the rnnoise library which can
only handle 48 kHz natively. 48 kHz is also more commonly used as a
default on personal computers.
2020-08-19 13:59:57 +02:00
Colin Edwards
fddbbe259d UI: Source Toolbar
The source toolbar allows quick and easy access to properties and
filers, and shows common properties/features of a source type.  For
example, when you select a media source, VLC source, or the slideshow
source, you'll get media controls to control playback of the media.  If
you select a text source you can edit the font, color, or text if
applicable.  Or if you select a capture source, you can select the
display/window/etc to capture for that source.

If the source toolbar is not desired and is viewed as taking up valuable
space in the window, it can be disabled via the view menu.

Co-authored-by: Clayton Groeneveld <claytong1214@gmail.com>
Co-authored-by: Jim <obs.jim@gmail.com>
2020-08-17 07:18:18 -07:00
Jim
a9c65aeabf
Merge pull request #2955 from cg2121/group-signals
UI: Make select/deselect signals work w/ group items
2020-08-08 19:59:13 -07:00
Jim
bfdf5dc947
Merge pull request #2356 from jpark37/sycc-color-space
Color space refinements
2020-08-05 08:58:21 -07:00
Clayton Groeneveld
040e445617 UI: Add log viewer window 2020-07-31 19:57:12 -07:00
Clayton Groeneveld
a70014d7b2 UI: Add ability to make screenshots
Co-authored-by: Jim <obs.jim@gmail.com>
2020-07-30 17:41:43 -07:00
Rodney
dc0af42f1b
Merge pull request #3091 from derrod/remove-mixer
UI/CI/rtmp-services: Remove Mixer
2020-07-24 20:17:38 +02:00
derrod
db37cc34d5 UI: Remove Mixer integration 2020-07-22 07:47:07 +02:00
jpark37
6a8507f2db UI: Switch 601 to sRGB as default color space 2020-07-18 19:44:13 -07:00
jpark37
fe1ee749b3 UI: Add sRGB option to colorSpace output setting
Creates video streams/files with sRGB transfer specified.
2020-07-18 19:44:13 -07:00
derrod
30862d75ae UI: Add flag/file to disable built-in updater
When distributing OBS via third party platforms that have their own
update systems we want to be able to disable the OBS updater without
having to resort to having a separate build entirely.
2020-07-18 21:33:47 +02:00
jp9000
ebb093b8a3 Revert "UI: Match Windows taskbar state to tray icon"
This reverts commit d442fda3fc.
2020-07-11 06:12:51 -07:00
jp9000
959dbb64ed Revert "Merge pull request #3110 from WizardCM/taskbar-color-setting"
This reverts commit 04e01458e5, reversing
changes made to b83a9dd0d6.
2020-07-11 06:05:35 -07:00
Jim
04e01458e5
Merge pull request #3110 from WizardCM/taskbar-color-setting
UI: Add setting for taskbar color
2020-07-10 20:34:22 -07:00
Jim
23425ea42b
Merge pull request #3123 from WizardCM/fix-connecting-button
UI: Fix unreadable Connecting Stream button
2020-07-10 20:23:57 -07:00
Matt Gajownik
081fc548c5 UI: Add setting for taskbar color 2020-07-10 20:12:59 -07:00
Tom Lynch
5c807aea60 UI: Set remove prompt default action
Resolves an issue on macOS where the default action is not set for
prompts when the user is removing one or multiple sources or scenes.
2020-07-10 17:50:15 -07:00
Jim
6347a221a0
Merge pull request #3050 from jpark37/qt-warnings-515
UI: Fix warnings for Qt 5.15
2020-07-10 15:30:26 -07:00
Jim
880d42b56e
Merge pull request #2940 from pkviet/log2
UI: Log monitoring type for global audio devices
2020-07-07 09:37:34 -07:00
jp9000
a72a52fa38 UI: Add virtual camera to UI
Adds a virtual camera button to the main user interface.  If virtual
camera is not installed, it will not add the button.  On Windows, it
detects whether the virtual camera filters are properly registered, and
will only add the button if the virtual camera filter is confirmed
registered.

Also adds a virtual camera option to the auto-configuration wizard,
which will just simply set the user's resolution/scale to 1920x1080 at
30 FPS.
2020-07-07 06:09:59 -07:00
Jim
6fcb57daa7
Merge pull request #2915 from Bennik2000/stats-dock-steals-focus
UI: Fix bug where stats dock steals focus of main windows
2020-07-06 14:01:38 -07:00
Matt Gajownik
27eb6ded31 UI: Fix unreadable Connecting Stream button 2020-07-04 19:27:48 +10:00
Bennik2000
d8c215df0e UI: Add always on top checkbox to projector context menu
This checkbox overrides the global always on top setting
2020-06-26 05:59:17 -07:00
Jim
803df3a40a
Merge pull request #2744 from cg2121/auto-config-dialogs
UI: Remove first run auto-config prompts
2020-06-24 14:47:35 -07:00
Jim
695f3c1f33
Merge pull request #2662 from WizardCM/log-dialog
Enhance Log dialog with description and Analyze button
2020-06-24 12:01:10 -07:00