66 Commits

Author SHA1 Message Date
Warchamp7
83f5459afa frontend: Fix empty volume name label 2026-07-06 16:42:49 -04:00
Warchamp7
30d3b89b3b frontend: Parent mixer context menu to window
Parent the QMenu to the window. Fixes a warning for "QWidgetWindow
must be a top level window."
2026-07-02 18:49:44 -04:00
Warchamp7
1b0fc3b8be frontend: Fix resizing horizontal volume name 2026-07-02 18:49:44 -04:00
Warchamp7
b99ccb0367 frontend: Fix invokeMethod function name 2026-07-02 15:54:32 -04:00
Warchamp7
dcbb7840fe frontend: Show warning icon for Monitor Only 2026-07-01 14:27:15 -04:00
Warchamp7
04d36e09b9 frontend: Remove Monitor Only from UI 2026-07-01 14:27:15 -04:00
Warchamp7
696e8495df frontend: Remove volume control tri-state logic 2026-06-17 16:34:16 -04:00
Warchamp7
fcab6489b5 frontend: Clean up function names 2026-06-17 16:34:16 -04:00
Warchamp7
6ff9db6f13 frontend: Fix volume control state desync 2026-06-17 16:34:16 -04:00
Warchamp7
30b63c6849 Update C++ files with braces 2026-06-09 13:41:19 -04:00
Warchamp7
12597e9484 frontend: Replace add source dropdown with dialog
Co-Authored-By: Lain <134130700+Lain-B@users.noreply.github.com>
2026-05-07 15:31:10 -04:00
cg2121
750c016161 frontend, libobs: Add OBSProperties OBSPtr type
We no longer have to manually destroy obs_properties_t.
2026-05-06 17:27:36 -04:00
Warchamp7
52ca7d905b frontend: Move source selection handling to parent 2026-05-06 14:48:32 -04:00
Sebastian Beckmann
649beed45c frontend: Don't store QT_TO_UTF8 to std::string
QT_TO_UTF8 returns a const char * that, in general, shouldn't be stored.
This is because QT_TO_UTF8(str) expands to str.toUtf8().constData():
toUtf8() returns a QByteArray, and constData() the pointer to its data
which is only valid until the QByteArray goes out of scope, which is
immediately after the call.
The original code that is changed here only works because in all of the
situations, the object that is stored to is actually a std::string that
gets constructed implicitly, so the constData() pointer is valid long
enough for the std::string constructor to copy the data.

