Commit Graph

711 Commits (4303e31268f038affdf46caec14d348c56671d2e)

Author SHA1 Message Date
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
Jim 924580dbab
Merge pull request #2376 from cg2121/fix-window-width
UI: Fix buttons changing minimum window width
2020-06-24 09:52:13 -07:00
jp9000 d51ac98fcf UI: Fix pause/replay buttons having large width
Depending on the circumstances, these buttons can start with width
values that are much larger than their height, and that value wouldn't
be corrected immediately.  Setting an explicit policy to lock their
width to the same as their height value enforces the behavior that was
intended from the beginning.
2020-06-24 09:22:58 -07:00
jpark37 c2ddc428b0 UI: Fix warnings for Qt 5.15
AllDockWidgetFeatures is now deprecated. Use underlying values instead.

Use default QFlags constructor instead of nullptr/0.

Use QWheelEvent::angleDelta() in place of orientation() and delta(), and
position() in place of x() and y().
2020-06-21 18:23:05 -07:00
Jim 211ba0b72a
Merge pull request #3067 from cg2121/projector-settings
UI: Auto update projector settings
2020-06-21 05:22:00 -07:00
Jim 129a946e3d
Merge pull request #3065 from cg2121/projector-fix
UI: Delete existing fullscreen projector
2020-06-21 04:57:41 -07:00
Richard Stanway aa313a1fb1 UI: Don't try to create service if missing file
This would cause meaningless "Service '' not found" log entries.
2020-06-18 23:49:21 +02:00
Clayton Groeneveld 777d9eb787 UI: Auto update projector settings 2020-06-13 21:00:55 -05:00
Clayton Groeneveld 01fe9c990c UI: Delete existing fullscreen projector 2020-06-13 19:54:28 -05:00
Richard Stanway 0a467085d2 UI: Set 8x8 as minimum selectable resolution
Since libobs internally rounds to various powers of 2 to support SSE
functions, resolutions that are too low can get rounded to zero. libobs
will fail to startup with a zero resolution, so if a user accidentally
entered anything that rounded to zero OBS would become unusable without
manual fixing by editing the profile .ini.
2020-05-24 00:48:37 +02:00
Clayton Groeneveld 2fe749fc84 UI: Make select/deselect signals work w/ group items 2020-05-19 06:36:00 -05:00
Bennik2000 b04ace4901 UI: Fix bug where stats dock steals focus of main windows 2020-05-18 18:54:03 +02:00
pkv aac04ff493 UI: Log monitoring type for global audio devices 2020-05-16 11:11:04 +02:00
Matt Gajownik d442fda3fc UI: Match Windows taskbar state to tray icon
This adds both a status icon, and changes the color
of the taskbar button itself.
2020-05-07 20:05:35 +10:00
Richard Stanway efc23bb1ee UI: Remove requirement for replay buffer hotkey
Fixes https://github.com/obsproject/obs-studio/issues/2807
2020-04-26 16:56:36 +02:00
Colin Edwards 9447a06b05 Revert "UI: Remove unnecessary global variables"
This reverts commit f91d3baf43.

