forked from bartvdbraak/blender
BMesh dissolve: enable use_verts for edge dissolve (by default)
This commit is contained in:
parent
04c0a46570
commit
6566013c91
@ -3502,10 +3502,16 @@ void MESH_OT_tris_convert_to_quads(wmOperatorType *ot)
|
|||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
/* Dissolve */
|
/* Dissolve */
|
||||||
|
|
||||||
static void edbm_dissolve_prop__use_verts(wmOperatorType *ot)
|
static void edbm_dissolve_prop__use_verts(wmOperatorType *ot, bool value, int flag)
|
||||||
{
|
{
|
||||||
RNA_def_boolean(ot->srna, "use_verts", 0, "Dissolve Verts",
|
PropertyRNA *prop;
|
||||||
"Dissolve remaining vertices");
|
|
||||||
|
prop = RNA_def_boolean(ot->srna, "use_verts", value, "Dissolve Verts",
|
||||||
|
"Dissolve remaining vertices");
|
||||||
|
|
||||||
|
if (flag) {
|
||||||
|
RNA_def_property_flag(prop, flag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
static void edbm_dissolve_prop__use_face_split(wmOperatorType *ot)
|
static void edbm_dissolve_prop__use_face_split(wmOperatorType *ot)
|
||||||
{
|
{
|
||||||
@ -3590,7 +3596,7 @@ void MESH_OT_dissolve_edges(wmOperatorType *ot)
|
|||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
|
|
||||||
edbm_dissolve_prop__use_verts(ot);
|
edbm_dissolve_prop__use_verts(ot, true, 0);
|
||||||
edbm_dissolve_prop__use_face_split(ot);
|
edbm_dissolve_prop__use_face_split(ot);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3629,7 +3635,7 @@ void MESH_OT_dissolve_faces(wmOperatorType *ot)
|
|||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
|
|
||||||
edbm_dissolve_prop__use_verts(ot);
|
edbm_dissolve_prop__use_verts(ot, false, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3637,6 +3643,15 @@ static int edbm_dissolve_mode_exec(bContext *C, wmOperator *op)
|
|||||||
{
|
{
|
||||||
Object *obedit = CTX_data_edit_object(C);
|
Object *obedit = CTX_data_edit_object(C);
|
||||||
BMEditMesh *em = BKE_editmesh_from_object(obedit);
|
BMEditMesh *em = BKE_editmesh_from_object(obedit);
|
||||||
|
PropertyRNA *prop;
|
||||||
|
|
||||||
|
prop = RNA_struct_find_property(op->ptr, "use_verts");
|
||||||
|
if (!RNA_property_is_set(op->ptr, prop)) {
|
||||||
|
/* always enable in edge-mode */
|
||||||
|
if ((em->selectmode & SCE_SELECT_FACE) == 0) {
|
||||||
|
RNA_property_boolean_set(op->ptr, prop, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (em->selectmode & SCE_SELECT_VERTEX) {
|
if (em->selectmode & SCE_SELECT_VERTEX) {
|
||||||
return edbm_dissolve_verts_exec(C, op);
|
return edbm_dissolve_verts_exec(C, op);
|
||||||
@ -3663,7 +3678,7 @@ void MESH_OT_dissolve_mode(wmOperatorType *ot)
|
|||||||
/* flags */
|
/* flags */
|
||||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||||
|
|
||||||
edbm_dissolve_prop__use_verts(ot);
|
edbm_dissolve_prop__use_verts(ot, false, PROP_SKIP_SAVE);
|
||||||
edbm_dissolve_prop__use_face_split(ot);
|
edbm_dissolve_prop__use_face_split(ot);
|
||||||
edbm_dissolve_prop__use_boundary_tear(ot);
|
edbm_dissolve_prop__use_boundary_tear(ot);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user