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

2781 Commits

Author SHA1 Message Date
Clayton Groeneveld
1eebf27e9e UI: Change groupbox radius 2022-08-29 18:14:37 -03:00
cg2121
b9342a8f7c UI: Make settings margins consistant
Some settings pages would have different margins than others.
2022-08-29 17:44:14 -03:00
Matt Gajownik
ad68380910 UI: Fix position of Sources dock actions on horizontal resize
Attempting to resize the Sources dock to be smaller than when initially
loaded would result in the contents of the list to never shrink.
Switching to another scene & back would temporary fix the sizing.

Fixes an issue introduced in adba393ca8
2022-08-29 10:03:41 -07:00
gxalpha
08e4ee6557 UI: Add workaround for scenes being unselected 2022-08-29 23:15:39 +10:00
cg2121
d69c749aaf UI: Fix crash with adding source
Bug introduced with adba393ca8

OBS would crash when adding a new source because the source tree item's
widget would be NULL in the sizeHint function when the list item is first
created.
2022-08-29 09:11:38 +10:00
cg2121
adba393ca8 UI: Fix source item widget color height
The background color of the source tree item widgets wouldn't be
rendered properly.
2022-08-28 09:45:00 +10:00
Matt Gajownik
7e065e9366 UI: Widen Edit Transform inputs to fit suffix in Yami 2022-08-27 12:21:35 +10:00
PatTheMav
b81ab5a32b UI: Fix small font size on macOS and fallback font
Qt uses a default font size of 13pt for QWidgets on macOS. By setting
the default font size to 10pt, text becomes too small for comfortable
use on macOS.

This PR patches the font files copied into the macOS bundle to use a
larger font-size of 12pt. It also sets the fallback font to the more
modern SF Display-based `.AppleSystemUIFont` used by default in macOS
if Open Sans is not found.
2022-08-25 18:02:22 +02:00
jp9000
896de392cd UI: Copy va_list in strprintf on non-Windows
On operating systems other than Windows, va_list has to be copied when
you pass it to a new function otherwise it becomes corrupted
2022-08-24 20:23:13 -07:00
Georges Basile Stavracas Neto
20892a172d UI: Force expand.svg in menu arrows
This should fix the inconsistency in macOS.
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto
bf035f5b67 UI: Increase QGroupBox title padding
So that it matches the padding declared just a few lines above.
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto
faefd6cb54 UI: Unify context menus
- Make context menus match list style
 - Add padding around menus, like lists
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto
fd6633f74d UI: Cleanup QMenu QSS
Trivial cleanup. The same selector was declared twice in every file.
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto
2403dd70f4 UI: Unify all border radii
Make the border radius value of combo boxes, entries, and toolbar
buttons consistent at 4px.
2022-08-24 05:47:04 -07:00
Richard Stanway
ac55328e7f UI: Simplify multiview projector removal 2022-08-24 05:33:47 -07:00
Richard Stanway
5e6cbebcb9 UI: Remove allProjectors list
Seems like this wasn't used anywhere and projectors were not being
removed on destruction, resulting in a memory leak.
2022-08-24 05:33:47 -07:00
cg2121
a9ae9ca123 UI: Fix extra browsers trash icon
The trash icon in the extra browsers dock would be rendered
incorrectly with the Yami based themes.
2022-08-24 05:15:44 -07:00
Richard Stanway
c64997ed80 UI: Fix crash when toggling volume control mode
The toggleControlLayoutAction (change between horizontal and vertical
display mode) deletes and re-recreates the volume controls, meaning we
were writing to freed memory. This is a kind of hacky fix but it's the
only action we need to be concerned with for now.
2022-08-24 05:14:56 -07:00
cg2121
0061d95483 UI: Fix color select buttons with Yami
The color select buttons would not be rendered properly with the
Yami based themes.
2022-08-24 20:42:40 +10:00
cg2121
ed32dcc677 UI: Force fixed font in plain text edits
Since the Yami QSS changes the default font for widgets, we need
to force the system fixed font for plain text edits.
2022-08-22 17:26:50 -07:00
cg2121
a92c439af9 UI: Fix scripts dialog buttons
The tool buttons would be rendered incorrectly in the Yami based
themes.
2022-08-22 16:33:31 -07:00
cg2121
f7d815b79b UI: Fix disabled sliders color
The disabled sliders would be the same color as the window background.
2022-08-22 15:42:19 -07:00
jp9000
7b3ae0b03c UI: Fix fields not growing in FFmpeg output settings
Wasn't consistent with how it is with the rest of the user interface

