0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

181 Commits

Author SHA1 Message Date
Tristan Matthews
4bb002c4d3 UI: Block SIGPIPE in all threads
This can happen when trying to write to a closed socket (in the case
of an RTMP server closing the connection).
2019-05-09 17:06:17 -07:00
Clayton Groeneveld
52c3f81f0e UI: Fix theme bug when updating from older versions
Fixes: https://obsproject.com/mantis/view.php?id=1446
2019-04-23 23:38:03 -05:00
stump
bc99ec4d7c UI: Add null check for rename of default theme
Without this, we strcmp a null pointer if no theme is set in the
configuration file.
2019-04-10 22:09:37 -04:00
Clayton Groeneveld
94b3f80305 UI: Rename Default theme to System
The system theme was named Default even though the default theme is Dark.
This addresses that by renaming Default.qss to System.qss. I've made it
backwards compatible so users already using this theme are not affected.

The theme list now shows up as:
-System
-Dark (Default)
-Acri
-Rachni

I have also made it so that you can specify the default theme in the
UI config file.
2019-04-08 19:56:56 -05:00
Clayton Groeneveld
cc1f239420 UI: Fix crash when using ctrl-c in Linux terminal
This fixes a seg fault that would happen when launching OBS from the
terminal and then hitting ctrl-c.
2019-03-31 00:59:51 -05:00
Clayton Groeneveld
2080051b9f UI: Use icons from theme on Linux 2019-03-16 05:41:12 -05:00
jp9000
106222154a UI: Add way to exec std::function via invokeMethod
Allows the ability to use invokeMethod on the OBSApp object to execute
an std::function.  This allows deferring an std::function call to the Qt
event queue.
2019-03-05 14:39:24 -08:00
jp9000
fafcbeea9a UI: Always set first scene collection/profiles
Instead of relying on the default config values (which can change
depending on language), explicitly set the values when run for the first
time.
2019-03-05 12:50:53 -08:00
Clayton Groenveld
5a5efa0b3e UI: Add preview/program labels in studio mode 2019-03-03 22:38:23 -06:00
jp9000
9fee895359 UI: Use hardware encoding by default if available
If the user doesn't use the auto-configuration on first use, set the
default encoders used in simple output mode to hardware encoders.
2019-02-07 17:00:46 -08:00
Kevin Ross
a5fac7d78c UI: Enable high DPI scaling, for Qt >= 5.11
Closes obsproject/obs-studio#1602
2019-02-04 21:36:17 -06:00
jp9000
455187e6e4 UI: Add date/time to log file
Although log files are saved with the date in the name of the log file,
it's also nice to be able to see it inside the log file itself,
especially when uploaded to a text service.
2019-01-12 16:35:43 -08:00
cg2121
2fedcab987 UI: Add option to auto remux 2018-09-18 20:55:12 -05:00
Jim
78d940e0f4
Merge pull request #1346 from dtcooper/master
libobs/UI: Allow Access To argc/argv
2018-09-08 01:29:43 -07:00
cg2121
8882cfc484 UI: Remove license agreement dialog 2018-09-07 06:08:31 -05:00
Jim
e9141de841
Merge pull request #1444 from DungFu/retina-icons
UI: Add retina support and updated icons
2018-09-01 21:50:34 -07:00
DungFu
d70352a6ce UI: Add retina support and updated icons
OBS Studio currently does not support retina rendering for any of the
images in the app. This adds support for retina pixmap rendering as
well as adding higher resolution versions of each icon that was not
a high enough resolution to support 2x. The icons work when switching
themes and will only render the 2x versions when the device pixel
ratio is greater than or equal to 2.

I also added credits to the readme for images that were already being
used that require credit to the author. If the OBS community has
paid for these images already, I can remove the credits from the
readme. The credit is for the invisible, visible, and gear icons.
2018-08-31 23:00:23 -07:00
jp9000
1c2f6fafee UI: Set browser hwaccel def. to false if winver <=7
Due to reports of issues with Windows 7, if the user is on windows
version 7 or below, set the default for "Browser Source Hardware
Acceleration" to false instead of true.  This ensures optimal user
experience and still allows those who had it working to continue using
it if they so choose.

