| 3940 | } |
| 3941 | |
| 3942 | void EditorNode::remove_editor_plugin(EditorPlugin *p_editor, bool p_config_changed) { |
| 3943 | if (p_editor->has_main_screen()) { |
| 3944 | singleton->editor_main_screen->remove_main_plugin(p_editor); |
| 3945 | } |
| 3946 | p_editor->make_visible(false); |
| 3947 | p_editor->clear(); |
| 3948 | if (p_config_changed) { |
| 3949 | p_editor->disable_plugin(); |
| 3950 | } |
| 3951 | singleton->editor_plugins_over->remove_plugin(p_editor); |
| 3952 | singleton->editor_plugins_force_over->remove_plugin(p_editor); |
| 3953 | singleton->editor_plugins_force_input_forwarding->remove_plugin(p_editor); |
| 3954 | singleton->remove_child(p_editor); |
| 3955 | singleton->editor_data.remove_editor_plugin(p_editor); |
| 3956 | |
| 3957 | for (KeyValue<ObjectID, HashSet<EditorPlugin *>> &kv : singleton->active_plugins) { |
| 3958 | kv.value.erase(p_editor); |
| 3959 | } |
| 3960 | } |
| 3961 | |
| 3962 | void EditorNode::add_extension_editor_plugin(const StringName &p_class_name) { |
| 3963 | ERR_FAIL_COND_MSG(!ClassDB::class_exists(p_class_name), vformat("No such editor plugin registered: %s", p_class_name)); |
nothing calls this directly
no test coverage detected