Fixes obsproject/obs-studio#7147
2022-08-22 14:40:59 -07:00
jp9000
b4b01e2054 UI: Use bigger default size for button dock
Due to the new virtual camera button set being ridiculously large, the
main window needs a larger default dock size for the button dock.
Annoyingly.
2022-08-22 14:07:00 -07:00
Richard Stanway
ef48f5b28d
UI/installer: Update references to dependencies for 28.0.0 2022-08-21 17:26:27 +02:00
gxalpha
97f76f99e5 UI: Remove separate trash icon themeID
The removeIconSmall is now also a trash icon, so we don't need a
separate (now duplicate) themeID for it anymore.
The icon itself of course needs to stay as it's still needed.
2022-08-20 16:46:02 -07:00
gxalpha
8cf46ca68c UI: Properly register VoidFunc in Meta Object System 2022-08-20 16:45:07 -07:00
cg2121
0afcb71122 UI: Reset volume/media sliders on theme change
Since volume/media sliders are using QProxyStyle, they are not
updated when themes are changed, so re-initialize them.
2022-08-20 16:29:16 -07:00
gxalpha
a7419a9809 UI: Use backspace icon to indicate "Clear" in hotkey-edit 2022-08-20 02:02:21 -07:00
tytan652
5d5ecf17b4 UI: Check for virtual camera enablement before loading config 2022-08-18 06:47:42 -07:00
Matt Gajownik
c7da23bf96 UI: Remove spaces from translation keys
Qt translation strings use the full English string as an identifier,
rather than a standardised key. Meanwhile, .ini files aren't designed
for keys with spaces, so a translation string for "Restore Defaults"
won't match unless the ini line is
"Restore Defaults"="Defaults"
which is inconsistent, unpleasant and harder to read.
2022-08-18 03:35:51 -07:00
jp9000
3ae1c1470f Revert "UI: Don't set theme if it didn't change"
This reverts commit b4a2eacba7.
2022-08-18 03:21:49 -07:00
tududweb
a772e74286 UI: Correctly draw sub-item SpacingHelper on group 2022-08-18 02:35:34 -07:00
tududweb
122b83f4c1 UI: Don't show sub-item SpacingHelper on locked group 2022-08-18 02:35:34 -07:00
tytan652
f41404528a UI: Save virtual camera outside of the modules object
Save the configuration outside of the modules object meant for plugins
in the scene collection.
2022-08-18 02:35:13 -07:00
cg2121
ccfe300f72 UI: Reintroduce faster theme switching
Based on (was reverted):
08cee21158

This simplifies the faster switching code, as setting an empty
stylesheet resets it to default.
2022-08-18 02:34:47 -07:00
cg2121
5412b000ab UI: Remove unused stylesheet code
This code is from before custom stylesheets were introduced.
2022-08-17 23:22:05 -07:00
Chip Bradford
590fa1ffe6 UI: Free virtual cam memory on shutdown 2022-08-17 23:21:28 -07:00
gxalpha
0a94b3ce16 UI: Only set QStyle on app start
Setting a QStyle resets the color palette. This is unhelpful when a few
lines before that we set a new palette. In theory the setStyle call
could just be moved up, but we don't need to since we always set the
same style so there's no reason to call it multiple times.
2022-08-18 14:22:55 +10:00
gxalpha
b4a2eacba7 UI: Don't set theme if it didn't change
If the user just reselects the theme they're already on, we shouldn't
set it again, as setting a theme always introduces issues (that are
especially visible on macOS and Linux).
2022-08-17 13:45:40 -07:00
gxalpha
07c54e1b18 UI: Use user application support as base_module_dir 2022-08-17 17:03:48 +02:00
gxalpha
b543f96a3b UI: Only load legacy macOS .so plugins on x86_64
Plugins are expected to be in the .plugin bundle format. We do not want
to encourage usage of the old .so format, this is only kept at all for
backwards compatibility with existing plugins.
2022-08-17 17:03:48 +02:00
gxalpha
4998fddf6b UI: Don't load macOS plugin bundles from global library
Plugins are supposed to go into the user application support directory,
so we shouldn't load them from the system one.
2022-08-17 17:03:48 +02:00
cg2121
be98abc088 UI: Fix crash when hiding audio mixer item
This crash is suspected to be a QT bug that happens in 6.2.4, as
it only happens in this version. This is the QT version that is in
the Ubuntu 22.04 ppa, so this fix is a necessary evil as it affects
Ubuntu users.

This fixes the crash by deferring the hiding of the audio mixer
item to the next event loop.
2022-08-17 05:43:02 -07:00
Richard Stanway
abedc7d08b UI: Fix use-after-free in properties view 2022-08-17 05:30:57 -07:00
Translation Updater
4aaa07f93d Update translations from Crowdin 2022-08-17 04:22:50 +00:00
Georges Basile Stavracas Neto
87b5f17b2f UI: Update windowaudio.svg
Update it to match the style of the rest of the icon theme.
2022-08-16 22:32:24 -03:00
Georges Basile Stavracas Neto
3ad4e5a251 UI: Update icons for interact and refresh 2022-08-16 22:32:24 -03:00
pkv
3191c73e16 UI: Fix theme leak
This fixes leaks when loading and switching themes.

