725 Commits

Author SHA1 Message Date
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 113b6317e78cf988e70b5e8c6e03ccbc800ac5d0.
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 4e5f20dcbe1506802d9990886aed375cbb75a5b8.

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