2170 Commits

Author SHA1 Message Date
derrod
2c7b14bc37 UI: Add UUID to Twitch panel URLs
Some Twitch dashboard panels now require a UUID, it is not used for
anything but local storage right now, and according to Twitch we can
generate it ourselves (or even use a static string). To be safe we can
just use QUuid to generate a "real" UUID and then store it locally until
the user disconnects the account.
2021-12-11 14:39:19 -08:00
Georges Basile Stavracas Neto
ca72f890da UI: Set donation, bugtracker, and translate AppData fields
These are more fields that app stores such as GNOME Software
and Discover show. Nothing fancy, but the more information we
provide, the better it looks!
2021-12-09 17:03:36 -03:00
Richard Stanway
10446c1a0b UI/updater: Explicitly set PSAPI_VERSION=2
If the user didn't set their minimum SDK level this would default to
PSAPI_VERSION=1 which requires psapi.lib (removed in 4614c057).
2021-12-09 02:51:08 +01:00
jp9000
b92e941b4f libobs: Add source cap to hint not to show properties
(This commit also modifies UI)

Adds a source capability flag to indicate that properties should not be
shown on creation
2021-12-07 20:54:37 -08:00
jp9000
0be3524658 UI: Don't show properties on creation if no properties
If a source doesn't have any properties, don't show properties on
creation
2021-12-07 20:54:37 -08:00
Richard Stanway
0438d60499 UI: Remove duplicate translate_button macro call 2021-12-08 02:24:50 +01:00
Colin Edwards
54e5252906
aja: Disable plugin if no devices are found 2021-12-07 18:52:12 -06:00
gxalpha
e6153dae9a UI: Fix unused lambda capture warning 2021-12-04 15:23:07 -08:00
Matt Gajownik
0b67dc0285 UI: Uniquely identify Custom Browser Docks 2021-12-04 15:08:46 -08:00
Matt Gajownik
1acc14e189 UI: Fix service integration with older Qt versions 2021-12-01 18:53:11 +11:00
Matt Gajownik
bc9911f5a6 UI: Pass parent QWidget to Browser Docks 2021-11-30 23:28:20 -08:00
gxalpha
3dbdd4b312 UI/importers: Automatically detect SL Collections on macOS 2021-11-30 23:19:13 -08:00
Georges Basile Stavracas Neto
0d91bfd281 UI: Add kudos to AppData file
Kudos are read by app centers such as GNOME Software and Discover
to calculate the "awesomeness" level of the application. OBS Studio
qualifies for two of these kudos: the "hi-dpi icon" kudo, since we
have 128x128 and bigger icons; and the "modern toolkit" icon, since
we use Qt5.

Add these kudos to the AppData file, and let app centers tell the
world how awesome OBS Studio is :)
2021-11-26 13:49:33 -03:00
Matt Gajownik
ab5d41c445 UI: Add separator before Custom Browser Docks in Dock menu 2021-11-26 18:06:51 +11:00
Matt Gajownik
a150fe7573 UI: Remove unused/nonexistent signal/slot connections 2021-11-26 17:28:34 +11:00
Warchamp7
a33c5c6be1 UI: Move Docks into top level menu
Managing the OBS UI docks is a core feature and as such should be
at the top level of the menu
2021-11-25 11:30:55 -08:00
Matt Gajownik
c45c261a9c UI: Add missing Interact tooltip in compact source toolbar 2021-11-25 20:09:46 +11:00
Matt Gajownik
13390b24b7 UI: Expose cURL error if Remote Text error text is empty 2021-11-25 00:57:00 -08:00
gxalpha
f2fda20572 UI: Minimize context bar when too small
This change removes the minimum total size from the context bar, instead
removing certain elements when the size is too small. This means that
users will still be able to make OBS smaller in width while keeping the
context bar enabled.

First, the properties, filter and interact buttons will get reduced to
just the symbols, if it gets even smaller the source specific menus are
hidden.
2021-11-24 13:40:29 -08:00
Georges Basile Stavracas Neto
dc63f63d9d UI: Install correct logos
Until now, we've been installing the UI/forms/images/obs.png asset
as the logo. However, that's not officially the logo we should
be using.

