libobs: Use UUIDs in scene undo/redo data
Since scenes now can have non-unique names by being part of different canvases, use UUIDs instead.
This commit is contained in:
parent
ec9f4b0d20
commit
dac0be2cbe
1 changed files with 4 additions and 3 deletions
|
|
@ -2635,8 +2635,9 @@ bool save_transform_states(obs_scene_t *scene, obs_sceneitem_t *item, void *vp_p
|
|||
obs_data_array_t *nids = obs_data_array_create();
|
||||
|
||||
obs_data_set_string(temp, "scene_name", obs_source_get_name(item_source));
|
||||
obs_data_set_string(temp, "scene_uuid", obs_source_get_uuid(item_source));
|
||||
obs_data_set_bool(temp, "is_group", true);
|
||||
obs_data_set_string(temp, "group_parent", obs_source_get_name(obs_scene_get_source(scene)));
|
||||
obs_data_set_string(temp, "group_parent", obs_source_get_uuid(obs_scene_get_source(scene)));
|
||||
|
||||
struct passthrough npass = {nids, pass->scenes_and_groups, pass->all_items};
|
||||
obs_sceneitem_group_enum_items(item, save_transform_states, (void *)&npass);
|
||||
|
|
@ -2712,11 +2713,11 @@ void load_transform_states(obs_data_t *temp, void *vp_scene)
|
|||
void iterate_scenes_and_groups_transform_states(obs_data_t *data, void *vp)
|
||||
{
|
||||
obs_data_array_t *items = obs_data_get_array(data, "items");
|
||||
obs_source_t *scene_source = obs_get_source_by_name(obs_data_get_string(data, "scene_name"));
|
||||
obs_source_t *scene_source = obs_get_source_by_uuid(obs_data_get_string(data, "scene_uuid"));
|
||||
obs_scene_t *scene = obs_scene_from_source(scene_source);
|
||||
|
||||
if (obs_data_get_bool(data, "is_group")) {
|
||||
obs_source_t *parent_source = obs_get_source_by_name(obs_data_get_string(data, "group_parent"));
|
||||
obs_source_t *parent_source = obs_get_source_by_uuid(obs_data_get_string(data, "group_parent"));
|
||||
obs_scene_t *parent = obs_scene_from_source(parent_source);
|
||||
obs_sceneitem_t *group = obs_scene_get_group(parent, obs_data_get_string(data, "scene_name"));
|
||||
scene = obs_sceneitem_group_get_scene(group);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue