Commit Graph

2339 Commits (a4c215869f5ee2c8e9d5ca8be0c8b21c5aac6354)

Author SHA1 Message Date
tt2468 71d7b6855d UI: Refresh source tree when an item source is removed
Previously, calling `obs_source_remove()` on an input would not fully
remove it if there was a scene item of the input on the current scene.

Now, when calling `obs_source_remove()` and there is a scene item of
the removed input on the current scene, the UI refreshes the scene
items, allowing the scene item to be released completely and the
input destroyed.
2021-11-20 19:58:38 -08:00
Ryan Foster 651f01cfef UI: Import Streamlabs Screen Capture source type
Add support for importing the Screen Capture source type from Streamlabs
scene collections. Since the Screen Capture source type is essentially
an abstraction layer for Display Capture, Game Capture, and Window
Capture, this adds some translation logic to translate Screen Capture
sources into one of those source types.
2021-11-21 14:46:14 +13:00
Clayton Groeneveld 8d349ea4aa obs-frontend-api: Add scripting shutdown event
This event is for when scripts need to know when OBS is exiting.
Currently scripts are destroyed before the current exit event.
2021-11-15 10:20:55 -08:00
tt2468 22fa8f8bb0 UI: Add obs_frontend_get_current_record_output_path()
Returns the current path of the record output.
2021-11-13 16:05:52 -08:00
Kurt Kartaltepe 293b7951ed UI: Update python linkage for older compilers
Move the python linkage after the obs target is defined so that we can
also add linker flags to preserve the unused python linkage. This is
required before GCC 11.
2021-11-13 16:00:09 -08:00
Kurt Kartaltepe 1017cd5430 UI: Link python when obs-scripting python is enabled
This fixes #2222 by ensuring python symbols are in the global symbol
table through a direct linkage to the executable. When python is
normally linked via frontend-tools.so its symbols are not global since
we dlopen frontend-tools.so. This causes issues for native python
modules which stopped directly linking python around 3.8 as the symbols
will not resolve.

This is pretty much a hack, but it minimizes the number of extra symbols
we add and hopefully isnt too terrible to maintain.
2021-11-10 14:36:26 -08:00
Anthony Torres fd500f15a3 UI: Apply transforms/crops correctly to sources on paste
Applies transformations correctly to copy/pasted sources when copy and
pasting multiple. Previously the transformation/crop state was stored in
a single variable on copy so it would only apply the transformations to
one of the selected sources on paste instead of what the state was when
copied.
2021-11-10 14:22:45 -08:00
gxalpha 577d6f1614 UI: Add undo/redo for resetting filters properties 2021-11-10 08:10:16 -08:00
tt2468 feda1aaa28 UI: Add `_CHANGING` frontend events
Adds the following events:
- `OBS_FRONTEND_EVENT_SCENE_COLLECTION_CHANGING`
- `OBS_FRONTEND_EVENT_PROFILE_CHANGING`

Both emitted right before the change occurs. Can provide plugins with
better awareness of these critical operations happening, so that they
can react accordingly.
2021-11-10 06:36:23 -08:00
Mike 9267c7e53d UI: Update Edit Transform dialog on scene switch
Closes obsproject/obs-studio#4312
2021-11-10 06:08:48 -08:00
gxalpha a7e0affd36 UI: Don't load existing sources for scene removal undo 2021-11-06 15:08:17 -07:00
gxalpha 509e44d6ea UI: Add undo/redo for context bar text changes 2021-11-06 14:43:58 -07:00
Clayton Groeneveld af6c719139 UI, libobs, obs-plugins: Fix compiler warnings
Found warnings when compiling OBS.
2021-11-04 06:25:52 -07:00
gxalpha c565bcaf54 UI: Set correct text in system tray on startup
The system tray assumed all outputs are inactive when it's initiated,
however outputs can be active if started via command line options. This
caused the wrong (only) text to be set if the output was in fact active.
2021-11-04 03:40:17 -07:00
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
gxalpha 01d91ee600 UI: Focus correct filter list when opening filter view
When the filter view is created, the first item of the asyncFilters list
would be selected (if the source supports asyncFilters) and have its
properties shown.
This means that when no items were in the asyncFilters list, no
properties would be shown, even if an effect filter was present.

Adds a check to focus the effectFilters list in case there are only
effect filters, which makes the correct properties appear.
2021-11-02 10:33:23 -07:00
gxalpha 25204b3e68 UI: Focus filter list when adding new filter
Fixes an issue where the defaults button wouldn't work since the wrong
list is in focus.
2021-11-02 10:33:23 -07:00
derrod 92f5afae51 UI: Migrate to Helix Twitch API 2021-10-27 14:14:17 -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
furious 0c1524b53c UI: Add Hotkey filter search and duplicate detection 2021-10-24 08:39:53 -07:00
Grant Likely 0ac286bc27 Themes: Specify QListView instead of QListWidget
Plugins using a QListView widget (e.g. obs-ptz) do not get the theme
settings that are applied to QListWidget. However, QListWidget directly
inherits from QListView, so a theme specifying the QListView will also
get applied to QListWidget. Change the themes to all specify QListView
so that theming is consistent.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2021-10-24 02:23:55 -07:00
Jim 355eb4b8df
Merge pull request #5269 from jpark37/wasapi-cleanup
win-wasapi: WASAPISource improvements
2021-10-24 02:16:40 -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
Matt Gajownik ffa733bd7f UI: Remove duplicate minimum width definition 2021-10-24 19:33:09 +11:00
Jim 5a9d4d1b26
Merge pull request #5411 from derrod/yt-fixes
More YouTube fixes
2021-10-24 00:47:51 -07:00
Matt Gajownik b03dc67a62 UI: Clean up XML warnings in layout files 2021-10-24 00:42:05 -07:00
Matt Gajownik 2568a5106d UI: Add Qt XML Schema definitions for validation
As all the .ui files follow a set schema, providing a way to validate
that schema is useful for manual XML modifications.

XML-Schema-Qt5.15.xsd source: https://doc.qt.io/qt-5/designer-ui-file-format.html
Note: some lines had to be commented out as they are not valid in XSD.
When a new version of Qt is used, compare the diff and update as necessary.

This file doesn't do anything on its own, but can be paired with an IDE
or a standalone linter to perform validation.
2021-10-24 00:42:05 -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
Morgan Rose ccdf624c44 UI: Refactor Frontend API and header
Moved getters to be before setters. Moved functions in cpp file to match the order of their declarations in the header file.
2021-10-24 00:17:22 -07:00
Clayton Groeneveld dae03c8a9f UI: Change position of filters defaults button
The button was not on the left side, as other default buttons are in
the UI.
2021-10-24 00:11:54 -07:00
Clayton Groeneveld bb43a6fa7c UI: Make transition duration suffixes consistent
The suffixes for the source and override transition durations
were not consistent with the transition dock duration.
2021-10-24 00:10:45 -07:00
Matt Gajownik 8f1d2458bf decklink-captions: Build with Windows file descriptor
Additional details: #1944
2021-10-17 18:25:58 +11:00
James Beddek 5fccf86b07 UI: Fix build with Clang and libc++
std::bind conflicts with extern int bind defined in socket.h

Signed-off-by: James Beddek <telans@posteo.de>
2021-10-16 16:14:32 -07:00
VodBox 19ced32c58 UI: Translate to current OS for all colection imports
Importers are written to convert third-party collection formats to a
Windows OBS scene collection. The Studio importer is capable of
translating scene collections to the correct types for the current
operating system. This change makes it so all imports will be ran
through the Studio translation, not just Studio and SL collections.
2021-10-16 15:34:53 -07:00
VodBox 8a132ad69f UI: Resolve relative paths on scene collection import
This change makes it so any strings in a scene collection that start
with "./" are checked as being a relative path. As long as the resulting
absolute path is contained within the same directory as the collection
being imported, it will be replaced with an absolute path.

This allows scene collections to be effectively "packaged" with assets,
so long as the assets are contained somewhere within the folder the
collection is being imported from.
2021-10-16 15:34:53 -07:00
gxalpha 5c26bf06f0 UI: Use correct color property for freetype in toolbar 2021-10-16 15:30:41 -07:00
gxalpha 4bd69bf46e UI: Make toolbar color selectors respect alpha 2021-10-16 15:30:41 -07:00
gxalpha 8f0964c2dd UI: Don't save defaults in oldSettings in properties
The default settings were saved in the oldSettings variable of the
properties dialog in `86eb7ae` to be able to restore default settings in
undo/redo, but this doesn't actually do anything.
Besides this, it introduced a bug where clicking "Cancel" in the
properties dialog would save all settings, including default ones, as
well as a bug where not changing anything in the properties dialog would
still add an undo action.
2021-10-16 15:07:13 -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
derrod bd45d46c3c UI: Fix YT broadcast start/stop failing due to redundant transition/reset
- If the stream is already live or going live, do not reset or
  transition
- If the stream is testing, transition but do not reset
- If the stream is starting a test, error out since this can take a
  while
- If the attempted transition was redunant, still return a success

Fixes #5403
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 86b607154a UI: Add support for real-time work queue 2021-10-10 19:53:27 -07:00
jpark37 64cb26d03d UI: Tuck variable inside macro guard 2021-10-10 19:12:45 -07:00
jpark37 e181a23bed UI: Remove NOMINMAX from CMake scripts
If we want NOMINMAX globally, we should probably define at top level.
2021-10-10 19:12:45 -07:00
jpark37 c93b040d0d UI: Use patterns that avoid std::min/max
New code is cleaner anyway.
2021-10-10 19:12:45 -07:00
Matt Gajownik 4681e10fdf UI: Improve installer, add release notes & Quickstart link
* Use AppName & AppVersion consistently in Installer
* Update various strings in installer
* Remove duplicate icon file for installer
2021-10-10 17:19:10 +11:00
Matt Gajownik 115973b1ed UI: Log compiled & runtime Qt versions 2021-10-10 10:21:19 +11:00
Mike e6a3d2b8f2 UI: Add restart message on profile change
When a profile changes settings that require a restart, show a dialog to
ask the user whether they'd like to restart.

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

Closes obsproject/obs-studio#3207
2021-10-07 11:49:21 -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
Norihiro Kamae 669a615983 UI: Fix tab stop order for Draw safe areas
A tabstop definition was missing on the commit afd58a78e.
2021-10-02 06:00:23 -07:00
derrod a18178f631 UI: Do not disable AutoConf bandwidth test for YouTube
Also code-cleanup
2021-10-02 05:55:53 -07:00
derrod 7d6b61ad8c UI: Fix Twitch bandwidth test checkbox 2021-10-02 05:42:59 +02:00
Richard Stanway 4395005a24 UI: Remove thread from YouTube auto config
This was causing crashes on auto config dialog creation, as Qt GUI
objects can only be safely accessed from the main thread. Fixes #5364.
2021-10-01 13:57:48 -07:00
Warchamp7 1d040a8c66 UI: Adjust minimum size of source toolbars smaller
#5187 added a minimum size enforcement on the source toolbar to ensure
it remains functional at lower window sizes.

That minimum size was set to 800 pixels, which causes issues for
users on 1366x768 monitors in a vertical orientation.

This is still a rather common resolution, so this reduces the minimum
size below 768
2021-10-01 09:37:54 -07:00
derrod 698ed54870 UI: Add missing Auth::Load() when duplicating/creating profile 2021-09-27 18:42:01 +02:00
Vainock 11a690b038 Update translations from Crowdin 2021-09-24 09:42:08 -07:00
jp9000 2be0d6b8ef Revert "UI: Update volume controls by callback"
This reverts commit 0a3cd8fbf6.

Causes volume levels to freeze if audio stops.
2021-09-23 09:27:30 -07:00
Ryan Foster 10810d9730 UI: Prevent Restream OAuth disconnection
Fix the service check for services where its name in the UI does not
match its Auth::Def service string.

In Restream's case, the service name in the UI and rtmp-services is
"Restream.io" while the service name in its Auth::Def is "Restream".
This mismatch causes the `service_check` bool to be false, whereas the
previous condition (`!!main->auth && service.find(main->auth->service())
!= std::string::npos`) would have evaluated to true.

This was broken in commit e6f1daab8c.

Fixes GitHub Issue 5290.
2021-09-22 22:56:41 +02:00
jp9000 c459e8954c UI: Fix enter/esc when hotkeys are disabled in focus
Fixes an issue where enter/escape/return would not work in the program
if hotkeys were disabled while in focus. No other known keys were
affected by this filter issue.
2021-09-20 08:19:13 -07:00
jp9000 a73586b8b1 UI: Use STL random as fallback
For Linux distros still living in the stone ages, use the old
randomization code. Fixes CI not building. We can change it later when
we finalize good random stuff.
2021-09-17 02:59:21 -07:00
derrod 8c9bb3a84b UI: Fix AuthListener error HTTP response body 2021-09-16 15:03:28 +02:00
derrod 37ab69aa46 UI: Abort YouTube login on cancel or listener fail 2021-09-16 14:56:46 +02: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
Matt Gajownik 8265a8653f UI: Remove test YouTube QSS from Dark theme 2021-09-16 19:00:45 +10:00
jp9000 27efd76125 UI: Add label/widget buddying to YouTube dialog
Adds missing label/widget buddying to the appropriate widgets within the
YouTube Actions dialog.

Closes obsproject/obs-studio#5284
2021-09-15 06:32:28 -07:00
Richard Stanway 4687e99563 UI: Use secure RNG for generating YouTube state parameter
mt19937 is a deterministic RNG and was not seeded, so the state
parameter was identical for all runs. Switch to using Qt's
QRandomGenerator::system() which is implemented as a CSPRNG on
all platforms we care about.
2021-09-15 06:16:29 -07:00
Richard Stanway 0a13ce851d UI: Properly verify state parameter for YouTube auth
Very low risk of anything bad here since we use a random port and the
chance of a CSRF attack is tiny, but this is a best practie to do when
using OAuth.
2021-09-15 06:16:29 -07:00
Warchamp7 1588357583 UI: Update Acri theme styling
Adds new styling for checked buttons when
they are pressed or hovered

Adds a hover styling for dropdown boxes
2021-09-15 19:22:48 +10:00
Warchamp7 3909c311f1 UI: Update dark theme button styling
Reorder styling so that checked buttons can still
get hover styling.

Add a distinct background color for disabled
buttons. Fixes the text being the same color
as the button when disabled.
2021-09-15 19:22:48 +10:00
Jim 7d5c11de2d
Merge pull request #5216 from derrod/yt-thumbnail-upload
UI: Add Thumbnail uploading to YouTube integration
2021-09-15 00:26:56 -07:00
derrod 7f2efbdb28 UI: Fix loading auto start/stop setting in YT dialog
The checkboxes need to be enabled for setting the checked state to
succeed.
2021-09-15 08:16:40 +02:00
derrod 39bbbb41dc UI: Add thumbnail option to YouTube broadcast setup 2021-09-15 07:49:39 +02:00
derrod 2dd8049aef UI: Add postDataSize option to GetRemoteText
In order to be able to POST binary data that may contain NULL-bytes we
must manually specify the size of the array, otherwise cURL will fall
back to `strlen()`.
2021-09-15 07:44:55 +02: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 1f504c6ba4 UI: Fix used source for SetCurrentScene during undo 2021-09-13 19:17:11 +10: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
jpark37 4614c0574e UI/updater: Remove dependency on psapi.lib 2021-09-12 14:10:36 -07:00
derrod 136ff7b8a3 UI: Check selected broadcast when re-opening YT dialog 2021-09-12 19:58:01 +02:00
derrod 2535414923 UI: Change YouTube Broadcast Dialog title
Also uses cached username rather than making an API request.
2021-09-12 19:57:28 +02:00
derrod 35602e3249 UI: Add remember settings checkbox to YT broadcast setup
Co-authored-by: cg2121 <claytong1214@gmail.com>
2021-09-12 13:45:55 +02:00
derrod ca3f244584 UI: Rework YouTube broadcast setup flow 2021-09-12 13:45:51 +02:00
Tommy Vercetti 5912074271 UI: Add -DNOMINMAX to CMake on MSVC 2021-09-11 15:50:06 -07:00
derrod 1e98c9a0be UI: Disable reconnect for bandwidth test
Trying to reconnect would cause a hard crash of OBS rather than going to
the failed state. Therefore disable reconnects when doing bandwidth
testing.
2021-09-10 10:26:13 -07:00
derrod 85f9a8661b UI: Enable AutoConfig bandwidth test for YT integration 2021-09-10 10:26:13 -07: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
Ryan Foster fd2aaf92b9 UI: Fix Qt6-incompatible call to QLocale::setDefault
The YouTube integration changes introduced code that does not build on
Qt6. The errors were:

 * void QLocale::setDefault(const QLocale &)': cannot convert argument 1
   from 'QString' to 'const QLocale &'

 * no suitable user-defined conversion from "QString" to "const QLocale"
   exists

This commit creates a new QLocale in place from a QString using the
`QLocale(const QString &name)` constructor, and passing that QLocale to
QLocale::setDefault.
2021-09-10 10:23:24 -07:00
jpark37 0a3cd8fbf6 UI: Update volume controls by callback
Gets rid of the time-critical timeSetEvent thread on Windows.
2021-09-10 10:21:19 -07:00
derrod e2b7597fb0 UI: Fix YT chat being shown when selecting private event 2021-09-05 10:30:20 +02: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 ee30a83a6f UI: Remove obsolete/unused struct members 2021-09-04 01:58:38 -07:00
derrod d5f3ddabd1 UI: Restore auth reset when switching services
Fixes #5236
2021-09-04 01:58:38 -07:00
derrod 79e21eaea3 UI: Remove unused struct 2021-09-04 01:58:38 -07:00
Warchamp7 6995a7b5ae UI: Fix vertical stretching in audio settings pane
The fixes in #5143 caused the audio pane in settings
to stretch out to fit the available space.

Add a spacer so the pane only uses the space it needs.
2021-09-03 21:28:16 -07:00
derrod a04bd742d7 UI: Use OBS locale for YouTube categories API 2021-08-31 17:59:51 -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
derrod c52d127286 UI: Actually set AutoConfig bitrate max to 51 Mbps
Somebody snuck in an extra 0...
2021-08-30 13:50:12 +02:00
derrod fe34a4f974 UI: Change YouTube description input to QPlainTextEdit 2021-08-29 22:55:59 -07:00
derrod d16af0180d UI: Bump AutoConfig bitrate maximum to 51 Mbps
Several of the services included in OBS support bitrates higher than
10,000 kbps, YouTube being the new maximum at 51,000.
2021-08-30 03:29:08 +02:00
derrod 7ae6f328a1 UI: Add missing properties to ResetBroadcast 2021-08-29 01:19:16 +02:00
Exeldro ffa9cd15e4 UI: Fix crash when output source 0 is null 2021-08-28 01:45:28 -07:00
Warchamp7 b34e6ae76b UI: Fix disabled auto-start/stop checkboxes
The YouTube integration auto-start and auto-stop checkboxes are only
made visible when scheduling an event. However, they are disabled by
default so users can't change them when they're visible.

I suspect these checkboxes used to always be visible and were on an
enable/disable flip which got changed to a visibility flip.
2021-08-27 13:01:10 +02:00
Clayton Groeneveld 6c10e9c3ac UI: Update png to svg in ui files
The icons in the main and filter ui files, were still using
png instead of svg.
2021-08-25 19:54:52 -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 6e566f9b23 UI: Adjust minimum size of source toolbars
Sets a minimum size on the source toolbar itself to prevent shrinking the main window too small for it to be useable in some cases.

Also sets some sane limits on the toolbars with dropdown menus and the image source toolbar filepath
2021-08-25 02:09:51 -07:00
jp9000 8f97e32227 UI: Allow overriding keyframe interval if smaller
Allows the ability to override the default keyframe interval via
advanced output mode as long as that interval is smaller than the
recommended keyframe interval.

Fixes an issue where it was impossible to set a lower keyframe interval
than the recommended keyframe interval.
2021-08-24 19:41:43 -07:00
jp9000 a6fdc47535 UI: Cache YouTube channel name
This prevents having to look up the YouTube channel every time the
settings window is opened.

Closes obsproject/obs-studio#5154
2021-08-24 18:44:34 -07:00
Warchamp7 e5dd5b4595 UI: Adjustments to YouTube integration strings
Various tweaks to phrasing, casing, and consistency with other places in the UI
2021-08-23 21:56:11 -07:00
derrod 18f40be820 UI: Add YouTube Chat Dock
Since embedded browsers are no longer allowed to log into Google from the chat
dock is effectively read-only.
To prevent users from even trying to log in the input field is hidden
via custom CSS.
2021-08-23 18:28:23 -07:00
Matt Gajownik 6e6263b185 UI: Fix incorrect OBSTheme definition for highlighted text color 2021-08-23 17:14:22 -07:00
Matt Gajownik e03aeb9bfd UI: Use Palette in all default themes
This also replaces hex colours with RGB.
2021-08-23 17:14:22 -07:00
Matt Gajownik 58caf406cd UI: Load theme palette before loading theme
This ensures the theme loads its own palette colours rather than default.
2021-08-23 17:14:22 -07:00
Warchamp7 ba616fbac2 UI: Add styling for YouTube integration 2021-08-23 06:16:38 -07:00
Richard Stanway f131c0c36b UI: Use inline const for shared vector
Issue detected by PVS Studio.
2021-08-22 17:12:00 -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 5968119c61 UI: Hide auto-start/auto-stop options in YouTube dialog
Having these widgets visible but disabled will only serve to confuse
users, so these widgets don't even need to be visible if the user isn't
performing a scheduled broadcast. There really isn't a purpose in having
them visible.
2021-08-21 06:51:46 -07:00
jp9000 bbad7f3e1f UI: Replace bad YouTube link with popup helper
The helper link associated with starting a scheduled broadcast was not
helpful, as it linked to developer API documentation. Instead, have the
helper widget pop up a tooltip so the user understands what it is doing,
and adjust the wording slightly so that the user knows it's a setting
primarily used for scheduled broadcasts (normal streams always start
right away)
2021-08-21 06:49:34 -07: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
jp9000 fbbe193c59 UI: Add required links when using YouTube
These links are required by Google to be shown on any API client when
using Google/YouTube API.
2021-08-20 06:24:00 -07:00
Richard Stanway e8d4de6bec decklink-output-ui: Don't update UI during shutdown
Fixes a crash on exit if the user exited with the outputs running as the
parent window will have already destroyed doUI.
2021-08-19 00:04:52 +02:00
gxalpha 981e7f7079 UI: Fix redo recreating sources in the wrong scene
Fixes an issue where if creating a new source was re-done from a
different scene, the source would be created first in that scene and
then OBS would switch to the scene where the source originally was
created.
Changes the order of these two operations, which makes OBS create the
source in the correct scene.
2021-08-18 11:16:14 -07:00
Jim 6c106893b9
Merge pull request #5143 from Warchamp7/ui-form-cleanup
UI: Clean up other UI form file markup
2021-08-18 06:49:00 -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
derrod 4ef2a79a19 UI: Show loading indicator while fetching YouTube Events 2021-08-17 18:35:55 +02:00
derrod a4d37dba73 UI: Fix YouTube event selection, API usage, stream resumption
All these fixes are interlinked but to explain them further:
Event selection would only partially work, the code to re-use an
existing liveStream was never hit and so didn't work. It would also
break going live because broadcast_id would never be set. Additionally
it called StartBroadcast for no reason if autostart was enabled.

