ResourceImporter: Restore default append logic for new importers
This was changed in #56943 to allow adding new importers from plugins that take precedence over built-in ones, but this should be opt-in, not the default behavior. Fixes #57730.
This commit is contained in:
parent
863f2840a5
commit
ec00283f91
7 changed files with 40 additions and 21 deletions
|
|
@ -717,9 +717,9 @@ void EditorPlugin::remove_translation_parser_plugin(const Ref<EditorTranslationP
|
|||
EditorTranslationParser::get_singleton()->remove_parser(p_parser, EditorTranslationParser::CUSTOM);
|
||||
}
|
||||
|
||||
void EditorPlugin::add_import_plugin(const Ref<EditorImportPlugin> &p_importer) {
|
||||
void EditorPlugin::add_import_plugin(const Ref<EditorImportPlugin> &p_importer, bool p_first_priority) {
|
||||
ERR_FAIL_COND(!p_importer.is_valid());
|
||||
ResourceFormatImporter::get_singleton()->add_importer(p_importer);
|
||||
ResourceFormatImporter::get_singleton()->add_importer(p_importer, p_first_priority);
|
||||
EditorFileSystem::get_singleton()->call_deferred(SNAME("scan"));
|
||||
}
|
||||
|
||||
|
|
@ -759,9 +759,9 @@ void EditorPlugin::remove_inspector_plugin(const Ref<EditorInspectorPlugin> &p_p
|
|||
EditorInspector::remove_inspector_plugin(p_plugin);
|
||||
}
|
||||
|
||||
void EditorPlugin::add_scene_format_importer_plugin(const Ref<EditorSceneFormatImporter> &p_importer) {
|
||||
void EditorPlugin::add_scene_format_importer_plugin(const Ref<EditorSceneFormatImporter> &p_importer, bool p_first_priority) {
|
||||
ERR_FAIL_COND(!p_importer.is_valid());
|
||||
ResourceImporterScene::get_singleton()->add_importer(p_importer);
|
||||
ResourceImporterScene::get_singleton()->add_importer(p_importer, p_first_priority);
|
||||
}
|
||||
|
||||
void EditorPlugin::remove_scene_format_importer_plugin(const Ref<EditorSceneFormatImporter> &p_importer) {
|
||||
|
|
@ -769,9 +769,10 @@ void EditorPlugin::remove_scene_format_importer_plugin(const Ref<EditorSceneForm
|
|||
ResourceImporterScene::get_singleton()->remove_importer(p_importer);
|
||||
}
|
||||
|
||||
void EditorPlugin::add_scene_post_import_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin) {
|
||||
ResourceImporterScene::get_singleton()->add_post_importer_plugin(p_plugin);
|
||||
void EditorPlugin::add_scene_post_import_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin, bool p_first_priority) {
|
||||
ResourceImporterScene::get_singleton()->add_post_importer_plugin(p_plugin, p_first_priority);
|
||||
}
|
||||
|
||||
void EditorPlugin::remove_scene_post_import_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin) {
|
||||
ResourceImporterScene::get_singleton()->remove_post_importer_plugin(p_plugin);
|
||||
}
|
||||
|
|
@ -881,11 +882,11 @@ void EditorPlugin::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("queue_save_layout"), &EditorPlugin::queue_save_layout);
|
||||
ClassDB::bind_method(D_METHOD("add_translation_parser_plugin", "parser"), &EditorPlugin::add_translation_parser_plugin);
|
||||
ClassDB::bind_method(D_METHOD("remove_translation_parser_plugin", "parser"), &EditorPlugin::remove_translation_parser_plugin);
|
||||
ClassDB::bind_method(D_METHOD("add_import_plugin", "importer"), &EditorPlugin::add_import_plugin);
|
||||
ClassDB::bind_method(D_METHOD("add_import_plugin", "importer", "first_priority"), &EditorPlugin::add_import_plugin, DEFVAL(false));
|
||||
ClassDB::bind_method(D_METHOD("remove_import_plugin", "importer"), &EditorPlugin::remove_import_plugin);
|
||||
ClassDB::bind_method(D_METHOD("add_scene_format_importer_plugin", "scene_format_importer"), &EditorPlugin::add_scene_format_importer_plugin);
|
||||
ClassDB::bind_method(D_METHOD("add_scene_format_importer_plugin", "scene_format_importer", "first_priority"), &EditorPlugin::add_scene_format_importer_plugin, DEFVAL(false));
|
||||
ClassDB::bind_method(D_METHOD("remove_scene_format_importer_plugin", "scene_format_importer"), &EditorPlugin::remove_scene_format_importer_plugin);
|
||||
ClassDB::bind_method(D_METHOD("add_scene_post_import_plugin", "scene_import_plugin"), &EditorPlugin::add_scene_post_import_plugin);
|
||||
ClassDB::bind_method(D_METHOD("add_scene_post_import_plugin", "scene_import_plugin", "first_priority"), &EditorPlugin::add_scene_post_import_plugin, DEFVAL(false));
|
||||
ClassDB::bind_method(D_METHOD("remove_scene_post_import_plugin", "scene_import_plugin"), &EditorPlugin::remove_scene_post_import_plugin);
|
||||
ClassDB::bind_method(D_METHOD("add_export_plugin", "plugin"), &EditorPlugin::add_export_plugin);
|
||||
ClassDB::bind_method(D_METHOD("remove_export_plugin", "plugin"), &EditorPlugin::remove_export_plugin);
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ public:
|
|||
void add_translation_parser_plugin(const Ref<EditorTranslationParserPlugin> &p_parser);
|
||||
void remove_translation_parser_plugin(const Ref<EditorTranslationParserPlugin> &p_parser);
|
||||
|
||||
void add_import_plugin(const Ref<EditorImportPlugin> &p_importer);
|
||||
void add_import_plugin(const Ref<EditorImportPlugin> &p_importer, bool p_first_priority = false);
|
||||
void remove_import_plugin(const Ref<EditorImportPlugin> &p_importer);
|
||||
|
||||
void add_export_plugin(const Ref<EditorExportPlugin> &p_exporter);
|
||||
|
|
@ -290,10 +290,10 @@ public:
|
|||
void add_inspector_plugin(const Ref<EditorInspectorPlugin> &p_plugin);
|
||||
void remove_inspector_plugin(const Ref<EditorInspectorPlugin> &p_plugin);
|
||||
|
||||
void add_scene_format_importer_plugin(const Ref<EditorSceneFormatImporter> &p_importer);
|
||||
void add_scene_format_importer_plugin(const Ref<EditorSceneFormatImporter> &p_importer, bool p_first_priority = false);
|
||||
void remove_scene_format_importer_plugin(const Ref<EditorSceneFormatImporter> &p_importer);
|
||||
|
||||
void add_scene_post_import_plugin(const Ref<EditorScenePostImportPlugin> &p_importer);
|
||||
void add_scene_post_import_plugin(const Ref<EditorScenePostImportPlugin> &p_importer, bool p_first_priority = false);
|
||||
void remove_scene_post_import_plugin(const Ref<EditorScenePostImportPlugin> &p_importer);
|
||||
|
||||
void add_autoload_singleton(const String &p_name, const String &p_path);
|
||||
|
|
|
|||
|
|
@ -2088,18 +2088,26 @@ ResourceImporterScene::ResourceImporterScene() {
|
|||
singleton = this;
|
||||
}
|
||||
|
||||
void ResourceImporterScene::add_importer(Ref<EditorSceneFormatImporter> p_importer) {
|
||||
void ResourceImporterScene::add_importer(Ref<EditorSceneFormatImporter> p_importer, bool p_first_priority) {
|
||||
ERR_FAIL_COND(p_importer.is_null());
|
||||
importers.insert(0, p_importer);
|
||||
if (p_first_priority) {
|
||||
importers.insert(0, p_importer);
|
||||
} else {
|
||||
importers.push_back(p_importer);
|
||||
}
|
||||
}
|
||||
|
||||
void ResourceImporterScene::remove_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin) {
|
||||
post_importer_plugins.erase(p_plugin);
|
||||
}
|
||||
|
||||
void ResourceImporterScene::add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin) {
|
||||
void ResourceImporterScene::add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin, bool p_first_priority) {
|
||||
ERR_FAIL_COND(p_plugin.is_null());
|
||||
post_importer_plugins.insert(0, p_plugin);
|
||||
if (p_first_priority) {
|
||||
post_importer_plugins.insert(0, p_plugin);
|
||||
} else {
|
||||
post_importer_plugins.push_back(p_plugin);
|
||||
}
|
||||
}
|
||||
|
||||
void ResourceImporterScene::remove_importer(Ref<EditorSceneFormatImporter> p_importer) {
|
||||
|
|
|
|||
|
|
@ -224,12 +224,12 @@ class ResourceImporterScene : public ResourceImporter {
|
|||
public:
|
||||
static ResourceImporterScene *get_singleton() { return singleton; }
|
||||
|
||||
void add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin);
|
||||
void add_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin, bool p_first_priority = false);
|
||||
void remove_post_importer_plugin(const Ref<EditorScenePostImportPlugin> &p_plugin);
|
||||
|
||||
const Vector<Ref<EditorSceneFormatImporter>> &get_importers() const { return importers; }
|
||||
|
||||
void add_importer(Ref<EditorSceneFormatImporter> p_importer);
|
||||
void add_importer(Ref<EditorSceneFormatImporter> p_importer, bool p_first_priority = false);
|
||||
void remove_importer(Ref<EditorSceneFormatImporter> p_importer);
|
||||
|
||||
virtual String get_importer_name() const override;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue