497 Commits

Author SHA1 Message Date
jp9000
acc8419295 UI: Add Patreon contributors to About dialog 2019-05-05 20:00:26 -07:00
Clayton Groeneveld
37bde71020 UI: Fix system tray not working 2019-05-04 09:23:21 -05:00
Tristan Matthews
92853f2c7b UI: fix crash due to NULL dereference 2019-05-03 02:54:55 -04:00
jp9000
f21a48ff36 UI: Remove mac browser workarounds, improve stability
The workarounds were made because of conflicts with running multiple UI
threads at once on macOS, which macOS can't do very well, and would be
susceptible to crashes.  This would cause crashes not only on startup
but seemingly at random when using the browser source on macOS.  The
original "fix" was a hack to try to minimize UI code and browser UI code
from executing at the same time.  The macOS initial scene loading was
deferred until all Qt-related and main window initialization was
completed.  Although this worked to some extent to prevent conflicts, it
made it so that there was an initial period on startup where the entire
UI seemed "blank" for users, and it was still possible for the main UI
thread and the browser UI thread to clash, causing crashes seemingly at
random for users.

The external message pump method of CEF is the solution to the problem,
which is the method which allows the main UI thread to share events with
CEF.  To do this, all CEF operations need to be performed in the UI
thread (Qt's main thread), and CefDoMessageLoopWork() needs to be called
when CefApp::OnScheduleMessagePumpWork callback is triggered.  A number
of other issues had to be solved as well, such as CefBrowser references
getting "stuck" in the Qt event queue.

With this, macOS no longer needs to do the "deferred load" hack, and
browsers are now much more stable and no longer as susceptible to
seemingly random crashes, improving overall program stability when
browsers are used.
2019-05-01 12:13:35 -07:00
jp9000
7efcb6989d UI: Only execute "What's New" code on win32
The "What's New" dialog currently is only functional on windows.
2019-05-01 12:12:03 -07:00
jp9000
767d534409 UI: Check for valid systen tray pointer
Fixes a potential crash that can happen if the system tray is not
initialized for whatever reason.
2019-05-01 12:11:29 -07:00
Jim
5781605289
Merge pull request #1847 from cg2121/scene-copy-paste-filters
UI: Add ability to copy/paste scene filters
2019-04-23 18:18:10 -07:00
Clayton Groeneveld
2940c80f49 UI: Add ability to copy/paste scene filters 2019-04-23 06:46:04 -05:00
guangong7628
16cc60587f UI: Fix unable to escape when renaming scene
Fixes https://obsproject.com/mantis/view.php?id=1443
2019-04-23 04:20:49 -07:00
Clayton Groeneveld
ed5fdde059 UI: Fix preview/program label alignment 2019-04-22 03:08:35 -05:00
Richard Stanway
90df9ea290 UI: Update error message severity levels and show additional info 2019-04-19 05:45:19 -07:00
Clayton Groeneveld
e89283d172 UI: Add hotkey to toggle preview 2019-04-14 04:51:34 -07:00
Jim
b2bc1e159b
Merge pull request #1589 from caffeinetv/minor-improvements
Minor improvements
2019-04-14 03:43:05 -07:00
Clayton Groeneveld
977dea4ff0 UI: Add ability to center items vertically/horizontally 2019-04-08 22:52:39 -07:00
Jim
b5cc26a918
Merge pull request #1814 from torresam/rename-autoselect
UI: Autoselect text on scene/source rename
2019-04-08 13:14:22 -07:00
Jim
298901d710
Merge pull request #1797 from WizardCM/log-groupitems
UI: Log group items on startup
2019-04-08 02:29:14 -07:00
Anthony Torres
bd71839259 UI: Add text autoselect on scene rename 2019-04-08 02:14:06 -07:00
James Park
21f4dd63d4 libobs: UI: Use graphics debug markers
Add D3D/GL debug markers to make RenderDoc captures easier to tranverse.

Also add obs_source_get_name_no_null() to avoid boilerplate for safe
string formatting.

Closes obsproject/obs-studio#1799
2019-04-08 02:05:37 -07:00
jp9000
739072fdcb UI: Do not show [x] (close) for primary dock widgets
This solves the issue of users who close the primary dock widgets and
can't figure out how to get them back, who for whatever reason choose
not to read the message box when closing dock widgets that tells them
how to get it back.  The users can still hide the primary dock widgets
via the View menu, but they can no longer close them via the [x] button
on the dock widget.  This change does not apply to secondary dock
widgets, such as a chat window, stats, etc.

Closes obsproject/obs-studio#1804
2019-04-03 09:55:27 -07:00
Matt Gajownik
2feb0f0c5d UI: Log group items on startup 2019-04-01 18:51:36 +11:00
Clayton Groeneveld
e321005b02 UI: Fix issue where space/esc hotkeys would be blank
This also modifies libobs.

This only happened on Linux.

Fixes https://obsproject.com/mantis/view.php?id=1018
2019-03-31 05:10:02 -05:00
jp9000
29a1a97392 UI: Don't open settings or close in event subloop
Fixes a crash that can happen if you try to use the settings window
while in an even subloop, or if you try to close OBS while in an event
subloop.  Continually retries (defers) the actions every one second
until the subloop has finished.
2019-03-26 22:05:52 -07:00
SoftArch
de66aeab68 UI: Add Restream integration
Closes obsproject/obs-studio#1768
2019-03-25 19:13:27 -07:00
Colin Edwards
55c1b5bd7b
Merge pull request #1736 from cg2121/icons-from-theme
UI: Use icons from theme on Linux
2019-03-19 19:25:42 -05:00
Clayton Groeneveld
2080051b9f UI: Use icons from theme on Linux 2019-03-16 05:41:12 -05:00
James Park
8b1d701b27 UI: Remove Area downscale filter option
Originally added for completeness but wasn't actually implemented
correctly. Can be added back later if desired.
2019-03-14 10:05:50 -07:00
Colin Edwards
5c16a96770
Merge pull request #1715 from jpark37/area-filter
Add "Area" scale filter
2019-03-13 23:30:25 -05:00
Colin Edwards
1dc3edc805
Merge pull request #1694 from cg2121/audio-mixer-copy-filters
UI: Add ability to copy & paste filters from the mixer
2019-03-13 22:13:54 -05:00
Colin Edwards
0377a34095
Merge pull request #1725 from derrod/bwtest-cbox
UI: Add checkbox for Twitch bandwidth test mode
2019-03-11 23:37:23 -05:00
derrod
4595d49e98 UI: Add confirmation dialog for bandwidth test mode 2019-03-10 08:37:29 +01:00
Gol-D-Ace
7c0620b54f UI: Add PAL 25 & 50 FPS as common FPS values 2019-03-10 08:31:08 +01:00
Clayton Groeneveld
e5cca6b2a5 UI: Fix yes/no not using localization in no source dialog 2019-03-09 03:49:58 -06:00
James Park
7d811499e0 Add "Area" scale filter
This new scale filter computes pixels by weighing the coverage area of
source pixels over the target pixel. This algorithm works well for both
upsampling and downsampling, but was mainly designed to upscale
high-quality low-resolution sources like RGB/HDMI retro consoles. I've
heard of people using odd workarounds like scaling up to very high
resolutions before scaling back down to preserve pixel shartpness. This
algorithm directly addresses this use-case in a much more direct
fashion.

The Area scale filter does a better job of preserving the thickness of
thin features than the Point filter.

The Area scale filter does not look at source pixels that lie outside
of the target pixel, leading to a much sharper image than Bilinear,
Bicubic, and Lanczos filters.

This filter should interpolate pixels in linear space, but OBS is not
equipped to do that at the moment.

libobs: Add GPU effect, and wire up scene serialization.

obs-filters: Add Area as an option for scale_filter.

UI: Add Area as an option for both scene items, and canvas downscaling.
2019-03-06 20:53:15 -08:00
jp9000
ac651aa492 UI: Fix "What's New" showing again each patch version 2019-03-06 19:13:12 -08:00
jp9000
4450843aa0 UI: Warn when closing dock widgets for first time
Users don't realize that dockable windows can be closed (hidden) and can
be shown again via the View menu.  This adds an explicit warning when
the user first closes a dockable window for their first time.  In future
versions, this should be changed to a dialog box with a "Do not show
again" checkbox.
2019-03-05 14:39:24 -08:00
Colin Edwards
ed374645aa
Merge pull request #1703 from cg2121/preview-program-labels
UI: Add preview/program labels in studio mode
2019-03-03 22:42:38 -06:00
Clayton Groenveld
5a5efa0b3e UI: Add preview/program labels in studio mode 2019-03-03 22:38:23 -06:00
Colin Edwards
d40782f71f
Merge pull request #1674 from SuslikV/patch-13
UI: Reset replay buffer button on "stop" signal
2019-03-03 21:56:19 -06:00
jp9000
340b8ec38e UI: Don't show "What's New" for new users 2019-02-26 12:00:27 -08:00
Clayton Groeneveld
ad55f413bb UI: Add ability to copy & paste filters from the mixer 2019-02-26 06:58:53 -06:00
Clayton Groeneveld
178fb21593 UI: Fix replay buffer checked state when no hotkey is set 2019-02-25 07:07:22 -06:00
jp9000
0e4bef09f4 UI: Defer autoconfig to message queue
The Auto-Configuration dialog was being created outside of the Qt
message loop, which could cause a lockup with auth code.
2019-02-20 17:35:02 -08:00
SuslikV
da87eff96f
UI: Reset replay buffer button on "stop" signal
Fixes an issue when Start Replay Button stays at checked state if stop
signal generated (hotkey event for example) instead of mouse click.

Mantis: https://obsproject.com/mantis/view.php?id=1343
2019-02-20 18:09:39 +02:00
jp9000
4722b764ca UI: Set replay buffer check w/ --startreplaybuffer
When starting the program with the --startreplaybuffer command line
parameter, it would not correctly highlight the button.
2019-02-19 19:27:54 -08:00
jp9000
103bec6526 UI: Fix disabling "resize output to source"
This should always be disabled if video output is active.  Additionally,
the expression used to determine whether it should be enabled/disabled
was very unreadable.
2019-02-19 19:26:37 -08:00
jp9000
5fb02c02dc UI: Do not auto-remux if using FFmpeg output 2019-02-19 16:52:31 -08:00
jp9000
0ef96953c3 UI: Use QFileInfo for remux
Using QFileInfo is better than mangling the string together ourselves
manually.
2019-02-19 16:52:31 -08:00
jp9000
cc1db3a944 UI: Clean up code styling of ternary operator usage 2019-02-19 16:52:31 -08:00
jp9000
d17ee20863 obs-frontend-api: Make a few frontend API thread-safe
Additionally, check for null output handlers.
2019-02-18 19:28:26 -08:00
jp9000
1759d1beae UI: Wait for browser init before "what's new" dialog 2019-02-13 19:31:46 -08:00