Install the correct logo assets. Add 128x128, 256x256, 512x512,
and scalable variants.
2021-11-24 01:36:44 -08:00
Clayton Groeneveld
6a0348cf64 UI: Add option for only one fullscreen projector per screen
This option is added for users who want to have only one
projector on a screen and want to save gpu resources.
2021-11-24 01:01:12 -08:00
Ryan Foster
54a808c34a UI: Set Twitch Panel Dark Mode using OBS theme
Check if the current OBS theme is "Dark Mode"-esque and use that to
determine if the Twitch browser panel docks should use Twitch's Dark
Mode or not.
2021-11-24 00:03:39 -08:00
Kasin Sparks
67d2b50a91 UI: Fix bug with audio balance slider not updating
Fixes #4763.
2021-11-23 22:06:25 -08:00
gxalpha
3ccc963e53 UI: Fix context bar shutdown crash 2021-11-23 22:01:43 -08:00
gxalpha
e6dc6c2d94 UI: Recreate nested scenes on scene delete undo 2021-11-23 22:00:47 -08:00
Clayton Groeneveld
fee5b67bef UI: Use std::gcd for aspect ratio
This removes our own code for gcd, as it is already built into cpp.
2021-11-23 21:47:57 -08:00
Paul Hindt
ce3ae8e423
aja: Capture and Output plugin for AJA Video Systems IO devices
* aja: Initial commit of AJA capture/output plugin

* aja: Fix clang-format on aja-output-ui code

* aja: Remove script used during dev/testing

* aja: Address pull request feedback from @RytoEX

* aja: Remove the SDK sources and update CMakeLists to point to new headers-only/static libs dependency distribution.

* aja: Only build AJA plugin on x64 on macOS for now

* aja: Remove the non-English placeholder locale files. The english strings/files will be produced via crowdin, according to @ddrboxman.

* aja: Add FindLibAJANTV2.cmake script to locate the ajantv2 headers and static libs in the OBS external deps package(s). Tested on Windows x64. macOS and Linux x64 TBD.

* aja: Add ajantv2/includes to FindLibAJANTV2 include search paths

* aja: Remove commented code from aja CMakeLists

* aja: Remove debug code and comments that are no longer needed.

* aja: Fix indentation

* aja: Remove disablement of clang-format in routing table and SDIWireFormat map

* aja: Use spaces for all indentation in widget crosspoint arrays where we disable clang-format

* aja: Address code style comments made by @RytoEX

* aja: Fix uneven indentation

* aja: More fixes to if/else placement and remove superfluous comments.

* aja: Rename 'dwns' to 'deactivateWhileNotShowing' for clarity. The DeckLink plugin still uses the variable name 'dwns' and should be changed, if desired, in a separate PR.

* aja: Remove X11Extras dependency from AJA Output frontend plugin

* aja: Add patch from Jim to find AJA release/debug libs

* aja: Improve AV sync of queued video/audio sent to the AJA card in the AJA Output plugin.
2021-11-23 20:31:11 -06:00
tt2468
44f07f9b11 UI: Delete OBSDisplay on window hide on unix
When a window with an OBSQTDisplay is closed, the surface can be
destroyed before the display is, opening a gap for OBS to attempt to
draw to the invalid surface.

This deletes the underlying OBSDisplay object when the actual surface
is destroyed, closing that gap.

Note: This appears to have been an issue previously with Wayland, as
hinted by the existing ifdefs.
2021-11-20 23:47:02 -08:00
tt2468
33b75a1a78 UI: Update adv audio props on monitoring type change
Update the audio monitoring combo box when it is changed via libobs.
Required to make obs-websocket requests work well
2021-11-20 20:00:59 -08:00
tt2468
ff22897d68 libobs/UI: Stop using preprocessor directives for monitor
**Code Cleanup**
Stop using preprocessor directives to determine if audio monitoring
is supported. Use runtime function instead
2021-11-20 20:00:59 -08:00
tt2468
544633d9bb UI: Remove unnecessary calls to RefreshSources()
With the previous commit, these calls to `RefreshSources()` are no
longer necessary.
2021-11-20 19:58:38 -08:00
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