void ResourcePreloaderEditor::_paste_pressed() { RES r = EditorSettings::get_singleton()->get_resource_clipboard(); if (!r.is_valid()) { dialog->set_text(TTR("Resource clipboard is empty!")); dialog->set_title(TTR("Error!")); dialog->get_ok()->set_text(TTR("Close")); dialog->popup_centered_minsize(); return; ///beh should show an error i guess } String name = r->get_name(); if (name == "") name = r->get_path().get_file(); if (name == "") name = r->get_class(); String basename = name; int counter = 1; while (preloader->has_resource(name)) { counter++; name = basename + " " + itos(counter); } undo_redo->create_action(TTR("Paste Resource")); undo_redo->add_do_method(preloader, "add_resource", name, r); undo_redo->add_undo_method(preloader, "remove_resource", name); undo_redo->add_do_method(this, "_update_library"); undo_redo->add_undo_method(this, "_update_library"); undo_redo->commit_action(); }
void ResourcePreloaderEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) { if (!can_drop_data_fw(p_point, p_data, p_from)) return; Dictionary d = p_data; if (!d.has("type")) return; if (String(d["type"]) == "resource" && d.has("resource")) { RES r = d["resource"]; if (r.is_valid()) { String basename; if (r->get_name() != "") { basename = r->get_name(); } else if (r->get_path().is_resource_file()) { basename = r->get_path().get_basename(); } else { basename = "Resource"; } String name = basename; int counter = 0; while (preloader->has_resource(name)) { counter++; name = basename + "_" + itos(counter); } undo_redo->create_action(TTR("Add Resource")); undo_redo->add_do_method(preloader, "add_resource", name, r); undo_redo->add_undo_method(preloader, "remove_resource", name); undo_redo->add_do_method(this, "_update_library"); undo_redo->add_undo_method(this, "_update_library"); undo_redo->commit_action(); } } if (String(d["type"]) == "files") { Vector<String> files = d["files"]; _files_load_request(files); } }