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);
|
||||
|
||||
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)) {
|
||||
dst = item;
|
||||
if (obs_sceneitem_selected(item)) {
|
||||
dst = item;
|
||||
return false;
|
||||
}
|
||||
if (obs_sceneitem_is_group(item)) {
|
||||
obs_sceneitem_group_enum_items(item, find_sel, param);
|
||||
if (!!dst) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED_PARAMETER(scene);
|
||||
return true;
|
||||
};
|
||||
return true;
|
||||
};
|
||||
|
||||
static OBSSceneItem FindASelectedItem(OBSScene scene)
|
||||
{
|
||||
OBSSceneItem item;
|
||||
obs_scene_enum_items(scene, func, &item);
|
||||
obs_scene_enum_items(scene, find_sel, &item);
|
||||
return item;
|
||||
}
|
||||
|
||||
@ -63,9 +68,10 @@ OBSBasicTransform::OBSBasicTransform(OBSBasic *parent)
|
||||
|
||||
installEventFilter(CreateShortcutFilter());
|
||||
|
||||
OBSScene curScene = main->GetCurrentScene();
|
||||
SetScene(curScene);
|
||||
SetItem(FindASelectedItem(curScene));
|
||||
OBSSceneItem item = FindASelectedItem(main->GetCurrentScene());
|
||||
OBSScene scene = obs_sceneitem_get_scene(item);
|
||||
SetScene(scene);
|
||||
SetItem(item);
|
||||
|
||||
channelChangedSignal.Connect(obs_get_signal_handler(), "channel_change",
|
||||
OBSChannelChanged, this);
|
||||
|
Loading…
Reference in New Issue
Block a user