Exact cause for this issue on Windows 7 is currently unknown.
2018-08-26 12:26:31 -07:00
Jim
d6699ed85d
Merge pull request #1411 from RytoEX/update-log-bitness
UI: Make OBS bitness more specific in title bar and log
2018-08-17 14:59:45 -07:00
jp9000
4d38e054e3 UI: Add adv. settings checkbox for browser HW accel
Adds a checkbox to advanced settings that allows the user to
enable/disable browser source hardware acceleration on windows.
2018-08-10 06:33:41 -07:00
jp9000
c7a2a674bc UI: Use NVIDIA laptop GPU hint
Changes the default "preferred" GPU to the NVIDIA GPU when running the
program on NVIDIA laptops.
2018-08-10 06:09:23 -07:00
Ryan Foster
5fd8ebd14c UI: Make OBS bitness more specific in title bar and log
This commit explicitly puts "32-bit" in the title bar and OBS log for
32-bit versions of OBS. It also changes "64bit" to "64-bit" to match the
string used for Windows version info.
2018-08-07 01:15:03 -04:00
Dmitry-Me
440baa3147 UI: Add missing va_end() call 2018-08-02 15:57:35 +03:00
jp9000
a032bcc798 UI: Add intro startup page (windows)
Allows the ability to show a web page via CEF to the users on startup to
present and announce new features.
2018-07-29 23:32:23 -07:00
jp9000
8dc2e6b5fb UI: Add signal for when theme has changed 2018-07-21 19:14:36 -07:00
jp9000
e1ab9a0fc4 UI: Add ability to parse OBSStyle from qss
Adds the ability to set the current palette for the program via adding
"OBSTheme" objects to the qss files.  The values for the OBSTheme object
are the values used by QPalette::ColorRole.

Modifying the global palette allows the ability to easily/quickly look
up application theme colors (especially if you would like to use them
for QML), as well as the ability to fix the hyperlink color issue.  (On
dark themes, links would still be dark blue, causing them to be
difficult to see)
2018-07-21 19:14:36 -07:00
David Cooper
16e879ca51 libobs/UI: Allow Access To argc/argv
This paves the way for plugins to have access to the argc/argv used
when spawning OBS. Notably, this will allow a patch to obs-browser that
passes through command line arguments on macOS to CEF.
2018-07-18 10:39:39 -07:00
Shaolin
b8966802ef UI: Add option to toggle multiview draw safe area 2018-05-20 23:20:52 -03:00
Shaolin
4649783b1e UI: Add option to toggle multiview scene names 2018-05-20 23:20:52 -03:00
Shaolin
e0e2cc57a0 UI: Add option to toggle multiview mouse switching 2018-05-20 23:20:52 -03:00
Shaolin
a142261edd UI: Clarify multiview layout names 2018-05-20 23:20:52 -03:00
Shaolin
b8a901c870 UI: Convert multiview layout string profiles to int
This commit series changes the ini user configuration multiview layout
so that string values were converted to int. In order to prevent past
user saves to break we verify if the ini still have string values and
convert that to int on obs init.

This will make the code easier to maintain in clearer to read the
multiview layout settings, also, makes the addition of new layouts
easier.
2018-05-20 23:20:52 -03:00
Shaolin
c7c328dc83 UI: Add Vertical Mixer option 2018-05-19 00:17:58 -03:00
jp9000
051c58eeb7 UI: Add opt. to enable/disable in-focus hotkey blocking
Adds an option to enable/disable blocking hotkeys when the window is in
focus which is normally used in order to prevent hotkey/shortcut
conflicts.  This does not apply to the settings window; the hotkey
behavior is unchanged with the settings window (in order to prevent
hotkeys from being used while setting hotkeys for example).

