resolve [#33374] Extrude and mirror editing
authorCampbell Barton <ideasman42@gmail.com>
Sun, 16 Jun 2013 05:35:44 +0000 (05:35 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sun, 16 Jun 2013 05:35:44 +0000 (05:35 +0000)
mirror editing option was only added to extrude so mirror editing would always be disabled.
the option is now hidden to avoid confusing users.

source/blender/editors/include/ED_transform.h
source/blender/editors/mesh/editmesh_extrude.c
source/blender/editors/mesh/editmesh_rip.c
source/blender/editors/transform/transform_ops.c

index dd6c4fea6a06aa6d464f7aab09cc58b152367549..423613fb78093d6eb094f9f9ecc312c113621a6b 100644 (file)
@@ -137,6 +137,7 @@ void BIF_TransformSetUndo(const char *str);
 /* to be able to add operator properties to other operators */
 
 #define P_MIRROR        (1 << 0)
+#define P_MIRROR_DUMMY  (P_MIRROR | (1 << 9))
 #define P_PROPORTIONAL  (1 << 1)
 #define P_AXIS          (1 << 2)
 #define P_SNAP          (1 << 3)
@@ -145,6 +146,7 @@ void BIF_TransformSetUndo(const char *str);
 #define P_CONSTRAINT    (1 << 6)
 #define P_OPTIONS       (1 << 7)
 #define P_CORRECT_UV    (1 << 8)
+#define P_NO_DEFAULTS   (1 << 10)
 
 void Transform_Properties(struct wmOperatorType *ot, int flags);
 
index cccf08cfe1aadf333587b4c7ca3e001a6d99f2a3..65c528dbe03738b517177485ad7939828dffc906 100644 (file)
@@ -46,6 +46,7 @@
 
 #include "ED_mesh.h"
 #include "ED_screen.h"
+#include "ED_transform.h"
 #include "ED_view3d.h"
 
 #include "mesh_intern.h"  /* own include */
@@ -429,7 +430,7 @@ void MESH_OT_extrude_region(wmOperatorType *ot)
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
-       RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+       Transform_Properties(ot, P_NO_DEFAULTS | P_MIRROR_DUMMY);
 }
 
 static int edbm_extrude_verts_exec(bContext *C, wmOperator *op)
@@ -460,7 +461,7 @@ void MESH_OT_extrude_verts_indiv(wmOperatorType *ot)
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
        /* to give to transform */
-       RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+       Transform_Properties(ot, P_NO_DEFAULTS | P_MIRROR_DUMMY);
 }
 
 static int edbm_extrude_edges_exec(bContext *C, wmOperator *op)
@@ -491,7 +492,7 @@ void MESH_OT_extrude_edges_indiv(wmOperatorType *ot)
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
        /* to give to transform */
-       RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+       Transform_Properties(ot, P_NO_DEFAULTS | P_MIRROR_DUMMY);
 }
 
 static int edbm_extrude_faces_exec(bContext *C, wmOperator *op)
@@ -521,7 +522,7 @@ void MESH_OT_extrude_faces_indiv(wmOperatorType *ot)
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
-       RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+       Transform_Properties(ot, P_NO_DEFAULTS | P_MIRROR_DUMMY);
 }
 
 /* *************** add-click-mesh (extrude) operator ************** */
index c9e248e575dcc9e3027ceaf01f47981f7d4caee3..c027c1bbcd12bebfa67fb6378df6293e58612f48 100644 (file)
@@ -1055,7 +1055,6 @@ void MESH_OT_rip(wmOperatorType *ot)
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
        /* to give to transform */
-       Transform_Properties(ot, P_PROPORTIONAL);
-       RNA_def_boolean(ot->srna, "mirror", false, "Mirror Editing", "");
+       Transform_Properties(ot, P_PROPORTIONAL | P_MIRROR_DUMMY);
        RNA_def_boolean(ot->srna, "use_fill", false, "Fill", "Fill the ripped region");
 }
index 1b9baa82cde311fe1a64131a2821b77e7423c267..c0adf065f5738be4e7f6cf11a8f9f649e8bb3c79 100644 (file)
@@ -500,7 +500,11 @@ void Transform_Properties(struct wmOperatorType *ot, int flags)
        }
 
        if (flags & P_MIRROR) {
-               RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+               prop = RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", "");
+               if (flags & P_MIRROR_DUMMY) {
+                       /* only used so macros can disable this option */
+                       RNA_def_property_flag(prop, PROP_HIDDEN);
+               }
        }
 
 
@@ -539,9 +543,11 @@ void Transform_Properties(struct wmOperatorType *ot, int flags)
                RNA_def_boolean(ot->srna, "correct_uv", 0, "Correct UVs", "Correct UV coordinates when transforming");
        }
 
-       // Add confirm method all the time. At the end because it's not really that important and should be hidden only in log, not in keymap edit
-       /*prop =*/ RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
-       //RNA_def_property_flag(prop, PROP_HIDDEN);
+       if ((flags & P_NO_DEFAULTS) == 0) {
+               // Add confirm method all the time. At the end because it's not really that important and should be hidden only in log, not in keymap edit
+               /*prop =*/ RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
+               //RNA_def_property_flag(prop, PROP_HIDDEN);
+       }
 }
 
 static void TRANSFORM_OT_translate(struct wmOperatorType *ot)