From @pkv: the reason some of these vars were global is because Qt was not deleting them at all; as a result memory leaks have been reintroduced for: previewProjector, trayMenu, studioProgramProjector, multiviewProjectorMenu ;
2020-04-19 09:31:18 -05:00
Clayton Groeneveld f91d3baf43 UI: Remove unnecessary global variables 2020-04-18 18:58:45 -05:00
Colin Edwards 0f10c0811a
Merge pull request #2720 from Bennik2000/status_icons_streaming_recording
UI: Add status icons for recording and streaming
2020-04-18 18:23:32 -05:00
Colin Edwards 47cfe13be2
Merge pull request #2648 from kkartaltepe/fix-previewlabel-styling
UI: Fix previewLabel styling
2020-04-18 16:32:43 -05:00
Exeldro 029b4d1a05 UI: Remove all scenes in ClearSceneData 2020-04-18 17:08:52 +02:00
Clayton Groeneveld 9316373ef3 UI: Remove first run auto-config prompts 2020-04-18 00:02:26 -05:00
Bennik2000 d8e67d2f3c UI: Add status icons for recording and streaming 2020-04-16 19:15:13 +02:00
Richard Stanway 25054d233c
Merge pull request #2677 from emaste/warning-fix
UI: Fix warning compiling with Clang 10
2020-04-10 00:39:07 +02:00
Ed Maste 9f4aaf22f0 UI: Fix warning when compiling with Clang 10
Building with Clang 10 on FreeBSD 13-CURRENT emitted a warning about
logical not (!) applying only to the left hand side of a comparison.
Update the expression to match the style of other flags conditionals.
Verified that object code is the same.
2020-04-10 00:37:37 +02:00
Colin Edwards da35310363
Merge pull request #2671 from pkviet/logfilter
UI: Log global audio devices and their filters
2020-04-09 01:04:08 -05:00
pkv 92989bd42b UI: Log global audio devices and their filters
Request from support-team.
Currently only sources in Scenes are logged with their filters.
This excludes global audio sources set in Settings > Audio.
This patch remedies this.
2020-04-07 21:33:09 +02:00
Matt Gajownik c878bfcb1f UI: Differentiate between crash & session log dialogs 2020-04-07 20:43:09 +10:00
Kurt Kartaltepe 14480fe025 UI: Fix previewLabel styling
Label renders with default styling instead of using dynamic property
because it was already polished.
2020-04-04 18:57:31 -07:00
Matt Gajownik beb2af9721 UI: Require selected source for Transform shortcut
Fixes #2468
2020-04-04 23:45:14 +11:00
Matt Gajownik a9a19cf351 UI: Use Qt dialogs for Font & Color Pickers on Linux
This fixes a hang on Ubuntu when closing the
dialogs after leaving them open for a time.
2020-03-28 23:15:25 +11:00
jp9000 dff05d9fcc UI: Fix preview state when minimizing to tray
Makes sure preview is properly enabled/disabled when minimizing to tray,
when restoring from tray, or when starting the program up minimized to
tray
2020-03-19 05:33:07 -07:00
VodBox 89792bcae9 UI: Remove unnecessary vertices for preview
This change reduces the number of triangles drawn using a TRISTRIP while
still producing the same shapes for parts of the preview.
2020-03-19 23:25:24 +13:00
jp9000 e93d44dd18 UI: Get actual projector monitor name on windows 2020-03-18 20:37:56 -07:00
jp9000 0fb34ed965 UI: Fix closing OBS before showing whats new dialog
The program can get stuck waiting for the browser within a event queue,
so instead mark that the program is closing, do it in a separate thread,
signal the window when it's finished, and then check whether it's in the
process of closing before actually showing the dialog.
2020-03-16 08:59:46 -07:00
jp9000 8de20ab3be libobs: Add task scheduling features
(This commit also modifies the UI)

Adds the ability to schedule tasks for certain threads
2020-03-14 10:54:37 -07:00
Matt Gajownik 8f6ed5cd87 UI: Support Unicode for Windows fullscreen projectors 2020-03-13 21:15:51 +11:00
jp9000 2131a8b243 UI: Fix preview scaling on scene collection change 2020-03-11 13:48:44 -07:00
Jim 519b3096aa
Merge pull request #2474 from WizardCM/named-display-monitors
Show friendly monitor names on Display Capture on Windows & Projectors
2020-03-09 06:26:52 -07:00
jp9000 b2302902a3 libobs: Fix source type versioning system
(This also modifies image-source, obs-text, text-freetype2, and UI)

This improves source definition versioning.  To do this, it now stores
two identifier names.  One "unversioned" which is the original name, and
one "versioned" with the version number appended.