Closes obsproject/obs-studio#1267
2018-05-06 17:14:04 -07:00
Jim
76a5cc12a6
Merge pull request #1274 from computerquip-streamlabs/frontend-crash-handling
Separate crash handler from libobs startup
2018-04-25 14:02:49 -07:00
Zachary Lund
308b0add47 UI: Explicitly initialize the crash handler 2018-04-25 12:56:23 -07:00
Shaolin
7fc6ea6ccc UI: Do not generate "already active" logs
When an user launches a multiple instance of obs and don't use the -m
flag, wait until the confirmation to launch to create a new log file.
This avoids a short log with no information when using the Help ->
Update Last Log.

Closes obsproject/obs-studio#1164
2018-04-16 21:31:32 -07:00
jp9000
3b64610717 UI: Add Help -> Crash Reports submenu
Adds the ability to upload crash reports, making it easier for users to
give us crash data.  This should be considered a temporarily solution,
as automated crash reporting should be the ideal solution as soon as
time permits.
2018-03-16 16:27:49 -07:00
jp9000
d55589ef09 UI: Specify whether crash/profiler/logs have prefix
Adds a "has_prefix" parameter to delete_oldest_file and get_last_log in
order to determine whether the file has a prefix when parsing its
timestamp.  For example, crash logs are prefixed with "Crash", and thus
it was unable to get the timestamp because it couldn't parse the
filename correctly due to that fact.
2018-03-16 16:17:56 -07:00
jp9000
27e3ea5b5f UI: Specify subdir/variable to save to for get_last_log 2018-03-16 16:15:44 -07:00
VodBox
f6544dd802 UI: Add command line arguments to log 2018-01-20 15:12:57 +13:00
jp9000
e038bd8e55 UI: Change default theme to dark for new users 2018-01-08 17:40:24 -08:00
derrod
c354551484 UI: Add --multi flag to suppress multi-instance warning
Addresses Mantis issue 927 by adding the --multi/-m flag to suppress the
warning dialog.

Closes jp9000/obs-studio#964
2017-07-21 07:51:31 -07:00
VodBox
f1588daca0 UI: Ensure theme backward compat. with older OBS vers.
Deprecates "Theme" global config value and uses "CurrentTheme" instead
to ensure backward compatibility with older versions of OBS, which will
fail to load if you have a theme that isn't available.

(Jim Edit: Putting this back because I misunderstood the purpose of
jp9000/obs-studio#936)
2017-07-02 13:31:51 -07:00
VodBox
d1cb3a42f5 UI: Add backwards compatible theme fallback
Closes jp9000/obs-studio#936
2017-07-02 11:54:08 -07:00
Richard Stanway
ac90d863cb
UI: Set error mode to SEM_FAILCRITICALERRORS
This prevents spurious dialog boxes appearing, such as "No disk is in the
drive" if the application attempts to access an invalid drive.
2017-06-21 17:39:20 +02:00
Shaolin
cb9f767e45 libobs/plugins/UI: Suppress -Wimplicit-fallthrough introduced by GCC 7
Signed-off-by: Shaolin <admshao@gmail.com>
2017-05-29 21:05:18 -03:00
mntone
2ea7e3b344 UI: Fix creation of crash log with non-english paths 2017-05-21 10:44:54 +09:00
Igor Bochkariov
6e1c4caf99 UI: Fix creation of log files with non-english paths
This commit fixes creating log files in windows with Unicode profile
names.

I encountered this bug when running obs-studio 18.0.2 in Windows 8.1 x64
with my user profile path containing Unicode characters.

Steps to reproduce:

1) Create a windows user with a Unicode name: "пользователь"
2) Run OBS Studio, go to Help -> Log Files -> View current log (Nothing
happens)

The expected result is opening current log file.

