diff options
Diffstat (limited to 'source/blender/editors/object/object_select.c')
-rw-r--r-- | source/blender/editors/object/object_select.c | 128 |
1 files changed, 7 insertions, 121 deletions
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 8e3d613e02e..fa9a97f4e74 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -44,7 +44,6 @@ #include "BLI_string.h" #include "BKE_context.h" -#include "BKE_depsgraph.h" #include "BKE_group.h" #include "BKE_main.h" #include "BKE_material.h" @@ -52,7 +51,7 @@ #include "BKE_property.h" #include "BKE_report.h" #include "BKE_scene.h" -#include "BKE_utildefines.h" +#include "BKE_deform.h" #include "WM_api.h" #include "WM_types.h" @@ -636,7 +635,7 @@ static int object_select_by_layer_exec(bContext *C, wmOperator *op) short extend; extend= RNA_boolean_get(op->ptr, "extend"); - layernum = RNA_int_get(op->ptr, "layer"); + layernum = RNA_int_get(op->ptr, "layers"); if (extend == 0) { CTX_DATA_BEGIN(C, Base*, base, visible_bases) { @@ -674,7 +673,7 @@ void OBJECT_OT_select_by_layer(wmOperatorType *ot) /* properties */ RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first."); - RNA_def_int(ot->srna, "layer", 1, 1, 20, "Layer", "", 1, 20); + RNA_def_int(ot->srna, "layers", 1, 1, 20, "Layer", "", 1, 20); } /************************** Select Inverse *************************/ @@ -760,7 +759,7 @@ void OBJECT_OT_select_all(wmOperatorType *ot) { /* identifiers */ - ot->name= "deselect all"; + ot->name= "Select or Deselect All"; ot->description = "Change selection of all visible objects in scene"; ot->idname= "OBJECT_OT_select_all"; @@ -824,130 +823,17 @@ void OBJECT_OT_select_same_group(wmOperatorType *ot) } /**************************** Select Mirror ****************************/ - -/* finds the best possible flipped name. For renaming; check for unique names afterwards */ -/* if strip_number: removes number extensions */ -void object_flip_name (char *name) -{ - int len; - char prefix[128]={""}; /* The part before the facing */ - char suffix[128]={""}; /* The part after the facing */ - char replace[128]={""}; /* The replacement string */ - char number[128]={""}; /* The number extension string */ - char *index=NULL; - - len= strlen(name); - if(len<3) return; // we don't do names like .R or .L - - /* We first check the case with a .### extension, let's find the last period */ - if(isdigit(name[len-1])) { - index= strrchr(name, '.'); // last occurrence - if (index && isdigit(index[1]) ) { // doesnt handle case bone.1abc2 correct..., whatever! - strcpy(number, index); - *index= 0; - len= strlen(name); - } - } - - strcpy (prefix, name); - -#define IS_SEPARATOR(a) ((a)=='.' || (a)==' ' || (a)=='-' || (a)=='_') - - /* first case; separator . - _ with extensions r R l L */ - if( IS_SEPARATOR(name[len-2]) ) { - switch(name[len-1]) { - case 'l': - prefix[len-1]= 0; - strcpy(replace, "r"); - break; - case 'r': - prefix[len-1]= 0; - strcpy(replace, "l"); - break; - case 'L': - prefix[len-1]= 0; - strcpy(replace, "R"); - break; - case 'R': - prefix[len-1]= 0; - strcpy(replace, "L"); - break; - } - } - /* case; beginning with r R l L , with separator after it */ - else if( IS_SEPARATOR(name[1]) ) { - switch(name[0]) { - case 'l': - strcpy(replace, "r"); - strcpy(suffix, name+1); - prefix[0]= 0; - break; - case 'r': - strcpy(replace, "l"); - strcpy(suffix, name+1); - prefix[0]= 0; - break; - case 'L': - strcpy(replace, "R"); - strcpy(suffix, name+1); - prefix[0]= 0; - break; - case 'R': - strcpy(replace, "L"); - strcpy(suffix, name+1); - prefix[0]= 0; - break; - } - } - else if(len > 5) { - /* hrms, why test for a separator? lets do the rule 'ultimate left or right' */ - index = BLI_strcasestr(prefix, "right"); - if (index==prefix || index==prefix+len-5) { - if(index[0]=='r') - strcpy (replace, "left"); - else { - if(index[1]=='I') - strcpy (replace, "LEFT"); - else - strcpy (replace, "Left"); - } - *index= 0; - strcpy (suffix, index+5); - } - else { - index = BLI_strcasestr(prefix, "left"); - if (index==prefix || index==prefix+len-4) { - if(index[0]=='l') - strcpy (replace, "right"); - else { - if(index[1]=='E') - strcpy (replace, "RIGHT"); - else - strcpy (replace, "Right"); - } - *index= 0; - strcpy (suffix, index+4); - } - } - } - -#undef IS_SEPARATOR - - sprintf (name, "%s%s%s%s", prefix, replace, suffix, number); -} - static int object_select_mirror_exec(bContext *C, wmOperator *op) { - char tmpname[32]; short extend; extend= RNA_boolean_get(op->ptr, "extend"); CTX_DATA_BEGIN(C, Base*, primbase, selected_bases) { - strcpy(tmpname, primbase->object->id.name+2); - object_flip_name(tmpname); - + char tmpname[32]; + flip_side_name(tmpname, primbase->object->id.name+2, TRUE); + CTX_DATA_BEGIN(C, Base*, secbase, visible_bases) { if(!strcmp(secbase->object->id.name+2, tmpname)) { ED_base_object_select(secbase, BA_SELECT); |