[Bf-blender-cvs] [18593c7cd3f] blender2.8: Cleanup: add reveal_hidden arg to jump-to API calls
Campbell Barton
noreply at git.blender.org
Wed Nov 21 03:08:19 CET 2018
Commit: 18593c7cd3ff3f63cec7115a5c8e0d8e51a7b784
Author: Campbell Barton
Date: Wed Nov 21 13:04:03 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB18593c7cd3ff3f63cec7115a5c8e0d8e51a7b784
Cleanup: add reveal_hidden arg to jump-to API calls
Jumping to data shouldn't necessarily change hidden status
or visible layers.
===================================================================
M source/blender/editors/include/ED_object.h
M source/blender/editors/interface/interface_ops.c
M source/blender/editors/object/object_select.c
===================================================================
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 45cb02a77ea..1101c966118 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -304,8 +304,12 @@ void ED_object_check_force_modifiers(
struct Base *ED_object_find_first_by_data_id(struct ViewLayer *view_layer, struct ID *id);
-bool ED_object_jump_to_object(struct bContext *C, struct Object *ob);
-bool ED_object_jump_to_bone(struct bContext *C, struct Object *ob, const char *bone_name);
+bool ED_object_jump_to_object(
+ struct bContext *C, struct Object *ob,
+ const bool reveal_hidden);
+bool ED_object_jump_to_bone(
+ struct bContext *C, struct Object *ob, const char *bone_name,
+ const bool reveal_hidden);
/* object_facemap_ops.c */
void ED_object_facemap_face_add(struct Object *ob, struct bFaceMap *fmap, int facenum);
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index 0b35961483e..cc609216e9a 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -855,12 +855,14 @@ static bool jump_to_target_ptr(bContext *C, PointerRNA ptr, const bool poll)
ok = true;
}
else {
+ /* Make optional. */
+ const bool reveal_hidden = true;
/* Select and activate the target. */
if (target_type == &RNA_Bone) {
- ok = ED_object_jump_to_bone(C, base->object, bone_name);
+ ok = ED_object_jump_to_bone(C, base->object, bone_name, reveal_hidden);
}
else if (target_type == &RNA_Object) {
- ok = ED_object_jump_to_object(C, base->object);
+ ok = ED_object_jump_to_object(C, base->object, reveal_hidden);
}
else {
BLI_assert(0);
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. */
More information about the Bf-blender-cvs
mailing list