Commit Graph

42 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
Warchamp7
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 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
Sebastian Beckmann
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
Warchamp7
694680e8c0 frontend: Revert Add Source dialog update
This reverts commit 5fc2476913.
2026-01-28 12:13:20 -05:00
shiina424
00f220a6dc frontend: Make Add Existing Button translatable 2026-01-17 14:28:20 -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
a42a6c4c5f frontend: Refactor and update Audio Mixer 2026-01-13 16:34:33 -05:00
Warchamp7
6fa1a35ad4 frontend: Update transform dialog 2026-01-08 21:12:30 -05:00
cg2121
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
Exeldro
dc7c8cfb48 frontend: Move transition preview button to button box 2026-01-06 07:02:52 -05:00
Sebastian Beckmann
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
gxalpha
5129612b6c frontend,shared: Replace and disable contextless connect calls
# Conflicts:
#	frontend/OBSApp.cpp
2025-12-17 16:35:45 -05:00
gxalpha
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 Beckmann
22ce393680 shared/idian: Make title and description common to all row types 2025-09-04 14:17:02 -04:00
Sebastian Beckmann
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 Beckmann
527e2f291f frontend: Remove unneeded argument from log upload privacy notice 2025-09-02 14:57:41 -04:00
cg2121
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 Beckmann
872ea5fb91 shared/idian: Rename component classes 2025-08-22 16:21:52 -04:00
Sebastian Beckmann
edb2c9ca48 shared/idian: Rename widget classes 2025-08-22 16:21:52 -04:00
Sebastian Beckmann
5cda3d4e8e shared/idian: Rename all-in-one include to Idian.hpp 2025-08-22 16:21:52 -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
PatTheMav
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
PatTheMav
e4e3035661 frontend: Add LogUploadDialog class 2025-08-22 15:38:12 -04:00
derrod
a7d5721c2c frontend: Remove channel change signal handler from transform dialog 2025-08-20 13:57:36 -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
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
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
Warchamp7
547e4acdd3 frontend: Focus text entry in NameDialog 2025-04-03 14:29:59 -04:00
thirumalai-qcom
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
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
gxalpha
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
PatTheMav
e4a43f6555 frontend: Prepare Qt UI dialogs for splits 2025-01-08 15:36:55 +01:00
PatTheMav
00fc9035a4 frontend: Add renamed Qt UI dialogs 2025-01-08 15:36:55 +01:00