Signed-off-by: pkv <pkv@obsproject.com>
2022-08-16 07:36:18 -07:00
tytan652
fe889ec28e UI: Fix settings properties view background on Yami variants 2022-08-15 19:07:19 -03:00
tytan652
0f63967ee0 UI: Fix grid mode spacing with Yami variants 2022-08-15 19:07:19 -03:00
tytan652
29d40bb7fb UI/themes: Disable QDialog button icons on Yami new variants 2022-08-15 19:07:19 -03:00
cg2121
92624565a6 UI: Fix Yami list widget hover color
With Yami, when hovering a list widget (ie. scenes/settings), the
background wouldn't change like the sources list.
2022-08-15 18:37:40 -03:00
gxalpha
b7e7bf192c UI/themes: Add macOS separator fix to Dark and System 2022-08-15 18:04:14 -03:00
Warchamp7
66e01d2c5d UI: Add Yami variants for Acri and Rachni 2022-08-15 18:01:36 -03:00
Warchamp7
99363e2137 UI: Add Yami greyscale variant 2022-08-15 18:01:36 -03:00
Warchamp7
a1efc73e6a UI: Add Yami light variant 2022-08-15 18:01:36 -03:00
shiina424
43abfafe5a UI: Add missing Icon in System theme 2022-08-15 17:54:04 -03:00
Jim
7b76619c43 UI: Fix increment check for what's new (again)
Increment checks for the what's new file were not working as intended;
old stored increments would unintentionally pass to newer versions if
the newer versions did not explicitly start up with a whatsnew.json file
that had their version. The previous attempt to fix made it so that it
used a completely separate global.ini entry when a matching entry was
found. However, this entry did not take into account the beta or release
candidate number of the current build. This fixes it to bake in the
beta/rc number into the entry.
2022-08-14 01:06:53 -07:00
Jim
c63d2f9852 UI: Remove #if expression for what's new message
This #if test was intended to not show messages for new users, but
instead just made it so messages wouldn't show at all if the entry
wasn't previously set. Plus the expression was bad anyway.

This was causing betas and release candidates to not show what's new
messages when they should have been.

Just remove this code as it's silly to have at this point anyway. All
users should see what's new messages if they open the program, even if
for the first time.
2022-08-14 01:06:53 -07:00
derrod
9140c260ee UI: Add Whats New for macOS/Linux
- Requires MbedTLS on Linux
- Enabled by default on macOS and Flatpak
- Enabled on linux via ENABLE_WHATSNEW_LINUX
- Enables compilation of blake2 on Linux/macOS
- Makes header name check also work with lowercase header
- Changes WahtsNew to be only enabled when browser panels are available
2022-08-13 16:46:48 -07:00
cg2121
5aac910659 UI: Fix grid mode spacing with Yami
In the scenes grid mode, the buttons would be squished together in
the Yami theme.
2022-08-13 16:22:02 -07:00
cg2121
5d803058b4 UI: Fix settings properties view background
In the Yami theme, the background color in the properties view in the
settings dialog would be incorrect.
2022-08-13 16:02:00 -07:00
Norihiro Kamae
e46e0f8a3e UI: Fix memory leak when virtualcam fails to start 2022-08-13 01:35:45 -07:00
Chip Bradford
e7ebe99049 UI: Fix crash when pausing/unpausing recording 2022-08-13 01:33:07 -07:00
cg2121
94189402c2 UI: Fix padding with vertical volume meters
Since Yami uses a different font, the 0 dB mark at the top of the
vertical meters would be cut off. This adds a 1px padding to the top
and bottom of the volume meters, when in vertical mode.
2022-08-13 01:10:38 -07:00
tytan652
cdd3399286 UI/themes: Disable QDialog button icons on all non-system themes 2022-08-13 01:07:29 -07:00
Norihiro Kamae
b7d4ae8cf8 UI: Remove unnecessary UTF character 2022-08-13 00:49:17 -07:00
tytan652
e3cebb9942 UI: Avoid forcing the user to start the virtual camera
While configuring it.
2022-08-10 03:44:01 -07:00
tytan652
0e61a57bba UI: Cleanup virtual camera config dialog code
Remove unneeded headers and "using namespace".
2022-08-10 03:44:01 -07:00
Jim
9e15114750
Merge pull request #6577 from chippydip/multiple-video-mixes
libobs: Add support for multiple video mixes
2022-08-09 21:37:48 -07:00
Matt Gajownik
3a7a6f4dc0 UI: Fix build error with stray defaultStylesheet 2022-08-09 22:57:23 +10:00
Matt Gajownik
aacc1133f7 UI/installer: Require Windows 10 64bit minimum 2022-08-09 22:43:09 +10:00
Matt Gajownik
a7503254f3 Revert "UI: Apply default stylesheet before applying theme"
This reverts commit 08cee21158.

Turns out that while this did improve theme switching performance, it
also completely breaks styling on macOS and introduces visual quirks
on Windows after switching themes, such as sliders and dropdown contents.

# Conflicts:
#	UI/obs-app.cpp
#	UI/obs-app.hpp
2022-08-09 22:39:26 +10:00
cg2121
185dbf5492 UI: Fix ffmpeg path browse button not showing
The ffmpeg path browse button would be hidden in the settings.
2022-08-08 20:44:46 +10:00
Jim
cb051240ff
Merge pull request #6896 from GeorgesStavracas/gbsneto/iconography
Iconography and list styles
2022-08-06 17:12:42 -07:00
cg2121
b61cc5de23 UI: Fix spacing with media controls
The spacing in the media controls was set to 0. This only became
noticeable when using the Yami theme, as the buttons have a background
color.
2022-08-06 16:46:47 -07:00
cg2121
f1f405b170 UI: Fix buttons in settings dialog
- The buttons in the accessibility settings were a fixed height, so
they would be rendered in a undesirable way with the Yami theme.

