Commit graph

114 commits

Author SHA1 Message Date
tytan652
bdebea3d85 frontend: Enable browser hw accel toggle under Linux 2025-05-24 14:20:21 -04:00
Warchamp7
910271d21c frontend: Fix spacing of group expand button 2025-05-23 04:25:55 -04:00
Ryan Foster
b9cd9f30b1 frontend: Make profile export menu item translatable 2025-05-22 16:55:49 -04:00
shiina424
b4e8fa78fb frontend: Fix multiview translation string 2025-05-22 16:55:49 -04:00
shiina424
16965844dc frontend: Fix button pressed color in Rachni theme 2025-05-22 15:47:05 -04:00
Warchamp7
32f1b93d72 frontend: Swap preview zoom buttons 2025-05-22 14:21:08 -04:00
shiina424
ae61432c8e frontend: Add missing translations 2025-05-22 13:21:41 -04:00
shiina424
b7bd7c00c5 frontend: Fix visibility and lock checkbox in System theme 2025-05-22 12:48:13 -04:00
Warchamp7
0b7c1f7081 frontend: Explicitly set titlebar item padding 2025-05-21 15:22:44 -04:00
Exeldro
cae8d8a3da frontend: Fix canvas remove event 2025-05-21 11:45:14 -04:00
Warchamp7
b46e5bb1c0 frontend: Fix dock title button sizes 2025-05-20 14:40:38 -04:00
shiina424
91ad044e68 frontend: Add close icon 2025-05-14 13:18:37 -04:00
tytan652
b65ee89451 frontend: Use winId for Wayland surface in Qt 6.9+
As of Qt 6.9, winId return a wl_surface pointer which allows us to move
away completely from QPlatformNativeInterface.

32f9b4d
2025-05-13 14:40:31 -04:00
Ryan Foster
840ca8e0d9 frontend: Use public QNativeInterface in Qt 6.5+
Using QNativeInterface allows us to move away from most of
QPlatformNativeInterface usage.
2025-05-13 14:40:31 -04:00
Ed Maste
e0e132e5cf frontend: Fix build on FreeBSD
libpci is now required on FreeBSD, as on Linux.

Fixes: e1d2cf705d ("frontend: Support enhanced broadcasting on Linux")
2025-05-12 17:21:09 -04:00
Dennis Sädtler
e474a3723b frontend: Allow 5 multitrack reconnect attempts before re-running GCC 2025-05-07 15:46:50 -04:00
PatTheMav
16216b2e30 frontend: Fix character encoding issue during profile import
The directory name string passed into libobs functions needs to be
converted into a 8-bit-based encoding (e.g., UTF-8) to avoid mangling
of characters and encoding issues particularly on Windows systems which
use UTF-16 for file names.
2025-05-07 14:58:38 -04:00
cg2121
d7cce79d7e frontend: Use static_cast when casting from void pointers
Using static_cast is preferred here, as it is safer to use than
reinterpret_cast.
2025-05-05 20:47:10 -04:00
Dennis Sädtler
0552062390 frontend: Allow selecting additional canvases for multitrack 2025-05-05 17:17:20 -04:00
Dennis Sädtler
8117c89b9a frontend: Update multitrack API model
"revision" was defined to be a string in the schema but accepted
integers, this is enforced with the new schema version.
2025-05-05 17:17:20 -04:00
Dennis Sädtler
811072d0fd frontend: Always limit multitrack video encoders to libobs maximum 2025-05-05 17:17:20 -04:00
cg2121
345fe56b6e frontend: Make sure all QObject subclasses have Q_OBJECT macro
Went through and found all QObject subclasses that didn't have
a Q_OBJECT macro.
2025-05-05 13:10:39 -04:00
Dennis Sädtler
8441c04c73 frontend: Add frontend API canvas methods 2025-05-02 14:35:22 -04:00
Dennis Sädtler
368185019e frontend: Add support loading/saving additional canvases 2025-05-02 14:35:22 -04:00
Dennis Sädtler
afd7619c98 frontend: Add OBS::Canvas class 2025-05-02 14:35:22 -04:00
cg2121
47360a92c5 frontend: Use Q_OBJECT macro for BrowserDock
This is needed as the BrowserDock is a QObject.
2025-05-01 16:01:14 -04:00
gxalpha
281f8137f5 UI,libobs,obs-outputs: Remove HAVE_OBSCONFIG_H ifdefs
With the removal of all legacy code paths, obsconfig.h always exists and
the compile definition always gets set. As such, it's no longer
necessary to check for it.

As removing the definition itself could be seen as a breaking change,
this simply moves the definition to pc.in and cmake.in files for now to
preserve the value for plugins that might expect this to be set. We may
remove the definition entirely in a later release.
2025-04-30 13:05:35 -04:00
Ruwen Hahn
9bba6e52ff frontend: Allow Network Optimizations with multitrack video
"Enable network optimizations" in the Advanced Settings is referred to
as `NewSocketLoop` in the code. This feature was incompatible with
multitrack video but now works properly. Remove it from the
incompatible settings check.
2025-04-30 12:27:03 -04:00
Alex Luccisano
6bb9019aff frontend: Allow Stream Delay with multitrack video
Remove Stream Delay from the incompatible settings list for multitrack
video as it works properly now.
2025-04-29 13:50:57 -04:00
Warchamp7
99d7d134a7 frontend: Clip source names when dock too small 2025-04-28 16:18:07 -04:00
Norihiro Kamae
1643470a85 frontend: Add dedicated translation of remaining time 2025-04-28 13:06:03 -04:00
PatTheMav
8bfc28f851 frontend: Use default location for user settings as fallback
When a unique path is set up as the location for user settings,
profiles, or scene collections, migrating the files from one computer
to another will lead to confusing error messages as the original paths
might not exist on the new machine.

