Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2014-07-09 17:05:06 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2014-07-09 17:12:48 +0400
commite81b1c54d2a22790319b2cceef8a14135e2f5616 (patch)
treedc6c368b3345c4dced5b9a44815d8710718f1f41
parente34e0c2c2629f3285c398866adfc5b53066d8135 (diff)
Cleanup: get rid of magic numbers.
-rw-r--r--source/blender/editors/object/object_select.c115
1 files changed, 80 insertions, 35 deletions
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index 847f2e44cb6..9b1aa054f84 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -510,20 +510,36 @@ void OBJECT_OT_select_linked(wmOperatorType *ot)
/*********************** Selected Grouped ********************/
+enum {
+ OBJECT_GRPSEL_CHILDREN_RECURSIVE = 0,
+ OBJECT_GRPSEL_CHILDREN = 1,
+ OBJECT_GRPSEL_PARENT = 2,
+ OBJECT_GRPSEL_SIBLINGS = 3,
+ OBJECT_GRPSEL_TYPE = 4,
+ OBJECT_GRPSEL_LAYER = 5,
+ OBJECT_GRPSEL_GROUP = 6,
+ OBJECT_GRPSEL_HOOK = 7,
+ OBJECT_GRPSEL_PASS = 8,
+ OBJECT_GRPSEL_COLOR = 9,
+ OBJECT_GRPSEL_PROPERTIES = 10,
+ OBJECT_GRPSEL_KEYINGSET = 11,
+ OBJECT_GRPSEL_LAMP_TYPE = 12,
+};
+
static EnumPropertyItem prop_select_grouped_types[] = {
- {1, "CHILDREN_RECURSIVE", 0, "Children", ""},
- {2, "CHILDREN", 0, "Immediate Children", ""},
- {3, "PARENT", 0, "Parent", ""},
- {4, "SIBLINGS", 0, "Siblings", "Shared Parent"},
- {5, "TYPE", 0, "Type", "Shared object type"},
- {6, "LAYER", 0, "Layer", "Shared layers"},
- {7, "GROUP", 0, "Group", "Shared group"},
- {8, "HOOK", 0, "Hook", ""},
- {9, "PASS", 0, "Pass", "Render pass Index"},
- {10, "COLOR", 0, "Color", "Object Color"},
- {11, "PROPERTIES", 0, "Properties", "Game Properties"},
- {12, "KEYINGSET", 0, "Keying Set", "Objects included in active Keying Set"},
- {13, "LAMP_TYPE", 0, "Lamp Type", "Matching lamp types"},
+ {OBJECT_GRPSEL_CHILDREN_RECURSIVE, "CHILDREN_RECURSIVE", 0, "Children", ""},
+ {OBJECT_GRPSEL_CHILDREN, "CHILDREN", 0, "Immediate Children", ""},
+ {OBJECT_GRPSEL_PARENT, "PARENT", 0, "Parent", ""},
+ {OBJECT_GRPSEL_SIBLINGS, "SIBLINGS", 0, "Siblings", "Shared Parent"},
+ {OBJECT_GRPSEL_TYPE, "TYPE", 0, "Type", "Shared object type"},
+ {OBJECT_GRPSEL_LAYER, "LAYER", 0, "Layer", "Shared layers"},
+ {OBJECT_GRPSEL_GROUP, "GROUP", 0, "Group", "Shared group"},
+ {OBJECT_GRPSEL_HOOK, "HOOK", 0, "Hook", ""},
+ {OBJECT_GRPSEL_PASS, "PASS", 0, "Pass", "Render pass Index"},
+ {OBJECT_GRPSEL_COLOR, "COLOR", 0, "Color", "Object Color"},
+ {OBJECT_GRPSEL_PROPERTIES, "PROPERTIES", 0, "Properties", "Game Properties"},
+ {OBJECT_GRPSEL_KEYINGSET, "KEYINGSET", 0, "Keying Set", "Objects included in active Keying Set"},
+ {OBJECT_GRPSEL_LAMP_TYPE, "LAMP_TYPE", 0, "Lamp Type", "Matching lamp types"},
{0, NULL, 0, NULL, NULL}
};
@@ -655,7 +671,7 @@ static bool select_grouped_siblings(bContext *C, Object *ob)
CTX_DATA_END;
return changed;
}
-static bool select_similar_lamps(bContext *C, Object *ob)
+static bool select_grouped_lamptype(bContext *C, Object *ob)
{
Lamp *la = ob->data;
@@ -816,11 +832,11 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Object *ob;
- int nr = RNA_enum_get(op->ptr, "type");
+ const int type = RNA_enum_get(op->ptr, "type");
bool changed = false, extend;
extend = RNA_boolean_get(op->ptr, "extend");
-
+
if (extend == 0) {
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
@@ -829,37 +845,66 @@ static int object_select_grouped_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
}
-
+
ob = OBACT;
if (ob == NULL) {
BKE_report(op->reports, RPT_ERROR, "No active object");
return OPERATOR_CANCELLED;
}
- if (nr == 13 && ob->type != OB_LAMP) {
- BKE_report(op->reports, RPT_ERROR, "Active object must be a lamp");
- return OPERATOR_CANCELLED;
+ switch (type) {
+ case OBJECT_GRPSEL_CHILDREN_RECURSIVE:
+ changed = select_grouped_children(C, ob, true);
+ break;
+ case OBJECT_GRPSEL_CHILDREN:
+ changed = select_grouped_children(C, ob, false);
+ break;
+ case OBJECT_GRPSEL_PARENT:
+ changed = select_grouped_parent(C);
+ break;
+ case OBJECT_GRPSEL_SIBLINGS:
+ changed = select_grouped_siblings(C, ob);
+ break;
+ case OBJECT_GRPSEL_TYPE:
+ changed = select_grouped_type(C, ob);
+ break;
+ case OBJECT_GRPSEL_LAYER:
+ changed = select_grouped_layer(C, ob);
+ break;
+ case OBJECT_GRPSEL_GROUP:
+ changed = select_grouped_group(C, ob);
+ break;
+ case OBJECT_GRPSEL_HOOK:
+ changed = select_grouped_object_hooks(C, ob);
+ break;
+ case OBJECT_GRPSEL_PASS:
+ changed = select_grouped_index_object(C, ob);
+ break;
+ case OBJECT_GRPSEL_COLOR:
+ changed = select_grouped_color(C, ob);
+ break;
+ case OBJECT_GRPSEL_PROPERTIES:
+ changed = select_grouped_gameprops(C, ob);
+ break;
+ case OBJECT_GRPSEL_KEYINGSET:
+ changed = select_grouped_keyingset(C, ob, op->reports);
+ break;
+ case OBJECT_GRPSEL_LAMP_TYPE:
+ if (ob->type != OB_LAMP) {
+ BKE_report(op->reports, RPT_ERROR, "Active object must be a lamp");
+ break;
+ }
+ changed = select_grouped_lamptype(C, ob);
+ break;
+ default:
+ break;
}
- if (nr == 1) changed |= select_grouped_children(C, ob, 1);
- else if (nr == 2) changed |= select_grouped_children(C, ob, 0);
- else if (nr == 3) changed |= select_grouped_parent(C);
- else if (nr == 4) changed |= select_grouped_siblings(C, ob);
- else if (nr == 5) changed |= select_grouped_type(C, ob);
- else if (nr == 6) changed |= select_grouped_layer(C, ob);
- else if (nr == 7) changed |= select_grouped_group(C, ob);
- else if (nr == 8) changed |= select_grouped_object_hooks(C, ob);
- else if (nr == 9) changed |= select_grouped_index_object(C, ob);
- else if (nr == 10) changed |= select_grouped_color(C, ob);
- else if (nr == 11) changed |= select_grouped_gameprops(C, ob);
- else if (nr == 12) changed |= select_grouped_keyingset(C, ob, op->reports);
- else if (nr == 13) changed |= select_similar_lamps(C, ob);
-
if (changed) {
WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
return OPERATOR_FINISHED;
}
-
+
return OPERATOR_CANCELLED;
}