feat: updated engine
This commit is contained in:
parent
cbe99774ff
commit
f4cf6b3999
6607 changed files with 910135 additions and 430025 deletions
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "editor_dir_dialog.h"
|
||||
|
||||
#include "core/object/callable_mp.h"
|
||||
#include "editor/docks/filesystem_dock.h"
|
||||
#include "editor/file_system/editor_file_system.h"
|
||||
#include "editor/gui/directory_create_dialog.h"
|
||||
|
|
@ -97,6 +98,7 @@ void EditorDirDialog::config(const Vector<String> &p_paths) {
|
|||
// TRANSLATORS: %d is the number of files that will be moved or duplicated.
|
||||
set_title(vformat(TTRN("Move/Duplicate %d Item", "Move/Duplicate %d Items", p_paths.size()), p_paths.size()));
|
||||
}
|
||||
base_directory_path = p_paths[0].get_base_dir();
|
||||
}
|
||||
|
||||
void EditorDirDialog::reload(const String &p_path) {
|
||||
|
|
@ -127,8 +129,39 @@ void EditorDirDialog::_notification(int p_what) {
|
|||
} break;
|
||||
|
||||
case NOTIFICATION_VISIBILITY_CHANGED: {
|
||||
if (must_reload && is_visible()) {
|
||||
reload();
|
||||
if (is_visible()) {
|
||||
if (must_reload) {
|
||||
reload();
|
||||
}
|
||||
|
||||
tree->deselect_all();
|
||||
const PackedStringArray parts = base_directory_path.trim_prefix("res://").split("/", false);
|
||||
if (parts.is_empty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
TreeItem *item = tree->get_root();
|
||||
while (i < parts.size()) {
|
||||
const String &folder = parts[i];
|
||||
for (TreeItem *child = item->get_first_child(); child; child = child->get_next()) {
|
||||
if (child->get_text(0) == folder) {
|
||||
i++;
|
||||
if (i == parts.size()) {
|
||||
TreeItem *parent_item = child->get_parent();
|
||||
while (parent_item) {
|
||||
parent_item->set_collapsed(false);
|
||||
parent_item = parent_item->get_parent();
|
||||
}
|
||||
child->select(0);
|
||||
tree->ensure_cursor_is_visible();
|
||||
} else {
|
||||
item = child;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} break;
|
||||
}
|
||||
|
|
@ -176,7 +209,7 @@ void EditorDirDialog::_make_dir() {
|
|||
TreeItem *ti = tree->get_selected();
|
||||
ERR_FAIL_NULL(ti);
|
||||
const String &directory = ti->get_metadata(0);
|
||||
makedialog->config(directory, callable_mp(this, &EditorDirDialog::_make_dir_confirm).bind(directory), DirectoryCreateDialog::MODE_DIRECTORY, "new folder");
|
||||
makedialog->config(directory, callable_mp(this, &EditorDirDialog::_make_dir_confirm).bind(directory), DirectoryCreateDialog::MODE_DIRECTORY, TTR("Create Folder"), "new folder");
|
||||
makedialog->popup_centered();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue