Commit Graph

85 Commits (7549b3a0926e5c9f6131ec5423e81eac2cf896d8)

Author SHA1 Message Date
jp9000 8b68ccdc13 UI: Fix build issue with older linux Qt5 packages
QMainWindow::resizeDocks isn't supported on certain long-term support
distros (ubuntu trusty in particular), so instead just restore the
starting state and don't try to recalculate the ideal positioning.
2017-07-27 22:50:25 -07:00
jp9000 25bb8a444f UI: Add modular UI
Changes the UI to an adjustable user interface, allowing the user to
fully customize how the scenes list, sources list, the mixer,
transitions, and the buttons are oriented on the main window window.
2017-07-27 12:17:18 -07:00
SammyJames 4fd66d4d1e libobs: Add post-load module callback
This allows the ability for certain types of modules (particularly
scripting-related modules) to initialize extra data when all other
modules have loaded.  Because front-ends may wish to have custom
handling for loading modules, the front-end must manually call
obs_post_load_modules after it has completed loading all plug-in
modules.

Closes jp9000/obs-studio#965
2017-07-21 08:27:31 -07:00
Jim 9ad8e0c5f0 Merge pull request #947 from Fenrirthviti/new-theme
UI: Add new theme, update theme capabilities
2017-07-01 15:48:05 -07:00
Joseph El-Khouri 8942c18695 UI: Allow zoom with the scroll wheel
Adds the ability to zoom into the preview when fixed scaling mode is
enabled.

(Edit by Jim: Also now saves zoom and scroll position)

Closes jp9000/obs-studio#917
2017-06-30 20:20:56 -07:00
Shaolin e5756a922a libobs/plugins/UI: Suppress unused variables warnings
Closes jp9000/obs-studio#937
2017-06-27 21:55:37 -07:00
cg2121 fce078d997 UI, libobs: Add ability to lock individual scene items
Adds a lock checkbox to allow the user to lock a specific scene item.

Closes jp9000/obs-studio#949
2017-06-27 10:27:57 -07:00
cg2121 b8d907f399 UI: Add fullscreen UI option to view menu
(Edit by Jim: Removed "Fullscreen Preview" because that's already sort
of served by the normal fullscreen projector option via the preview
context menu)

Closes jp9000/obs-studio#846
2017-06-26 09:49:43 -07:00
cg2121 50103825c0 UI: Add fullscreen projector to systray menu
(Edit by Jim: Changed it to just add the fullscreen projector sub-menu
like when right-clicking the preview, that way it doesn't have to add
new locale text for translators, and allows the users to specify which
monitor to use)

Closes jp9000/obs-studio#845
2017-06-26 08:35:52 -07:00
jp9000 36394ab08d UI: Fix potential crash with unsupported video cards
If a video card is unsupported, it will attempt to initialize the stats
window, querying values from a video subsystem that doesn't exist, and
crash instead of alerting the user that their hardware is unsupported.
2017-06-24 09:14:46 -07:00
jp9000 1d2def766f UI: Preserve source if audio settings device changed
If the user changes one of the devices in audio settings, it would reset
all of its data, including settings, filters, flags, and all that.  This
changes the handling so that the source and all of its other settings
are preserved if the user just changes the device.  (Note that if the
user disables the device, settings will be lost; this only applies to
when the user changes the device to a different device for whatever
reason)
2017-06-21 00:03:14 -07:00
jp9000 96f746ce41 UI: Initialize Stats window values after OBSInit/reset
When the statistics window starts up for the first time, it reset values
at that very moment so that stray lagged frames due to OBS' startup
wouldn't be displayed.  However, that's really a bad place to reset
those values because the user could want to view the stats window after
a long stream, and having those values reset when he/she views the
window for the first time would sort of make the point of viewing your
stats moot.

Instead, reset the values only when applicable, such as after OBSInit or
when video is reset.
2017-06-19 15:38:13 -07:00
Joel Bethke 432e285257 UI: Add new theme, update theme capabilities
I have always felt that the out of the box themes for OBS were quite
lacking, and have spent a lot of time going through and sorting out the
difficulties with the current setup. I've added a new themeID parameter to
several elements that were otherwise impossible to target with QSS in a
theme. Since Qt has pushed for the use of QML over QSS at this point,
these should be considered workarounds. Included is the theme I was
working on that can serve as a base. I'm hoping to encourage others to
make their own themes, so we can grow the available themes for OBS.

