mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 04:42:18 +02:00
UI: Allow the transform dialog for group sub-sources
This commit is contained in:
parent
fb58bcf75f
commit
7bc3c87163
@ -4,23 +4,28 @@
|
|||||||
|
|
||||||
Q_DECLARE_METATYPE(OBSSceneItem);
|
Q_DECLARE_METATYPE(OBSSceneItem);
|
||||||
|
|
||||||
static OBSSceneItem FindASelectedItem(OBSScene scene)
|
static bool find_sel(obs_scene_t *, obs_sceneitem_t *item, void *param)
|
||||||
{
|
{
|
||||||
auto func = [] (obs_scene_t *scene, obs_sceneitem_t *item, void *param)
|
OBSSceneItem &dst = *reinterpret_cast<OBSSceneItem*>(param);
|
||||||
{
|
|
||||||
OBSSceneItem &dst = *reinterpret_cast<OBSSceneItem*>(param);
|
|
||||||
|
|
||||||
if (obs_sceneitem_selected(item)) {
|
if (obs_sceneitem_selected(item)) {
|
||||||
dst = item;
|
dst = item;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (obs_sceneitem_is_group(item)) {
|
||||||
|
obs_sceneitem_group_enum_items(item, find_sel, param);
|
||||||
|
if (!!dst) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UNUSED_PARAMETER(scene);
|
return true;
|
||||||
return true;
|
};
|
||||||
};
|
|
||||||
|
|
||||||
|
static OBSSceneItem FindASelectedItem(OBSScene scene)
|
||||||
|
{
|
||||||
OBSSceneItem item;
|
OBSSceneItem item;
|
||||||
obs_scene_enum_items(scene, func, &item);
|
obs_scene_enum_items(scene, find_sel, &item);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,9 +68,10 @@ OBSBasicTransform::OBSBasicTransform(OBSBasic *parent)
|
|||||||
|
|
||||||
installEventFilter(CreateShortcutFilter());
|
installEventFilter(CreateShortcutFilter());
|
||||||
|
|
||||||
OBSScene curScene = main->GetCurrentScene();
|
OBSSceneItem item = FindASelectedItem(main->GetCurrentScene());
|
||||||
SetScene(curScene);
|
OBSScene scene = obs_sceneitem_get_scene(item);
|
||||||
SetItem(FindASelectedItem(curScene));
|
SetScene(scene);
|
||||||
|
SetItem(item);
|
||||||
|
|
||||||
channelChangedSignal.Connect(obs_get_signal_handler(), "channel_change",
|
channelChangedSignal.Connect(obs_get_signal_handler(), "channel_change",
|
||||||
OBSChannelChanged, this);
|
OBSChannelChanged, this);
|
||||||
|
Loading…
Reference in New Issue
Block a user