Merge branch 'blender-v2.83-release'
This commit is contained in:
commit
1f34a34fa5
@ -267,7 +267,7 @@ class BONE_PT_display(BoneButtonsPanel, Panel):
|
||||
if bone:
|
||||
|
||||
col = layout.column()
|
||||
col.prop(bone, "hide", text="Hide")
|
||||
col.prop(bone, "hide", text="Hide", toggle=0)
|
||||
|
||||
|
||||
class BONE_PT_display_custom_shape(BoneButtonsPanel, Panel):
|
||||
|
@ -178,20 +178,13 @@ static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2)
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_RENDER_OPTIONS, poin);
|
||||
}
|
||||
|
||||
static void restrictbutton_bone_visibility_cb(bContext *C, void *poin, void *poin2)
|
||||
static void restrictbutton_bone_visibility_cb(bContext *C, void *poin, void *UNUSED(poin2))
|
||||
{
|
||||
bArmature *arm = (bArmature *)poin;
|
||||
Bone *bone = (Bone *)poin2;
|
||||
if (bone->flag & BONE_HIDDEN_P) {
|
||||
bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
|
||||
}
|
||||
Bone *bone = (Bone *)poin;
|
||||
|
||||
if (CTX_wm_window(C)->eventstate->ctrl) {
|
||||
restrictbutton_recursive_bone(bone, BONE_HIDDEN_P, (bone->flag & BONE_HIDDEN_P) != 0);
|
||||
}
|
||||
|
||||
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL);
|
||||
DEG_id_tag_update(&arm->id, ID_RECALC_COPY_ON_WRITE);
|
||||
}
|
||||
|
||||
static void restrictbutton_bone_select_cb(bContext *C, void *UNUSED(poin), void *poin2)
|
||||
@ -859,6 +852,7 @@ typedef struct RestrictProperties {
|
||||
*layer_collection_hide_viewport;
|
||||
PropertyRNA *modifier_show_viewport, *modifier_show_render;
|
||||
PropertyRNA *constraint_enable;
|
||||
PropertyRNA *bone_hide_viewport;
|
||||
} RestrictProperties;
|
||||
|
||||
/* We don't care about the value of the property
|
||||
@ -877,6 +871,7 @@ typedef struct RestrictPropertiesActive {
|
||||
bool modifier_show_viewport;
|
||||
bool modifier_show_render;
|
||||
bool constraint_enable;
|
||||
bool bone_hide_viewport;
|
||||
} RestrictPropertiesActive;
|
||||
|
||||
static void outliner_restrict_properties_enable_collection_set(
|
||||
@ -1011,6 +1006,8 @@ static void outliner_draw_restrictbuts(uiBlock *block,
|
||||
|
||||
props.constraint_enable = RNA_struct_type_find_property(&RNA_Constraint, "mute");
|
||||
|
||||
props.bone_hide_viewport = RNA_struct_type_find_property(&RNA_Bone, "hide");
|
||||
|
||||
props.initialized = true;
|
||||
}
|
||||
|
||||
@ -1279,27 +1276,32 @@ static void outliner_draw_restrictbuts(uiBlock *block,
|
||||
}
|
||||
}
|
||||
else if (tselem->type == TSE_POSE_CHANNEL) {
|
||||
PointerRNA ptr;
|
||||
bPoseChannel *pchan = (bPoseChannel *)te->directdata;
|
||||
Bone *bone = pchan->bone;
|
||||
Object *ob = (Object *)tselem->id;
|
||||
bArmature *arm = ob->data;
|
||||
|
||||
RNA_pointer_create(&arm->id, &RNA_Bone, bone, &ptr);
|
||||
|
||||
if (soops->show_restrict_flags & SO_RESTRICT_VIEWPORT) {
|
||||
bt = uiDefIconButBitI(block,
|
||||
UI_BTYPE_ICON_TOGGLE,
|
||||
BONE_HIDDEN_P,
|
||||
0,
|
||||
ICON_RESTRICT_VIEW_OFF,
|
||||
(int)(region->v2d.cur.xmax - restrict_offsets.viewport),
|
||||
te->ys,
|
||||
UI_UNIT_X,
|
||||
UI_UNIT_Y,
|
||||
&(bone->flag),
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
TIP_("Restrict visibility in the 3D View"));
|
||||
UI_but_func_set(bt, restrictbutton_bone_visibility_cb, ob->data, bone);
|
||||
bt = uiDefIconButR_prop(block,
|
||||
UI_BTYPE_ICON_TOGGLE,
|
||||
0,
|
||||
0,
|
||||
(int)(region->v2d.cur.xmax - restrict_offsets.viewport),
|
||||
te->ys,
|
||||
UI_UNIT_X,
|
||||
UI_UNIT_Y,
|
||||
&ptr,
|
||||
props.bone_hide_viewport,
|
||||
-1,
|
||||
0,
|
||||
0,
|
||||
-1,
|
||||
-1,
|
||||
TIP_("Restrict visibility in the 3D View"));
|
||||
UI_but_func_set(bt, restrictbutton_bone_visibility_cb, bone, NULL);
|
||||
UI_but_flag_enable(bt, UI_BUT_DRAG_LOCK);
|
||||
UI_but_drawflag_enable(bt, UI_BUT_ICON_REVERSE);
|
||||
}
|
||||
|
@ -176,6 +176,20 @@ static void rna_Armature_redraw_data(Main *UNUSED(bmain), Scene *UNUSED(scene),
|
||||
WM_main_add_notifier(NC_GEOM | ND_DATA, id);
|
||||
}
|
||||
|
||||
/* Unselect bones when hidden */
|
||||
static void rna_Bone_hide_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
{
|
||||
bArmature *arm = (bArmature *)ptr->owner_id;
|
||||
Bone *bone = (Bone *)ptr->data;
|
||||
|
||||
if (bone->flag & BONE_HIDDEN_P) {
|
||||
bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
|
||||
}
|
||||
|
||||
WM_main_add_notifier(NC_OBJECT | ND_POSE, arm);
|
||||
DEG_id_tag_update(&arm->id, ID_RECALC_COPY_ON_WRITE);
|
||||
}
|
||||
|
||||
/* called whenever a bone is renamed */
|
||||
static void rna_Bone_update_renamed(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||
{
|
||||
@ -1143,7 +1157,8 @@ static void rna_def_bone(BlenderRNA *brna)
|
||||
prop,
|
||||
"Hide",
|
||||
"Bone is not visible when it is not in Edit Mode (i.e. in Object or Pose Modes)");
|
||||
RNA_def_property_update(prop, 0, "rna_Armature_redraw_data");
|
||||
RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, -1);
|
||||
RNA_def_property_update(prop, 0, "rna_Bone_hide_update");
|
||||
|
||||
prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "flag", BONE_SELECTED);
|
||||
|
Loading…
Reference in New Issue
Block a user