- Also fixes clear button sizing issues in hotkeys sections
2022-08-06 16:26:26 -07:00
cg2121
2b4629848d UI: Fix spacer lines not using accessibility color
The spacer helper lines would not use the selection color set in the
accessibility settings.
2022-08-06 16:14:24 -07:00
Monsteer
0c930f52d3
UI: Fix typo "QTestEdit" in Yami
Changed "QTestEdit" with "QTextEdit".
2022-08-07 01:13:56 +02:00
gxalpha
3233c455d1 UI: Make spacing helpers DPI aware
Addition to 76ae9cbc which was made independently of the spacing helpers
introduced in 2d6a9c9c
2022-08-06 16:10:20 -07:00
Norihiro Kamae
e7c00890f6 UI: Increase maximum limit of automatic file splitting 2022-08-06 16:06:17 -07:00
gxalpha
a1e8075fba UI: Unregister file splitting hotkey when clearing hotkeys 2022-08-06 10:25:10 +10:00
gxalpha
405f5123c1 UI: Don't hardcode margins in lineedit-autoresize 2022-08-06 10:22:25 +10:00
shiina424
b247a401c9 UI: Add missing Icon in Acri theme
accessibility and interact icons is missing.
2022-08-02 09:46:36 -07:00
shiina424
f58a28da33 UI: Add missing Icon in Rachni theme
accessibility and interact icons is missing.
2022-08-02 09:46:20 -07:00
gxalpha
1a170f4c94 UI: Properly store manual file splitting type 2022-08-02 09:43:15 -07:00
Georges Basile Stavracas Neto
b74b5fec65 UI: Make audio icons consistent
Force them to align to a 16x16 pixel grid, and match the style of
other icons in the main UI.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
2de20ac00d UI: Revamp empty state of SourcesTree
The empty state of the SourcesTree widget looks rather busy, with
multiple icons and text without spacing. Revamp that state to use
a single, faded-out, 32px icon, add some spacing between the icon
and the text, and put the icon above the text.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
3f3cf02d2a UI: Remove 1px spacer from SourceTree
With the new icons, this extra spacer is not necessary.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
d09c1fcdd7 UI: Adjust list style of filters dialog
Exact same set of visual changes as before, but this one required
removing some hardcoded sizes from VisibilityItemWidget that were
clipping icons and text, and messing up with the height of items.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
249459afc9 UI: Add specific icons to expand and collapse
Instead of reusing the same thinline arrow, use a smaller, filled
arrow for expanding and collapsing.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
cfb36a338b UI: Rename expand.svg to right.svg
New icons for expanding and collapsing groups will be introduced
by next commit, so rename the current one to right.svg - it also
better matches the current filename layout, since we have up.svg,
down.svg, and left.svg.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
b26c0dd7d5 UI: Remove fixed icon sizes from SourceTree
Setting fixed sizes breaks rendering of the icons in subtle
ways, such as cutting 1px from their sizes. Removing these
fixes sizes seem to allow Qt to correctly render these icons,
and allows us to remove some negative margins hacks that were
added to deal with it.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
ef999dfc99 UI: Adjust list style of scenes and sources
Exact same set of changes as before, but additionally remove the
margins from the items since it was artificially increasing the
spacing between them.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
a8141789fe UI: Adjust list style of settings sidebar
Add padding between items and border; increase inner padding a
bit; make list items rounded; add spacing between list items.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
8751741572 UI: Increase maximum size of settings' sidebar
Some languages such as Spanish or Brazilian Portuguese have longer
words that make the sidebar scroll. Unfortunately Qt reports a rather
large minimum size for the sidebar, so simply removing the maximum
size is not an option.

Increase maximum width of the sidebar to 180px.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
7256702f39 UI: Set sidebar icon size to 16px
Symbolic icons, such as the ones used in the sidebar of the settings
dialog, are usually made to work best at 16x16.
2022-08-02 09:27:00 -03:00
Georges Basile Stavracas Neto
30888822bc UI: Rework icons
The current icon style is somewhat all over the place, with some
icons having thin lines, some others having thicker lines; some
filling the pixel grid in center, others in edges; some trying to
reduce subpixel positioning, some completely unaware of it.

Rework these icons to have a consistent style, with elongated
lines, rounded strokes, and proper center alignment.

The "no_sources.svg" asset is not covered by this work because this
empty state will be worked on in a separate commit.

Further changes will adjust specific UI elements to better match
the icon style.

These icons are derived from the GNOME icon library. I've changed
the fill colour to #fefefe for Dark theme icons, and #000000 for
embedded icons. If further icons are needed, they can be found at
https://teams.pages.gitlab.gnome.org/Design/icon-development-kit-www/
2022-08-02 09:25:47 -03:00
tytan652
c2122b0916 UI: Fix crash if there is no monitoring available 2022-07-31 21:48:56 -07:00
derrod
5620a469a9 UI: Remove compatibility for QT < 5.10 2022-07-31 21:47:01 -07:00
jpark37
ff88e0b8ac UI: Restore color format/space warning
Callbacks had the wrong signature.
2022-07-31 21:45:51 -07:00
Translation Updater
81734be37c Update translations from Crowdin 2022-07-31 23:40:53 +00:00
Chip Bradford
df446c3f6e UI: Add Virtual Camera source selector dialog 2022-07-31 15:39:18 -07:00
PatTheMav
f1cf3ff141 UI: Fix Qt call on UI thread from graphics thread
Calling `devicePixelRatioF` from any thread but the main UI thread
triggers thread-safety warnings at runtime on macOS, because Qt uses
NSView calls to determine the value.

NSView calls are only allowed to be made from the main thread on macOS,
so instead the value is stored as a property of the OBSQTDisplay at
initialization, to be retrieved from the preview object later.

