618 Commits

Author SHA1 Message Date
jp9000
b5022385d1 UI: Fix bug grabbing handles of group sub-items
When a group's transform was scaled down, that scale would not apply to
grabbing the handles of sub-items, so the "handle radius" would
incorrectly be miscalculated (the handle radius calculation for the
sub-item would be scaled down by the parent's scaling, making it too
small to grab).  Instead of calculating relative to the current parent,
this fixes the issue by operating in screen space at all times.
2018-08-16 04:49:21 -07:00
Jim
2541be5b11
Merge pull request #1352 from cg2121/replay-buffer-button-checkable
UI: Set replay buffer button as checkable
2018-08-15 11:35:33 -07:00
cg2121
b0b6f1f0e2 UI: Set replay buffer button as checkable 2018-08-15 12:27:32 -05:00
jp9000
07813e2bd0 UI: Allow resetting transform of group sub-items 2018-08-15 10:01:48 -07:00
jp9000
7bc3c87163 UI: Allow the transform dialog for group sub-sources 2018-08-14 13:05:34 -07:00
jp9000
fb58bcf75f UI: If users renames a source, only revert on Esc
Fixes a design flaw where if renaming a source, the source's name would
revert if you de-focused (clicked away) from the rename edit widget.
Instead, the functionality for revert should really only just be when
the user presses the Escape key.
2018-08-14 13:03:07 -07:00
jp9000
ee513000dc UI: Protect GUID generation in mutex
GUID can be generated/retrieved by both the updater thread and the main
thread, so make sure it's guarded by a mutex.
2018-08-13 01:19:23 -07:00
jp9000
e189082439 UI: Make the information dialog a big wider
Fixes an issue where the web page could have both horizontal and
vertical scrollbars, making the information dialog page look a bit
unsightly.
2018-08-13 01:19:23 -07:00
jp9000
fc9393324c UI: Add release candidate checking to info dialog
Allows the ability to specify release candidate versions in the
whatsnew.json in order to allow startup information dialogs to be
displayed to the user which are specific to release candidates.
2018-08-13 01:19:23 -07:00
jp9000
4d38e054e3 UI: Add adv. settings checkbox for browser HW accel
Adds a checkbox to advanced settings that allows the user to
enable/disable browser source hardware acceleration on windows.
2018-08-10 06:33:41 -07:00
jp9000
c7a2a674bc UI: Use NVIDIA laptop GPU hint
Changes the default "preferred" GPU to the NVIDIA GPU when running the
program on NVIDIA laptops.
2018-08-10 06:09:23 -07:00
Richard Stanway
4e07ac17d9
Merge pull request #1401 from Dmitry-Me/addMissingVaEnd02
UI: Add missing va_end() call
2018-08-05 22:15:10 +02:00
Ryan Foster
3f7458fe51 UI: Remove QNetworkReply from window-basic-main.hpp
QNetworkReply was added here in commit
5ba8b09c9c0ee3bd4cca7860e5892ee60d1f6cf6. Qt5Network was replaced in
commits 13bed1a448e3726819778e5759bdf456556b6bf9 and
39d1cda4e9b276f1b0770027e211aec0d9ecb927, but this one line referring to
QNetworkReply remained. Let's finally remove it.
2018-08-05 01:44:12 -04:00
jp9000
5b091ce06d UI: Use obsproject.com URL for discord invite 2018-08-03 00:33:06 -07:00
Dmitry-Me
440baa3147 UI: Add missing va_end() call 2018-08-02 15:57:35 +03:00
Jim
9565f9cd0c
Merge pull request #1332 from Andersama/patch-21
UI: Hide preview for sources and filters where possible
2018-08-01 23:05:45 -07:00
jp9000
16ead25dd3 UI: Add ability to join discord server from help menu 2018-08-01 18:41:57 -07: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
Dmitry-Me
a5eb2b8e7e UI: Add missing return statement 2018-08-01 11:04:25 +03:00
Jim
6905b22c5f
Merge pull request #1391 from Dmitry-Me/fixPotentialNullDeref01
UI: Check pointer before the first dereference
2018-07-31 22:37:12 -07:00
cg2121
2e18745c37 UI: Uncheck record/replay buffer buttons if fail
Closes obsproject/obs-studio#1375
2018-07-31 21:35:06 -07:00
jp9000
b6665f9cc0 UI: Use QScopedPointer (not QPointer) where applicable
Contrary to what the name would have you believe, QPointer<> is not used
to delete a pointer when it leaves its specific scope.  Instead, it's
used to check to see if the pointer is still valid.  For most
QWidget-based objects, this is actually fine because QWidgets that are
assigned to layouts or other widgets will automatically be destroyed --
however, for non-widget objects, this can cause a memory leak.

