diff options
| author | Juan Linietsky | 2017-07-23 18:48:05 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2017-07-23 18:50:25 -0300 |
| commit | 66009706c92671898b49a8a88cc626926b7a2d2c (patch) | |
| tree | 97aea718b2e6fbc413dcbd08beca1f59dee35504 /editor/import_dock.cpp | |
| parent | 380eae2cc0a7474ae46ed114ad6f12be35f40b90 (diff) | |
| download | godot-66009706c92671898b49a8a88cc626926b7a2d2c.tar.gz godot-66009706c92671898b49a8a88cc626926b7a2d2c.tar.zst godot-66009706c92671898b49a8a88cc626926b7a2d2c.zip | |
-Ability to set default import presets for type
-More presets for scene importer
-Option in scene importer to export root nodes as separate scenes
-Fixed MeshInstance preview
Diffstat (limited to 'editor/import_dock.cpp')
| -rw-r--r-- | editor/import_dock.cpp | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp index dff36ae74..a4f744aa8 100644 --- a/editor/import_dock.cpp +++ b/editor/import_dock.cpp @@ -134,6 +134,14 @@ void ImportDock::set_edit_path(const String &p_path) { } } + preset->get_popup()->add_separator(); + preset->get_popup()->add_item(vformat(TTR("Set as Default for '%s'"), params->importer->get_visible_name()), ITEM_SET_AS_DEFAULT); + if (ProjectSettings::get_singleton()->has("importer_defaults/" + params->importer->get_importer_name())) { + preset->get_popup()->add_item(TTR("Load Default"), ITEM_LOAD_DEFAULT); + preset->get_popup()->add_separator(); + preset->get_popup()->add_item(vformat(TTR("Clear Default for '%s'"), params->importer->get_visible_name()), ITEM_CLEAR_DEFAULT); + } + params->paths.clear(); params->paths.push_back(p_path); import->set_disabled(false); @@ -256,17 +264,56 @@ void ImportDock::set_edit_multiple_paths(const Vector<String> &p_paths) { void ImportDock::_preset_selected(int p_idx) { - print_line("preset selected? " + p_idx); - List<ResourceImporter::ImportOption> options; + switch (p_idx) { + case ITEM_SET_AS_DEFAULT: { + List<ResourceImporter::ImportOption> options; - params->importer->get_import_options(&options, p_idx); + params->importer->get_import_options(&options, p_idx); - for (List<ResourceImporter::ImportOption>::Element *E = options.front(); E; E = E->next()) { + Dictionary d; + for (List<ResourceImporter::ImportOption>::Element *E = options.front(); E; E = E->next()) { - params->values[E->get().option.name] = E->get().default_value; - } + d[E->get().option.name] = E->get().default_value; + } - params->update(); + ProjectSettings::get_singleton()->set("importer_defaults/" + params->importer->get_importer_name(), d); + ProjectSettings::get_singleton()->save(); + + } break; + case ITEM_LOAD_DEFAULT: { + + ERR_FAIL_COND(!ProjectSettings::get_singleton()->has("importer_defaults/" + params->importer->get_importer_name())); + + Dictionary d = ProjectSettings::get_singleton()->get("importer_defaults/" + params->importer->get_importer_name()); + List<Variant> v; + d.get_key_list(&v); + + for (List<Variant>::Element *E = v.front(); E; E = E->next()) { + params->values[E->get()] = d[E->get()]; + } + params->update(); + + } break; + case ITEM_CLEAR_DEFAULT: { + + ProjectSettings::get_singleton()->set("importer_defaults/" + params->importer->get_importer_name(), Variant()); + ProjectSettings::get_singleton()->save(); + + } break; + default: { + + List<ResourceImporter::ImportOption> options; + + params->importer->get_import_options(&options, p_idx); + + for (List<ResourceImporter::ImportOption>::Element *E = options.front(); E; E = E->next()) { + + params->values[E->get().option.name] = E->get().default_value; + } + + params->update(); + } break; + } } void ImportDock::clear() { |