Static functions that do not have access to the preview object have the
pixel ratio passed in their call signature.
2022-07-31 19:36:34 +02:00
gxalpha
37526e9ac9 UI: Add macOS permissions window
Co-Authored-By: Matt Gajownik <git@wizardcm.com>
2022-07-31 18:14:41 +02:00
gxalpha
b7a20cd5e4 UI: Add function to open privacy preferences on macOS 2022-07-31 18:14:41 +02:00
Matt Gajownik
43ef6699e3 UI: Fix toolbutton colour in Yami 2022-07-31 20:45:52 +10:00
gxalpha
e75b509bba UI: Include OpenSans font with OBS
Also reinstates the font-family statement removed in 2941c48
2022-07-31 20:23:19 +10:00
cg2121
e072976ccf UI: Add audio mixer toolbar
This adds a toolbar to the audio mixer dock, so it is
easier to access advanced audio dialog and unhide/vertical
actions.
2022-07-31 20:22:02 +10:00
PatTheMav
11325e6a35 UI: Remove permission code paths for Mac OS X before 10.15 2022-07-31 12:21:35 +02:00
Warchamp7
8a3abf1de7 UI: Add toolButton styling property for buttons
Allows making QPushButtons use the QToolButton styling.
Current usage is for transitions dock buttons.

May be unneeded after #6756 but doesn't hurt to have
2022-07-31 20:20:15 +10:00
Matt Gajownik
68499222ad UI: Fix panning when preview scaling is enabled 2022-07-31 14:19:27 +10:00
Clayton Groeneveld
2d6a9c9cc1 UI: Show spacing helpers in preview
This shows distance between sides of preview and edges of sources.
This will allow users to more easily align sources.

Co-authored-by: Palakis <contact@slepin.fr>
2022-07-30 19:41:18 -07:00
jpark37
eb7bb07a79 UI: JXR screenshots on Windows
Use JXR for HDR video on Windows. Other operating systems will tonemap
HDR to SDR, and save to PNG. Continue to take PNG screenshots for SDR.
We will probably support EXR for Mac/Linux someday.
2022-07-30 16:33:57 -07:00
tytan652
91c46af767 UI: Fix close display before native surfaces
A QPlatformSurfaceEvent constant is used in a switch that only accept
QEvent type.

timerEvent() is missing the override keyword.

f8d415afbe
2022-07-30 16:21:36 -07:00
cg2121
5bdd4fe658 UI: Fix studio mode label not updating
When studio mode is enabled and OBS is first started, the program
scene label would be empty.
2022-07-31 09:18:14 +10:00
gxalpha
ea9350bcbf UI: Add hotkey to split file
Adds a frontend hotkey that splits the current recording file. Ideally,
this would only appear if file splitting is enabled like the replay
buffer hotkey, however that is an output hotkey which is hidden because
the output doesn't exist. This doesn't work here since the recording
output is obviously always available, but is unaware of whether file
splitting is enabled until the output is started.
2022-07-30 15:21:08 +02:00
gxalpha
0c8befd4b3 UI: Add file splitting option "Only split manually" 2022-07-30 15:21:08 +02:00
gxalpha
8fd2f164b7 obs-ffmpeg: Enable file splitting with obs_data directly
Also modifies UI accordingly.

This can enable file splitting even if no time or storage limit is set.
2022-07-30 15:21:08 +02:00
gxalpha
467f73d4c9 obs-frontend-api: Add function for manual file splitting 2022-07-30 18:50:13 +10:00
Matt Gajownik
cb8bc3413a UI: Add support for theme meta, parent theme palette
Theme Meta allows individual themes to provide additional information to
OBS.

The primarily goal is for a theme to define a "parent", allowing to
extend existing themes with additional attributes.
2022-07-30 18:48:19 +10:00
gxalpha
64abfca620 UI/themes: Add image to QGroupBox checkbox on Yami 2022-07-30 17:13:52 +10:00
jp9000
8ef134be79 UI: Set default theme to Yami
Note that this adds a new CurrentTheme3 config variable to preserve
settings of versions older than 28, making this change safely
backward-compatible.
2022-07-28 20:38:51 -07:00
jp9000
2b3c90d2cc UI: Show warning on plugin load failure
Allows the user to know what plugins failed to load. This is
particularly useful if we're going to block Qt5 plugins as well, or if
certain plugins can't load because they're incompatible with a newer
version.
2022-07-28 16:36:01 -07:00
Ryan Foster
4e4afcd6d1 UI: Deduplicate UI element names
Prevent some warnings from AutoUIC.
2022-07-28 15:38:22 -04:00
Tommy Vercetti
fb30837a7c UI: Remove unused header for macOS 2022-07-28 14:04:01 -04:00
Norihiro Kamae
766d1bb5b1 UI: Search combo item with QVariant type
A combobox with `OBS_COMBO_FORMAT_FLOAT` type couldn't be initialized to
select current item from the settings data. This commit will create
QVariant value with the similar code as that of adding the items and
search the current item using that value.
2022-07-28 12:21:33 -04:00
Warchamp7
f9e7d237ad UI: Clean up Settings Output form
- Adds frames around certain elements for a better element hierarchy
- Moves the scroll areas into the tabs themselves
- Hides stacked widgets that aren't visible to prevent scrolling of invisible content
2022-07-28 12:19:20 -04:00
VodBox
76ae9cbc3d UI: Respect DPI for preview interactions
This change makes it so that selection outlines, handles and all
interaction events properly respect DPI scaling for the preview.
2022-07-27 22:43:32 -04:00
VodBox
580ebcc935 UI: Add scene item rotation handle
Add a rotation handle to the scene item selection box that will rotate
the source when clicked and dragged.
2022-07-27 22:40:01 -04:00
VodBox
e5175e851b UI: Make status bar inactive icons color-blind safe 2022-07-27 21:37:30 -04:00
VodBox
77694d76e8 UI: Add Accessibility menu to settings
This change introduces an accessibility menu to settings, along with
options for overriding the colors used by OBS in the mixer and in the
preview to be more color blind friendly than the options provided by the
current theme.
2022-07-27 21:37:30 -04:00
VodBox
9299a3dbce UI: Change crop border line style 2022-07-27 21:37:30 -04:00
gxalpha
f8b31f6f90 UI: Fix macOS permissions availability check
Documentation appears to wrongly claim that this is available in 10.15,
while in reality it's only 11+. This would lead to a crash on 10.15
since the symbol doesn't exist there.
2022-07-27 19:55:09 +02:00
Ryan Foster
81bd1d42f0 CI: Use VS2022 and clang-format 13
Switch to Visual Studio 2022 and clang-format 13.

The Ubuntu 22.04 image currently has clang-format 12.0.1, 13.0.1, and
14.0.0. VS2022 17.2 ships clang-format 13.0.1, so let's use that for now
until VS2022 17.3 is available with clang-format 14.

This commit also makes the necessary changes to allow the clang-format
check to pass.

This commit also updates the obs-browser submodules with the necessary
changes.
2022-07-27 11:09:59 -04:00
gxalpha
2e7c84a62b UI/forms: Improve macOS dock overlay icons 2022-07-27 14:55:56 +02:00
Norihiro Kamae
a88b34507a UI: Fix missing file list not including transitions
Call the callback to check missing files during LoadTransition method.
2022-07-27 12:42:32 +10:00
Clayton Groeneveld
aae15fc497 UI: Fix bugs with missing files refactor
With https://github.com/obsproject/obs-studio/pull/5148, it was
brought up that the loading of the missing files was not thread
safe, as the missing files were being loaded late in the loading
process. This PR tries to fix that problem, while still simplifying
the original missing files code.
2022-07-27 12:42:32 +10:00
jp9000
48819def6d UI: Omit stream codecs the service doesn't support
This change makes it so that if you select a service, it will check to
see what codecs that service supports, and only list encoders of those
codecs.

If the service doesn't support a codec and you currently have an
unsupported codec selected in output settings, then it'll prompt you
with a dialog telling the user it will switch to a supported codec, and
if they click yes, then it'll change the codec for the user. If they
click no, then it'll switch back to the previously selected service.
2022-07-26 09:23:35 -07:00
jp9000
ea5fb710a9 UI: Refactor simple encoders to a func 2022-07-26 09:23:35 -07:00
tytan652
a595128602 aja-output-ui: Add Qt::Gui to find_qt on Linux
The target is linked to Qt::GuiPrivate without finding the Qt::Gui
component.
2022-07-26 17:34:26 +02:00
tytan652
9c85ff8673 cmake,UI: Refactor find_qt macro
If QT_VERSION is not defined, it gets define with the AUTO value. And
its definition is moved to the helper file.

find_qt now:
- Check quietly for Qt5 and Qt6
- If QT_VERSION is set to AUTO. It checks firstly if Qt5 was found it
  will use it. If not it do the same for Qt6
- If QT_VERSION is set to 5 or 6, it checks if the choice was found and
  use it. And if not, it falls back to the other if found.
- If neither Qt5 or Qt6 are found, a fatal error is emitted.
- The macro saved the _QT_VERSION in the cache to replace QT_VERSION,
  so the process is not repeated each time that find_qt is used.
- When Qt::Gui is in the Linux component list, Qt::GuiPrivate is added.
  So using the versioned one is no longer required.
2022-07-26 17:34:26 +02:00
jp9000
64701a1cea UI: Only check major.minor for "what's new" 2022-07-26 07:49:09 -07:00
jp9000
a7ed93d88d UI: Use separate version string for what's new, save it
Uses a separate version entry for the "what's new" version check to
ensure that it properly resets whenever a "what's new" entry is ready to
be displayed.
2022-07-26 07:40:12 -07:00
jp9000
277e34fbb8 UI: Clean up OBSBasic::ReceivedIntroJson a bit
Just moves some defines above the function rather than have messy
defines all throughout the function.
2022-07-26 07:40:12 -07:00
jp9000
2df1ad5b39 UI: Ensure thread signal posts to UI thread
This is more of a safety precaution to ensure that the "what's new"
thread only executes its result function in the UI thread when emitted,
because the result function can read/write config files.
2022-07-26 07:40:11 -07:00
gxalpha
edc509c642 UI/themes: Correctly specify rgb instead of rgba 2022-07-27 00:36:13 +10:00
derrod
9c40e448b6 UI: Add File Integrity Check 2022-07-27 00:34:04 +10:00
Clayton Groeneveld
3dae4a35a1 UI: Relatively center multiple scene items
Before the scene items would be centered at the same spot
when centering them, now they are moved relatively to each
other.
2022-07-27 00:29:32 +10:00
Clayton Groeneveld
b3c5524a48 UI: Add scene names to preview/program labels
This makes it easier for users to determine what
is the current preview or program scene.
2022-07-26 23:28:05 +10:00
PatTheMav
e15fdf69c0 UI: Add functions to check for and request macOS permissions
Adds functions to check and/or request specific macOS permissions
(audio device access, video device access, accessibility access, and
screen capture access).

