52 Commits
Author SHA1 Message Date
Warchamp7andRyan Foster dc1e75b9cb frontend: Improve spin box UX 2026-08-24 15:46:37 -04:00
derrodandRyan Foster 782a15aaf9 frontend: Remove superfluous hidden check 2026-08-20 17:26:22 -04:00
Warchamp7andRyan Foster 4abbcf0b6d frontend: Update invokeMethod to use functions 2026-08-10 16:27:32 -04:00
jcmandRyan Foster 01e68ca6ad frontend: Fix deprecated header order in Add Source dialog 2026-07-20 16:03:54 -04:00
Warchamp7andRyan Foster f730063da3 frontend: Adjustments to Add Source window 2026-07-16 14:33:56 -04:00
Warchamp7andRyan Foster 137fe34ce2 frontend: Remove What's New window padding 2026-07-02 15:32:09 -04:00
Warchamp7andRyan Foster 02b0a796d5 frontend: Remove What's New bottom button 2026-07-02 15:32:09 -04:00
ExeldroandRyan Foster 98f5714b92 frontend: Fix pasting scene item on not the current scene 2026-06-17 17:23:00 -04:00
Warchamp7andRyan Foster 30b63c6849 Update C++ files with braces 2026-06-09 13:41:19 -04:00
Ryan Foster 3b4872c5c0 frontend: Replace implicit "=" with "this" 2026-06-05 14:48:32 -04:00
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
74efa2287b frontend: Use vector for filters dialog signals
Co-Authored-By: Clayton Groeneveld <19962531+cg2121@users.noreply.github.com>
2026-05-06 16:29:24 -04:00
Sebastian BeckmannandRyan Foster 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
Sebastian BeckmannandRyan Foster d208c0a128 frontend: Clean up unneeded conversions on YouTube dialog close
The strings (broadcast.id, stream.[id|name]) are stored as QString,
converted to const char * by QT_TO_UTF8 in OBSYoutubeActions, implicitly
converted back to QString because the OBSYoutubeActions::ok takes
const QString &, only to be converted back to const char * by QT_TO_UTF8
in OBSBasic_YouTube and immediately implicitly turned into
const std::strings, only to have .c_str() called on those to get their
const char * again which is needed for libobs. This is insane.

Let's just pass const std::string & and be happy.
2026-05-06 14:15:44 -04:00
Ryan Foster 852d9639f1 frontend: Fix includes in OBSUpdate
Some additional includes are required for C++20.
2026-05-01 14:09:10 -04:00
Joel Bethke 154088beef frontend: Fix contributing link in About
Fixes the link to the new contributing document, which is now .md and not .rst
2026-04-10 17:49:36 -07:00
Warchamp7andRyan Foster 694680e8c0 frontend: Revert Add Source dialog update
This reverts commit 5fc2476913.
2026-01-28 12:13:20 -05:00
shiina424andRyan Foster 00f220a6dc frontend: Make Add Existing Button translatable 2026-01-17 14:28:20 -05:00
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
Warchamp7andRyan Foster a42a6c4c5f frontend: Refactor and update Audio Mixer 2026-01-13 16:34:33 -05:00
Warchamp7andRyan Foster 6fa1a35ad4 frontend: Update transform dialog 2026-01-08 21:12:30 -05:00
cg2121andRyan Foster 8c946e792a frontend: Make sure all scene item properties are copied
Scale filtering, show/hide transitions and private settings were
not copied when copying scene items.
2026-01-08 20:18:13 -05:00
ExeldroandRyan Foster dc7c8cfb48 frontend: Move transition preview button to button box 2026-01-06 07:02:52 -05:00
Sebastian BeckmannandRyan Foster 25f4fc9e70 frontend: Replace "=" capture with "this"
Implicit capture of 'this' with a capture default of '=' is deprecated
in C++20.

# Conflicts:
#	frontend/settings/OBSBasicSettings.cpp
#	frontend/settings/OBSHotkeyEdit.cpp
#	frontend/settings/OBSHotkeyWidget.cpp
2025-12-18 17:30:42 -05:00
gxalphaandRyan Foster 5129612b6c frontend,shared: Replace and disable contextless connect calls
# Conflicts:
#	frontend/OBSApp.cpp
2025-12-17 16:35:45 -05:00
gxalphaandRyan Foster 876806bbf5 frontend: Replace and disable QString to QUrl casts 2025-12-17 16:35:45 -05:00
PatTheMav 13ba51a9ad frontend: Use Qt parent-child ownership in OAuth dialog
By explicitly setting the OAuth dialog as the parent of the CEF widget,
it will automatically by cleaned up as soon as the dialog is closed
itself.