The issue is that any "... = QT_TO_UTF8" code *looks* unsafe, and may
lead new or unfamiliar contributors to assume that they can also use it,
only to do "const char *... = QT_TO_UTF8(...)" which is dangerous.
Additionally, it introduces an unnecessary round of implicit conversions
and copies when QString.toStdString() already exists and copies into the
string buffer directly.
2026-05-06 14:15:44 -04:00
Warchamp7
b34d17714e frontend: Optimize audio mixer updates 2026-04-20 17:54:47 -04:00
Warchamp7
42564df7ec frontend: Fix muted colors 2026-04-01 10:45:48 -04:00
Warchamp7
d554ed821c frontend: Improve VolumeMeter size calculation 2026-04-01 10:45:48 -04:00
Warchamp7
9236e4fba2 frontend: Improve VolumeName size calculations 2026-04-01 10:45:48 -04:00
Warchamp7
ad41674568 frontend: Adjust mixer horizontal layout 2026-04-01 10:45:48 -04:00
Warchamp7
dba42dae7a frontend: Add missing tooltips to audio mixer 2026-04-01 10:45:48 -04:00
Warchamp7
9fc4a50746 frontend: Defer mixer rename dialog 2026-02-12 17:39:24 -05:00
Warchamp7
0755f475a6 frontend: Skip background paint for invalid sizes 2026-02-12 17:07:21 -05:00
Warchamp7
82b1112389 frontend: Fix VolumeControl rendering 2026-02-11 15:46:19 -05:00
Warchamp7
923118befc frontend: Clean up mixer hidden state 2026-02-04 18:29:20 -05:00
Warchamp7
84361415ff frontend: Close rename dialog if name unchanged 2026-01-28 13:18:47 -05:00
Warchamp7
90d0d593de frontend: Use disabled meter colors when output muted 2026-01-28 12:53:35 -05:00
Warchamp7
694680e8c0 frontend: Revert Add Source dialog update
This reverts commit 5fc2476913.
2026-01-28 12:13:20 -05:00
Warchamp7
8c04e6a3fe frontend: Restrict audio meter update region 2026-01-23 16:18:30 -05:00
Warchamp7
30633344e9 frontend: Force update volume meter backgrounds 2026-01-23 15:21:00 -05:00
Warchamp7
e73662f6c1 frontend: Implement sizeHint for VolumeMeter 2026-01-22 12:32:12 -05:00
Warchamp7
fa49eace7d frontend: Fix audio mixer monitoring state 2026-01-20 12:11:20 -05:00
Warchamp7
67f4ed3478 frontend: Refresh meter background on style change 2026-01-15 17:07:16 -05:00
Warchamp7
d05c8cba25 frontend: Remove unused audio mixer widgets 2026-01-15 12:53:30 -05:00
Warchamp7
5fc2476913 frontend: Replace add source dropdown with dialog
Co-Authored-By: Lain <134130700+Lain-B@users.noreply.github.com>
2026-01-14 14:49:38 -05:00
Warchamp7
902f6d17e5 frontend: Display volume source names with QLabel 2026-01-13 16:34:33 -05:00
Warchamp7
a42a6c4c5f frontend: Refactor and update Audio Mixer 2026-01-13 16:34:33 -05:00
Warchamp7
3e5cd44fd5 frontend: Add Menu Checkbox widget
Update MenuCheckBox.hpp
2026-01-13 16:34:33 -05:00
Warchamp7
c01a9bea49 frontend: Create AlignmentSelector widget 2026-01-08 21:12:30 -05:00
gxalpha
5129612b6c frontend,shared: Replace and disable contextless connect calls
# Conflicts:
#	frontend/OBSApp.cpp
2025-12-17 16:35:45 -05:00
Warchamp7
a4642cc532 frontend: Increase media playback slider fidelity 2025-12-17 15:56:27 -05:00
hongqingwan
85fa987f67 frontend: Fix runtime check failure issue
Fix an issue where the stack around the variable snapEnabled was
corrupted.

SPI_GETSNAPTODEFBUTTON should use BOOL, not bool.

Reference:
 * https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfow
2025-09-26 14:31:08 -04:00
Warchamp7
a9226f81d9 frontend: Fix UI deadlock
There is a Qt bug introduced around Qt 6.8.3 that causes the application
to hang when double clicking the sources list and the Windows setting
'Snap mouse to default button in dialog boxes' is enabled. Work around
this by using a timer if the setting is enabled.
2025-09-15 16:06:38 -04:00
FiniteSingularity
23b67268e7 frontend: Provide UI for phase 1 of plugin manager
For phase 1 of the plugin manager, the ability to toggle off/on plugins
to be loaded at launch is provided.

This commit adds a new Plugin Manager dialog which can be accessed from
the Tools menu, which shows a list of all installed 3rd party plugins
with a checkbox to toggle them off or on.  If a change is made, the user
is prompted to restart OBS. To allow this, the plugin manager uses a
json based config file stored in the OBS config directory. Additionally
for sources in the source tree, a sample UI has been provided that
indicates any sources whose parent module is disabled, by turning its
title red.
2025-08-28 14:29:10 -04:00
Sebastian Beckmann
9e0c3219ff frontend: Move idian widgets to shared/qt 2025-08-22 16:21:52 -04:00
Warchamp7
e8f6143769 frontend: Add new Idian widgets
Co-Authored-By: derrod <rodney@rodney.io>
2025-08-22 16:21:52 -04:00
Norihiro Kamae
8e2da12c2a frontend: Fix multiview not decrementing showing state count
Also replaced a variable `numSrcs` with `multiviewNewScenes.size()`
because they are always identical.
2025-08-22 14:10:45 -04:00
shiina424
2b38b92652 frontend: Fix group icon position in System theme 2025-06-13 17:54:04 -04:00
shiina424
b7bd7c00c5 frontend: Fix visibility and lock checkbox in System theme 2025-05-22 12:48:13 -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
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