Unify single and multiscene instancing

(cherry picked from commit 881c8da0a0)
This commit is contained in:
kobewi 2021-01-15 20:13:09 +01:00 committed by Rémi Verschelde
parent 2ed700d2da
commit 9b4c18ac59
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -57,10 +57,7 @@ void SceneTreeDock::_nodes_drag_begin() {
}
void SceneTreeDock::_quick_open() {
Vector<String> files = quick_open->get_selected_files();
for (int i = 0; i < files.size(); i++) {
instance(files[i]);
}
instance_scenes(quick_open->get_selected_files(), scene_tree->get_selected());
}
void SceneTreeDock::_input(Ref<InputEvent> p_event) {
@ -121,26 +118,9 @@ void SceneTreeDock::_unhandled_key_input(Ref<InputEvent> p_event) {
}
void SceneTreeDock::instance(const String &p_file) {
Node *parent = scene_tree->get_selected();
if (!parent) {
parent = edited_scene;
};
if (!edited_scene) {
current_option = -1;
accept->set_text(TTR("No parent to instance a child at."));
accept->popup_centered_minsize();
return;
};
ERR_FAIL_COND(!parent);
Vector<String> scenes;
scenes.push_back(p_file);
_perform_instance_scenes(scenes, parent, -1);
instance_scenes(scenes, scene_tree->get_selected());
}
void SceneTreeDock::instance_scenes(const Vector<String> &p_files, Node *p_parent) {
@ -152,8 +132,11 @@ void SceneTreeDock::instance_scenes(const Vector<String> &p_files, Node *p_paren
}
if (!parent || !edited_scene) {
accept->set_text(TTR("No parent to instance the scenes at."));
if (p_files.size() == 1) {
accept->set_text(TTR("No parent to instance a child at."));
} else {
accept->set_text(TTR("No parent to instance the scenes at."));
}
accept->popup_centered_minsize();
return;
};