diff options
author | Jacques Lucke <jacques@blender.org> | 2020-05-12 11:59:41 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-05-12 11:59:41 +0300 |
commit | e0b5a202311eb08d67725670325697ee0afeed96 (patch) | |
tree | dd1a6d5b63a7a9a3f1372e2f542d8294b9e454d7 /source | |
parent | f1f3381873d04f82a86af93e3477bf8442b32a43 (diff) |
Preferences: Customize default empty size for collection instances
The old value (1.0) was often too large in practice. When many collection
instances are created, the large empties create a mess in the viewport.
This adds a new preference setting in `Editing -> Objects -> New Objects`
called `Instance Empty Size`.
The value will be used as display size for new empties containing a
collection instance.
Reviewers: Severin
Differential Revision: https://developer.blender.org/D7650
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 1 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_userdef.c | 4 | ||||
-rw-r--r-- | source/blender/editors/object/object_add.c | 1 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_userdef_types.h | 4 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_userdef.c | 6 |
5 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index c5f9ab67c4e..7a63c2699f3 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -11942,6 +11942,7 @@ static void add_collections_to_scene(Main *mainvar, /* BKE_object_add(...) messes with the selection. */ Object *ob = BKE_object_add_only_object(bmain, OB_EMPTY, collection->id.name + 2); ob->type = OB_EMPTY; + ob->empty_drawsize = U.collection_instance_empty_size; BKE_collection_object_add(bmain, active_collection, ob); Base *base = BKE_view_layer_base_find(view_layer, ob); diff --git a/source/blender/blenloader/intern/versioning_userdef.c b/source/blender/blenloader/intern/versioning_userdef.c index a426e49dd77..1b0e41ec54a 100644 --- a/source/blender/blenloader/intern/versioning_userdef.c +++ b/source/blender/blenloader/intern/versioning_userdef.c @@ -764,6 +764,10 @@ void BLO_version_defaults_userpref_blend(Main *bmain, UserDef *userdef) */ { /* Keep this block, even when empty. */ + + if (userdef->collection_instance_empty_size == 0) { + userdef->collection_instance_empty_size = 1.0f; + } } if (userdef->pixelsize == 0.0f) { diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index bd5ef23948d..4a229ae741f 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -1357,6 +1357,7 @@ static int collection_instance_add_exec(bContext *C, wmOperator *op) Object *ob = ED_object_add_type( C, OB_EMPTY, collection->id.name + 2, loc, rot, false, local_view_bits); ob->instance_collection = collection; + ob->empty_drawsize = U.collection_instance_empty_size; ob->transflag |= OB_DUPLICOLLECTION; id_us_plus(&collection->id); diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index d40f07c1fff..019e4c9ea9e 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -873,9 +873,11 @@ typedef struct UserDef { int sequencer_disk_cache_compression; /* eUserpref_DiskCacheCompression */ int sequencer_disk_cache_size_limit; short sequencer_disk_cache_flag; - char _pad5[2]; + float collection_instance_empty_size; + char _pad10[4]; + struct WalkNavigation walk_navigation; /** The UI for the user preferences. */ diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index d1af3ea7910..00d3189dcbe 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -4840,6 +4840,12 @@ static void rna_def_userdef_edit(BlenderRNA *brna) RNA_def_property_ui_text( prop, "Enter Edit Mode", "Enter Edit Mode automatically after adding a new object"); + prop = RNA_def_property(srna, "collection_instance_empty_size", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0.001f, FLT_MAX); + RNA_def_property_ui_text(prop, + "Collection Instance Empty Size", + "Display size of the empty when new collection instances are created"); + /* Undo */ prop = RNA_def_property(srna, "undo_steps", PROP_INT, PROP_NONE); |