Merge branch 'blender-v3.1-release'
This commit is contained in:
commit
3c0fd287cb
|
@ -1038,9 +1038,6 @@ def _activate_by_item(context, space_type, item, index, *, as_fallback=False):
|
||||||
if props is None:
|
if props is None:
|
||||||
print("Error:", gizmo_group, "could not access properties!")
|
print("Error:", gizmo_group, "could not access properties!")
|
||||||
else:
|
else:
|
||||||
for key in props.bl_rna.properties.keys():
|
|
||||||
props.property_unset(key)
|
|
||||||
|
|
||||||
gizmo_properties = item.widget_properties
|
gizmo_properties = item.widget_properties
|
||||||
if gizmo_properties is not None:
|
if gizmo_properties is not None:
|
||||||
if not isinstance(gizmo_properties, list):
|
if not isinstance(gizmo_properties, list):
|
||||||
|
|
|
@ -806,13 +806,25 @@ void WM_toolsystem_do_msg_notify_tag_refresh(bContext *C,
|
||||||
WM_toolsystem_refresh_screen_area(workspace, view_layer, area);
|
WM_toolsystem_refresh_screen_area(workspace, view_layer, area);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static IDProperty *idprops_ensure_named_group(IDProperty *group, const char *idname)
|
||||||
|
{
|
||||||
|
IDProperty *prop = IDP_GetPropertyFromGroup(group, idname);
|
||||||
|
if ((prop == NULL) || (prop->type != IDP_GROUP)) {
|
||||||
|
IDPropertyTemplate val = {0};
|
||||||
|
prop = IDP_New(IDP_GROUP, &val, __func__);
|
||||||
|
STRNCPY(prop->name, idname);
|
||||||
|
IDP_ReplaceInGroup_ex(group, prop, NULL);
|
||||||
|
}
|
||||||
|
return prop;
|
||||||
|
}
|
||||||
|
|
||||||
IDProperty *WM_toolsystem_ref_properties_ensure_idprops(bToolRef *tref)
|
IDProperty *WM_toolsystem_ref_properties_ensure_idprops(bToolRef *tref)
|
||||||
{
|
{
|
||||||
if (tref->properties == NULL) {
|
if (tref->properties == NULL) {
|
||||||
IDPropertyTemplate val = {0};
|
IDPropertyTemplate val = {0};
|
||||||
tref->properties = IDP_New(IDP_GROUP, &val, "wmOperatorProperties");
|
tref->properties = IDP_New(IDP_GROUP, &val, __func__);
|
||||||
}
|
}
|
||||||
return tref->properties;
|
return idprops_ensure_named_group(tref->properties, tref->idname);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WM_toolsystem_ref_properties_get_ex(bToolRef *tref,
|
bool WM_toolsystem_ref_properties_get_ex(bToolRef *tref,
|
||||||
|
@ -832,17 +844,7 @@ void WM_toolsystem_ref_properties_ensure_ex(bToolRef *tref,
|
||||||
PointerRNA *r_ptr)
|
PointerRNA *r_ptr)
|
||||||
{
|
{
|
||||||
IDProperty *group = WM_toolsystem_ref_properties_ensure_idprops(tref);
|
IDProperty *group = WM_toolsystem_ref_properties_ensure_idprops(tref);
|
||||||
IDProperty *prop = IDP_GetPropertyFromGroup(group, idname);
|
IDProperty *prop = idprops_ensure_named_group(group, idname);
|
||||||
if (prop == NULL) {
|
|
||||||
IDPropertyTemplate val = {0};
|
|
||||||
prop = IDP_New(IDP_GROUP, &val, "wmGenericProperties");
|
|
||||||
STRNCPY(prop->name, idname);
|
|
||||||
IDP_ReplaceInGroup_ex(group, prop, NULL);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
BLI_assert(prop->type == IDP_GROUP);
|
|
||||||
}
|
|
||||||
|
|
||||||
RNA_pointer_create(NULL, type, prop, r_ptr);
|
RNA_pointer_create(NULL, type, prop, r_ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue