Commit Graph

61 Commits (19c5da4645a66cc44ef6ae8ae38c1155f8d536b0)

Author SHA1 Message Date
VodBox 191165c721 UI: Add advanced scene collection importer
This replaces the previous Open File dialog for importing collections
with a window for importing many collections at once, based on the remux
window, along with support for importing from OBS Classic, XSplit
Broadcaster and from Streamlabs' fork. This also translates sources
between OSes that Studio supports.
2020-02-16 17:56:06 +13:00
Matt Gajownik eb1c69a9ff UI: Supply Windows manifest file 2020-01-01 15:58:48 +11:00
JohannMG c4396e03a7 UI: Create UI Validation Helper Class
Pull UI validation and its helpers to their own class. This class will
be used to validate forms and perform UI-action checks such as
checking stream keys aren't empty and in this diff now holds the logic
to ensure there is a source before the person starts a stream.
2019-12-11 01:23:36 -08:00
VodBox c0e2e7f12e UI: Add Grid Mode to Scenes Widget
Adds an option to the right click menu in the scenes widget to switch
modes. When in regular list mode, it'll let you select grid mode, and in
grid mode, it'll let you select list mode. Grid mode changes the scenes
widget to have a grid of buttons for scenes rather than a list, much
like XSplit.
2019-12-02 08:42:10 +13:00
Clayton Groeneveld 82ffcdc827 UI: Add source icons 2019-11-24 20:50:42 -08:00
Jim 9bdb21205d
Merge pull request #2085 from ratwithacompiler/macos-python-fix
obs-scripting: Fix Python on MacOS
2019-11-14 20:38:53 -08:00
JohannMG 3f6cf0e871 UI: Upgrade stream link hotlink to a button
Most of the top streaming services now have a link in the stream key
label. Upgrading this button to a button clarifies the assistance
for the important step of setting up a stream.

Creates a new type of button for URL opening simply which also
automatically updates the tootip to the current URL.

Includes addition of Twitter/Periscope URL to make this feature more
complete.
2019-10-30 12:09:07 -07:00
Rat a44ff34ef0 obs-scripting: Link _obspython as dynamic_lookup on MacOS
_obspython.so currently links directly against python as @rpath/Python
and has 3 common python install paths set as rpaths so it would only
work if a user had python installed at one of those hardcoded paths.

Don't link _obspython against python at all but instead link it with
"-undefined dynamic_lookup" so when it is imported by python all it's
undefined python symbols get resolved at runtime against the user
supplied python instance loaded into the process earlier.

The rpaths aren't needed anymore this way.
2019-09-26 23:42:33 +02:00
jp9000 65eac02cda UI: Shut down browsers when browser docks hidden
Shuts down the actual browsers internally when the browser docks are
hidden by user.
2019-09-03 19:12:36 -07:00
jp9000 7dd465cae1 UI: Refactor all browser dock classes in to one
Refactors all cases where a window class was created to show a browser
dock in to one class: BrowserDock.  Removes some unnecessary code
duplication.
2019-09-03 19:12:36 -07:00
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