forked from bartvdbraak/blender
Merge branch 'blender-v2.92-release'
This commit is contained in:
commit
023ebb890b
@ -133,7 +133,6 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
col = row.column(align=True)
|
col = row.column(align=True)
|
||||||
col.active = (ob.proxy is None)
|
|
||||||
col.operator("pose.group_add", icon='ADD', text="")
|
col.operator("pose.group_add", icon='ADD', text="")
|
||||||
col.operator("pose.group_remove", icon='REMOVE', text="")
|
col.operator("pose.group_remove", icon='REMOVE', text="")
|
||||||
col.menu("DATA_MT_bone_group_context_menu", icon='DOWNARROW_HLT', text="")
|
col.menu("DATA_MT_bone_group_context_menu", icon='DOWNARROW_HLT', text="")
|
||||||
@ -156,7 +155,6 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
|
|||||||
sub.prop(group.colors, "active", text="")
|
sub.prop(group.colors, "active", text="")
|
||||||
|
|
||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.active = (ob.proxy is None)
|
|
||||||
|
|
||||||
sub = row.row(align=True)
|
sub = row.row(align=True)
|
||||||
sub.operator("pose.group_assign", text="Assign")
|
sub.operator("pose.group_assign", text="Assign")
|
||||||
|
@ -55,6 +55,21 @@
|
|||||||
/* ********************************************** */
|
/* ********************************************** */
|
||||||
/* Bone Groups */
|
/* Bone Groups */
|
||||||
|
|
||||||
|
static bool pose_group_poll(bContext *C)
|
||||||
|
{
|
||||||
|
if (!ED_operator_posemode_context(C)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object *obpose = ED_pose_object_from_context(C);
|
||||||
|
if ((obpose->proxy != NULL) || (obpose->proxy_group != NULL) || ID_IS_OVERRIDE_LIBRARY(obpose)) {
|
||||||
|
CTX_wm_operator_poll_msg_set(C, "Cannot edit bonegroups for proxies or library overrides");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static int pose_group_add_exec(bContext *C, wmOperator *UNUSED(op))
|
static int pose_group_add_exec(bContext *C, wmOperator *UNUSED(op))
|
||||||
{
|
{
|
||||||
Object *ob = ED_pose_object_from_context(C);
|
Object *ob = ED_pose_object_from_context(C);
|
||||||
@ -82,7 +97,7 @@ void POSE_OT_group_add(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec = pose_group_add_exec;
|
ot->exec = pose_group_add_exec;
|
||||||
ot->poll = ED_operator_posemode_context;
|
ot->poll = pose_group_poll;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
@ -116,7 +131,7 @@ void POSE_OT_group_remove(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec = pose_group_remove_exec;
|
ot->exec = pose_group_remove_exec;
|
||||||
ot->poll = ED_operator_posemode_context;
|
ot->poll = pose_group_poll;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
@ -233,7 +248,7 @@ void POSE_OT_group_assign(wmOperatorType *ot)
|
|||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->invoke = pose_groups_menu_invoke;
|
ot->invoke = pose_groups_menu_invoke;
|
||||||
ot->exec = pose_group_assign_exec;
|
ot->exec = pose_group_assign_exec;
|
||||||
ot->poll = ED_operator_posemode_context;
|
ot->poll = pose_group_poll;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
@ -281,7 +296,7 @@ void POSE_OT_group_unassign(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec = pose_group_unassign_exec;
|
ot->exec = pose_group_unassign_exec;
|
||||||
ot->poll = ED_operator_posemode_context;
|
ot->poll = pose_group_poll;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
@ -346,7 +361,7 @@ void POSE_OT_group_move(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec = group_move_exec;
|
ot->exec = group_move_exec;
|
||||||
ot->poll = ED_operator_posemode_context;
|
ot->poll = pose_group_poll;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
@ -437,7 +452,7 @@ void POSE_OT_group_sort(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec = group_sort_exec;
|
ot->exec = group_sort_exec;
|
||||||
ot->poll = ED_operator_posemode_context;
|
ot->poll = pose_group_poll;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
|
@ -138,8 +138,22 @@ static char *rna_PoseBone_path(PointerRNA *ptr)
|
|||||||
|
|
||||||
/* Bone groups only. */
|
/* Bone groups only. */
|
||||||
|
|
||||||
static bActionGroup *rna_bone_group_new(ID *id, bPose *pose, const char *name)
|
static bool rna_bone_group_poll(Object *ob, ReportList *reports)
|
||||||
{
|
{
|
||||||
|
if ((ob->proxy != NULL) || (ob->proxy_group != NULL) || ID_IS_OVERRIDE_LIBRARY(ob)) {
|
||||||
|
BKE_report(reports, RPT_ERROR, "Cannot edit bonegroups for proxies or library overrides");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bActionGroup *rna_bone_group_new(ID *id, bPose *pose, ReportList *reports, const char *name)
|
||||||
|
{
|
||||||
|
if (!rna_bone_group_poll((Object *)id, reports)) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
bActionGroup *grp = BKE_pose_add_group(pose, name);
|
bActionGroup *grp = BKE_pose_add_group(pose, name);
|
||||||
WM_main_add_notifier(NC_OBJECT | ND_POSE | NA_ADDED, id);
|
WM_main_add_notifier(NC_OBJECT | ND_POSE | NA_ADDED, id);
|
||||||
return grp;
|
return grp;
|
||||||
@ -147,6 +161,10 @@ static bActionGroup *rna_bone_group_new(ID *id, bPose *pose, const char *name)
|
|||||||
|
|
||||||
static void rna_bone_group_remove(ID *id, bPose *pose, ReportList *reports, PointerRNA *grp_ptr)
|
static void rna_bone_group_remove(ID *id, bPose *pose, ReportList *reports, PointerRNA *grp_ptr)
|
||||||
{
|
{
|
||||||
|
if (!rna_bone_group_poll((Object *)id, reports)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bActionGroup *grp = grp_ptr->data;
|
bActionGroup *grp = grp_ptr->data;
|
||||||
const int grp_idx = BLI_findindex(&pose->agroups, grp);
|
const int grp_idx = BLI_findindex(&pose->agroups, grp);
|
||||||
|
|
||||||
@ -163,6 +181,11 @@ static void rna_bone_group_remove(ID *id, bPose *pose, ReportList *reports, Poin
|
|||||||
|
|
||||||
void rna_ActionGroup_colorset_set(PointerRNA *ptr, int value)
|
void rna_ActionGroup_colorset_set(PointerRNA *ptr, int value)
|
||||||
{
|
{
|
||||||
|
Object *ob = (Object *)ptr->owner_id;
|
||||||
|
if (!rna_bone_group_poll(ob, NULL)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bActionGroup *grp = ptr->data;
|
bActionGroup *grp = ptr->data;
|
||||||
|
|
||||||
/* ensure only valid values get set */
|
/* ensure only valid values get set */
|
||||||
@ -184,6 +207,10 @@ bool rna_ActionGroup_is_custom_colorset_get(PointerRNA *ptr)
|
|||||||
static void rna_BoneGroup_name_set(PointerRNA *ptr, const char *value)
|
static void rna_BoneGroup_name_set(PointerRNA *ptr, const char *value)
|
||||||
{
|
{
|
||||||
Object *ob = (Object *)ptr->owner_id;
|
Object *ob = (Object *)ptr->owner_id;
|
||||||
|
if (!rna_bone_group_poll(ob, NULL)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bActionGroup *agrp = ptr->data;
|
bActionGroup *agrp = ptr->data;
|
||||||
|
|
||||||
/* copy the new name into the name slot */
|
/* copy the new name into the name slot */
|
||||||
@ -1619,7 +1646,7 @@ static void rna_def_bone_groups(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
|
|
||||||
func = RNA_def_function(srna, "new", "rna_bone_group_new");
|
func = RNA_def_function(srna, "new", "rna_bone_group_new");
|
||||||
RNA_def_function_ui_description(func, "Add a new bone group to the object");
|
RNA_def_function_ui_description(func, "Add a new bone group to the object");
|
||||||
RNA_def_function_flag(func, FUNC_USE_SELF_ID); /* ID needed for refresh */
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS); /* ID needed for refresh */
|
||||||
RNA_def_string(func, "name", "Group", MAX_NAME, "", "Name of the new group");
|
RNA_def_string(func, "name", "Group", MAX_NAME, "", "Name of the new group");
|
||||||
/* return type */
|
/* return type */
|
||||||
parm = RNA_def_pointer(func, "group", "BoneGroup", "", "New bone group");
|
parm = RNA_def_pointer(func, "group", "BoneGroup", "", "New bone group");
|
||||||
|
Loading…
Reference in New Issue
Block a user