diff options
author | Franklin Sobrinho <franklin_gs@hotmail.com> | 2016-07-18 19:21:20 -0300 |
---|---|---|
committer | Franklin Sobrinho <franklin_gs@hotmail.com> | 2016-07-18 19:21:20 -0300 |
commit | ea775534163cd0661eb4f316035610f1017f7d6a (patch) | |
tree | 18f6df7daf9e337756afcaa0a7647500dd1c1806 /tools/editor | |
parent | c328693e837f5899b24504caef5a9ee5e4d4cb4e (diff) |
Keep selected section in Editor Settings when reopening the dialog
Diffstat (limited to 'tools/editor')
-rw-r--r-- | tools/editor/property_editor.cpp | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp index ceb62d5ff0..54d197f10d 100644 --- a/tools/editor/property_editor.cpp +++ b/tools/editor/property_editor.cpp @@ -4232,19 +4232,32 @@ String SectionedPropertyEditor::get_full_item_path(const String& p_item) { void SectionedPropertyEditor::edit(Object* p_object) { - if (p_object) { - obj=p_object->get_instance_ID(); - update_category_list(); - } else { + if (!p_object) { + obj = -1; sections->clear(); + + filter->set_edited(NULL); + editor->edit(NULL); + + return; } - filter->set_edited(p_object); - editor->edit(filter); + ObjectID id = p_object->get_instance_ID(); + + if (obj != id) { + + obj = id; + update_category_list(); - sections->select(0); - _section_selected(0); + filter->set_edited(p_object); + editor->edit(filter); + sections->select(0); + _section_selected(0); + } else { + + update_category_list(); + } } void SectionedPropertyEditor::update_category_list() { @@ -4300,6 +4313,8 @@ PropertyEditor *SectionedPropertyEditor::get_property_editor() { SectionedPropertyEditor::SectionedPropertyEditor() { + obj = -1; + VBoxContainer *left_vb = memnew( VBoxContainer); left_vb->set_custom_minimum_size(Size2(160,0)*EDSCALE); add_child(left_vb); |