Bugfix [#33154] Toggle/Enable/Disable channel settings operators in

DopeSheet/Action Editor Channel menus were not working properly

They were not allowing users to choose which setting they affected, which
resulted in "protect" (i.e. the same setting as the editability toggle handles)
always being used.

Also, set hidden flags on a few internally used properties here...
This commit is contained in:
Joshua Leung 2012-11-20 02:03:20 +00:00
parent 9731930a14
commit 609528737a
3 changed files with 22 additions and 10 deletions

@ -241,9 +241,9 @@ class DOPESHEET_MT_channel(Menu):
layout.operator("anim.channels_delete") layout.operator("anim.channels_delete")
layout.separator() layout.separator()
layout.operator("anim.channels_setting_toggle") layout.operator_menu_enum("anim.channels_setting_toggle", "type")
layout.operator("anim.channels_setting_enable") layout.operator_menu_enum("anim.channels_setting_enable", "type")
layout.operator("anim.channels_setting_disable") layout.operator_menu_enum("anim.channels_setting_disable", "type")
layout.separator() layout.separator()
layout.operator("anim.channels_editable_toggle") layout.operator("anim.channels_editable_toggle")

@ -161,9 +161,9 @@ class GRAPH_MT_channel(Menu):
layout.operator("anim.channels_delete") layout.operator("anim.channels_delete")
layout.separator() layout.separator()
layout.operator("anim.channels_setting_toggle") layout.operator_menu_enum("anim.channels_setting_toggle", "type")
layout.operator("anim.channels_setting_enable") layout.operator_menu_enum("anim.channels_setting_enable", "type")
layout.operator("anim.channels_setting_disable") layout.operator_menu_enum("anim.channels_setting_disable", "type")
layout.separator() layout.separator()
layout.operator("anim.channels_editable_toggle") layout.operator("anim.channels_editable_toggle")

@ -1560,6 +1560,8 @@ static int animchannels_setflag_exec(bContext *C, wmOperator *op)
/* duplicate of 'ANIM_OT_channels_setting_toggle' for menu title only, weak! */ /* duplicate of 'ANIM_OT_channels_setting_toggle' for menu title only, weak! */
static void ANIM_OT_channels_setting_enable(wmOperatorType *ot) static void ANIM_OT_channels_setting_enable(wmOperatorType *ot)
{ {
PropertyRNA *prop;
/* identifiers */ /* identifiers */
ot->name = "Enable Channel Setting"; ot->name = "Enable Channel Setting";
ot->idname = "ANIM_OT_channels_setting_enable"; ot->idname = "ANIM_OT_channels_setting_enable";
@ -1575,13 +1577,16 @@ static void ANIM_OT_channels_setting_enable(wmOperatorType *ot)
/* props */ /* props */
/* flag-setting mode */ /* flag-setting mode */
RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_ADD, "Mode", ""); prop = RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_ADD, "Mode", "");
RNA_def_property_flag(prop, PROP_HIDDEN);
/* setting to set */ /* setting to set */
ot->prop = RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, 0, "Type", ""); ot->prop = RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, 0, "Type", "");
} }
/* duplicate of 'ANIM_OT_channels_setting_toggle' for menu title only, weak! */ /* duplicate of 'ANIM_OT_channels_setting_toggle' for menu title only, weak! */
static void ANIM_OT_channels_setting_disable(wmOperatorType *ot) static void ANIM_OT_channels_setting_disable(wmOperatorType *ot)
{ {
PropertyRNA *prop;
/* identifiers */ /* identifiers */
ot->name = "Disable Channel Setting"; ot->name = "Disable Channel Setting";
ot->idname = "ANIM_OT_channels_setting_disable"; ot->idname = "ANIM_OT_channels_setting_disable";
@ -1597,13 +1602,16 @@ static void ANIM_OT_channels_setting_disable(wmOperatorType *ot)
/* props */ /* props */
/* flag-setting mode */ /* flag-setting mode */
RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_CLEAR, "Mode", ""); prop = RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_CLEAR, "Mode", "");
RNA_def_property_flag(prop, PROP_HIDDEN); /* internal hack - don't expose */
/* setting to set */ /* setting to set */
ot->prop = RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, 0, "Type", ""); ot->prop = RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, 0, "Type", "");
} }
static void ANIM_OT_channels_setting_toggle(wmOperatorType *ot) static void ANIM_OT_channels_setting_toggle(wmOperatorType *ot)
{ {
PropertyRNA *prop;
/* identifiers */ /* identifiers */
ot->name = "Toggle Channel Setting"; ot->name = "Toggle Channel Setting";
ot->idname = "ANIM_OT_channels_setting_toggle"; ot->idname = "ANIM_OT_channels_setting_toggle";
@ -1619,13 +1627,16 @@ static void ANIM_OT_channels_setting_toggle(wmOperatorType *ot)
/* props */ /* props */
/* flag-setting mode */ /* flag-setting mode */
RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_TOGGLE, "Mode", ""); prop = RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_TOGGLE, "Mode", "");
RNA_def_property_flag(prop, PROP_HIDDEN); /* internal hack - don't expose */
/* setting to set */ /* setting to set */
ot->prop = RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, 0, "Type", ""); ot->prop = RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, 0, "Type", "");
} }
static void ANIM_OT_channels_editable_toggle(wmOperatorType *ot) static void ANIM_OT_channels_editable_toggle(wmOperatorType *ot)
{ {
PropertyRNA *prop;
/* identifiers */ /* identifiers */
ot->name = "Toggle Channel Editability"; ot->name = "Toggle Channel Editability";
ot->idname = "ANIM_OT_channels_editable_toggle"; ot->idname = "ANIM_OT_channels_editable_toggle";
@ -1642,7 +1653,8 @@ static void ANIM_OT_channels_editable_toggle(wmOperatorType *ot)
/* flag-setting mode */ /* flag-setting mode */
RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_TOGGLE, "Mode", ""); RNA_def_enum(ot->srna, "mode", prop_animchannel_setflag_types, ACHANNEL_SETFLAG_TOGGLE, "Mode", "");
/* setting to set */ /* setting to set */
RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, ACHANNEL_SETTING_PROTECT, "Type", ""); prop = RNA_def_enum(ot->srna, "type", prop_animchannel_settings_types, ACHANNEL_SETTING_PROTECT, "Type", "");
RNA_def_property_flag(prop, PROP_HIDDEN); /* internal hack - don't expose */
} }
/* ********************** Expand Channels Operator *********************** */ /* ********************** Expand Channels Operator *********************** */