diff options
author | Martin Poirier <theeth@yahoo.com> | 2010-01-28 00:19:39 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2010-01-28 00:19:39 +0300 |
commit | fb7878a2c29338ee706b5add6a9a95b665616725 (patch) | |
tree | 6612060c1a0c88fb283cab4659755cd6f007afef /source/blender/editors/object | |
parent | 86a65890c469506717cef8e5fba48993d8e0379f (diff) |
PROP_ENUM_NO_CONTEXT flag for rna properties, forcing enum item functions to be passed a null context (to return non-contextual items).
This is set on keymap item operator properties and macro definition operator properties to make them non-contextual (since the context at definition time is most likely not the same then at execution time, it's better to have all options visible).
This removes some more errors in keymap export and import.
This commit also sanitize some enum item function, making sure they can cope with null context and have usable defaults in that case.
Diffstat (limited to 'source/blender/editors/object')
-rw-r--r-- | source/blender/editors/object/object_group.c | 18 | ||||
-rw-r--r-- | source/blender/editors/object/object_relations.c | 4 |
2 files changed, 12 insertions, 10 deletions
diff --git a/source/blender/editors/object/object_group.c b/source/blender/editors/object/object_group.c index 50fc5f5d2fe..a12c6108ba9 100644 --- a/source/blender/editors/object/object_group.c +++ b/source/blender/editors/object/object_group.c @@ -266,14 +266,16 @@ static EnumPropertyItem *group_itemf(bContext *C, PointerRNA *ptr, int *free) RNA_enum_items_add_value(&item, &totitem, group_items, -1); - if(bmain->group.first) - RNA_enum_item_add_separator(&item, &totitem); - - for(a=0, group=bmain->group.first; group; group=group->id.next, a++) { - tmp.value= a; - tmp.identifier= group->id.name+2; - tmp.name= group->id.name+2; - RNA_enum_item_add(&item, &totitem, &tmp); + if (bmain) { + if(bmain->group.first) + RNA_enum_item_add_separator(&item, &totitem); + + for(a=0, group=bmain->group.first; group; group=group->id.next, a++) { + tmp.value= a; + tmp.identifier= group->id.name+2; + tmp.name= group->id.name+2; + RNA_enum_item_add(&item, &totitem, &tmp); + } } RNA_enum_item_end(&item, &totitem); diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 56990e0d975..647a9586aff 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -357,7 +357,7 @@ static EnumPropertyItem *proxy_group_object_itemf(bContext *C, PointerRNA *ptr, GroupObject *go; if(!ob || !ob->dup_group) - return DummyRNA_NULL_items; + return DummyRNA_DEFAULT_items; memset(&item_tmp, 0, sizeof(item_tmp)); @@ -393,7 +393,7 @@ void OBJECT_OT_proxy_make (wmOperatorType *ot) /* properties */ RNA_def_string(ot->srna, "object", "", 19, "Proxy Object", "Name of lib-linked/grouped object to make a proxy for."); - prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, 0, "Type", "Group object"); /* XXX, relies on hard coded ID at the moment */ + prop= RNA_def_enum(ot->srna, "type", DummyRNA_DEFAULT_items, 0, "Type", "Group object"); /* XXX, relies on hard coded ID at the moment */ RNA_def_enum_funcs(prop, proxy_group_object_itemf); ot->prop= prop; } |