This patch replaces QPointer with QScopedPointer where applicable to
prevent memory leaks.

Closes obsproject/obs-studio#1367
2018-07-31 21:14:52 -07:00
Alex Anderson
57f8c5e328 UI: Hide preview for sources and filters where possible
Hides the preview window for audio sources in the properties menu and
contextually in the filters menu to save on gui space.
2018-07-31 13:14:32 -07:00
Ryan Foster
b5e0544c2b UI: Fix disabled items in Dark theme being too light
In the Dark theme, disabled UI elements had text that was too close in
color to enabled UI elements. This commit switches them to use the
"light" palette color instead of the "lighter" palette color.
2018-07-31 12:10:13 -04:00
cg2121
8f4edede4a UI: Add confirmation dialog if there are no sources
This adds a confirmation dialog for streaming or recording if
there are no sources.

Closes obsproject/obs-studio#1344
2018-07-31 04:28:43 -07:00
Dmitry-Me
69f217003b UI: Check pointer before the first dereference 2018-07-30 15:11:41 +03: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
Richard Stanway
2d60c89a02
UI: Only allow stream/record hotkeys if the UI buttons are enabled
Currently the only thing preventing a user from trying to start multiple
streams or recordings is the UI buttons being disabled. The hotkey code
allowed the user to bypass that, which for streaming resulted in lots of
rtmp output connect threads spawning, which stomped all over each
other's data structures and resulted in crashes.
2018-07-28 15:27:49 +02:00
Jim
324fcbcd92
Merge pull request #1386 from RytoEX/qt-511
CI: Update to Qt 5.11.1
2018-07-27 21:21:24 -07:00
Ryan Foster
2129d12143 frontend-tools: Add QAction explicitly for Qt 5.11 compatibility 2018-07-25 11:59:58 -04:00
Shaolin
be8189b0f8 UI: Fix start up crash with saved projectors
This fixes a crash in case the user selected the option to save
projectors on exit and had multiple monitors at that time. Later on,
when obs is started again if the monitor list is lower now the open
projector code will return null when trying to create the saved
projector.

Just check if the returned projector pointer is valid before trying
to restore the saved geometry.
2018-07-24 17:43:58 -03:00
jp9000
7ef3350d50 UI: Do not open properties dialog for groups
On initial creation of an empty group, do not open a properties dialog
for groups.
2018-07-24 02:41:31 -07:00
jp9000
8dc2e6b5fb UI: Add signal for when theme has changed 2018-07-21 19:14:36 -07:00
jp9000
e1ab9a0fc4 UI: Add ability to parse OBSStyle from qss
Adds the ability to set the current palette for the program via adding
"OBSTheme" objects to the qss files.  The values for the OBSTheme object
are the values used by QPalette::ColorRole.

Modifying the global palette allows the ability to easily/quickly look
up application theme colors (especially if you would like to use them
for QML), as well as the ability to fix the hyperlink color issue.  (On
dark themes, links would still be dark blue, causing them to be
difficult to see)
2018-07-21 19:14:36 -07:00
jp9000
310c98e641 UI: Fix bug with advanced output service settings
When the user had advanced output mode selected and they created a new
profile, enforced service settings for advanced output mode would not be
applied because GetDataFromJsonFile would return a nullptr (because the
settings file did not yet exist).  Instead of returning nullptr, always
return a valid data object, and in addition, apply the defaults of the
encoder to pass to obs_service_apply_encoder_settings just to be safe.
2018-07-20 01:57:57 -07:00
jp9000
01ac60c760 UI: Allow alt-cropping on bounding box scene items
Allows the use of alt-cropping on scene items that have bounding box
enabled.  The crop will simply apply to the source within the bounding
box rather than try to do anything fancy.  A simple solution to an
annoying problem.
2018-07-18 22:04:32 -07:00
Jim
75d460b2e8
Merge pull request #1353 from cg2121/fix-checkable-buttons
UI: Fix stream button checkable state
2018-07-18 01:28:49 -07:00
Jim
955bc849e0
Merge pull request #1349 from Fenrirthviti/acri-fix
UI: Update Acri theme for disabled buttons
2018-07-18 01:26:51 -07:00
Jim
af596592db
Merge pull request #1326 from admshao/transition_rename_fire_event
UI: Add missing OBS_FRONTEND_EVENT_TRANSITION_LIST_CHANGED
2018-07-18 00:54:46 -07:00
jp9000
573d5719d8 UI: Fix signals for sub-items of groups
Because sub-items of groups can no longer reroute their signals to the
parent scenes of groups, delegates removal handling to SourceTreeItem
instead of OBSBasic.
2018-07-16 19:03:34 -07:00
jp9000
256b7b793d UI: Add OBSBasic::SavingDisabled() function 2018-07-16 19:03:34 -07:00
jp9000
b4f345680f UI: Allow copying/pasting of groups
Allows copying and pasting of groups.  The user can fully duplicate the
group, or create a reference of the group.  The user cannot paste a
reference of the group if it already exists within the same scene
however.
2018-07-16 19:03:34 -07:00
jp9000
5993834815 libobs: Change groups to actual public types
(This commit also modifies UI)

Changes groups to their own independent type, "group".  This allows them
to be used like other regular types, and allows the ability to reference
groups in multiple scenes.  Before, a group would always be linked to
the scene it was in.  This made it cumbersome for users to modify groups
if they had a similar group in multiple scenes (they would have to
modify each group in each scene).  Making groups like other source types
makes more sense to solve this issue so they can be referenced in
multiple scenes at once.  This also removes a significant amount of
group-specific handling code required for implementing groups in the
front-end.

One limitation however: due to the way sub-items of groups are
seamlessly modifiable and sortable as part of the whole scene, the user
cannot have multiple references to the same group within one scene.
2018-07-16 19:01:51 -07:00
jp9000
35704c4c04 libobs: Remove group_sceneitem from obs_scene struct
(This commit also modifies UI)

Removes obs_scene::group_sceneitem and replaces it with
obs_scene::is_group.  Changes a number of other functions related to
groups so that a group is not inherently tied to a specific scene, and
helps allow a single group to be referenced in multiple scenes if
desired.
2018-07-15 19:01:14 -07:00
Shaolin
0c43448ca2 UI: Fix OBS_FRONTEND_EVENT_TRANSITION_LIST_CHANGED
This event is fired during Add/Delete operations but was missing on
renaming a transition.
2018-07-09 19:08:42 -03:00
cg2121
cfa427c44f UI: Fix stream button checkable state
This fixes an issue where the stream button would still be
checked when clicking no on the stream confirmation dialog.
2018-06-27 23:11:10 -05:00
Joel Bethke
5f3464f9cc UI: Update Acri theme for disabled buttons 2018-06-27 19:04:49 -05:00
Colin Edwards
618a1c5faf UI: Add frontend event for when OBS finishes loading 2018-06-26 22:14:05 -05:00
jp9000
b760b24ff0 UI: Fix cramped source tree sub-widgets on macOS 2018-06-20 20:06:36 -07:00
jp9000
78d566916b UI: Fix bug where color property shows transparency
Technically, setting the transparency value via a color property isn't
currently supported.  However, some sources/filters will set their alpha
portion of their color value to 0, which would cause the color property
to have a transparent background.  Set the alpha value to 255 for now,
at least until we properly implement support for setting transparency
via the color property (if we ever do).
2018-06-20 19:21:52 -07:00