diff options
Diffstat (limited to 'tools/editor/property_editor.cpp')
-rw-r--r-- | tools/editor/property_editor.cpp | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp index e5dce0524f..8e3791eb8d 100644 --- a/tools/editor/property_editor.cpp +++ b/tools/editor/property_editor.cpp @@ -118,7 +118,7 @@ void CustomPropertyEditor::_menu_option(int p_which) { Set<String> valid_extensions; for (List<String>::Element *E=extensions.front();E;E=E->next()) { - + print_line("found: "+E->get()); valid_extensions.insert(E->get()); } @@ -208,13 +208,13 @@ void CustomPropertyEditor::_menu_option(int p_which) { case OBJ_MENU_REIMPORT: { RES r=v; - if (r.is_valid() && r->get_import_metadata().is_valid()) { +/* if (r.is_valid() && r->get_import_metadata().is_valid()) { Ref<ResourceImportMetadata> rimd = r->get_import_metadata(); Ref<EditorImportPlugin> eip = EditorImportExport::get_singleton()->get_import_plugin_by_name(rimd->get_editor()); if (eip.is_valid()) { eip->import_dialog(r->get_path()); } - } + }*/ } break; case OBJ_MENU_NEW_SCRIPT: { @@ -945,11 +945,11 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty menu->add_icon_item(get_icon("EditResource","EditorIcons"),"Edit",OBJ_MENU_EDIT); menu->add_icon_item(get_icon("Del","EditorIcons"),"Clear",OBJ_MENU_CLEAR); menu->add_icon_item(get_icon("Duplicate","EditorIcons"),"Make Unique",OBJ_MENU_MAKE_UNIQUE); - RES r = v; + /*RES r = v; if (r.is_valid() && r->get_path().is_resource_file() && r->get_import_metadata().is_valid()) { menu->add_separator(); menu->add_icon_item(get_icon("ReloadSmall","EditorIcons"),"Re-Import",OBJ_MENU_REIMPORT); - } + }*/ /*if (r.is_valid() && r->get_path().is_resource_file()) { menu->set_item_tooltip(1,r->get_path()); } else if (r.is_valid()) { @@ -3140,6 +3140,10 @@ void PropertyEditor::update_tree() { } else if ( ! (p.usage&PROPERTY_USAGE_EDITOR ) ) continue; + + if (hide_script && p.name=="script/script") + continue; + String basename=p.name; if (group!="") { if (group_base!="") { @@ -3886,7 +3890,7 @@ void PropertyEditor::_item_selected() { } -void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) { +void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value, bool p_refresh_all) { if (autoclear) { TreeItem *item = tree->get_selected(); @@ -3899,7 +3903,11 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) { if (!undo_redo || obj->cast_to<MultiNodeEdit>() || obj->cast_to<ArrayPropertyEdit>()) { //kind of hacky obj->set(p_name,p_value); - _changed_callbacks(obj,p_name); + if (p_refresh_all) + _changed_callbacks(obj,""); + else + _changed_callbacks(obj,p_name); + emit_signal(_prop_edited,p_name); @@ -3909,9 +3917,14 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) { undo_redo->add_do_property(obj,p_name,p_value); undo_redo->add_undo_property(obj,p_name,obj->get(p_name)); + if (p_refresh_all) { + undo_redo->add_do_method(this,"_changed_callback",obj,""); + undo_redo->add_undo_method(this,"_changed_callback",obj,""); + } else { - undo_redo->add_do_method(this,"_changed_callback",obj,p_name); - undo_redo->add_undo_method(this,"_changed_callback",obj,p_name); + undo_redo->add_do_method(this,"_changed_callback",obj,p_name); + undo_redo->add_undo_method(this,"_changed_callback",obj,p_name); + } Resource *r = obj->cast_to<Resource>(); if (r) { @@ -3973,6 +3986,9 @@ void PropertyEditor::_item_edited() { int type=d["type"]; int hint= d["hint"]; + int usage = d["usage"]; + bool refresh_all = usage&PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED; + String hint_text=d["hint_text"]; switch(type) { @@ -3981,7 +3997,7 @@ void PropertyEditor::_item_edited() { } break; case Variant::BOOL: { - _edit_set(name,item->is_checked(1)); + _edit_set(name,item->is_checked(1),refresh_all); item->set_tooltip(1, item->is_checked(1) ? "True" : "False"); } break; case Variant::INT: @@ -3995,9 +4011,9 @@ void PropertyEditor::_item_edited() { break; if (type==Variant::INT) - _edit_set(name,int(item->get_range(1))); + _edit_set(name,int(item->get_range(1)),refresh_all); else - _edit_set(name,item->get_range(1)); + _edit_set(name,item->get_range(1),refresh_all); } break; case Variant::STRING: { @@ -4012,9 +4028,9 @@ void PropertyEditor::_item_edited() { txt=strings[idx]; } - _edit_set(name,txt); + _edit_set(name,txt,refresh_all); } else { - _edit_set(name,item->get_text(1)); + _edit_set(name,item->get_text(1),refresh_all); } } break; // math types @@ -4045,7 +4061,7 @@ void PropertyEditor::_item_edited() { } break; case Variant::NODE_PATH: { - _edit_set(name, NodePath(item->get_text(1))); + _edit_set(name, NodePath(item->get_text(1)),refresh_all); } break; @@ -4476,6 +4492,8 @@ PropertyEditor::PropertyEditor() { _prop_edited="property_edited"; + hide_script=false; + undo_redo=NULL; obj=NULL; search_box=NULL; |