Commit Graph

234 Commits

Author SHA1 Message Date
Norihiro Kamae
c053216824 UI: Remove move_to_xdg
The configuration directory was $HOME/.obs-studio until version 0.10.1
and then moved to XDG's configuration path by ba02e065fe.
The function move_to_xdg was introduced to move the old configuration
directory and left almost untouched for 8 years.
2023-06-09 04:51:10 -07:00
PatTheMav
2966c4030e libobs: Use static library for version string information
Switching to a static library that contains version information as
const char strings has multiple benefits:

* The version information provided externally via compiler definitions
  will fail compilation early if malformed
* An updated version string (which will happen with every commit) will
  not invalidate existing compilation units, because only the static
  library is affected by the change
* An update of the version change just requires a recompilation of the
  static library and a linker update
* An update of the version will _not_ infect the rest of the codebase
  (as it does currently, because everything includes obsconfig.h one
  way or another)
* Other modules which used the macro definition directly have been
  updated as much as possible to use the proper getter method from
  `libobs` instead (some Windows-specific modules use preprocessor
  string composition, the value has been added as a compiler definition
  directly in those cases)
* Because the impact of a version change due to a commit hash change
  is limited to the static library, ccache hit rates should be
  improved considerably
2023-05-27 16:48:24 -07:00
Norihiro Kamae
63e0bff5e6 UI: Fix crash when receiving multiple SIGINT
When there are two or more SIGINT signals were sent to obs, obs crashes
because the 2nd SIGINT calls `close` though the main window has been
deleted.
2023-05-23 04:17:11 -07:00
Lain
106c7aa61f Update copyrights/names 2023-05-20 01:31:18 -07:00
gxalpha
2ab326d2cd UI: Redirect Qt log messages to OBS log 2023-05-13 17:09:32 -07:00
Richard Stanway
820fba2d7f UI: Remove unnecessary variables type conversions
Detected by PVS Studio.
2023-04-05 00:40:31 +02:00
derrod
5a375defa8 UI: Rework recording format handling 2023-04-04 00:54:28 +00:00
cg2121
3a610c698e UI: Remove UNUSED_PARAMETER where unnecessary
Since cpp allows removing the unused parameters from the function name,
UNUSED_PARAMETER is not needed, unless it is in an ifdef.
2023-04-01 16:54:02 -07:00
Ryan Foster
60139cbdfe Revert "UI: Remove bitness strings"
This reverts commit 64d4ae0106.
2023-04-01 16:35:10 -07:00
Jim
39afa665a1 UI: Always print debug log to stdout if Debug build
Makes it easier to debug certain issues when building on non-Windows
machines.
2023-03-25 22:51:25 -07:00
Richard Stanway
5182368009 UI: Properly handle SIGINT on non-Windows platforms
Running Qt code in a signal handler is not safe. Per the Qt docs, we
instead create a pair of sockets and a QSocketNotifier so that the
signal handler can notify the main thread which can process the exit
request without risk.

Reference: https://doc.qt.io/archives/qt-6.3/unix-signals.html
Reference: https://man7.org/linux/man-pages/man7/signal-safety.7.html
2023-03-25 16:17:02 -07:00
derrod
5083c2a2e2 UI: Remove Windows 7 browser hwaccel check 2023-03-18 15:19:48 -07:00
cg2121
a870ae2fb9 UI: Remove platform string from title bar
This cleans up the title bar text.
2023-03-17 19:06:50 +11:00
gxalpha
4c9ebc753c UI: Create OBSPermissions on stack
This fixes the window leaking and may improve performance.
2023-03-10 13:49:52 -05:00
Richard Stanway
9d4a7f01dd UI: Add DLL blocking functionality for Windows
Adds a NtMapViewOfSection hook which we can use before DLLs are loaded
to decide whether to abort the process. This is useful for blocking
known problematic DLLs that cause crashes. In addition, the PE timestamp
can be checked to block only older DLLs such as older versions of Vtuber
virtual cameras with known deadlock bugs.

