51 Commits

Author SHA1 Message Date
VodBox
128b90af9d UI: Add box select to preview
This change adds the ability to box select by clicking and dragging from
an empty part of the preview.

Shift + Drag add any items in the box to the selection. Alt + Drag will
remove items in the box from the selection. Ctrl + Drag inverts the
selected state for items in the box.
2019-08-17 07:42:14 -07:00
jp9000
0759652cee UI: Add the ability to create custom browser docks
Allows the ability for users to add custom browser widget docks that
they can use for their third party services if they feel the need,
mostly as a convenience tool so they don't have to open extra browsers
alongside the program.
2019-08-08 03:31:31 -07:00
jp9000
eab10d48b2 UI: Add pause support
Adds support for pausing recordings.  When settings are eligible for
recordings, a pause button will appear next to the recording button.  If
the settings are not eligible, it will warn the user in the output
settings that they cannot pause recordings if those settings are used.
2019-07-08 08:11:56 -07: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
Clayton Groeneveld
189e48835d UI: Change icons to svg
This changes all of the icons from png to svg. With svgs, scaling is
unlimited. With the svgs, the issue of the @ symbols with the Windows
updater is no longer an issue.

I changed the colors of the icons to a light gray (#d2d2d2), in the
dark themes, because I thought they looked better with this color.

The mute, unmute, plus, minus, up, down and expand icons are from the
Feather Icons set. https://feathericons.com/

The visibility icon is from the Octicons set. https://octicons.github.com/

The locked and unlocked icons are from the Open Iconic set.
https://github.com/iconic/open-iconic
2019-04-22 01:50:03 -07:00
jp9000
72ccefff5f UI: Rename UI files for consistency
Changes comboBox-* and spinBox-* files to lowercase to be more
consistent with the rest of the files in the UI directory.
2019-04-21 04:10:46 -07:00
Jim
043963c5e8
Merge pull request #1828 from DDRBoxman/removewidget
UI: Remove SourceListWidget
2019-04-20 02:27:36 -07:00
Jim
88391b818d
Merge pull request #1811 from akapar2016/UI_scrollWheelEvents
Ui scroll wheel events
2019-04-14 13:58:54 -07:00
Peter Eszlari
6b9da9b912 UI: Add Linux AppStream metadata 2019-04-14 05:10:10 -07:00
Colin Edwards
efb09d4f24 UI: Remove SourceListWidget 2019-04-13 14:07:17 -05:00
akapar
9249403c96 UI: Ignore wheelEvent for properties
Ignore wheelEvent using subclass
slider,spinbox,combobox with eventhandlers:
wheelEvent - ignore if widget is not focused,
leaveEvent - clear focus when mouse leaves event.

Use these new subclass widgets in properties
to ignore wheelEvent when scrolling.
2019-04-13 12:09:11 -04:00
Michael Fabian 'Xaymar' Dirks
8b346ade64 cmake: Generate obs.rc out-of-tree
Fixes the `obs.rc` file appearing in the UI source tree and moves it
into the out-of-tree build directories provided by CMake. Projects
requiring this can use it by adding `${obs-studio_BINARY_DIR}/obs.rc`
to their source list.
2019-04-06 15:35:08 +02:00
SoftArch
de66aeab68 UI: Add Restream integration
Closes obsproject/obs-studio#1768
2019-03-25 19:13:27 -07:00
Clayton Groeneveld
80875768ad UI: Redo settings icons 2019-03-05 19:54:12 -06: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
jp9000
a88b440290 UI: Add Twitch integration 2019-02-07 16:28:19 -08:00
jp9000
4710c04204 UI: Add Mixer integration 2019-02-07 16:28:19 -08:00
jp9000
ccc64df371 UI: Add obfuscation func
You could also say..  obs-fuscation.
2019-02-07 14:47:15 -08:00
jp9000
08fb29a035 UI: Add Auth and OAuth classes
Allows the ability to authenticate to a specific service.  Typically via
OAuth.
2019-02-07 14:47:15 -08:00
jp9000
fe043f2b2a UI: Add per-profile browser panel cookie management
Allows the ability to switch cookies between profiles.  Allows the
ability to, for example, switch streaming service accounts between
profiles for proper access to the pages displayed by the browser panels
(such as chat windows).
2019-02-07 14:47:15 -08:00
jp9000
24bcfacea5 UI: Improve/refactor autoconfig/settings service UI
Makes it so that services can have custom handling on a per-service
basis.  The bottom part of the service pane is now a stacked widget
which can now be customized for different types of services
(particularly OAuth services).
2019-02-07 14:47:02 -08:00
jp9000
4ba48484ae UI: Only def. BROWSER_AVAILABLE for WIN32 (for now)
Currently, browser panel is only supported on windows.  So rather than
have to check for _WIN32 in the code everywhere, just move the WIN32
check to cmake, that way we don't have to have _WIN32 checks in the code
everywhere the browser panel code is used, and do not have to remove a
whole bunch of unnecessary _WIN32 #ifdefs for other operating systems
when browser panel support is added for them.
2019-02-05 19:20:59 -08:00
jp9000
2168458601 UI: Add /LARGEADDRESSAWARE for MSVC x86 executable
Use /LARGEADDRESSAWARE linker option when compiling 32bit executables on
Windows.

Closes obsproject/obs-studio#1546
2018-12-04 08:56:58 -08:00
jp9000
cb4d2ff7fa cmake: Find Qt first before going to subdirectories 2018-09-18 10:03:07 -07:00
jp9000
8b936a1575 cmake: Fix UI being dependent on browser plugin files
The UI currently is dependent on browser source files being present,
when in actuality the files may not have been fetched (i.e. not fetching
submodules).  This fixes that by using a macro to detect whether it's
available or not.

Closes obsproject/obs-studio#1490
2018-09-18 08:56:34 -07:00
Jim
413e8e6a7b
Merge pull request #1442 from cg2121/stereo-audio-balancing
UI: Implement stereo balancing
2018-09-07 21:28:56 -07:00
cg2121
11f1442a3c UI: Add ability to reset sliders when double clicked 2018-09-07 09:27:20 -05:00
cg2121
8882cfc484 UI: Remove license agreement dialog 2018-09-07 06:08:31 -05:00
cg2121
36b0ef5b7e UI: Add about dialog 2018-09-07 06:08:31 -05:00
VodBox
0dca4318b2 UI: Add Color Coding to Source Tree Widget
This commit adds the ability to select a background color for a
scene-item, whether it's a custom color or one of eight presets.

As this is an initial implementation, it lacks theme customizability,
and it also lacks the ability for the user to set their own preset
colors, so only the hard-coded 8 are available.
2018-08-02 08:23:12 +12: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
88b6c63964 UI: Add grouping 2018-06-04 04:01:39 -07:00
Shaolin
c7c328dc83 UI: Add Vertical Mixer option 2018-05-19 00:17:58 -03:00
jp9000
46f08af5e5 UI: Remove ENABLE_WIN_UPDATE cmake variable 2018-05-12 17:11:02 -07:00
Colin Edwards
f53bd0ef11 UI: Link Qt5::MacExtras 2018-02-06 19:50:16 -06:00
Colin Edwards
3ea5e99d0f CI: Update python rpath on osx 2018-01-29 18:12:32 -06:00
Colin Edwards
c9224edbad UI: Set linker flags required for luajit on OSX 2018-01-15 20:39:01 -06:00
Colin Edwards
5d17e6f6ea deps/scripting: Add python rpaths to the obs binary on OSX
Closes jp9000/obs-studio#1127
2018-01-04 17:04:08 -08:00
jp9000
260fb571b8 UI: Set ENABLE_UI and DISABLE_UI as root CMake variables
Allows for projects other than UI to be able to reference these CMake
variables.
2018-01-03 17:04:03 -08: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
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
14725a79ee UI: Remove libff as a dependency
Just directly includes the ff-util.c/h files in to UI to prevent the
need of compiling libff in full.
2017-03-31 12:10:34 -07:00
jp9000
86862b672e updater: Add windows updater module 2017-03-06 03:54:53 -08:00
Richard Stanway
23a115b0b3 UI: Use blake2b instead of SHA1 for updater 2017-02-24 09:09:20 -08:00
jp9000
c1c84e9101 UI: Add front-end auto-updater 2017-02-20 22:45:34 -08: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
jp9000
eb1fecdd34 UI: Add media/image file drop support 2016-09-27 10:01:22 -07:00
jp9000
39592ff5eb frontend-tools: Add scene switcher plugin 2016-09-06 22:01:50 -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