Closes jp9000/obs-studio#916
2017-05-15 21:50:44 -07:00
jp9000
96ce9633e0 UI: Warn user if multiple instances of the UI are open
Uses a named mutex to detect if multiple instances of the program are
open, and if so warns the user.  When running in portable mode, uses a
separate unique mutex name mapped to the user's config directory to
ensure that no two portable builds use the same config directory.  This
way, portable builds do not conflict with normal builds or other
separate portable builds.
2017-05-14 15:25:34 -07:00
jp9000
99f5ae3059 UI: Don't count debug log messages in repeat detection 2017-05-14 15:24:15 -07:00
jp9000
602c730312 UI: Fix bug where Pre19Defaults would always be set
"OldDefaults" was changed to "Pre19Defaults", but it was still left in
this spot unchanged.
2017-05-14 13:12:14 -07:00
jp9000
13741034dd UI: Don't use "quit on last window closed"
Instead, quit only when the main window has been fully closed (and not
minimized to tray).  Fixes a bug where if the main window is minimized
to tray and another non-child window is open (for example, the stats
window), and then that window is closed, would cause the program to
prematurely exit and crash.
2017-05-14 13:03:46 -07:00
jp9000
9d019e90ab UI: Limit default canvas res to 1920x1080 or below
The reasoning behind this is because having a very large canvas size can
negatively affect the user experience -- most sources end up seeming
smaller than they need to be to users, resulting in the user needing to
size up the sources, or in the case of webcams it makes the user try to
use much larger webcam resolutions than they should reasonably need to
do, resulting in higher unintentional resource usage.  The program will
additionally require more fillrate to render and downscale things as
well.

This applies only to the default starting base/canvas resolution for new
users only.

Additionally, users that ran the program pre-19 will be unaffected by
this change, as it will detect that and set the old defaults to prevent
an unexpected change in resolution for those users.
2017-05-06 11:29:40 -07:00
mntone
9efd2b87aa UI: Add option to disable audio ducking on windows
The audio subsystem of windows is by default configured to lower the
volume of other things while a communications device (mic) is currently
active.  This patch prevents that from being enabled with OBS.  If the
user needs audio ducking enabled again for whatever reason, there is now
an option to re-enable it in advanced settings.

Closes jp9000/obs-studio#884
2017-05-03 11:05:30 -07:00
Shamun
0206227b75 UI: Add command line option for starting up always on top
Closes jp9000/obs-studio#853
2017-04-30 07:49:25 -07:00
Richard Stanway
599ffaa02a
UI: Increase MAX_CRASH_REPORT_SIZE to 150 KB
Now that OBS defaults to 64 bits on Windows, our crash reports are often
truncated since the 64 bit stack values are using twice as much space.
2017-04-11 13:07:34 +02:00
Richard Stanway
fdc9c47875
UI: Hide OpenGL and D3D adapter on Windows
OpenGL on Windows is rather unstable and can result in graphical
corruption or the complete inability to start OBS since some GPUs do not
support the minimum requirements after switching to OpenGL. The UI option
is now hidden unless --allow-opengl is passed on the command line.

The D3D adapter is currently unused and we often find users are concerned
when their GPU does not appear in the list.
2017-04-10 15:54:51 +02:00
VodBox
aa547e8df6 UI: Don't exit on unknown command line arguments
OBS Browser Source uses command line arguments for flags. Exiting on
command line arguments that are unknown to OBS prevent's that
functionality from working.
2017-03-01 20:25:56 +01:00
jp9000
c1c84e9101 UI: Add front-end auto-updater 2017-02-20 22:45:34 -08:00
jp9000
0fcd661e13 UI: Remove unused variables
Closes jp9000/obs-studio#778
2017-01-30 16:55:29 -08:00
Jim
ce46ffa82e Merge pull request #758 from cg2121/command-line-args
UI: Add more command line options
2017-01-29 19:42:37 -08:00
cg2121
29f22e72a8 UI: Add option to save projectors
This adds an option to the general settings to save the opened
projectors on exit.

(Note: Fixed conflicts -Jim)

