Skip to content

Commit d786339

Browse files
committed
Merge pull request #106040 from KoBeWi/paths_stored_as_integer_lol
Fix wrong context menu argument from FileSystem's item list
2 parents d0d13b5 + 0b5230b commit d786339

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

editor/filesystem_dock.cpp

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2085,10 +2085,15 @@ Vector<String> FileSystemDock::_tree_get_selected(bool remove_self_inclusion, bo
20852085
}
20862086

20872087
Vector<String> FileSystemDock::_file_list_get_selected() const {
2088+
Vector<int> selected_ids = files->get_selected_items();
20882089
Vector<String> selected;
2090+
selected.resize(selected_ids.size());
20892091

2090-
for (int idx : files->get_selected_items()) {
2091-
selected.push_back(files->get_item_metadata(idx));
2092+
String *selected_write = selected.ptrw();
2093+
int i = 0;
2094+
for (const int id : selected_ids) {
2095+
selected_write[i] = files->get_item_metadata(id);
2096+
i++;
20922097
}
20932098
return selected;
20942099
}
@@ -2140,18 +2145,12 @@ void FileSystemDock::_tree_rmb_option(int p_option) {
21402145
}
21412146

21422147
void FileSystemDock::_file_list_rmb_option(int p_option) {
2143-
Vector<String> selected;
2144-
if (p_option > FILE_MENU_MAX) {
2148+
if (p_option > FILE_MENU_MAX && p_option < CONVERT_BASE_ID) {
21452149
// Extra options don't need paths.
2146-
_file_option(p_option, selected);
2150+
_file_option(p_option, {});
21472151
return;
21482152
}
2149-
2150-
Vector<int> selected_id = files->get_selected_items();
2151-
for (int i = 0; i < selected_id.size(); i++) {
2152-
selected.push_back(files->get_item_metadata(selected_id[i]));
2153-
}
2154-
_file_option(p_option, selected);
2153+
_file_option(p_option, _file_list_get_selected());
21552154
}
21562155

21572156
void FileSystemDock::_generic_rmb_option_selected(int p_option) {
@@ -3826,7 +3825,7 @@ void FileSystemDock::_file_list_gui_input(Ref<InputEvent> p_event) {
38263825
}
38273826

38283827
if (custom_callback.is_valid()) {
3829-
EditorContextMenuPluginManager::get_singleton()->invoke_callback(custom_callback, files->get_selected_items());
3828+
EditorContextMenuPluginManager::get_singleton()->invoke_callback(custom_callback, _file_list_get_selected());
38303829
} else {
38313830
return;
38323831
}

0 commit comments

Comments
 (0)