Fix `EditorInterface.get_selected_paths()` working incorrectly when FileSystemDock is in split mode
This commit is contained in:
parent
91eb688e17
commit
b55e97cd85
|
@ -685,7 +685,15 @@ void FileSystemDock::_tree_multi_selected(Object *p_item, int p_column, bool p_s
|
|||
}
|
||||
|
||||
Vector<String> FileSystemDock::get_selected_paths() const {
|
||||
return _tree_get_selected(false);
|
||||
if (display_mode == DISPLAY_MODE_TREE_ONLY) {
|
||||
return _tree_get_selected(false);
|
||||
} else {
|
||||
Vector<String> selected = _file_list_get_selected();
|
||||
if (selected.is_empty()) {
|
||||
selected.push_back(get_current_directory());
|
||||
}
|
||||
return selected;
|
||||
}
|
||||
}
|
||||
|
||||
String FileSystemDock::get_current_path() const {
|
||||
|
@ -2049,6 +2057,15 @@ Vector<String> FileSystemDock::_tree_get_selected(bool remove_self_inclusion, bo
|
|||
return selected_strings;
|
||||
}
|
||||
|
||||
Vector<String> FileSystemDock::_file_list_get_selected() const {
|
||||
Vector<String> selected;
|
||||
|
||||
for (int idx : files->get_selected_items()) {
|
||||
selected.push_back(files->get_item_metadata(idx));
|
||||
}
|
||||
return selected;
|
||||
}
|
||||
|
||||
Vector<String> FileSystemDock::_remove_self_included_paths(Vector<String> selected_strings) {
|
||||
// Remove paths or files that are included into another.
|
||||
if (selected_strings.size() > 1) {
|
||||
|
|
|
@ -359,6 +359,7 @@ private:
|
|||
void _update_display_mode(bool p_force = false);
|
||||
|
||||
Vector<String> _tree_get_selected(bool remove_self_inclusion = true, bool p_include_unselected_cursor = false) const;
|
||||
Vector<String> _file_list_get_selected() const;
|
||||
|
||||
bool _is_file_type_disabled_by_feature_profile(const StringName &p_class);
|
||||
|
||||
|
|
Loading…
Reference in New Issue