Closes jp9000/obs-studio#743
2017-01-29 06:02:15 -08:00
jp9000
85c43cd666 UI: Protect debug text static string var with mutex 2017-01-24 12:49:47 -08:00
Lionheart Zhang
9050febf06 UI: Convert to wide before outputting debug text (win)
Fixes an issue where non-english debug text wouldn't display correctly
in the debugger output on windows.  Also, only output debug text when
actually debugging.

Closes jp9000/obs-studio#734
2017-01-24 12:32:23 -08:00
cg2121
7c98edccc5 UI: Add more command line options 2017-01-11 15:48:59 -06:00
Michael Fabian Dirks
db7632e7fd UI: Use dedicated GPU on Hybrid AMD GPU systems
This enables use of the dedicated GPUs for AMD PowerXpress systems.
Especially important for Adapter selection, as usually the dedicated GPU
is hidden/inactive until needed.

Closes jp9000/obs-studio#706
2016-12-17 20:06:39 -08:00
jp9000
b277000f97 libobs/util: Add function to generate formatted filenames
(Note: This commit also modifies the UI)

Being able to generate file names based upon a specification is useful
for more than just the UI; it can also be useful for things such as the
replay buffer where file names need to be generated on the fly.
2016-12-08 03:27:34 -08:00
Jim
8d86f49003 Merge pull request #682 from Xaymar/cmd_verbose_unfiltered
UI: Add --verbose and --unfiltered_log command line options
2016-11-16 20:50:01 -08:00
jp9000
fa0bd585a5 Revert "UI: Enable HiDPI scaling."
This reverts commit c4eebbba54.
2016-11-04 04:27:07 -07:00
jp9000
06894c6e84 Revert "UI: Only scale HiDPI on QT 5.6+"
This reverts commit 404258f41a.
2016-11-04 04:26:52 -07:00
Michael Fabian Dirks
cc1949c251 UI: Add --verbose and --unfiltered_log command line options
--verbose enables logging of messages and LOG_INFO and --unfiltered_log disables repeated log line filters. Both are useful for extreme support sessions where things have gone so far south that you actually would need this.
2016-11-03 16:14:01 +01:00
jp9000
d5ad621dd1 UI: Fix --profile option not working on non-windows
Using "*.*" as a search string is a windows-specific search term.  "*"
should be used instead.
2016-10-20 12:41:56 -07:00
Ryan Foster
b75292dbf4 UI: Add Portable Mode indicator to title bar and log
Closes jp9000/obs-studio#654
2016-10-09 18:10:18 -07:00
Colin Edwards
404258f41a UI: Only scale HiDPI on QT 5.6+ 2016-10-04 22:46:52 -05:00
Jim
a80d334cf6 Merge pull request #640 from DDRBoxman/HiDPI
UI: Enable HiDPI scaling.
2016-10-04 11:30:34 -07:00
Warren Turkal
f3eb8aacfe UI: Use Qt lib for screen info instead of x11 libs
All of the monitor discovery logic can be implemented with Qt. This
change removes all the x11 implementations in favor of Qt and removes a
fair amount of platform specific code.
2016-10-03 23:50:13 -07:00
Colin Edwards
c4eebbba54 UI: Enable HiDPI scaling.
This makes the app much more usable on hidpi screen devices like the
surface.
2016-09-30 01:05:14 -05:00
jp9000
48f0c73f82 UI: Use rect intersection test for validating position
Instead of checking to see if the window's position is valid, check to
see if the rectangles of the window and the monitor intersect via a
rectangle intersection test.
2016-09-28 22:26:28 -07:00
jp9000
8836592d92 UI: Add front-end API library
Allows manipulating and modifying the front-end via plugins.
2016-09-06 22:01:48 -07:00
jp9000
01b274f1da UI: Rename 'obs' dir to 'UI'
This is to prevent confusion both when prefixing commits and when
reading the directory structure for the first time.
2016-08-27 20:19:45 -07:00