By default only audio capture, video capture, and accessibility are
requested on launch - the first two have straight-forward "Yes/No"
prompts, the latter requires people to enable OBS in the settings
application (but is required for hotkey functionality, independent
of scene setups).
2022-07-26 14:20:34 +02:00
Warchamp7
4a38131fb5 UI: Remove padding on QStackedWidget in Yami 2022-07-25 14:25:08 -07:00
jpark37
0d5ba81e32 UI: Add audioProcessOutputIcon to Yami 2022-07-25 16:35:24 -04:00
PatTheMav
c1740e3636 UI: Add initialization to ensure compat between pthread and NSThread
Ensures that Cocoa knows that we intend to use multiple threads, per
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html#//apple_ref/doc/uid/10000057i-CH15-SW21
2022-07-25 17:27:07 +02:00
gxalpha
eea2fd2f3f UI: Add status overlay for macOS dock icon
Adds an implementation for the dock icon status overlay on macOS (which
doesn't rely on QtMacExtras, which means it also works on Qt6).
2022-07-25 16:34:31 +02:00
gxalpha
f34393170e UI/forms: Add macOS specific dock overlay icons
Co-Authored-By: Misutaa Asriel <8140068+MisutaaAsriel@users.noreply.github.com>
2022-07-25 16:34:31 +02:00
jp9000
d68539e267 UI: Fix wrong AMD recording preset (simple output)
"hq" is not a valid preset. "quality" is the correct preset to use.
2022-07-24 11:18:18 -07:00
jpark37
1610ac04ff UI: Add application audio capture to toolbar 2022-07-23 17:41:34 -07:00
jpark37
9b46795d57 libobs, UI: Add OBS_ICON_TYPE_PROCESS_AUDIO_OUTPUT 2022-07-23 17:41:34 -07:00
tytan652
6c7f8853a8 UI: Use combobox data field for Theme value in settings
Use QComboBox item data rather than always checking for the default
theme custom string.
2022-07-24 10:23:18 +10:00
tytan652
6d06052c51 UI: Enforce Fusion Qt style on Linux
The Breeze Qt style plugin adds frame arround QDockWidget with QPainter
which can not be modifed. To avoid this the base style is enforce to the
Qt default style on Linux: Fusion.
2022-07-24 10:22:18 +10:00
PatTheMav
1766f01b7a UI: Fix crash on macOS if no python path is set in configuration
Obvious fix guarding against calling the std::string constructor with
a NULL pointer.
2022-07-24 10:11:54 +10:00
Norihiro Kamae
5ea10fec82 UI: Remove unused functions for audio mixers
Functions `save_audio_source` and `load_audio_source` are defined but
never called from any code. Also not defined in any header file.
2022-07-23 16:49:21 -07:00
tytan652
fc7af80f84 UI: Hide network features if a non-RTMP service is set
Reimplementation of bc80d0c and f2e6122, because they have to be
reverted by 0b9a8aa.
2022-07-23 16:29:10 -07:00
gxalpha
e3f416f3fc UI: Replace QMessageBox setButtonText with addButton 2022-07-22 09:37:17 -04:00
gxalpha
05c6a408e3 UI: Fix Qt 6 position deprecations 2022-07-22 09:37:17 -04:00
gxalpha
49e37db952 UI: Use pipe operator instead of plus for Qt keys 2022-07-22 09:37:17 -04:00
jp9000
2b957c9368 UI: Update simple output to use new AMD encoder 2022-07-21 15:29:25 -07:00
PatTheMav
ff4f4fcb92 frontend-tools: Upgrade legacy Python library paths to modern format
Updates the value at runtime and also stores it in the configuration.
2022-07-21 12:16:36 -04:00
Ryan Foster
d88ca3b243 UI: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-20 19:32:34 -04:00
gxalpha
80e2a980bf UI: Remove disable_high_dpi_scaling option on Qt 6
With Qt 6, high dpi scaling is always enabled and the
AA_DisableHighDpiScaling becomes no-op. As such, the command line
argument can get removed.
2022-07-20 14:14:38 -04:00
jp9000
0a218e06b7 UI: Add low latency audio buffering mode to UI
This feature is meant to reduce maximum audio buffering and turn off
dynamic buffering mode. This allows the lowest possible consistent
latency for audio buffering, which is useful for the decklink and NDI
outputs which cannot rely on audio timestamps for synchronization.

This can have a negative effect of making audio segments (partial or in
full) cut out. So audio glitching or audio loss can occur if this is
enabled.
2022-07-20 05:31:20 -07:00
tytan652
8befd830a9 aja-output-ui: Avoid using OBS_UNUSED
OBS_UNUSED is not portable to MSVC.
2022-07-20 09:03:31 +02:00
tytan652
91c353c774 UI: Fix undo stack uninitialized ui warning
Moving the declaration of `ui` above `undo_stack` fix the warning.

Co-authored-by: Richard Stanway <r1ch@r1ch.net>
2022-07-19 15:57:55 -04:00
Norihiro Kamae
317780ca1b aja: Remove unnecessary .keepme files
Since the directory contains some files, .keepme, which is intended to
keep an empty directory on a git repository, is unnecessary.
2022-07-19 14:40:32 -04:00
Norihiro Kamae
288f29fa2a decklink-output-ui: Fix memory leak
Add missing bfree by changing `char *` to `BPtr<char>`.
2022-07-19 14:35:01 -04:00
Clayton Groeneveld
41e2491fb4 UI: Add media control icons to Yami
The Yami theme never added the media control icons to
the qss file.
2022-07-19 11:02:20 -04:00
Norihiro Kamae
4ca0273a57 UI: Remove unnecessary UNUSED_PARAMETER 2022-07-19 11:01:00 -04:00
jp9000
0b9a8aa1fd Revert service json lookup refactor in UI
Certain services have custom server lits handling which I had forgotten
about, so although it would have been nice to have this refactor, we'll
have to live with relying on the plugin properties object directly for a
while.

This also reverts obsproject/obs-studio#6530 and
obsproject/obs-studio#6683 because that change depended on this
problematic refactor code.

This reverts commits:
f2e6122881,
bc80d0ca95,
050a29da1a,
22ffc04f73,
275e510aad,
2fa5ffe4df.
2022-07-18 14:52:26 -07:00
Clayton Groeneveld
6eb5a922a7 UI: Remove duplicate missing files code
The same code was in different places, so call single function to
clean up code.
2022-07-18 19:12:31 +02:00
jpark37
54a57b63ad UI: Disable LNK4099 warning
We are very unlikely to ship PDBs for deps.
2022-07-18 03:52:04 -07:00
jpark37
6f3f42eb1f aja-output-ui: Suppress C4996
NTV2TestPatternGen::DrawTestPattern overloads are deprecated.
2022-07-18 03:52:04 -07:00
mvji
c041deb433 UI: Check output path when starting replay buffer
Make a better error message for user,
in case recording path is invalid

Issue 6731
2022-07-16 16:50:32 -07:00
Clayton Groeneveld
b224a2cd47 UI: Add frame around transitions dock
The transitions dock doesn't have a proper container, like
the other docks.
2022-07-16 16:39:17 -07:00
Clayton Groeneveld
2012963d02 UI: Add menu icons to resource folder
The menu icons were never added to the resource
folder, so they didn't work in the System theme.
2022-07-16 16:30:29 -07:00
gxalpha
05c245532f UI: Correctly spell "ChromeOS" again
Google made up their minds after we merged ccc5767
2022-07-16 16:12:24 -04:00
Clayton Groeneveld
9b09ad9a7a UI: Fix menu icons not showing up
The menu icon was set only in the Yami theme.
2022-07-14 19:48:53 -04:00
tytan652
b65411c343 UI: Fix color format warning
bbeafeabdd change how the combobox is filled.

`UpdateColorFormatSpaceWarning` did not get the required change to use
the combobox data rather than the text.
2022-07-14 11:47:56 -04:00
Warchamp7
9febf96a61 UI: Fix text shifting on lineEdits 2022-07-13 19:14:03 +10:00
mvji
bbeafeabdd UI: Add more information to describe output format
In advanced settings
Also enable translation for color format
2022-07-12 23:37:01 +10:00
jpark37
df96e68ca6 cmake: Disable LNK4099 warning
We are very unlikely to ship PDBs for deps.
2022-07-11 22:07:10 -07:00
cg2121
a32793dd04 UI: Use more descriptive tooltips
This makes the scene/source tooltips easier to
understand.

Add -> Add Scene, Add Source
Remove -> Remove Selected Scene, Remove Selected Source(s)
MoveUp -> Move Scene Up, Move Source(s) Up
MoveDown -> Move Scene Down, Move Sources(s) Down
Properties -> Open Source Properties
Filters -> Open Source Filters
2022-07-11 18:17:04 -04:00
gxalpha
29ae00e4af UI: Add Apple H.264 hardware encoder to simple mode
Adds the Apple Silicon hardware encoder as a simple mode option. For
recordings this only requires being on Apple Silicon (since we use the
Constant Quality setting), while for streaming it requires the user to
be on macOS 13 or newer (since we're using CBR).
2022-07-11 23:45:43 +02:00
Tommy Vercetti
cabc3c8aec UI: Implement Taskbar Overlay for Qt6 2022-07-10 14:06:15 +10:00
Clayton Groeneveld
b307d38ef6 UI: Fix typo with SetSourceName function
The SetSoureName in the adv-audio-control.hpp had newName
misspelled as newNamw.
2022-07-10 14:00:35 +10:00
Clayton Groeneveld
1cf93a4b29 UI: Fix compiling error on nix platforms
On nix platforms, the compile would complain about
using non-const values for the function parameters.
2022-07-10 14:00:35 +10:00
Clayton Groeneveld
22dbf316df UI: Truncate push-to-* labels
The labels for the push-to-mute / push-to-talk hotkeys
were never truncated.
2022-07-10 14:00:35 +10:00
Clayton Groeneveld
e40a6be031 UI: Use new truncate function with hotkeys
This updates the hotkeys to use the new truncate label
function in qt-wrappers.cpp
2022-07-10 14:00:35 +10:00
Colin Edwards
50372164d0 UI: Move multiview render into a new class
Co-authored-by: tt2468 <tt2468@irltoolkit.com>
2022-07-10 13:45:43 +10:00