Skip to content

Commit

Permalink
Fix skeleton 3d editor crash in RC3
Browse files Browse the repository at this point in the history
Control notifies a theme changed before the editor has entered the tree
  • Loading branch information
spanzeri committed May 15, 2023
1 parent fb10f45 commit a103cd7
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 9 deletions.
5 changes: 5 additions & 0 deletions editor/editor_inspector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1536,6 +1536,11 @@ void EditorInspectorSection::fold() {
queue_redraw();
}

void EditorInspectorSection::set_bg_color(const Color &p_bg_color) {
bg_color = p_bg_color;
queue_redraw();
}

bool EditorInspectorSection::has_revertable_properties() const {
return !revertable_properties.is_empty();
}
Expand Down
1 change: 1 addition & 0 deletions editor/editor_inspector.h
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ class EditorInspectorSection : public Container {
VBoxContainer *get_vbox();
void unfold();
void fold();
void set_bg_color(const Color &p_bg_color);

bool has_revertable_properties() const;
void property_can_revert_changed(const String &p_path, bool p_can_revert);
Expand Down
13 changes: 5 additions & 8 deletions editor/plugins/skeleton_3d_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -696,9 +696,6 @@ void Skeleton3DEditor::update_joint_tree() {
}
}

void Skeleton3DEditor::update_editors() {
}

void Skeleton3DEditor::create_editors() {
set_h_size_flags(SIZE_EXPAND_FILL);
set_focus_mode(FOCUS_ALL);
Expand Down Expand Up @@ -798,10 +795,8 @@ void Skeleton3DEditor::create_editors() {
animation_hb->add_child(key_insert_all_button);

// Bone tree.
const Color section_color = get_theme_color(SNAME("prop_subsection"), SNAME("Editor"));

EditorInspectorSection *bones_section = memnew(EditorInspectorSection);
bones_section->setup("bones", "Bones", skeleton, section_color, true);
bones_section = memnew(EditorInspectorSection);
bones_section->setup("bones", "Bones", skeleton, Color(0.0f, 0.0, 0.0f), true);
add_child(bones_section);
bones_section->unfold();

Expand Down Expand Up @@ -832,7 +827,6 @@ void Skeleton3DEditor::create_editors() {
void Skeleton3DEditor::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
create_editors();
update_joint_tree();

joint_tree->connect("item_selected", callable_mp(this, &Skeleton3DEditor::_joint_tree_selection_changed));
Expand All @@ -858,6 +852,7 @@ void Skeleton3DEditor::_notification(int p_what) {
key_scale_button->set_icon(get_theme_icon(SNAME("KeyScale"), SNAME("EditorIcons")));
key_insert_button->set_icon(get_theme_icon(SNAME("Key"), SNAME("EditorIcons")));
key_insert_all_button->set_icon(get_theme_icon(SNAME("NewKey"), SNAME("EditorIcons")));
bones_section->set_bg_color(get_theme_color(SNAME("prop_subsection"), SNAME("Editor")));

update_joint_tree();
} break;
Expand Down Expand Up @@ -946,6 +941,8 @@ void fragment() {
handles_mesh_instance->set_cast_shadows_setting(GeometryInstance3D::SHADOW_CASTING_SETTING_OFF);
handles_mesh.instantiate();
handles_mesh_instance->set_mesh(handles_mesh);

create_editors();
}

void Skeleton3DEditor::update_bone_original() {
Expand Down
3 changes: 2 additions & 1 deletion editor/plugins/skeleton_3d_editor_plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,8 @@ class Skeleton3DEditor : public VBoxContainer {
Button *key_insert_button = nullptr;
Button *key_insert_all_button = nullptr;

EditorInspectorSection *bones_section = nullptr;

EditorFileDialog *file_dialog = nullptr;

bool keyable = false;
Expand All @@ -146,7 +148,6 @@ class Skeleton3DEditor : public VBoxContainer {
EditorFileDialog *file_export_lib = nullptr;

void update_joint_tree();
void update_editors();

void create_editors();

Expand Down

0 comments on commit a103cd7

Please sign in to comment.