|
@@ -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 {
|
|
@@ -2050,6 +2058,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) {
|