The default directories for configuration files are already created by
this point, so using those paths as a fallback should enable OBS Studio
to also create the corresponding fallback settings files.
2025-04-25 19:40:24 -04:00
Warchamp7
f62b13957c frontend: Remove unused item delegate parameters 2025-04-25 14:01:23 -04:00
Warchamp7
36e3489d86 frontend: Adjust missing files dialog 2025-04-25 14:01:23 -04:00
gxalpha
28960a48a7 frontend/components: Remove NonCheckableButton
The NonCheckableButton class was previously used for situations where a
*checkable* button was meant to not be checkable by the *user*, but only
through code. This was useful mostly as a styling tool (and to confuse
developers like me as to what it actually did).

The disadvantage is that such a button - a button that is actually
checkable (has the checkable attribute) but ignores the user - still
gets recognized by QAccessible as a checkable button, which has
accessibility issues when used like a normal button (see QTBUG-110737).

We can still get the styling effect on *actually* uncheckable buttons by
giving them a class, so this widget should not be necessary.
2025-04-24 15:37:50 -04:00
gxalpha
76e1818866 frontend: Highlight control dock buttons using style class
Checkable buttons are troublesome because QAccessible interprets them as
checkboxes, and doesn't pass the "clicked" signal to them (see
QTBUG-110737). Instead, we only get the "toggled" signal, which also
gets triggered by things other than user input (i.e., the button getting
changed by the program).

Making them uncheckable means that they behave like normal buttons
again. To style them, we can just add a class and address them that way.
Note that uncheckable here means *actually* not checkable - unlike the
cursed NonCheckableButton class previously used that makes a button
that *is* checkable ignore the user input (and only allow check state
changes via code, effectively making it solely a styling tool).
2025-04-24 15:37:50 -04:00
Lain
9b0ac7c01c frontend/widgets: Optimize preview primitive rendering
Certain draw calls were creating/destroying vertex buffers. Every call.
That's kind of not a great thing to do, so instead use the new
gs_draw_quadf() function to optimize rendering and reduce the need for
swapping vertex buffers.

Also uses a shader for DrawStripedLine so it does not have to split it
up into separate draw calls.
2025-04-23 15:23:29 -04:00
Warchamp7
13b3c8d033 frontend: Clean up various strings 2025-04-23 14:46:51 -04:00
Lain
7f09344989 frontend/widgets: Fix integer overflow
If the crop values combined are larger than the width or height of the
source, an integer overflow will occur.

This fix converts the width/height values to int, and then clamps
any negative values to 0.
2025-04-23 14:07:09 -04:00
Warchamp7
c0c77071b5 frontend: Add new appearance options 2025-04-22 15:04:49 -04:00
PatTheMav
cce189011e frontend: Migrate scene collection usage to new SceneCollection class 2025-04-21 15:17:11 -04:00
PatTheMav
ca44e3037d frontend: Add SceneCollection class as data model for Scene Collections 2025-04-21 15:17:11 -04:00
PatTheMav
96e4d67242
clang-format: Update source code files with clang-format 19.1.1 2025-04-17 18:16:33 +02:00
Warchamp7
69ecfcd9f6 frontend: Reorganize Preview/Source context menu 2025-04-15 15:00:43 -07:00
Matt Gajownik
5b87ced7cd frontend: Increase MAX_CRASH_REPORT_SIZE to 200 KB
With CEF and NDI, logs can exceed 150KB, cutting off symbol addresses.
2025-04-15 12:33:42 -07:00
Sebastian Beckmann
33cec16f56 frontend/themes: Re-add transparent border
It appears that in conjunction with other changes that happened around
the time the removal of the transparent border got merged, it became
necessary again due to those other changes. Without it, only the
selected and focussed changes have a border, making the content jump
around when selected and focussed.

Reverts part of 5fa4ea44d0.
2025-04-09 16:09:26 -07:00
Sebastian Beckmann
902b3e6976 frontend: Re-set list spacing of source and scene tree to 0
This is needed due to QTBUG-106395. With spacing, drag-and-drop would
cause items to go to the bottom of the list if they are dropped in the
spacing.

Effectively reverts 5fa4ea44d0.
See also #7321 and 860b309db8.
2025-04-09 16:09:26 -07:00
Sebastian Beckmann
1388490dfa frontend: Remove additional spacing hack in SourceTreeItem
Effectively reverting 4e97b1bb30, this
removes a hack that added additional spacing as scrollbars would go over
content due to a Qt bug. This bug appears to be fixed, as the described
behavior is no longer observed. As such, the additional spacing is no
longer needed (and only looks out of place).
2025-04-08 12:44:13 -04:00
Warchamp7
547e4acdd3 frontend: Focus text entry in NameDialog 2025-04-03 14:29:59 -04:00
Warchamp7
c942731aaf frontend: Adjust styling for SourceTree 2025-04-03 14:18:46 -04:00