A simple counter of each DLL is used for logging purposes. Since DLLs
can be blocked at any time, the output is only logged on exit of OBS.
2023-03-09 14:16:34 -05:00
derrod
c99256cf21 UI: Do not set default locale 2023-03-08 18:06:51 -05:00
Richard Stanway
bb7ca3c2c3 UI: Add mutex for writing to the log file
fstream is not thread-safe and the act of writing the string and the
newline are two separate operations which could execute concurrently in
multiple threads, resulting in lines joining together followed by two
newlines. Due to the presence of a static mutex, this also removes
inline on the function.
2023-03-04 15:34:17 -08:00
derrod
af4012e1b1 UI: Set QT_NO_SUBTRACTOPAQUESIBLINGS env var
This speeds up drawing the hotkey list *significantly* and doesn't seem
to break anything else. But it is kind of a hack.
2023-02-25 15:25:31 -08:00
gxalpha
d405193aeb UI: Only set portable mode variable if supported
Previously, all the functions of portable mode wouldn't work if compiled
without it, but the log still show it as enabled if the argument was
set. This could lead to confusion.
Additionally, we don't even show the option in the help string (--help),
so it should just be a no-op.
2023-02-24 14:11:21 +01:00
derrod
12a27d8b99 UI: Add update channels (macOS) 2023-02-19 01:35:56 +01:00
tytan652
64176daaf4 UI: Force Wayland usage on Ubuntu GNOME
XDG_CURRENT_DESKTOP is set to "ubuntu:GNOME" on Ubuntu custom version of
GNOME.
2023-02-18 16:20:39 -08:00
PatTheMav
8b0843803e UI: Remove unused variables 2023-02-18 15:22:33 -08:00
cg2121
64d4ae0106 UI: Remove bitness strings
This removes the bitness strings from the title bar and about dialog.
2023-02-18 15:09:11 -08:00
gxalpha
c24ec240af UI: Remove unused Qt crash reporter code
The crash reporter made with Qt was introduced in 824c7b0, but then was
quickly replaced by a native OS implementation in d42a7ce. This code has
been lying around ever since.
2023-02-13 10:34:18 -05:00
gxalpha
11e9291800 UI: Set macOS appearance on theme change
Makes macOS aware that we're using either light or dark theme to adjust
native dialog colors accordingly.

Co-Authored-By: Patrick Heyer <PatTheMav@users.noreply.github.com>
2023-01-31 18:50:56 +01:00
gxalpha
2272efc91f UI: Use native combobox popup on macOS
As recommended by Qt on QTBUG-106162, this fixes QComboBox popups not
working with VoiceOver.
2023-01-31 18:50:56 +01:00
Kurt Kartaltepe
124ebedbdb UI: Disable qt5ct when compiled with qt6
Qt is not smart enough to disable qt5 platform plugins when users
blindly ask for them, which causes users to be unable to start OBS.
Instead lets kindly disable broken platforms on their behalf.
2023-01-07 15:17:05 -08:00
Kurt Kartaltepe
1b8a695571 UI: Restrict GNOME wayland override
Some wayland compositors exclusively use xwayland such as gamescope.
This allows us to fallback to the platform determined by Qt, which will
detect these exotic compositors and handle them correctly when not
overidden by this envvar.

Qt preserves this undesired behavior until 6.3. With ubuntu 22 on 6.2
this workaround needs to be preserved.

fixes #6386
2022-12-23 10:00:03 -03:00
derrod
f141b9c59b UI: Add update channels (Windows) 2022-11-22 02:54:07 +01:00
PatTheMav
4ff789e24c UI: Fix snprintf calls with literals as buffer sizes 2022-11-11 19:51:28 +01:00
Tommy Vercetti
b838636f58 UI: Remove Rosetta detection log
Will be moved to libobs
2022-11-09 03:03:26 -08:00
Ryan Foster
1bd43220d5 UI: Migrate Simple Output NVENC preset 2022-10-31 22:51:24 -07:00
Ryan Foster
c6fbeaaf6d UI: Refactor NVENC preset migration
Refactor the NVENC preset migration code to avoid having to maintain
more copies of the preset mappings.
2022-10-31 22:51:24 -07:00
Ryan Foster
0ddba5d644 obs-ffmpeg: Split NVENC preset migrations by codec
This commit also modifies UI.
2022-10-31 17:02:51 -04:00
Ryan Foster
a36427c0ab UI: Add NVENC preset migration for lossless 2022-10-31 17:02:51 -04:00
Ryan Foster
891e3b0f49 obs-ffmpeg: Align NVENC preset migrations to NVIDIA guidelines
Bring our NVENC preset migrations closer in line with NVIDIA guidelines.