This fixes both backward compatibility with older OBS versions, and
fixes the inability to use "add existing" in OBS itself on sources
created from older version definitions.
2020-03-09 06:12:22 -07:00
Matt Gajownik 6b5636ad73 UI: Show monitor names for projectors 2020-03-09 11:13:55 +11:00
Richard Stanway 8f4f33aed8 UI: Move OBSBasicSettings to scoped block
This ensures that the OBSBasicSettings destructor has been run before
the restart prompt appears, preventing bugs related to OBS shutting down
with the settings window still having active callbacks.
2020-03-03 00:05:43 +01:00
Richard Stanway 57b47ca90a UI: Fix preview not being re-enabled on maximize 2020-03-01 10:02:14 -08:00
Clayton Groeneveld 9fa1d9eaa3 UI: Fix buttons changing minimum window width 2020-02-27 02:51:23 -06:00
Clayton Groeneveld 0ca8424c66 UI: Fix compiling error with older QT 2020-02-25 22:38:12 -06:00
Richard Stanway 45d0b8ccee UI: Reserve correct number of elements in vector 2020-02-25 00:24:05 +01:00
Richard Stanway bc7946f8a8 UI: Reserve correct number of elements in vector 2020-02-24 21:51:02 +01:00
Jim 4d0b3efc23
Merge pull request #2408 from cg2121/restart-app
UI: Restart program when audio/locale changed
2020-02-17 21:37:29 -08:00
Jim 262975401e
Merge pull request #2411 from cg2121/fix-locked-source
UI: Fix locked sources being transformed
2020-02-17 21:30:22 -08:00
Clayton Groeneveld d6969d7732 UI: Fix locked sources being transformed 2020-02-17 13:22:00 -06:00
Clayton Groeneveld b3601681b8 UI: Add ability to lock volume 2020-02-16 18:33:46 -06:00
Clayton Groeneveld e0135823ce UI: Restart program when audio/locale changed 2020-02-16 16:12:00 -06:00
Matt Gajownik 8a0cfc5665 UI: Use OBS dock menu instead of Qt dock context menu 2020-02-16 09:37:39 -08:00
Richard Stanway 42ed6ffffb UI: Fix preview not being disabled when minimized 2020-02-13 23:18:40 +01:00
jp9000 7c9d227f1e UI: Watch for refresh signal in source list 2020-02-07 16:44:48 -08:00
Matt Gajownik c58f6aea35 UI: Show source icons in Advanced Audio Properties
Co-authored-by: VodBox <dillon@vodbox.io>
2020-02-04 13:21:59 +11:00
jp9000 9f1c442d35 UI: Add option to toggle source icons to View menu 2020-01-20 23:19:32 -08:00
Clayton Groeneveld f7d39c12c0 UI: Fix studio mode transition bugs
-If the user were in the middle of a transition and clicked
the cut transition, the transitions would become borked.

-This actually disables the transition widgets, so the
user doesn't click them. Before, the disabling of the
widgets didn't work as expected. The code for enabling/disabling
them was also simplified.

-This loading of studio mode was moved in OBSInit because
the loading of transitions needs to happen first. This fixes
a bug when enabling/disabling the t-bar when the program
is first loaded. The t-bar would be disabled even if a
cut or stinger transition was not used.

-When the user would click the quick transitions, the
t-bar would be enabled even when it was not supposed
to.
2020-01-14 01:29:23 -06:00
Lqlsoftware 046464884a UI: Properly inform user if recording path is invalid 2019-12-30 14:18:32 -08:00
jp9000 e2fa510436 UI: Add save button next to replay buffer button
Allows the ability to save replays with a button rather than with the
keyboard if desired.

Closes obsproject/obs-studio#1954
2019-12-12 17:59:20 -08:00
JohannMG b78cdc910b UI: Add Start Streaming settings check on start
When we use the server error to respond to user's failing to start a
stream it is slow to return an error and unclear to the user what went
wrong. This diff introduces a simple settings check before attempting
to stream and catch and explain specific URL/key issues to the user.

In the case of preset services we check there is a Stream Key before
attempting to start a stream.

