237 Commits

Author SHA1 Message Date
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
0a82d87d82 UI: Check to see if outputs valid when updating stats 2017-05-15 15:05:54 -07:00
jp9000
3470776843 UI: Make Stats a regular window rather than dialog 2017-05-15 15:02:56 -07:00
jp9000
47221e52cf UI: Move Stats to the view menu 2017-05-15 15:01:59 -07:00
jp9000
840bd07365 UI: Prevent user from starting ouputs while in settings
There's a loophole that would allow users to activate an output while in
the settings window via hotkeys -- this prevents that from being able to
happen.  Note that users can still shut down outputs, but they can no
longer start them up while in the settings window.
2017-05-15 14:35:38 -07:00
jp9000
4ff7ac0bfa UI: Change output blocking bool to integer ref counter 2017-05-15 14:35:36 -07:00
jp9000
0697e37b26 UI: Fix misleading log message when updating settings
While an output is active, the user may try to reset the settings in the
settings window, causing a misleading error message to be thrown in the
log indicating that it's "falling back" to OpenGL.

Instead, if an output is currently active, do not reset video.
2017-05-15 14:28:00 -07:00
Richard Stanway
2933b89733
UI: Add support for showing output error messages 2017-05-15 12:03:42 +02:00
jp9000
b2e376b022 UI: Update quick transitions on transition add/removal
Fixes a bug where the individual drop-down lists of each quick
transition would not have the correct available transitions listed if
transitions were added, renamed, or removed
2017-05-14 23:06:11 -07:00
Jim
b5a6e12219 Merge pull request #912 from Xaymar/feature-enc-amf
enc-amf: Version 2.1.3
2017-05-14 21:02:02 -07:00
Michael Fabian Dirks
1e99bf100f enc-amf: Version 2.1.3 2017-05-15 03:36:20 +02: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
3d5759335c UI: Save/remember stats window geometry 2017-05-13 20:51:44 -07:00
jp9000
b40f940b51 UI: Add option to show stats on startup to general 2017-05-13 20:47:47 -07:00
jp9000
b3435f62d7 UI: Bring stats to front if it already exists
If the menu item is triggered again, just bring it to the front instead
of trying to recreate it again.
2017-05-13 20:45:48 -07:00
jp9000
72d7adba67 UI: Fix locale text for "OK" in question dialogs
This is the only case where the button's name does not match the
locale's text, the button name being "Ok" and the locale text item being
"OK", fully capitalized.
2017-05-13 14:10:44 -07:00
jp9000
522f5cdf3b UI: Make sure all message box buttons are translated
Instead of QMessageBox::question and QMessageBox::information, use the
OBSMessageBox class, which translates all buttons.
2017-05-13 14:06:32 -07:00
jp9000
bd34dce8b6 UI: Add helper class to translate message box buttons 2017-05-13 14:05:03 -07:00
jp9000
1c5591e644 UI: Make Qt use locale text for QWizard buttons 2017-05-13 13:07:12 -07:00
jp9000
35454f7fc5 UI: Fix a few locale items, and add a few missing ones 2017-05-13 13:01:56 -07:00
jp9000
0e1ae62355 UI: Add stats dialog
Shows performance stats, and streaming/recording stats, and helps warn
the user when they have less-than-optimal values with coloring on the
values (e.g. yellow when getting low on disk space, red when getting
really low)
2017-05-13 01:52:54 -07:00
jp9000
ee734c17a5 UI: Add themeID values for colors to style sheets 2017-05-13 01:52:53 -07:00
jp9000
d0d9cc4254 UI: Add function to get current memory usage (win32) 2017-05-13 01:52:45 -07:00
Richard Stanway
09f6882137
UI: Show invalid Bind to IP entries in the settings
This fixes a case where the user sets an IP but then that IP is no longer
valid, resulting in OBS showing "Default" in the settings but still trying
to bind to the invalid IP internally.
2017-05-10 21:44:28 +02:00
jp9000
4049a5a882 UI: Add auto-configuration wizard
The auto-configuration wizard is designed to allow first-time or
novice/uneducated users or to set up video and encoding settings in a
very quick and easy way.  It'll automatically perform a bandwidth test,
and/or test the user's video settings to determine the most ideal
settings for streaming and recording (assuming a 1-pc setup).
2017-05-08 02:12:03 -07:00
jp9000
51e5f5fc64 UI: Remove colon from a few locale items
The colon makes it difficult to use these locale items for other
purposes, and the colon isn't used much elsewhere, so just remove them.
2017-05-06 12:12:37 -07:00
jp9000
f9595938d0 UI: Add 1920x1080/1280x720 to the settings base res list
Adds 1920x1080 and 1280x720 to the drop-down list of "default"
base/canvas resolutions rather than just the user's monitor resolutions,
in case the user wants to set the canvas to 1920x1080 or 1280x720
without having to manually type it in.  Added as a minor convenience.
2017-05-06 11:29:41 -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
jp9000
ca0d4d18d5 UI: Don't subject base/output resolutions defaults
If defaults change for the base or output resolutions, it could
unintentionally affect users who are using defaults by chance and have
never changed those values.

