Add "Pie Menu on Drag" support to Region Toggle Pie #116207

Open
Nika Kutsniashvili wants to merge 1 commits from nickberckley/blender:nview-on-drag into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
1 changed files with 36 additions and 14 deletions

View File

@ -319,6 +319,7 @@ def _template_space_region_type_toggle(
*,
toolbar_key=None,
sidebar_key=None,
sidebar_key_drag=None,
channels_key=None,
):
items = []
@ -334,11 +335,21 @@ def _template_space_region_type_toggle(
("wm.context_toggle", toolbar_key,
{"properties": [("data_path", 'space_data.show_region_toolbar')]})
)
if sidebar_key is not None:
items.append(
("wm.context_toggle", sidebar_key,
{"properties": [("data_path", 'space_data.show_region_ui')]}),
)
if params.use_pie_click_drag and sidebar_key_drag is not None:
items.extend([
("wm.context_toggle", sidebar_key,
{"properties": [("data_path", 'space_data.show_region_ui')]}),
op_menu_pie("WM_MT_region_toggle_pie", sidebar_key_drag),
])
else:
items.append(
("wm.context_toggle", sidebar_key,
{"properties": [("data_path", 'space_data.show_region_ui')]}),
)
if channels_key is not None:
items.append(
("wm.context_toggle", channels_key,
@ -1462,7 +1473,8 @@ def km_view3d_generic(params):
*_template_space_region_type_toggle(
params,
toolbar_key={"type": 'T', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
)
])
@ -1809,7 +1821,8 @@ def km_graph_editor_generic(params):
items.extend([
*_template_space_region_type_toggle(
params,
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
),
("graph.extrapolation_type", {"type": 'E', "value": 'PRESS', "shift": True}, None),
("graph.fmodifier_add", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True},
@ -1969,11 +1982,13 @@ def km_image_generic(params):
{"items": items},
)
items.extend([
*_template_space_region_type_toggle(
params,
toolbar_key={"type": 'T', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
),
("image.new", {"type": 'N', "value": 'PRESS', "alt": True}, None),
("image.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
@ -2104,7 +2119,8 @@ def km_node_generic(params):
*_template_space_region_type_toggle(
params,
toolbar_key={"type": 'T', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
),
])
@ -2466,7 +2482,8 @@ def km_dopesheet_generic(params):
items.extend([
*_template_space_region_type_toggle(
params,
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
),
("wm.context_set_enum", {"type": 'TAB', "value": 'PRESS', "ctrl": True},
{"properties": [("data_path", 'area.type'), ("value", 'GRAPH_EDITOR')]}),
@ -2604,7 +2621,8 @@ def km_nla_generic(params):
items.extend([
*_template_space_region_type_toggle(
params,
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
),
("nla.tweakmode_enter", {"type": 'TAB', "value": 'PRESS'},
{"properties": [("use_upper_stack_evaluation", True)]}),
@ -2736,7 +2754,8 @@ def km_text_generic(params):
items.extend([
*_template_space_region_type_toggle(
params,
sidebar_key={"type": 'T', "value": 'PRESS', "ctrl": True},
sidebar_key={"type": 'T', "value": 'CLICK', "ctrl": True} if params.use_pie_click_drag else {"type": 'T', "value": 'PRESS', "ctrl": True},
sidebar_key_drag={"type": 'T', "value": 'CLICK_DRAG', "ctrl": True} if params.use_pie_click_drag else None,
),
("text.start_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
("text.jump", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
@ -2902,7 +2921,8 @@ def km_sequencercommon(params):
*_template_space_region_type_toggle(
params,
toolbar_key={"type": 'T', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
),
("wm.context_toggle", {"type": 'O', "value": 'PRESS', "shift": True},
{"properties": [("data_path", 'scene.sequence_editor.show_overlay_frame')]}),
@ -3236,7 +3256,8 @@ def km_clip(params):
*_template_space_region_type_toggle(
params,
toolbar_key={"type": 'T', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
),
("clip.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
("clip.track_markers", {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True, "repeat": True},
@ -3469,7 +3490,8 @@ def km_spreadsheet_generic(params):
items.extend([
*_template_space_region_type_toggle(
params,
sidebar_key={"type": 'N', "value": 'PRESS'},
sidebar_key={"type": 'N', "value": 'CLICK'} if params.use_pie_click_drag else {"type": 'N', "value": 'PRESS'},
sidebar_key_drag={"type": 'N', "value": 'CLICK_DRAG'} if params.use_pie_click_drag else None,
channels_key={"type": 'T', "value": 'PRESS'},
),
])