I am happy for any feedback on the theme itself, or other updates that
can me made to make creating new themes easier overall.
2017-06-13 14:37:59 -05:00
Colin Edwards c6e2318eae UI: Look for plugins in ~/Library/Application Support/obs-studio/plugins/ 2017-05-29 17:41:29 -05:00
jp9000 3470776843 UI: Make Stats a regular window rather than dialog 2017-05-15 15:02:56 -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 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 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 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 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 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 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
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
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
Ryan Foster 2d80ae0231 UI: Remove unused defines from old updater code
This commit removes some define statements that were used in the updater
code before OBS Studio 18.0.0.
2017-04-26 13:09:30 -04:00
Jim 3a3015aecd Merge pull request #855 from MP2E/master
UI: Fix segfault when no system tray exists
2017-03-25 08:53:02 -07:00
jp9000 6af48130e0 UI: Fix bug where items can't be deleted in last scene
Bug introduced in jp9000/obs-studio#861
2017-03-25 07:36:46 -07:00
cg2121 bcd491a3d6 UI: Add copying/pasting of sources/filters
Closes jp9000/obs-studio#860
2017-03-25 04:29:49 -07:00
Cray Elliott c47cb25434 UI: Fix segfault when no system tray exists 2017-03-23 16:47:42 -07:00
cg2121 66dbf8f258 UI: Add workaround to fix deleting final scene bug 2017-03-13 13:18:10 -05:00
jp9000 556ac1fbb7 UI: Add logging of audio monitoring to sources 2017-03-02 13:05:38 -08:00
jp9000 8d3e839ac8 UI: Log audio monitoring dev. on start and when changed 2017-03-02 12:35:37 -08:00
jp9000 075f911f12 UI: Fix audio monitoring dev. not being set on startup 2017-03-02 11:38:55 -08:00
jp9000 133fa04db3 UI: If scene/source names exist, start from 2
Currently if you have a scene, "Scene" for example, and you create a new
scene, the dialog will pop up with a default name, but it'll start with
"Scene 1" instead of "Scene 2".  Same thing occurs with sources.  This
fixes that to start from 2 instead.
2017-02-26 08:23:31 -08:00
derrod 3fe2a79c81 UI: Add codec compatability checkbox to ffmpeg output
Closes jp9000/obs-studio#804
2017-02-25 09:16:46 -08:00
derrod 1fd302218b UI: Add gop size option for custom ffmpeg output
Closes jp9000/obs-studio#804
2017-02-25 09:08:01 -08:00
derrod 379b41aa0e UI: Add options for new socket loop 2017-02-25 06:21:24 -08:00
jp9000 f72fd3c9e3 UI: Trigger scene list change event when scene removed 2017-02-23 00:43:20 -08:00
jp9000 c1c84e9101 UI: Add front-end auto-updater 2017-02-20 22:45:34 -08:00
derrod 6bc1ecc794 UI: Add warning if starting the output fails
This is mainly to give visual feedback to those affected by NVENC not
working with older driver versions. Currenlty obs fails silently which
could go unnoticed for users who are using hotkeys as well as confuse
users who are not trained to read their logs when issues occur.

Closes jp9000/obs-studio#788
2017-02-14 19:21:19 -08:00
jp9000 52784c3e79 UI: Add 24 NTSC as a common FPS value 2017-02-06 14:55:14 -08:00
jp9000 7639b277ce UI: Add audio monitoring to settings/adv audio props.
Adds audio monitoring selection to advanced audio properties, and adds
the ability to select the device in advanced settings.
2017-02-06 11:44:04 -08:00
jp9000 0fcd661e13 UI: Remove unused variables
Closes jp9000/obs-studio#778
2017-01-30 16:55:29 -08:00
Alexandre Vicenzi 722443b228 UI: Fix linux display/resize bug with preview widget
On linux, the main window isn't immediately set to a native widget, so
the call:

connect(windowHandle(), &QWindow::screenChanged, displayResize);

on line 189 will fail, causing the preview widget to not properly resize
when the main window is resized.

Closes jp9000/obs-studio#776
2017-01-29 19:51:42 -08:00