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.
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.
(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.
(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.
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).
With the recent change to fix showing color in the color property widget
when using different themes (b8f03791ea), a bug was introduced: when
opening filters with a filter that has a color property, it would sort
of "bug out" and recreate over and over. This is likely due to
something internally with Qt and the stacked layout. The stacked layout
really is not necessary, so remove the stacked layout and just use the
color label directly.
When the vertical volume meter was introduced it set in the OBSBasic.ui
mixer dock definition a min width/height that was valid for both
widgets. QStackedWidget hints the minimum size as the higher w/h
of its children so this workaround is necessary.
Originally wanted to do a separate color swatch, but was stymied by the
single widget reference in WidgetInfo. Using QPalette values achives
basic white/black text for contrast, though it is still possible to
select a color with poor contrast.
The variable name changes were done with the intent to ease the
abstraction of the scene, preview and program width/height size
so its not related with the canvas size but directly related with
our concept of scenes.
The variable name changes were done with the intent to ease the
abstraction of the scene, preview and program width/height size
so its not related with the canvas size but directly related with
our concept of scenes.
This ensures the pixel correctness of the sources selection highlight
boxes when on a fullscreen projector.
When on a windowed projector due to the nature of int<->float
conversions and also due to the limited space, some source boxes
might be like 'off-by-one' and barely noticeable.
When not in studio mode the preview and program sources are the same
but the checks will be made against GetCurrentSceneSource which were
resulting in the multiview source highlight to give the previewColor
where in this case we want the programColor.