You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Merge pull request #29644 from YeldhamDev/editor_file_recent_reselect
Make possible to reselect an item in the "Recent" list in the EditorFileDialog
This commit is contained in:
@@ -232,6 +232,7 @@ void EditorFileDialog::_file_entered(const String &p_file) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EditorFileDialog::_save_confirm_pressed() {
|
void EditorFileDialog::_save_confirm_pressed() {
|
||||||
|
|
||||||
String f = dir_access->get_current_dir().plus_file(file->get_text());
|
String f = dir_access->get_current_dir().plus_file(file->get_text());
|
||||||
_save_to_recent();
|
_save_to_recent();
|
||||||
hide();
|
hide();
|
||||||
@@ -1130,6 +1131,7 @@ void EditorFileDialog::_update_drives() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EditorFileDialog::_favorite_selected(int p_idx) {
|
void EditorFileDialog::_favorite_selected(int p_idx) {
|
||||||
|
|
||||||
dir_access->change_dir(favorites->get_item_metadata(p_idx));
|
dir_access->change_dir(favorites->get_item_metadata(p_idx));
|
||||||
file->set_text("");
|
file->set_text("");
|
||||||
update_dir();
|
update_dir();
|
||||||
@@ -1210,7 +1212,7 @@ void EditorFileDialog::_update_favorites() {
|
|||||||
|
|
||||||
favorites->add_item(name, folder_icon);
|
favorites->add_item(name, folder_icon);
|
||||||
} else {
|
} else {
|
||||||
continue; // We don't handle favorite files here
|
continue; // We don't handle favorite files here.
|
||||||
}
|
}
|
||||||
|
|
||||||
favorites->set_item_metadata(favorites->get_item_count() - 1, favorited[i]);
|
favorites->set_item_metadata(favorites->get_item_count() - 1, favorited[i]);
|
||||||
@@ -1218,6 +1220,7 @@ void EditorFileDialog::_update_favorites() {
|
|||||||
if (setthis) {
|
if (setthis) {
|
||||||
favorite->set_pressed(true);
|
favorite->set_pressed(true);
|
||||||
favorites->set_current(favorites->get_item_count() - 1);
|
favorites->set_current(favorites->get_item_count() - 1);
|
||||||
|
recent->unselect_all();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1593,6 +1596,7 @@ EditorFileDialog::EditorFileDialog() {
|
|||||||
rec_vb->set_custom_minimum_size(Size2(150, 100) * EDSCALE);
|
rec_vb->set_custom_minimum_size(Size2(150, 100) * EDSCALE);
|
||||||
rec_vb->set_v_size_flags(SIZE_EXPAND_FILL);
|
rec_vb->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||||
recent = memnew(ItemList);
|
recent = memnew(ItemList);
|
||||||
|
recent->set_allow_reselect(true);
|
||||||
rec_vb->add_margin_child(TTR("Recent:"), recent, true);
|
rec_vb->add_margin_child(TTR("Recent:"), recent, true);
|
||||||
recent->connect("item_selected", this, "_recent_selected");
|
recent->connect("item_selected", this, "_recent_selected");
|
||||||
|
|
||||||
@@ -1609,7 +1613,7 @@ EditorFileDialog::EditorFileDialog() {
|
|||||||
list_vb->add_child(memnew(Label(TTR("Directories & Files:"))));
|
list_vb->add_child(memnew(Label(TTR("Directories & Files:"))));
|
||||||
preview_hb->add_child(list_vb);
|
preview_hb->add_child(list_vb);
|
||||||
|
|
||||||
// Item (files and folders) list with context menu
|
// Item (files and folders) list with context menu.
|
||||||
|
|
||||||
item_list = memnew(ItemList);
|
item_list = memnew(ItemList);
|
||||||
item_list->set_v_size_flags(SIZE_EXPAND_FILL);
|
item_list->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||||
@@ -1622,7 +1626,7 @@ EditorFileDialog::EditorFileDialog() {
|
|||||||
item_menu->connect("id_pressed", this, "_item_menu_id_pressed");
|
item_menu->connect("id_pressed", this, "_item_menu_id_pressed");
|
||||||
add_child(item_menu);
|
add_child(item_menu);
|
||||||
|
|
||||||
// Other stuff
|
// Other stuff.
|
||||||
|
|
||||||
preview_vb = memnew(VBoxContainer);
|
preview_vb = memnew(VBoxContainer);
|
||||||
preview_hb->add_child(preview_vb);
|
preview_hb->add_child(preview_vb);
|
||||||
@@ -1641,7 +1645,7 @@ EditorFileDialog::EditorFileDialog() {
|
|||||||
filter = memnew(OptionButton);
|
filter = memnew(OptionButton);
|
||||||
filter->set_stretch_ratio(3);
|
filter->set_stretch_ratio(3);
|
||||||
filter->set_h_size_flags(SIZE_EXPAND_FILL);
|
filter->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
filter->set_clip_text(true); // too many extensions overflow it
|
filter->set_clip_text(true); // Too many extensions overflow it.
|
||||||
filename_hbc->add_child(filter);
|
filename_hbc->add_child(filter);
|
||||||
filename_hbc->set_h_size_flags(SIZE_EXPAND_FILL);
|
filename_hbc->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
item_vb->add_child(filename_hbc);
|
item_vb->add_child(filename_hbc);
|
||||||
|
|||||||
Reference in New Issue
Block a user