Commit Graph

56 Commits

Author SHA1 Message Date
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
Warchamp7
99d7d134a7 frontend: Clip source names when dock too small 2025-04-28 16:18:07 -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
Warchamp7
c0c77071b5 frontend: Add new appearance options 2025-04-22 15:04:49 -04: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
c942731aaf frontend: Adjust styling for SourceTree 2025-04-03 14:18:46 -04:00
cg2121
4e8b131509 frontend: Use OBSBasic::Get() in all places
This reduces duplicated code when getting the OBSBasic context.
2025-02-05 15:15:52 -05:00
cg2121
449755ee6d frontend: Move media control dynamic properties to ui file
This moves the dynamic properties for the media control buttons
from the cpp file to the ui file.
2025-01-27 16:36:08 -05:00
PatTheMav
654ddcd409 frontend: Split Qt UI Widget implementations into single files per class 2025-01-08 17:33:13 +01:00
PatTheMav
9f887c76d3 frontend: Prepare Qt UI Widgets for splits 2025-01-08 17:33:13 +01:00
PatTheMav
1ff68267a3 frontend: Split Settings implementation into single files per C++ class 2025-01-08 15:36:55 +01:00