https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-preset-migration-guide/

This commit also modifies UI.
2022-10-31 17:02:51 -04:00
Ryan Foster
254dc4081c obs-ffmpeg: Add NVENC preset mapping for old Default preset
The old NVENC preset "Default", labeled in OBS as "Performance", maps to
the new P3 preset when not using multipass. Since we previously only
enabled multipass/two-pass on "Max Quality", we can map this to P3 in
all cases.

This commit also modifies UI.
2022-10-31 17:02:51 -04:00
derrod
e91f1f4003 UI: Hide --portable from help text if disallowed 2022-10-22 16:35:05 -07:00
derrod
e8dc7d6b07 UI: Add --steam flag 2022-10-22 16:23:50 -07:00
jp9000
70c5f6c24a UI: Change "hq" to use P5 when upgrading NVENC 2022-10-19 17:51:07 -07:00
Richard Stanway
cba81638b5 UI: Fix potential memory leak when parsing OBSThemeMeta 2022-10-15 16:17:46 -07:00
Richard Stanway
daee83373c UI: Remove unused assignments 2022-10-15 16:17:46 -07:00
Ryan Foster
b2ff22a587 UI: Swap mq and hq NVENC Preset mappings
The old preset "mq" was "Max Quality", which used the old HQ preset with
two-pass enabled. The old preset "hq" was "Quality", which used the old
HQ preset without two-pass. Of the two, "mq" would have been considered
"slower" or "higher quality" than "hq", so let's swap these entries.
2022-10-12 21:21:03 -07:00
jp9000
d7c7180a8c obs-ffmpeg: Update NVENC to new presets
(This commit also modifies the UI)
2022-09-22 02:42:32 -07:00
Matt Gajownik
88a51dbf97 UI: Don't mark all widgets in main window as native on macOS
This significantly improves undocking behaviour on macOS for most docks.
Previously, undocking would perform an undock rather than undock + drag.
This does not fix the behaviour for browser docks as they are native.

May also improve performance of the main window, regardless of dock state.

See 3224c6d7d1
2022-09-11 10:58:58 +10:00
gxalpha
8cf46ca68c UI: Properly register VoidFunc in Meta Object System 2022-08-20 16:45:07 -07:00
Matt Gajownik
c7da23bf96 UI: Remove spaces from translation keys
Qt translation strings use the full English string as an identifier,
rather than a standardised key. Meanwhile, .ini files aren't designed
for keys with spaces, so a translation string for "Restore Defaults"
won't match unless the ini line is
"Restore Defaults"="Defaults"
which is inconsistent, unpleasant and harder to read.
2022-08-18 03:35:51 -07:00
cg2121
ccfe300f72 UI: Reintroduce faster theme switching
Based on (was reverted):
08cee21158

This simplifies the faster switching code, as setting an empty
stylesheet resets it to default.
2022-08-18 02:34:47 -07:00
gxalpha
0a94b3ce16 UI: Only set QStyle on app start
Setting a QStyle resets the color palette. This is unhelpful when a few
lines before that we set a new palette. In theory the setStyle call
could just be moved up, but we don't need to since we always set the
same style so there's no reason to call it multiple times.
2022-08-18 14:22:55 +10:00
pkv
3191c73e16 UI: Fix theme leak
This fixes leaks when loading and switching themes.

Signed-off-by: pkv <pkv@obsproject.com>
2022-08-16 07:36:18 -07:00