Commit Graph

25 Commits

Author SHA1 Message Date
Anton Kesy
22016f309c frontend: Fix typos 2026-01-14 13:47:30 -05:00
Warchamp7
a42a6c4c5f frontend: Refactor and update Audio Mixer 2026-01-13 16:34:33 -05:00
Warchamp7
c01a9bea49 frontend: Create AlignmentSelector widget 2026-01-08 21:12:30 -05:00
Warchamp7
407944a27c frontend: Rearrange default dock positions 2025-12-19 14:43:44 -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
9b1d1493ab frontend,shared: Replace and disable QByteArray to char * casts 2025-12-17 16:35:45 -05:00
Warchamp7
34a0a6a530 frontend: Remove crash handler earlier in shutdown 2025-12-04 15:05:23 -05:00
Warchamp7
14572498dc frontend: Adjust application shutdown logic
Improves app shutdown in a few ways, including separating out different
pieces of the OBSBasic close handler into their own functions.

Removes the crash handler sentinel earlier when the main window is closed,
preventing unclean shutdown warnings when a plugin causes issues. While not
ideal, the dialog is not useful when we cannot specify which plugin caused the
problem.

Increases shutdown priority of the main application so that when OBS interrupts
the session ending, CEF is not closed at the same time. This fixes a crash.

Additional safeguards and event handling to try to ensure a smoother shutdown.
2025-12-01 16:40:34 -05:00
Sebastian Beckmann
482778d532 frontend: Change renderer combo box to use custom data
While the Metal renderer is displayed as "Metal (Experimental)", the
"Experimental" part doesn't need to be stored to the config. Otherwise,
anyone having selected the Metal renderer will have it get unselected
once the "Experimental" part is removed, and presumably the people who
have it selected while it's experimental would also be the people who
would want it once it's stable.
2025-09-08 17:39:38 -04:00
PatTheMav
f932082112 frontend: Add Metal to available list of renderers in basic settings 2025-09-04 17:58:27 -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
7685a0c78b frontend: Set cursor width for OBSHotkeyEdit to 0
This hides the cursor from the OBSHotkeyEdit spin boxes even when they
are in focus.
Uses a shared style owned by OBSApp.
2025-08-23 13:01:02 -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
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
0619198c25 frontend: Add Hybrid MOV to format list 2025-08-21 18:14:33 -04:00
tytan652
bdebea3d85 frontend: Enable browser hw accel toggle under Linux 2025-05-24 14:20:21 -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
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
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
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
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
PatTheMav
2be464a21f frontend: Split main application implementation into single files 2025-01-08 17:33:13 +01:00
PatTheMav
bcc6880183 frontend: Prepare main application implementation for splits 2025-01-08 17:33:13 +01:00