Instead, save those values are soon as defaults are set if the users
haven't already set them.
2017-05-06 11:29:39 -07:00
jp9000
b850bc6415 UI: Add function to enable/disable outputs 2017-05-06 11:29:37 -07:00
fryshorts
937356cc8a UI: Fix settings dialog crashing on linux
Fix a double free in the settings window that occurs on linux only.
The UI Element already gets deleted above as a child of the
advAudioGroupBox which is not present on linux.
Apart from making the code even more unreadable, this will likely
come back to haunt us if the advAudioGroup will ever be shown on linux.
2017-05-06 15:59:41 +02:00
Richard Stanway
a23c009a69 Various: Optimize bundled PNG files
By losslessly recompressing and removing redundant metadata, this saves
around 910 KB.
2017-05-05 19:56:00 +00:00
jp9000
08a94072a0 UI: Always alternatively open backup scene json file
Fixes an issue where scene data would reset if the file was not found,
even if a backup file existed.  This should prevent those remaining
stray cases where user's scenes would seem to be suddenly deleted if the
original file was deleted for some reason or another.  The backup files
should always be available, so this should clear up that last remaining
case.
2017-05-04 18:17:42 -07:00
cg2121
71c5753207 UI: Add ability to output to window
Closes jp9000/obs-studio#841
2017-05-04 17:07:36 -07:00
e00E
26c28b4502 UI: Fix warning in VisualStudio 2017
When building with VS2017 the compiler shows some warnings which is
undesirable.

The compiler rightly complains about declarations which hide older ones
which are trivially fixed.

Finally only POD types should be passed to variadic functions which is
why the String should be converted to c_str().
Relying on the current undefined behavior is a bad idea as it can change
with compilers and compiler versions.

Closes jp9000/obs-studio#902
2017-05-04 06:13:45 -07:00
e00E
4361c5bd45 UI, obs-qsv11: Fix build in VisualStudio 2017
OBS did not build out of the box in VS2017 but it does with these
changes.

Closes jp9000/obs-studio#902
2017-05-04 06:13:26 -07:00
Jim
965e2eea9a Merge pull request #900 from cg2121/linux-scene-switcher
frontend-tools: Add automatic scene switcher for Linux
2017-05-04 05:08:17 -07:00
Jim
da0f3c2705 Merge pull request #889 from cg2121/drag-drop-bug
UI: Fix drag & drop bug
2017-05-03 14:17:49 -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
cg2121
d1de03c0be frontend-tools: Add automatic scene switcher for Linux 2017-05-03 09:23:06 -05:00
jp9000
4684294bcd UI/updater: Add opt to disable building update module
Mostly to reduce build time when the update module doesn't need to be
rebuilt.
2017-05-02 03:45:20 -07:00
jp9000
aa70704700 frontend-plugins: Abstract captions
Currently the captioning code is a bit intertwined with the UI, and the
captioning is hard-coded towards microsoft speech API.

This patch abstracts captions to allow other APIs to be implemented
later.
2017-04-30 08:28:07 -07:00
jp9000
1e37017d4e frontend-tools: Rename some files
Changing the name of certain captions source files so it specifies which
caption API the files are for.  "mssapi" for Microsoft's speech API.
2017-04-30 08:23:46 -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
cg2121
e26f07a1c3 UI: Make sure all dialogs have close buttons
This adds close buttons to remux dialog, output timer dialog, and
advanced audio properties dialog.  I also did a small refactor of the
remux dialog so the buttons were consistent with other dialogs.

Closes jp9000/obs-studio#876
2017-04-30 06:38:33 -07:00
cg2121
012b5ef6a5 UI: Display filename when dragging & dropping
After dragging and dropping a file, the source name will be the
filename.

(Jim: When dragging and dropping raw text, the raw text would then be
used as the source's name, which is bad if there's a lot of text.  It's
now been changed so that it uses the source type's display name, i.e.
"Text (GDI+)" as the source name in that case)

Closes jp9000/obs-studio#888
2017-04-30 03:37:02 -07:00
Jim
1e831ea9eb Merge pull request #894 from trwnh/patch-1
UI: Ctrl+E to Edit Transform
2017-04-30 03:05:27 -07:00