In the case of "custom" we only verify there is a URL since for some
services that's all that is required or the user may use user/password
authentication.
2019-12-11 01:50:41 -08:00
JohannMG c4396e03a7 UI: Create UI Validation Helper Class
Pull UI validation and its helpers to their own class. This class will
be used to validate forms and perform UI-action checks such as
checking stream keys aren't empty and in this diff now holds the logic
to ensure there is a source before the person starts a stream.
2019-12-11 01:23:36 -08:00
VodBox c0e2e7f12e UI: Add Grid Mode to Scenes Widget
Adds an option to the right click menu in the scenes widget to switch
modes. When in regular list mode, it'll let you select grid mode, and in
grid mode, it'll let you select list mode. Grid mode changes the scenes
widget to have a grid of buttons for scenes rather than a list, much
like XSplit.
2019-12-02 08:42:10 +13:00
Richard Stanway 2a917531fd
UI: Default stream / record confirm dialogs to "No"
Helps prevent accidental stream starting if for example a cat walks on
the spacebar while the button has focus.
2019-11-27 12:34:10 +01:00
Chris Angelico 7c540acc11 UI: Create an API for opening projector windows 2019-11-24 22:45:28 -08:00
Chris Angelico 412a75601e UI: Break out the opening of a projector into a slot function 2019-11-24 22:23:16 -08:00
Clayton Groeneveld 82ffcdc827 UI: Add source icons 2019-11-24 20:50:42 -08:00
Jim 87b02924d5
Merge pull request #2102 from cg2121/toggle-projector-mode
UI: Add ability to change projector type
2019-11-24 02:39:49 -08:00
Ford Smith eeafb3dbb3 UI: Fix wrong icon if recording stopped while paused 2019-11-22 23:54:01 -08:00
Jim c290e81a1a
Merge pull request #2094 from torresam/copy_sources
UI: Add copy/paste of multiple selected sources
2019-11-22 23:48:51 -08:00
jp9000 cafc9995d8 UI: Fix wrong icon if recording stopped while paused
Fixes pause icon getting stuck if you stream or use replay buffer while
recording, pause, then stop recording while paused.  The icon would get
stuck on the pause icon until all outputs were stopped.
2019-11-20 15:46:42 -08:00
Jim 317d058bf4
Merge pull request #2107 from cg2121/mantis-1554
UI: Fix swap scene issue with double click mode
2019-11-20 01:51:44 -08:00
Clayton Groeneveld 54e7b2c769 UI: Fix swap scene issue with double click mode 2019-11-19 22:10:22 -08:00
derrod 3e841b221d UI: Add setting for Twitch chat add-ons choice
Both BTTV and FFZ are fairly popular however they do occasionally
interfere.  To give users the option to chose whichever one they like
most we add a new setting that allows BTTV, FFZ, both, or neither.

Defaults to "None" for new users.  Existing users will be migrated to
"Both" as that's the previous behavior.
2019-11-19 21:06:36 -08:00
Ford Smith ac75ec1247 UI: Add system tray icon to indicate when paused 2019-11-17 18:17:07 -08:00
Clayton Groeneveld bab3391ce4 UI: Use radio buttons for FLV track selection 2019-11-09 08:19:41 -08:00
Clayton Groeneveld e832b42f07 UI: Add ability to change projector type 2019-10-21 23:48:58 -05:00
Clayton Groeneveld 52a3a61a6e UI: Simplify fullscreen toggle code 2019-10-21 15:17:26 -05:00
Clayton Groeneveld c4169ba15a UI: Add stats reset hotkey 2019-10-15 23:20:35 -05:00
Clayton Groeneveld 016d4ee87f UI: Fix issue where multiview doesn't update 2019-10-10 20:12:20 -05:00
Anthony Torres 6c32e9a8c7 UI: Add copy/paste of multiple selected sources 2019-10-05 00:04:35 -07:00
Richard Stanway 27b7f45fd7 UI: Fix path calculation for disk space check
When using custom FFmpeg output mode, the check would instead use the
standard recording path which is no longer visible in the settings. This
commit also simplifies the checks by moving the duplicated code to a new
function.
2019-09-27 15:04:07 +02:00
jp9000 94cab1e536 UI: Hide mixer sources if audio deactivated
If audio is determined to be deactivated via the audio source (via the
new "audio_activate" and "audio_deactivate" signals), hide the audio
source in the mixer.
2019-09-19 23:38:53 -07:00
jp9000 3064887ae2 Revert "UI: Various screen reader fixes"
This reverts commit b5843caa48.

This breaks some hotkeys because the signals are tied to a signal which
is now triggered because "toggled" is used instead of "clicked", so just
revert it for now for the release and look at it later post-patch.
2019-09-12 13:55:31 -07:00
jp9000 5287518044 UI: Fix pause hotkey not working properly
Setting the check state cause the toggle signal to trigger, so it would
pause and immediately unpause.
2019-09-12 12:06:09 -07:00
VodBox b5843caa48 UI: Various screen reader fixes
This commit fixes various issues with screen readers in the main OBS
interface. These were tested using NVDA on Windows 10 1903.

Checkboxes or buttons which toggle, when receiving an activate signal
from the screen reader would visually update, but not perform any
action. This is because they're listening only for clicks. They should
all now be listening for toggles instead.

The screen reader would navigate through the UI in the order that
elements are defined in the .ui XML, and not by their row positions.
The XML has been reordered so that things should be defined in their row
order.

Audio track selection now says Track 1, 2, etc, rather than just the
number. Various checkboxes that just say "Enable" now have accessible
text that says what the enable is for (since it says "checkbox", the
fact it's an enable should hopefully be clear). Type in the recording
tab of output now has accessible text which says "Recording Type".

All the right side buttons in hotkeys now have tooltips, and by
extension, accessible text. Currently it does not yet say what hotkey
the action is in relation to, but that would require more locales.
2019-09-04 12:43:56 +12:00
Clayton Groeneveld e284b102d8 UI: Simplify toggle pause code 2019-08-20 06:37:48 -05:00
Clayton Groeneveld e770a775c6 UI: Update tooltip when paused 2019-08-20 06:37:22 -05:00
jpark37 cc7d67d050 UI: Redundant/bad casts 2019-08-17 08:49:08 -07:00
Jim f838136597
Merge pull request #1924 from cg2121/stop-recording-disk-full
UI: Stop recording when disk space is low
2019-08-17 07:17:04 -07:00
jpark37 0ea820b277 libobs: UI: Add Area scaling for downscale output
Now that Lanczos downscale blurring has been removed, the Area shader
can attempt to fill the void.
2019-08-14 22:33:52 -07:00
jp9000 0759652cee UI: Add the ability to create custom browser docks
Allows the ability for users to add custom browser widget docks that
they can use for their third party services if they feel the need,
mostly as a convenience tool so they don't have to open extra browsers
alongside the program.
2019-08-08 03:31:31 -07:00
Clayton Groeneveld d9a4842604 UI: Stop recording when disk space is low
This stops the recording when disk space is low. It is currently
set to stop when disk space is below 500 MB.
2019-07-23 15:28:29 -05:00
Grant Likely 4e3ce938f2 UI: Add option to warn on stop recording
OBS has an option to warn before stopping a stream, but it doesn't have
a similar warning for recording. This can result in a recording being
unintentionally stopped.

Add an option to warn when the "Stop Recording" button is pressed.

Note: While OBS also has an option to warn on stream start, this
patch purposefully does not add similar warn on recording start option.
This is because accidentally starting to record isn't risky in the same
way that accidentally starting to stream is.
2019-07-21 22:57:31 -07:00
Jim 1831165c5e
Merge pull request #1969 from cg2121/simplify-code
UI: Simplify resize output code
2019-07-21 22:33:46 -07:00
jpark37 3456ed0644 libobs: UI: Remove DrawBackdrop() to save fullscreen pass
It's a waste of GPU time to do two fullscreen passes to render final mix
previews. Use blend states to simulate the black background of
DrawBackdrop() for the following situations:

- Main preview window (Studio Mode off)
- Studio Mode: Program

This does not effect:

- Studio Mode: Preview (still uses DrawBackdrop)
- Fullscreen Projector (uses GPU clear to black)
- Windowed Projector (uses GPU clear to black)

intel GPA, SetStablePowerState, Intel HD Graphics 530, 1920x1080

Before:
DrawBackdrop: ~529 us
main texture: ~367 us (Cheaper than drawing a black quad?)

After:
[DrawBackdrop optimized away]
main texture: ~383 us
2019-07-18 19:58:29 -07:00
Clayton Groeneveld 5f5ba54a66 UI: Simplify resize output code 2019-07-15 04:50:42 -05:00
Jim 3975a7c42a
Merge pull request #1963 from WizardCM/mkv-default
UI: Change default recording format to MKV
2019-07-13 18:54:47 -07:00
Clayton Groeneveld 866e1e15a8 UI: Add enable preview button
Closes #1966
2019-07-13 20:27:14 -05:00
Matt Gajownik ca12847aa8 UI: Change default recording format to MKV 2019-07-11 15:39:46 +10:00
jp9000 eab10d48b2 UI: Add pause support
Adds support for pausing recordings.  When settings are eligible for
recordings, a pause button will appear next to the recording button.  If
the settings are not eligible, it will warn the user in the output
settings that they cannot pause recordings if those settings are used.
2019-07-08 08:11:56 -07:00
jp9000 f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
jp9000 58ce89bbe9 UI: Fix tray icon showing up on startup even if off
Apparently certain versions of Qt have a bug where the tray icon's
internal "visible" variable is set to false despite the fact that it
still shows.  Calling show() first before calling hide() sets the
internal boolean value and fixes the issue with the hide call.
2019-06-11 20:22:24 -07:00
jp9000 44d4df31e1 UI: Fix "Toggle Preview" hotkeys duplicating
Fixes "Toggle Preview" hotkeys from duplicating when profiles are
switched.  The hotkeys were not being unregistered.
2019-05-23 04:16:24 -07:00
jp9000 973d31b8c2 libobs: Fix lockup when an encode call fails
(This commit also modifies the UI, obs-ffmpeg, and obs-output modules)

Fixes a long-time regression where the program would lock up if an
encode call fails.  Shuts down all outputs associated with the failing
encoder and displays an error message to the user.

Ideally, it would be best if a more detailed error could be displayed to
the user about the nature of the error, though the primary problem is
the encoder errors are typically not something the user would be able to
understand.  The current message is a bit of a generic error message;
improvement is welcome.

Another suggestion is to try to have the encoder restart seamlessly,
though it would take a significant amount of work to be able to make it
do something like that properly, and it sort of assumes that encoder
failures are sporadic, which may not necessarily be the case with some
hardware encoders on some systems.  It may be better just to use another
encoder in that case.  For now, seamless restart is ruled out.
2019-05-17 01:51:12 -07:00
VodBox 16484e07e9 UI: Add Transition Previews
This commit adds a preview to the properties window for transitions.

The preview will play back the transition at the global transition
duration or the transitions fixed duration, between two private scenes
with an A and B label, and different background colors.
2019-05-12 21:13:21 -07:00
James Park 5471e74cbe libobs: UI: Remove Qt usage from graphics thread
This fixes Xcode warning about detecting UI usage from another thread.
2019-05-09 23:30:37 -07:00
jp9000 acc8419295 UI: Add Patreon contributors to About dialog 2019-05-05 20:00:26 -07:00
Clayton Groeneveld 37bde71020 UI: Fix system tray not working 2019-05-04 09:23:21 -05:00
Tristan Matthews 92853f2c7b UI: fix crash due to NULL dereference 2019-05-03 02:54:55 -04:00
jp9000 f21a48ff36 UI: Remove mac browser workarounds, improve stability
The workarounds were made because of conflicts with running multiple UI
threads at once on macOS, which macOS can't do very well, and would be
susceptible to crashes.  This would cause crashes not only on startup
but seemingly at random when using the browser source on macOS.  The
original "fix" was a hack to try to minimize UI code and browser UI code
from executing at the same time.  The macOS initial scene loading was
deferred until all Qt-related and main window initialization was
completed.  Although this worked to some extent to prevent conflicts, it
made it so that there was an initial period on startup where the entire
UI seemed "blank" for users, and it was still possible for the main UI
thread and the browser UI thread to clash, causing crashes seemingly at
random for users.

The external message pump method of CEF is the solution to the problem,
which is the method which allows the main UI thread to share events with
CEF.  To do this, all CEF operations need to be performed in the UI
thread (Qt's main thread), and CefDoMessageLoopWork() needs to be called
when CefApp::OnScheduleMessagePumpWork callback is triggered.  A number
of other issues had to be solved as well, such as CefBrowser references
getting "stuck" in the Qt event queue.

With this, macOS no longer needs to do the "deferred load" hack, and
browsers are now much more stable and no longer as susceptible to
seemingly random crashes, improving overall program stability when
browsers are used.
2019-05-01 12:13:35 -07:00
jp9000 7efcb6989d UI: Only execute "What's New" code on win32
The "What's New" dialog currently is only functional on windows.
2019-05-01 12:12:03 -07:00
jp9000 767d534409 UI: Check for valid systen tray pointer
Fixes a potential crash that can happen if the system tray is not
initialized for whatever reason.
2019-05-01 12:11:29 -07:00
Jim 5781605289
Merge pull request #1847 from cg2121/scene-copy-paste-filters
UI: Add ability to copy/paste scene filters
2019-04-23 18:18:10 -07:00
Clayton Groeneveld 2940c80f49 UI: Add ability to copy/paste scene filters 2019-04-23 06:46:04 -05:00
guangong7628 16cc60587f UI: Fix unable to escape when renaming scene
Fixes https://obsproject.com/mantis/view.php?id=1443
2019-04-23 04:20:49 -07:00
Clayton Groeneveld ed5fdde059 UI: Fix preview/program label alignment 2019-04-22 03:08:35 -05:00
Richard Stanway 90df9ea290 UI: Update error message severity levels and show additional info 2019-04-19 05:45:19 -07:00
Clayton Groeneveld e89283d172 UI: Add hotkey to toggle preview 2019-04-14 04:51:34 -07:00
Jim b2bc1e159b
Merge pull request #1589 from caffeinetv/minor-improvements
Minor improvements
2019-04-14 03:43:05 -07:00
Clayton Groeneveld 977dea4ff0 UI: Add ability to center items vertically/horizontally 2019-04-08 22:52:39 -07:00
Jim b5cc26a918
Merge pull request #1814 from torresam/rename-autoselect
UI: Autoselect text on scene/source rename
2019-04-08 13:14:22 -07:00
Jim 298901d710
Merge pull request #1797 from WizardCM/log-groupitems
UI: Log group items on startup
2019-04-08 02:29:14 -07:00
Anthony Torres bd71839259 UI: Add text autoselect on scene rename 2019-04-08 02:14:06 -07:00
James Park 21f4dd63d4 libobs: UI: Use graphics debug markers
Add D3D/GL debug markers to make RenderDoc captures easier to tranverse.

Also add obs_source_get_name_no_null() to avoid boilerplate for safe
string formatting.

Closes obsproject/obs-studio#1799
2019-04-08 02:05:37 -07:00
jp9000 739072fdcb UI: Do not show [x] (close) for primary dock widgets
This solves the issue of users who close the primary dock widgets and
can't figure out how to get them back, who for whatever reason choose
not to read the message box when closing dock widgets that tells them
how to get it back.  The users can still hide the primary dock widgets
via the View menu, but they can no longer close them via the [x] button
on the dock widget.  This change does not apply to secondary dock
widgets, such as a chat window, stats, etc.

Closes obsproject/obs-studio#1804
2019-04-03 09:55:27 -07:00
Matt Gajownik 2feb0f0c5d UI: Log group items on startup 2019-04-01 18:51:36 +11:00
Clayton Groeneveld e321005b02 UI: Fix issue where space/esc hotkeys would be blank
This also modifies libobs.

This only happened on Linux.

Fixes https://obsproject.com/mantis/view.php?id=1018
2019-03-31 05:10:02 -05:00
jp9000 29a1a97392 UI: Don't open settings or close in event subloop
Fixes a crash that can happen if you try to use the settings window
while in an even subloop, or if you try to close OBS while in an event
subloop.  Continually retries (defers) the actions every one second
until the subloop has finished.
2019-03-26 22:05:52 -07:00
SoftArch de66aeab68 UI: Add Restream integration
Closes obsproject/obs-studio#1768
2019-03-25 19:13:27 -07:00
Colin Edwards 55c1b5bd7b
Merge pull request #1736 from cg2121/icons-from-theme
UI: Use icons from theme on Linux
2019-03-19 19:25:42 -05:00
Clayton Groeneveld 2080051b9f UI: Use icons from theme on Linux 2019-03-16 05:41:12 -05:00
James Park 8b1d701b27 UI: Remove Area downscale filter option
Originally added for completeness but wasn't actually implemented
correctly. Can be added back later if desired.
2019-03-14 10:05:50 -07:00
Colin Edwards 5c16a96770
Merge pull request #1715 from jpark37/area-filter
Add "Area" scale filter
2019-03-13 23:30:25 -05:00
Colin Edwards 1dc3edc805
Merge pull request #1694 from cg2121/audio-mixer-copy-filters
UI: Add ability to copy & paste filters from the mixer
2019-03-13 22:13:54 -05:00
Colin Edwards 0377a34095
Merge pull request #1725 from derrod/bwtest-cbox
UI: Add checkbox for Twitch bandwidth test mode
2019-03-11 23:37:23 -05:00
derrod 4595d49e98 UI: Add confirmation dialog for bandwidth test mode 2019-03-10 08:37:29 +01:00
Gol-D-Ace 7c0620b54f UI: Add PAL 25 & 50 FPS as common FPS values 2019-03-10 08:31:08 +01:00
Clayton Groeneveld e5cca6b2a5 UI: Fix yes/no not using localization in no source dialog 2019-03-09 03:49:58 -06:00
James Park 7d811499e0 Add "Area" scale filter
This new scale filter computes pixels by weighing the coverage area of
source pixels over the target pixel. This algorithm works well for both
upsampling and downsampling, but was mainly designed to upscale
high-quality low-resolution sources like RGB/HDMI retro consoles. I've
heard of people using odd workarounds like scaling up to very high
resolutions before scaling back down to preserve pixel shartpness. This
algorithm directly addresses this use-case in a much more direct
fashion.

The Area scale filter does a better job of preserving the thickness of
thin features than the Point filter.

The Area scale filter does not look at source pixels that lie outside
of the target pixel, leading to a much sharper image than Bilinear,
Bicubic, and Lanczos filters.

This filter should interpolate pixels in linear space, but OBS is not
equipped to do that at the moment.

libobs: Add GPU effect, and wire up scene serialization.

obs-filters: Add Area as an option for scale_filter.

UI: Add Area as an option for both scene items, and canvas downscaling.
2019-03-06 20:53:15 -08:00
jp9000 ac651aa492 UI: Fix "What's New" showing again each patch version 2019-03-06 19:13:12 -08:00
jp9000 4450843aa0 UI: Warn when closing dock widgets for first time
Users don't realize that dockable windows can be closed (hidden) and can
be shown again via the View menu.  This adds an explicit warning when
the user first closes a dockable window for their first time.  In future
versions, this should be changed to a dialog box with a "Do not show
again" checkbox.
2019-03-05 14:39:24 -08:00
Colin Edwards ed374645aa
Merge pull request #1703 from cg2121/preview-program-labels
UI: Add preview/program labels in studio mode
2019-03-03 22:42:38 -06:00