summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2021-03-15 08:22:09 +0100
committerGitHub <noreply@github.com>2021-03-15 08:22:09 +0100
commit5375da2fdb39fdf44a9c5d0984a1434d7809cc7d (patch)
treeb07278782e568f9953f5b247f0d80c68624bf49c
parentdb0355cb0742dc88a15f0c8fe121069ca411649d (diff)
parentf2e906496b403452dd83b04f512cc53eb6dc7e4f (diff)
Merge pull request #44333 from lupoDharkael/preferred-extension
Save resource: give .res less priority as preferred extension
-rw-r--r--editor/editor_node.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 4c23ada5e9..c3e15f2840 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -1089,13 +1089,23 @@ void EditorNode::save_resource_as(const Ref<Resource> &p_resource, const String
file->clear_filters();
List<String> preferred;
- for (int i = 0; i < extensions.size(); i++) {
- if (p_resource->is_class("Script") && (extensions[i] == "tres" || extensions[i] == "res" || extensions[i] == "xml")) {
+ for (List<String>::Element *E = extensions.front(); E; E = E->next()) {
+ if (p_resource->is_class("Script") && (E->get() == "tres" || E->get() == "res")) {
//this serves no purpose and confused people
continue;
}
- file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper());
- preferred.push_back(extensions[i]);
+ file->add_filter("*." + E->get() + " ; " + E->get().to_upper());
+ preferred.push_back(E->get());
+ }
+ // Lowest priority extension
+ List<String>::Element *res_element = preferred.find("res");
+ if (res_element) {
+ preferred.move_to_back(res_element);
+ }
+ // Highest priority extension
+ List<String>::Element *tres_element = preferred.find("tres");
+ if (tres_element) {
+ preferred.move_to_front(tres_element);
}
if (p_at_path != String()) {