This also detaches the destruction of the widget from the browser
cleanup code.
2025-10-17 14:31:38 +02:00
Sebastian BeckmannandRyan Foster 22ce393680 shared/idian: Make title and description common to all row types 2025-09-04 14:17:02 -04:00
Sebastian BeckmannandRyan Foster fca07b4ce4 frontend: Include OBSIdianPlayground MOC
Also puts the include in the correct place in OBSBasic_MainControls.
2025-09-04 14:17:02 -04:00
Sebastian BeckmannandRyan Foster 527e2f291f frontend: Remove unneeded argument from log upload privacy notice 2025-09-02 14:57:41 -04:00
cg2121andRyan Foster 4b403d2a3e frontend: Use signal to update log viewer
Instead of calling the log viewer directly, use a signal instead.
2025-08-23 12:13:39 -04:00
Sebastian BeckmannandRyan Foster 872ea5fb91 shared/idian: Rename component classes 2025-08-22 16:21:52 -04:00
Sebastian BeckmannandRyan Foster edb2c9ca48 shared/idian: Rename widget classes 2025-08-22 16:21:52 -04:00
Sebastian BeckmannandRyan Foster 5cda3d4e8e shared/idian: Rename all-in-one include to Idian.hpp 2025-08-22 16:21:52 -04:00
Sebastian BeckmannandRyan Foster 9e0c3219ff frontend: Move idian widgets to shared/qt 2025-08-22 16:21:52 -04:00
e8f6143769 frontend: Add new Idian widgets
Co-Authored-By: derrod <rodney@rodney.io>
2025-08-22 16:21:52 -04:00
PatTheMavandRyan Foster de997b1e2f frontend: Update crash handling and log upload functionality
Updates include:

* Use of CrashHandler to provide automatic uploads of the most recent
crash log if an unclean shutdown was detected and it has not been
uploaded yet.
* Detection and handling of unclean shutdowns is delegated entirely to
the CrashHandler class
* Use of OBSLogReply has been replaced with the LogUploadDialog, which
asks for confirmation before new uploads of log files (confirmation is
skipped for files with available upload URLs already - only available
for crash logs with this change)

Architectural changes:
* OBSApp is the layer responsible for application launch and shutdown
states, as well as crash logs and application logs
* The actual handling is delegated to purpose-made classes which OBSApp
owns instances of
* OBSBasic in turn refers to OBSApp for all this functionality, and can
subscribe/connect to appropriate events exposed by OBSApp to this
purpose
* Implementation details (like the existence of the CrashHandler class)
are not exposed to OBSBasic or the LogUploadDialog

The amount of changes for normal log file upload have been purposefully
limited. A proper refactoring of the application log file handling will
move this code out of OBSBasic as well.
2025-08-22 15:38:12 -04:00
PatTheMavandRyan Foster e4e3035661 frontend: Add LogUploadDialog class 2025-08-22 15:38:12 -04:00
derrodandRyan Foster a7d5721c2c frontend: Remove channel change signal handler from transform dialog 2025-08-20 13:57:36 -04:00
cg2121andRyan Foster 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
gxalphaandRyan Foster 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
Warchamp7andRyan Foster f62b13957c frontend: Remove unused item delegate parameters 2025-04-25 14:01:23 -04:00
Warchamp7andRyan Foster 36e3489d86 frontend: Adjust missing files dialog 2025-04-25 14:01:23 -04:00
Warchamp7 547e4acdd3 frontend: Focus text entry in NameDialog 2025-04-03 14:29:59 -04:00
thirumalai-qcomandRyan Foster 9664354924 frontend: Define WIN32_LEAN_AND_MEAN conditionally for ARM64
To avoid redefinition errors, define WIN32_LEAN_AND_MEAN conditionally
if not defined in win-ARM64 devices.
2025-02-28 16:29:57 -05:00
cg2121andRyan Foster 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
gxalphaandRyan Foster a562b8bf52 frontend: Add Input Monitoring to permissions dialog
The previous commit switched global hotkeys from requiring Accessibility
to just Input Monitoring permissions. This adds the matching changes to
the permissions dialog, also accounting for the fact that Accessibility
includes Input Monitoring.
2025-02-05 14:33:06 -05:00
PatTheMav 75ac9a29d3 frontend: Split OAuth implementation into single files per C++ class 2025-01-08 15:36:55 +01:00
PatTheMav f80b591a72 frontend: Prepare OAuth implementation for splits 2025-01-08 15:36:55 +01:00
PatTheMav 085c6245b0 frontend: Split Qt UI dialogs into single files per C++ class 2025-01-08 15:36:55 +01:00