UV: border/circle select/deselect support

This commit is contained in:
Campbell Barton
2018-10-04 15:12:28 +10:00
parent f4e38974b3
commit 165a83345a
2 changed files with 20 additions and 7 deletions

View File

@@ -1227,22 +1227,29 @@ class _defs_image_uv_select:
@ToolDef.from_fn
def border():
def draw_settings(context, layout, tool):
props = tool.operator_properties("uv.select_border")
layout.prop(props, "deselect")
return dict(
text="Select Border",
icon="ops.generic.select_border",
widget=None,
keymap=(
("uv.select_border",
dict(deselect=False),
dict(),
dict(type='EVT_TWEAK_A', value='ANY')),
# ("uv.select_border",
# dict(deselect=True),
# dict(type='EVT_TWEAK_A', value='ANY', ctrl=True)),
("uv.select_border",
dict(deselect=True),
dict(type='EVT_TWEAK_A', value='ANY', ctrl=True)),
),
draw_settings=draw_settings,
)
@ToolDef.from_fn
def circle():
def draw_settings(context, layout, tool):
props = tool.operator_properties("uv.select_circle")
layout.prop(props, "radius")
return dict(
text="Select Circle",
icon="ops.generic.select_circle",
@@ -1255,6 +1262,7 @@ class _defs_image_uv_select:
dict(deselect=True),
dict(type='ACTIONMOUSE', value='PRESS', ctrl=True)),
),
draw_settings=draw_settings,
)
@ToolDef.from_fn

View File

@@ -233,13 +233,17 @@ void WM_operator_properties_border_to_rctf(struct wmOperator *op, rctf *rect)
*/
void WM_operator_properties_gesture_border_ex(wmOperatorType *ot, bool deselect, bool extend)
{
PropertyRNA *prop;
WM_operator_properties_border(ot);
if (deselect) {
RNA_def_boolean(ot->srna, "deselect", false, "Deselect", "Deselect rather than select items");
prop = RNA_def_boolean(ot->srna, "deselect", false, "Deselect", "Deselect rather than select items");
RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
if (extend) {
RNA_def_boolean(ot->srna, "extend", true, "Extend", "Extend selection instead of deselecting everything first");
prop = RNA_def_boolean(ot->srna, "extend", true, "Extend", "Extend selection instead of deselecting everything first");
RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
}
@@ -340,7 +344,8 @@ void WM_operator_properties_gesture_circle_ex(wmOperatorType *ot, bool deselect)
RNA_def_int(ot->srna, "radius", radius_default, 1, INT_MAX, "Radius", "", 1, INT_MAX);
if (deselect) {
RNA_def_boolean(ot->srna, "deselect", false, "Deselect", "Deselect rather than select items");
prop = RNA_def_boolean(ot->srna, "deselect", false, "Deselect", "Deselect rather than select items");
RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
}