diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/global_constants.cpp | 2 | ||||
| -rw-r--r-- | core/io/resource_format_binary.cpp | 4 | ||||
| -rw-r--r-- | core/io/resource_format_xml.cpp | 4 | ||||
| -rw-r--r-- | core/object.h | 3 | ||||
| -rw-r--r-- | core/object_type_db.cpp | 9 | ||||
| -rw-r--r-- | core/object_type_db.h | 1 |
6 files changed, 17 insertions, 6 deletions
diff --git a/core/global_constants.cpp b/core/global_constants.cpp index 87712064a..c5c2081b5 100644 --- a/core/global_constants.cpp +++ b/core/global_constants.cpp @@ -483,7 +483,7 @@ static _GlobalConstant _global_constants[]={ BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_CHECKABLE ), BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_CHECKED ), BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_INTERNATIONALIZED ), - BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_BUNDLE ), + BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_GROUP ), BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_CATEGORY ), BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_STORE_IF_NONZERO ), BIND_GLOBAL_CONSTANT( PROPERTY_USAGE_STORE_IF_NONONE ), diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp index 953192306..5328bb68f 100644 --- a/core/io/resource_format_binary.cpp +++ b/core/io/resource_format_binary.cpp @@ -1825,7 +1825,7 @@ void ResourceFormatSaverBinaryInstance::_find_resources(const Variant& p_variant for(List<PropertyInfo>::Element *E=property_list.front();E;E=E->next()) { - if (E->get().usage&PROPERTY_USAGE_STORAGE || (bundle_resources && E->get().usage&PROPERTY_USAGE_BUNDLE)) { + if (E->get().usage&PROPERTY_USAGE_STORAGE) { _find_resources(res->get(E->get().name)); } @@ -2028,7 +2028,7 @@ Error ResourceFormatSaverBinaryInstance::save(const String &p_path,const RES& p_ if (skip_editor && F->get().name.begins_with("__editor")) continue; - if (F->get().usage&PROPERTY_USAGE_STORAGE || (bundle_resources && F->get().usage&PROPERTY_USAGE_BUNDLE)) { + if (F->get().usage&PROPERTY_USAGE_STORAGE ) { Property p; p.name_idx=get_string_index(F->get().name); p.value=E->get()->get(F->get().name); diff --git a/core/io/resource_format_xml.cpp b/core/io/resource_format_xml.cpp index c90adf4f5..7bb9e2efb 100644 --- a/core/io/resource_format_xml.cpp +++ b/core/io/resource_format_xml.cpp @@ -2667,7 +2667,7 @@ void ResourceFormatSaverXMLInstance::_find_resources(const Variant& p_variant,bo PropertyInfo pi=I->get(); - if (pi.usage&PROPERTY_USAGE_STORAGE || (bundle_resources && pi.usage&PROPERTY_USAGE_BUNDLE)) { + if (pi.usage&PROPERTY_USAGE_STORAGE) { Variant v=res->get(I->get().name); _find_resources(v); @@ -2811,7 +2811,7 @@ Error ResourceFormatSaverXMLInstance::save(const String &p_path,const RES& p_res if (skip_editor && PE->get().name.begins_with("__editor")) continue; - if (PE->get().usage&PROPERTY_USAGE_STORAGE || (bundle_resources && PE->get().usage&PROPERTY_USAGE_BUNDLE)) { + if (PE->get().usage&PROPERTY_USAGE_STORAGE ) { String name = PE->get().name; Variant value = res->get(name); diff --git a/core/object.h b/core/object.h index 8ed5bcdf2..6dd427bf4 100644 --- a/core/object.h +++ b/core/object.h @@ -90,7 +90,7 @@ enum PropertyUsageFlags { PROPERTY_USAGE_CHECKABLE=16, //used for editing global variables PROPERTY_USAGE_CHECKED=32, //used for editing global variables PROPERTY_USAGE_INTERNATIONALIZED=64, //hint for internationalized strings - PROPERTY_USAGE_BUNDLE=128, //used for optimized bundles + PROPERTY_USAGE_GROUP=128, //used for grouping props in the editor PROPERTY_USAGE_CATEGORY=256, PROPERTY_USAGE_STORE_IF_NONZERO=512, //only store if nonzero PROPERTY_USAGE_STORE_IF_NONONE=1024, //only store if false @@ -115,6 +115,7 @@ enum PropertyUsageFlags { #define ADD_PROPERTYINZ( m_property, m_setter, m_getter, m_index ) ClassDB::add_property( get_class_static(), (m_property).added_usage(PROPERTY_USAGE_STORE_IF_NONZERO), m_setter, m_getter, m_index ) #define ADD_PROPERTYNO( m_property, m_setter, m_getter ) ClassDB::add_property( get_class_static(), (m_property).added_usage(PROPERTY_USAGE_STORE_IF_NONONE), m_setter, m_getter ) #define ADD_PROPERTYINO( m_property, m_setter, m_getter, m_index ) ClassDB::add_property( get_class_static(), (m_property).added_usage(PROPERTY_USAGE_STORE_IF_NONONE), m_setter, m_getter, m_index ) +#define ADD_GROUP( m_name, m_prefix ) ClassDB::add_property_group( get_class_static(), m_name, m_prefix ) struct PropertyInfo { diff --git a/core/object_type_db.cpp b/core/object_type_db.cpp index 498d222a6..208782cc4 100644 --- a/core/object_type_db.cpp +++ b/core/object_type_db.cpp @@ -740,6 +740,15 @@ bool ClassDB::get_signal(StringName p_class,StringName p_signal,MethodInfo *r_si return false; } + +void ClassDB::add_property_group(StringName p_class,const String& p_name,const String& p_prefix) { + + ClassInfo *type=classes.getptr(p_class); + ERR_FAIL_COND(!type); + + type->property_list.push_back(PropertyInfo(Variant::NIL,p_name,PROPERTY_HINT_NONE,p_prefix,PROPERTY_USAGE_GROUP)); +} + void ClassDB::add_property(StringName p_class,const PropertyInfo& p_pinfo, const StringName& p_setter, const StringName& p_getter, int p_index) { diff --git a/core/object_type_db.h b/core/object_type_db.h index ca52f6ca8..637101157 100644 --- a/core/object_type_db.h +++ b/core/object_type_db.h @@ -476,6 +476,7 @@ public: static bool get_signal(StringName p_class,StringName p_signal,MethodInfo *r_signal); static void get_signal_list(StringName p_class,List<MethodInfo> *p_signals,bool p_no_inheritance=false); + static void add_property_group(StringName p_class,const String& p_name,const String& p_prefix=""); static void add_property(StringName p_class,const PropertyInfo& p_pinfo, const StringName& p_setter, const StringName& p_getter, int p_index=-1); static void get_property_list(StringName p_class, List<PropertyInfo> *p_list, bool p_no_inheritance=false, const Object *p_validator=NULL); static bool set_property(Object* p_object, const StringName& p_property, const Variant& p_value, bool *r_valid=NULL); |
