Add missing select menu for weight, vertex, texture paint modes.
This commit is contained in:
@@ -44,7 +44,13 @@ class VIEW3D_HT_header(Header):
|
|||||||
sub.menu("VIEW3D_MT_view")
|
sub.menu("VIEW3D_MT_view")
|
||||||
|
|
||||||
# Select Menu
|
# Select Menu
|
||||||
if mode_string not in {'EDIT_TEXT', 'SCULPT', 'PAINT_WEIGHT', 'PAINT_VERTEX', 'PAINT_TEXTURE'}:
|
if mode_string in {'PAINT_WEIGHT', 'PAINT_VERTEX', 'PAINT_TEXTURE'}:
|
||||||
|
mesh = obj.data
|
||||||
|
if mesh.use_paint_mask:
|
||||||
|
sub.menu("VIEW3D_MT_select_paint_mask")
|
||||||
|
elif mesh.use_paint_mask_vertex and mode_string == 'PAINT_WEIGHT':
|
||||||
|
sub.menu("VIEW3D_MT_select_paint_mask_vertex")
|
||||||
|
elif mode_string not in {'EDIT_TEXT', 'SCULPT'}:
|
||||||
sub.menu("VIEW3D_MT_select_%s" % mode_string.lower())
|
sub.menu("VIEW3D_MT_select_%s" % mode_string.lower())
|
||||||
|
|
||||||
if edit_object:
|
if edit_object:
|
||||||
@@ -673,6 +679,7 @@ class VIEW3D_MT_select_edit_metaball(Menu):
|
|||||||
layout = self.layout
|
layout = self.layout
|
||||||
|
|
||||||
layout.operator("view3d.select_border")
|
layout.operator("view3d.select_border")
|
||||||
|
layout.operator("view3d.select_circle")
|
||||||
|
|
||||||
layout.separator()
|
layout.separator()
|
||||||
|
|
||||||
@@ -730,15 +737,39 @@ class VIEW3D_MT_select_edit_armature(Menu):
|
|||||||
layout.operator("object.select_pattern", text="Select Pattern...")
|
layout.operator("object.select_pattern", text="Select Pattern...")
|
||||||
|
|
||||||
|
|
||||||
class VIEW3D_MT_select_face(Menu): # XXX no matching enum
|
class VIEW3D_MT_select_paint_mask(Menu):
|
||||||
bl_label = "Select"
|
bl_label = "Select"
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
# layout = self.layout
|
layout = self.layout
|
||||||
|
|
||||||
|
layout.operator("view3d.select_border")
|
||||||
|
layout.operator("view3d.select_circle")
|
||||||
|
|
||||||
|
layout.separator()
|
||||||
|
|
||||||
|
layout.operator("paint.face_select_all").action = 'TOGGLE'
|
||||||
|
layout.operator("paint.face_select_all", text="Inverse").action = 'INVERT'
|
||||||
|
|
||||||
|
layout.separator()
|
||||||
|
|
||||||
|
layout.operator("paint.face_select_linked", text="Linked")
|
||||||
|
|
||||||
|
|
||||||
|
class VIEW3D_MT_select_paint_mask_vertex(Menu):
|
||||||
|
bl_label = "Select"
|
||||||
|
|
||||||
|
def draw(self, context):
|
||||||
|
layout = self.layout
|
||||||
|
|
||||||
|
layout.operator("view3d.select_border")
|
||||||
|
layout.operator("view3d.select_circle")
|
||||||
|
|
||||||
|
layout.separator()
|
||||||
|
|
||||||
|
layout.operator("paint.vert_select_all").action = 'TOGGLE'
|
||||||
|
layout.operator("paint.vert_select_all", text="Inverse").action = 'INVERT'
|
||||||
|
|
||||||
# TODO
|
|
||||||
# see view3d_select_faceselmenu
|
|
||||||
pass
|
|
||||||
|
|
||||||
# ********** Object menu **********
|
# ********** Object menu **********
|
||||||
|
|
||||||
|
@@ -151,12 +151,10 @@ void BRUSH_OT_curve_preset(struct wmOperatorType *ot);
|
|||||||
void PAINT_OT_face_select_linked(struct wmOperatorType *ot);
|
void PAINT_OT_face_select_linked(struct wmOperatorType *ot);
|
||||||
void PAINT_OT_face_select_linked_pick(struct wmOperatorType *ot);
|
void PAINT_OT_face_select_linked_pick(struct wmOperatorType *ot);
|
||||||
void PAINT_OT_face_select_all(struct wmOperatorType *ot);
|
void PAINT_OT_face_select_all(struct wmOperatorType *ot);
|
||||||
void PAINT_OT_face_select_inverse(struct wmOperatorType *ot);
|
|
||||||
void PAINT_OT_face_select_hide(struct wmOperatorType *ot);
|
void PAINT_OT_face_select_hide(struct wmOperatorType *ot);
|
||||||
void PAINT_OT_face_select_reveal(struct wmOperatorType *ot);
|
void PAINT_OT_face_select_reveal(struct wmOperatorType *ot);
|
||||||
|
|
||||||
void PAINT_OT_vert_select_all(struct wmOperatorType *ot);
|
void PAINT_OT_vert_select_all(struct wmOperatorType *ot);
|
||||||
void PAINT_OT_vert_select_inverse(struct wmOperatorType *ot);
|
|
||||||
int vert_paint_poll(struct bContext *C);
|
int vert_paint_poll(struct bContext *C);
|
||||||
int mask_paint_poll(struct bContext *C);
|
int mask_paint_poll(struct bContext *C);
|
||||||
|
|
||||||
|
@@ -485,7 +485,6 @@ void ED_operatortypes_paint(void)
|
|||||||
|
|
||||||
/* vertex selection */
|
/* vertex selection */
|
||||||
WM_operatortype_append(PAINT_OT_vert_select_all);
|
WM_operatortype_append(PAINT_OT_vert_select_all);
|
||||||
WM_operatortype_append(PAINT_OT_vert_select_inverse);
|
|
||||||
|
|
||||||
/* vertex */
|
/* vertex */
|
||||||
WM_operatortype_append(PAINT_OT_vertex_paint_toggle);
|
WM_operatortype_append(PAINT_OT_vertex_paint_toggle);
|
||||||
@@ -496,7 +495,6 @@ void ED_operatortypes_paint(void)
|
|||||||
WM_operatortype_append(PAINT_OT_face_select_linked);
|
WM_operatortype_append(PAINT_OT_face_select_linked);
|
||||||
WM_operatortype_append(PAINT_OT_face_select_linked_pick);
|
WM_operatortype_append(PAINT_OT_face_select_linked_pick);
|
||||||
WM_operatortype_append(PAINT_OT_face_select_all);
|
WM_operatortype_append(PAINT_OT_face_select_all);
|
||||||
WM_operatortype_append(PAINT_OT_face_select_inverse);
|
|
||||||
WM_operatortype_append(PAINT_OT_face_select_hide);
|
WM_operatortype_append(PAINT_OT_face_select_hide);
|
||||||
WM_operatortype_append(PAINT_OT_face_select_reveal);
|
WM_operatortype_append(PAINT_OT_face_select_reveal);
|
||||||
|
|
||||||
@@ -748,7 +746,8 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
|||||||
keymap = WM_keymap_find(keyconf, "Weight Paint Vertex Selection", 0, 0);
|
keymap = WM_keymap_find(keyconf, "Weight Paint Vertex Selection", 0, 0);
|
||||||
keymap->poll = vert_paint_poll;
|
keymap->poll = vert_paint_poll;
|
||||||
WM_keymap_add_item(keymap, "PAINT_OT_vert_select_all", AKEY, KM_PRESS, 0, 0);
|
WM_keymap_add_item(keymap, "PAINT_OT_vert_select_all", AKEY, KM_PRESS, 0, 0);
|
||||||
WM_keymap_add_item(keymap, "PAINT_OT_vert_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0);
|
kmi = WM_keymap_add_item(keymap, "PAINT_OT_vert_select_all", IKEY, KM_PRESS, KM_CTRL, 0);
|
||||||
|
RNA_enum_set(kmi->ptr, "action", SEL_INVERT);
|
||||||
WM_keymap_add_item(keymap, "VIEW3D_OT_select_border", BKEY, KM_PRESS, 0, 0);
|
WM_keymap_add_item(keymap, "VIEW3D_OT_select_border", BKEY, KM_PRESS, 0, 0);
|
||||||
kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
|
kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
|
||||||
RNA_boolean_set(kmi->ptr, "deselect", FALSE);
|
RNA_boolean_set(kmi->ptr, "deselect", FALSE);
|
||||||
@@ -777,7 +776,8 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
|||||||
keymap->poll = facemask_paint_poll;
|
keymap->poll = facemask_paint_poll;
|
||||||
|
|
||||||
WM_keymap_add_item(keymap, "PAINT_OT_face_select_all", AKEY, KM_PRESS, 0, 0);
|
WM_keymap_add_item(keymap, "PAINT_OT_face_select_all", AKEY, KM_PRESS, 0, 0);
|
||||||
WM_keymap_add_item(keymap, "PAINT_OT_face_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0);
|
kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_all", IKEY, KM_PRESS, KM_CTRL, 0);
|
||||||
|
RNA_enum_set(kmi->ptr, "action", SEL_INVERT);
|
||||||
kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, 0, 0);
|
kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, 0, 0);
|
||||||
RNA_boolean_set(kmi->ptr, "unselected", FALSE);
|
RNA_boolean_set(kmi->ptr, "unselected", FALSE);
|
||||||
kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
|
kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
|
||||||
|
@@ -448,7 +448,7 @@ static int face_select_all_exec(bContext *C, wmOperator *op)
|
|||||||
|
|
||||||
void PAINT_OT_face_select_all(wmOperatorType *ot)
|
void PAINT_OT_face_select_all(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
ot->name = "Face Selection";
|
ot->name = "(De)select All";
|
||||||
ot->description = "Change selection for all faces";
|
ot->description = "Change selection for all faces";
|
||||||
ot->idname = "PAINT_OT_face_select_all";
|
ot->idname = "PAINT_OT_face_select_all";
|
||||||
|
|
||||||
@@ -472,7 +472,7 @@ static int vert_select_all_exec(bContext *C, wmOperator *op)
|
|||||||
|
|
||||||
void PAINT_OT_vert_select_all(wmOperatorType *ot)
|
void PAINT_OT_vert_select_all(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
ot->name = "Vertex Selection";
|
ot->name = "(De)select All";
|
||||||
ot->description = "Change selection for all vertices";
|
ot->description = "Change selection for all vertices";
|
||||||
ot->idname = "PAINT_OT_vert_select_all";
|
ot->idname = "PAINT_OT_vert_select_all";
|
||||||
|
|
||||||
@@ -484,46 +484,6 @@ void PAINT_OT_vert_select_all(wmOperatorType *ot)
|
|||||||
WM_operator_properties_select_all(ot);
|
WM_operator_properties_select_all(ot);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int vert_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
|
|
||||||
{
|
|
||||||
Object *ob = CTX_data_active_object(C);
|
|
||||||
paintvert_deselect_all_visible(ob, SEL_INVERT, TRUE);
|
|
||||||
ED_region_tag_redraw(CTX_wm_region(C));
|
|
||||||
return OPERATOR_FINISHED;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PAINT_OT_vert_select_inverse(wmOperatorType *ot)
|
|
||||||
{
|
|
||||||
ot->name = "Vertex Select Invert";
|
|
||||||
ot->description = "Invert selection of vertices";
|
|
||||||
ot->idname = "PAINT_OT_vert_select_inverse";
|
|
||||||
|
|
||||||
ot->exec = vert_select_inverse_exec;
|
|
||||||
ot->poll = vert_paint_poll;
|
|
||||||
|
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
|
||||||
}
|
|
||||||
static int face_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
|
|
||||||
{
|
|
||||||
Object *ob = CTX_data_active_object(C);
|
|
||||||
paintface_deselect_all_visible(ob, SEL_INVERT, TRUE);
|
|
||||||
ED_region_tag_redraw(CTX_wm_region(C));
|
|
||||||
return OPERATOR_FINISHED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PAINT_OT_face_select_inverse(wmOperatorType *ot)
|
|
||||||
{
|
|
||||||
ot->name = "Face Select Invert";
|
|
||||||
ot->description = "Invert selection of faces";
|
|
||||||
ot->idname = "PAINT_OT_face_select_inverse";
|
|
||||||
|
|
||||||
ot->exec = face_select_inverse_exec;
|
|
||||||
ot->poll = facemask_paint_poll;
|
|
||||||
|
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int face_select_hide_exec(bContext *C, wmOperator *op)
|
static int face_select_hide_exec(bContext *C, wmOperator *op)
|
||||||
{
|
{
|
||||||
const int unselected = RNA_boolean_get(op->ptr, "unselected");
|
const int unselected = RNA_boolean_get(op->ptr, "unselected");
|
||||||
|
Reference in New Issue
Block a user