API usage was unoptimal. Instead of only fetching the events we need
(active, ready) it would fetch *every single livestream* on the youtube
channel, 7 at a time, and then throw away every single result in the
majority of use cases.
This commit changes it to only fetch "active" and "ready" broadcasts and
then only filters out active ones that cannot be resumed (because
they're stil live).

Resuming existing streams also didn't work because they were just thrown
out by the selection. Now they get included if the attached liveStream
is not receiving data. The're distinguished in the UI and are listed
first. Simply selecting them and starting the stream will work.

These's still some stuff left, like redundant API calls. But thankfully
those fail silently and we can simply ignore it for now.
2021-08-17 18:35:55 +02:00
derrod e212acf025 UI: Improve YouTube (error) translatability
Adds the ability to provide translated messages for YouTube API erorr
reasons.

Also adds translation for various internal errors that were previously
hardcoded to english.

Minor changes to existing translation strings to improve
translatability.
2021-08-17 18:35:55 +02:00
derrod 9b57490e2c UI: Show error if Google account has no channels 2021-08-17 18:35:55 +02:00
derrod db368b5afc UI: Improve YouTube API HTTP error handling 2021-08-17 18:35:55 +02:00
derrod 64b21ad12f UI: Add fail_on_error parameter to GetRemoteFile
CURLOPT_FAILONERROR swallows the body of 40X responses,
but in some cases we want to read the body for error details.
2021-08-17 18:35:55 +02:00
gxalpha 85891630b3 UI: Dim hidden source items in source tree
Dims the items of hidden sources in the sources dock to make it more
obvious that they are not visible. Both the icon and the sources name
are affected.
2021-08-17 08:24:28 -07:00
jp9000 7fffca945e Revert "UI: Remove macOS-Default Full Screen Menu Item"
This reverts commit cf445be44c.

Did not mean to merge this. #4768
2021-08-17 06:00:53 -07:00
gxalpha cf445be44c UI: Remove macOS-Default Full Screen Menu Item
macOS looks if the NSUserDefault NSFullScreenMenuItemEverywhere is set
to true, and if it is, it adds its own full screen menu item.
Sets this NSUserDefault to false since it defaults to true.
2021-08-17 05:58:29 -07:00
Warchamp7 6f90380ec2 UI: Show name of scene item in Transform window title 2021-08-17 05:54:29 -07:00
Warchamp7 4d1862d3c6 UI: Fix media controls toolbar default size and styling 2021-08-17 04:11:36 -07:00
Warchamp7 dca7fadf51 UI: Change the Source Toolbar to not be fixed size
This is part of a larger pass I'll be making over the UI to make it behave better with qss

The Source Toolbar previously had a fixed height that made styling it difficult. It now takes up the minimum amount of space it needs, but can grow to accommodate larger buttons, padding, etc.
2021-08-17 04:11:36 -07:00
Warchamp7 a48f87c057 UI: Change QWidgets to QFrame so Qt Creator doesn't hide these entries
QWidgets that contain property definitions as well as a layout child item do not properly show up in the Qt Creator hierarchy.

These properties are still invisibly applied but the QWidgets are not shown in Qt Creator and will get removed from the file after saving.
2021-08-17 04:11:36 -07:00
gxalpha 5db62af907 UI: Apply QSS to generic hotkey settings label
Fixes an issue where in the hotkey settings, some header labels wouldn't
be styled as intended.
2021-08-17 04:11:14 -07:00
Ryan Foster ea9c75bacb cmake: Remove local files for checking threading support
These local copies of CheckForPthreads.c and FindThreads.cmake override
the ones included with CMake. These versions create CMake::Threads, but
Qt6 expects Threads::Threads created by CMake 3.1+. These local versions
seem to be based on old copies from CMake from late 2014 with some
customizations. Let's just use the built-in ones that CMake ships.

This commit also changes CMakeLists.txt files in UI and libobs to
require and link to Threads::Threads.

Co-authored-by: Kurt Kartaltepe <kkartaltepe@gmail.com>
2021-08-17 02:46:09 -07:00
Warchamp7 592570bb2b UI: Clean up Update form markup
Small whitespace fix
2021-08-17 05:44:29 -04:00
Warchamp7 95cdc0eba2 UI: Clean up Remux form markup
Minor alphabetical rearrange by Qt Creator
2021-08-17 05:43:36 -04:00
Warchamp7 7deba80aaf UI: Clean up Missing Files form markup
Minor alphabetical rearrange by Qt Creator
2021-08-17 05:43:09 -04:00
Warchamp7 e324b69c9f UI: Clean up Importer form markup
Minor alphabetical rearrange by Qt Creator
2021-08-17 05:42:05 -04:00
Warchamp7 1d48fc0a0e UI: Clean up Custom Browser Docks form markup
Minor alphabetical rearrange by Qt Creator
2021-08-17 05:41:30 -04:00
Warchamp7 2233e3450d UI: Clean up Transform form markup
Fixes some QWidgets that Qt Creator tries to clobber. As a result, there is a new spacer added now to ensure the controls remain grouped at the top of the window.
2021-08-17 05:38:23 -04:00
Warchamp7 592e404df5 UI: Clean up Interact form markup
This re-adds the native attribute for the OBSQTDisplay that was removed in #3782. I believe this particular removal was an error, and there is no way around this entry being native since OBSQTDisplay extends QWidget
2021-08-17 04:25:20 -04:00
Warchamp7 c4edb9a07f UI: Clean up Filters form markup
Fixes some QWidgets that Qt Creator tries to clobber. As a result, there are a couple spacers added now for the toolbars to align properly and a stretch policy on the main layout.

This re-adds the native attribute for the OBSQTDisplay that was removed in #3782. I believe this particular removal was an error, and there is no way around this entry being native since OBSQTDisplay extends QWidget
2021-08-17 04:23:08 -04:00
Warchamp7 092d03afd5 UI: Clean up About form markup 2021-08-17 02:08:28 -04:00
Warchamp7 3b52bbad61 UI: Clean up AutoConfig form markup 2021-08-17 02:08:08 -04:00
Warchamp7 47e370682b UI: Clean up toolbar form markup 2021-08-17 01:49:20 -04:00
Warchamp7 59ed4131a8 UI: Clean up Settings form markup
This continues work from #5133 to correct UI file markup and save correctly in Qt Creator

Defining alignment as an attribute in the <item> tag seems to be old behaviour that current versions of Qt Creator do not respect and will clobber these entries on save.

The correct approach is to have alignment as a property element in the widget.

As well, QWidgets that contain property definitions as well as a layout child item do not properly show up in the Qt Creator hierarchy.

These properties are still invisibly applied but the QWidgets are not shown in Qt Creator and will get removed from the file after saving.
2021-08-17 01:41:57 -04:00
Ryan Foster e13e46839f UI: Query rtmp-services for stream key link URLs
Using the newly added stream key links in services.json from
rtmp-services, we can fetch the URLs from that source instead of
hardcoding them here. This allows us to remove service-specific code
from UI code and allows out-of-band updates to these URLs.
2021-08-16 09:48:14 -07: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 ee67228a94 UI: Fix compiler error
I probably should have at least compiled this before pushing a commit.
2021-08-15 06:55:15 -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 2f07107e88 frontend-tools: Fix crash on shutdown 2021-08-15 05:51:32 -07:00
derrod ea271f9d91 UI: Create YouTube LiveStream objects as non-reusable 2021-08-15 05:06:28 -07:00
tytan652 47df2467e9 UI: Force Wayland usage under Wayland session
Qt doesn't use the Wayland platform on GNOME, so we have to
force it using the QT_QPA_PLATFORM env var. It's still possible to
use other QPA platforms using this env var, or the -platform command
line option.

qt5-wayland is now a required dependency for OBS on Linux (or FreeBSD).

Co-authored-by: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
2021-08-15 05:05:29 -07:00
Richard Stanway 7217671eb0 UI: Trim custom server string
Spaces in the URL can cause issues as ffmpeg-mux is unable to figure
out the protocol. Fixes #5100.
2021-08-12 23:41:14 +02:00
Exeldro 5b18faeb49 UI: Add functions to open properties and filters 2021-08-12 04:31:40 -07:00
Exeldro f0d372bdd7 obs-frontend-api: Send OBS_FRONTEND_EVENT_SCENE_COLLECTION_CLEANUP 2021-08-12 01:33:52 -07:00
jp9000 57ae92206f UI: Fix unused variable outside of #if 2021-08-10 23:16:42 -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
Vainock 674715d369 UI: Replace '&&' with 'and' in YT integration 2021-08-08 16:47:17 +02:00
Jim 5292d1ced2
Merge pull request #5047 from obsproject/obs-yt-integration
YouTube Integration
2021-08-08 00:22:52 -07:00
gxalpha 6f778df158 UI: Show autoremux progress bar
Fixes a bug where the progress bar for autoremuxes wouldn't be made
visible when it started, and only a blank popup window appeared.
2021-08-07 23:17:50 -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
Norihiro Kamae 04b0d632aa UI: Fix da_push_back taking a wrong type of item
A pointer to `OBSSource` was passed to an argument that expect a pointer
to `obs_source_t *`.
Since the current implementation of a class `OBSSource` has a member
`obs_source_t *obj` at first and the class does not have any virtual
member functions, most implementation should work correctly.
2021-07-31 15:29:26 -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
Yuriy Chumak 0654675f32 UI: Add support for external browser OAuth
(Jim note: Adds abstraction to the OAuth class to allow the ability to
perform OAuth via external browser, and adds an AuthListener to act as
the local auth server.)
2021-07-24 15:50:59 -07:00
Yuriy Chumak 63ad0642ae UI: Specify exact service to auth login callbacks
(Jim note: This gives the ability for auth login callbacks to know which
specific service type is being used. For example, with something like
YouTube, there's multiple variants: RTMP, RTMPS, and HLS. This way, the
service login callback can determine how it wants to treat the login
procedure depending on the specific type of service.)
2021-07-24 15:50:59 -07:00
Yuriy Chumak 37b9ece904 UI: Add request type param to GetRemoteText 2021-07-24 15:50:59 -07:00
Yuriy Chumak c4840ddba0 UI: Set Qt locale to current OBS locale
(Jim note: This will cause certain Qt functions to treat string
conversions differently depending on the language. Useful when using Qt
to perform these conversions.)
2021-07-24 15:50:59 -07:00
Yuriy Chumak eb6ba44c8a UI: Include QtNetwork as a direct dependency
(Jim note: Rather than copy the QtNetwork library manually like we were
doing before, this makes it so that QtNetwork is used as a dependency of
the UI. The cmake used to copy the library manually thus us no longer
necessary.)
2021-07-24 15:50:59 -07:00
Richard Stanway f0e3cd1f91 UI: Simplify expressions in GetMonitorName 2021-07-24 23:15:45 +02:00
Richard Stanway 2727dd96bd UI: Handle prefixes when using paths in recording format
The replay buffer and screenshot functions add a prefix to the output
filename. The code in GetFormatString assumed the format string was the
entire filename, and inserted the prefix at the beginning. This caused
illegal paths such as "Screenshot /2021/05/22-35.mkv" to be created if
the user had specified a path in the format string, resulting in lost
files.

This commit inserts the prefix before the last / character to ensure it
only affects the filename portion of the format string.

Fixes #4707
2021-07-24 22:34:44 +02: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
VodBox 394eab050c UI: Fix ambiguous conversion error 2021-07-20 17:34:42 +12:00
VodBox 1102e0b1ee UI: Fix formatting on window-basic-settings.cpp
A requested change on PR #4455 resulted in a formatting error that was
missed before being merged. My bad.
2021-07-20 17:24:16 +12:00
Delta a64328da56
UI: Add "18 Scenes" multiview option
Adds a "18 Scenes" multiview option. The 18 scene view leaves the
preview and program sized to the upper half of the window

Settings index in combobox may not match up with enum index. Settings
in the dropdown can now be ordered separately from the enum order.
2021-07-20 17:16:44 +12:00
gxalpha 09865c2ad4 UI: Fix displayed autoremux file name 2021-07-09 19:52:21 +12:00
SCG82 88cc691afa UI: Add obs-frontend-api functions to create/delete profiles 2021-07-09 19:32:18 +12: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
tt2468 9ca70f4470 UI: Add obs_frontend_get_current_profile_path()
Returns the path of the current profile's location on the filesystem.
2021-07-09 17:39:40 +12:00
Matt Gajownik 74c3781554 libobs, UI: Add support for button properties as links
This adds support for a button property that opens a URL, after showing
a confirmation dialog to the user. Both the Type and URL must be set.
2021-07-09 17:32:09 +12:00
Bruce Zhang 7baf08e917 rtmp-services: add bilibili live 2021-07-08 09:44:28 -07: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
Matt Gajownik cf9899bade UI: Handle HTTP errors for fetching remote files 2021-06-30 01:46:50 -07:00
Matt Gajownik 1517062251 UI: Handle & log HTTP errors for RemoteTextThread
This includes the Patreon fetcher & the log/crash report uploader
2021-06-30 01:46:50 -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
jp9000 f7dcb6afd6 UI: Fix win uninstall not deleting desktop shortcut
The Windows uninstaller was not deleting the desktop shortcut because
the shell context was incorrectly set to "current" for it, causing it to
try to delete in the incorrect location.
2021-06-22 19:05:43 -07:00
Matt Gajownik 3cc4feb8dd UI: Fix code indentation for Edit Undo/Redo 2021-06-13 15:36:22 +10:00
Matt Gajownik dcd491541e UI/installer: Silently install Visual C++ Redist
Requires redistributables in the install build directory.
2021-06-11 23:12:30 -07:00
jpark37 cd5873e9bc UI: Fix unused parameter warning 2021-06-11 07:20:50 -07:00
Translation ef2b1eb1c6 Update translations from Crowdin 2021-06-11 07:18:15 -07:00
jp9000 2d524580fe UI: Fix context bar crash
This crash was caused by the fact that the SourceToolbar::oldData member
variable was not being released correctly. To release an OBSData object,
it must be either destructed, set to a new value, or set to a null
value.
2021-06-10 14:33:32 -07:00
Ryan Foster e0edd753ad UI: Handle mac-vth264 encoder ID change
Before OBS Studio 27, we used our own hard-coded internal encoder IDs on
for the mac-vth264 plugin: vt_h264_hw and vt_h264_sw. As of OBS Studio
27, we changed to using the encoder IDs that Apple's API reports.
Specifically, this behavior occurs due to PR #4105 and commit
6a9f25c8ea.

Unfortunately, this change in encoder IDs failed to take into account
existing user configurations, resulting in users with broken encoder
settings. This change attempts to gracefully upgrade user configurations
to handle the changed encoder IDs.

Fixes #4799.
2021-06-09 17:14:32 -07:00
Exeldro 5998f4cc4d UI: Optimize backup scene for undo/redo 2021-06-08 23:29:17 -07:00
Ford Smith 2ae593860d UI: Fix filters changes not properly being added to undo stack 2021-06-07 21:47:03 -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
jp9000 5b25dec714 Revert "UI: Fix spamming of log when setting current scene"
This reverts commit 9ca7e1cb0f.

Fixes obsproject/obs-studio#4801
2021-06-04 18:56:28 -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 fb42a2ad8c UI: Remove scene collection undo/redo actions 2021-05-30 11:54:46 -07:00
Gol-D-Ace 90df8d44df Update translations from Crowdin 2021-05-30 20:33:35 +02:00
jp9000 dfff6bcfd6 UI: Fix OBS signal recursion
SourceSyncChanged() would call syncOffsetChanged() because it's
connected to the widget.  This is fixed by blocking signals

This bug was discovered because undo/redo actions for sync offset
changes were triggering the creation of new undo/redo actions within
their own callbacks.

Fixes obsproject/obs-studio#4760
2021-05-28 11:29:58 -07:00
Ed Maste 8dd612e37f UI: Correct add_action repeatable arg type
FreeBSD build fix.  repeatable is a bool, so pass false instead of NULL.
2021-05-23 03:34:39 -07:00
jpark37 2dc87dcd7f UI: Fix null string being passed to blog() 2021-05-21 23:45:15 -07:00
jp9000 c4c5b0d21d UI: Add Group/Ungroup Undo/Redo actions 2021-05-21 18:17:09 -07:00
jp9000 64cd451def UI: Do not allow new undo actions while undo disabled 2021-05-21 18:14:59 -07:00
jp9000 008a7372d3 UI: Add OBSBasic::BackupScene() with scene param
Just a little inline helper that automatically converts it to a source
so callers don't have to manually do this each time.
2021-05-21 18:13:19 -07:00
jp9000 7bdd384fd5 UI: Fix hide undo/redo not working with group items
Fixes obsproject/obs-studio#4702
2021-05-17 16:34:56 -07:00
Clayton Groeneveld f4c36460c8 decklink-output-ui: Stop outputs when unloading
When closing OBS, sometimes it would crash if the Decklink outputs
were active.
2021-05-15 14:08:49 -07:00
Clayton Groeneveld b28f99d4cd decklink-output-ui: Render texrender once per frame
To prevent rendering the texrender more than necessary, only
render it once per frame in a tick callback.
2021-05-15 14:08:49 -07:00
Ryan Foster 0a3cd9021b UI: Add versioned sources to scene collection importer
Versioned sources were added in commit
b2302902a3 after the scene collection
importer was added in commit 191165c721.
When a versioned source gets converted in TranslateOSStudio, it can end
up with a translated "id" but an untranslated "versioned_id". When OBS
loads the resulting JSON, it will rely on the versioned_id, and rewrite
the id to the corresponding value. Use obs_get_latest_input_type_id on
the translated source id to get the correct versioned_id when using
TranslateOSStudio.
2021-05-14 20:44:19 -07:00
Ryan Foster 183fb20dde UI: Fix scene collection importer OS translation
The OS translation in the Scene Collection Importer seems to have been
broken since the feature was added because the translated sources were
not added back to the output JSON object. Add the translated sources to
the output JSON object to get the feature to work.
2021-05-14 20:44:19 -07:00
jp9000 8bcb2c3d42 UI: Add paste source undo/redo actions 2021-05-12 22:07:40 -07:00
jp9000 1afe092c6e UI: Add disable push/pop to undo/redo stack
This allows disabling and re-enabling in certain situations where these
actions doing so might end up being used in recursion.
2021-05-12 21:35:11 -07:00
jp9000 edc82eb7cf UI: Use "enabled" instead of "disabled" variable name
Avoids double-negative naming.
2021-05-12 21:35:03 -07:00
jp9000 b86999e133 UI: Rename enable/disable funcs for undo/redo stack 2021-05-12 21:13:56 -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
jp9000 cec8e24630 frontend-plugins: Fix script properties not updating
Fixes a bug where script properties would not update correctly after the
Undo/Redo changes in the properties view. The properties view was using
the wrong callback, and had a bad cast.
2021-05-09 08:45:08 -07:00
jp9000 8ecf634ba7 Revert "rtmp-services: Add Odysee.com"
This reverts commit e876ad6596.
2021-05-09 00:55:16 -07:00
Developer 4e4c460829 rtmp-service: Rename "stream key" for dacast
(Additional note by Jim: Apparently, dacast doesn't use "stream key" for
whatever reason on its website, so this commit apparently changes the
text "Stream Key" to "Encoder Key" or whatever for whatever reason I'll
never know. I guess we need arbitrary names for things these days
because services can't get their names in order or something. Whatever.
I'm seriously tired of dealing with this sort of stuff. Seriously, this
is just dumb. This is dumb, and I wish I wasn't merging it, but at this
point, I'm like, whatever. I don't care. I've stopped caring. Why should
I care anymore? I'm losing it. I am absolutely losing it.)
2021-05-08 19:16:13 -07:00