82 Commits

Author SHA1 Message Date
jp9000
f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
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