From 4b279815d562511443509cdfda7fe0e77666db67 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Sun, 27 Mar 2016 17:02:53 +1300 Subject: Drivers: Add a "none" mode for use when adding drivers Although it isn't currently exposed, this allows for the old behaviour, where an "empty" driver was added (without any target assigned yet). For this reason, it's also referred to as the "Manual" mode. There are also some attempts at improving the tooltips + names for the other modes (again, not shown anywhere yet) --- source/blender/editors/animation/drivers.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'source/blender/editors/animation/drivers.c') diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index 65a235e88f6..1ebe4f48302 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -158,12 +158,16 @@ FCurve *verify_driver_fcurve(ID *id, const char rna_path[], const int array_inde /* Mapping Types enum for operators */ // XXX: These names need reviewing EnumPropertyItem prop_driver_create_mapping_types[] = { - {CREATEDRIVER_MAPPING_1_N, "SINGLE_MANY", 0, "Single Target, Multiple Properties", - "Use the picked item to drive all components of this property"}, - {CREATEDRIVER_MAPPING_1_1, "DIRECT", 0, "Single Item Only", - "Use picked item to drive property under mouse"}, + {CREATEDRIVER_MAPPING_1_N, "SINGLE_MANY", 0, "All from Target", + "Drive all components of this property using the target picked"}, + {CREATEDRIVER_MAPPING_1_1, "DIRECT", 0, "Single from Target", + "Drive this component of this property using the target picked"}, {CREATEDRIVER_MAPPING_N_N, "MATCH", 0, "Match Indices", "Create drivers for each pair of corresponding elements"}, + + // XXX: for all vs just one? + {CREATEDRIVER_MAPPING_NONE, "NONE", 0, "Manually Create Later", + "Create driver without assigning any targets yet"}, {0, NULL, 0, NULL, NULL} }; @@ -300,9 +304,11 @@ int ANIM_add_driver_with_target( } RNA_id_pointer_create(src_id, &id_ptr2); - if (RNA_path_resolve_property(&id_ptr2, src_path, &ptr2, &prop2) == false) { + if ((RNA_path_resolve_property(&id_ptr2, src_path, &ptr2, &prop2) == false) || + (mapping_type == CREATEDRIVER_MAPPING_NONE)) + { /* No target - So, fall back to default method for adding a "simple" driver normally */ - return ANIM_add_driver(reports, dst_id, dst_path, dst_index, flag, driver_type); + return ANIM_add_driver(reports, dst_id, dst_path, dst_index, flag | CREATEDRIVER_WITH_DEFAULT_DVAR, driver_type); } /* handle curve-property mappings based on mapping_type */ -- cgit v1.2.3