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:
authorCampbell Barton <ideasman42@gmail.com>2018-11-21 05:04:03 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-11-21 05:04:03 +0300
commit18593c7cd3ff3f63cec7115a5c8e0d8e51a7b784 (patch)
tree6c661163fe22572e784a9daa7ebc062ea2718289 /source/blender/editors/object/object_select.c
parenta86a1292f3ae9e303dddbf7c974790d58251e07b (diff)
Cleanup: add reveal_hidden arg to jump-to API calls
Jumping to data shouldn't necessarily change hidden status or visible layers.
Diffstat (limited to 'source/blender/editors/object/object_select.c')
-rw-r--r--source/blender/editors/object/object_select.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index 366cca9fe0d..5873c972cae 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -254,7 +254,8 @@ Base *ED_object_find_first_by_data_id(ViewLayer *view_layer, ID *id)
*
* \returns false if not found in current view layer
*/
-bool ED_object_jump_to_object(bContext *C, Object *ob)
+bool ED_object_jump_to_object(
+ bContext *C, Object *ob, const bool UNUSED(reveal_hidden))
{
ViewLayer *view_layer = CTX_data_view_layer(C);
Base *base = BKE_view_layer_base_find(view_layer, ob);
@@ -263,6 +264,8 @@ bool ED_object_jump_to_object(bContext *C, Object *ob)
return false;
}
+ /* TODO, use 'reveal_hidden', as is done with bones. */
+
if (view_layer->basact != base) {
/* Select if not selected. */
if (!(base->flag & BASE_SELECTED)) {
@@ -289,7 +292,9 @@ bool ED_object_jump_to_object(bContext *C, Object *ob)
*
* \returns false if object not in layer, bone not found, or other error
*/
-bool ED_object_jump_to_bone(bContext *C, Object *ob, const char *bone_name)
+bool ED_object_jump_to_bone(
+ bContext *C, Object *ob, const char *bone_name,
+ const bool reveal_hidden)
{
/* Verify it's a valid armature object. */
if (ob == NULL || ob->type != OB_ARMATURE) {
@@ -303,7 +308,7 @@ bool ED_object_jump_to_bone(bContext *C, Object *ob, const char *bone_name)
}
/* Activate the armature object. */
- if (!ED_object_jump_to_object(C, ob)) {
+ if (!ED_object_jump_to_object(C, ob, reveal_hidden)) {
return false;
}
@@ -316,11 +321,13 @@ bool ED_object_jump_to_bone(bContext *C, Object *ob, const char *bone_name)
/* In Edit mode select and activate the target Edit-Bone. */
EditBone *ebone = ED_armature_ebone_find_name(arm->edbo, bone_name);
if (ebone != NULL) {
- /* Unhide the bone. */
- ebone->flag &= ~BONE_HIDDEN_A;
+ if (reveal_hidden) {
+ /* Unhide the bone. */
+ ebone->flag &= ~BONE_HIDDEN_A;
- if ((arm->layer & ebone->layer) == 0) {
- arm->layer |= 1U << bitscan_forward_uint(ebone->layer);
+ if ((arm->layer & ebone->layer) == 0) {
+ arm->layer |= 1U << bitscan_forward_uint(ebone->layer);
+ }
}
/* Select it. */
@@ -341,11 +348,13 @@ bool ED_object_jump_to_bone(bContext *C, Object *ob, const char *bone_name)
/* In Pose mode select and activate the target Bone/Pose-Channel. */
bPoseChannel *pchan = BKE_pose_channel_find_name(ob->pose, bone_name);
if (pchan != NULL) {
- /* Unhide the bone. */
- pchan->bone->flag &= ~BONE_HIDDEN_P;
+ if (reveal_hidden) {
+ /* Unhide the bone. */
+ pchan->bone->flag &= ~BONE_HIDDEN_P;
- if ((arm->layer & pchan->bone->layer) == 0) {
- arm->layer |= 1U << bitscan_forward_uint(pchan->bone->layer);
+ if ((arm->layer & pchan->bone->layer) == 0) {
+ arm->layer |= 1U << bitscan_forward_uint(pchan->bone->layer);
+ }
}
/* Select it. */