summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2018-09-24 15:26:23 +0200
committerGitHub <noreply@github.com>2018-09-24 15:26:23 +0200
commit1f18a85ea1f79f023bc051bc43f80461325007e9 (patch)
tree964eddf59d1280c07a99552805eedce72eda391e /editor
parent49665a46d87cc7b86bca09e3deafeb18df63e782 (diff)
parented516a11ca5da1c391ee771fa6a935f9cf5aa8fa (diff)
Merge pull request #22398 from groud/fix_import_tab_update
Fix import tab not updating when selecting in the tree view
Diffstat (limited to 'editor')
-rw-r--r--editor/filesystem_dock.cpp31
1 files changed, 26 insertions, 5 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index 7fc113ab57..607ced4573 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -395,6 +395,9 @@ void FileSystemDock::_notification(int p_what) {
}
void FileSystemDock::_tree_multi_selected(Object *p_item, int p_column, bool p_selected) {
+ // Update the import dock
+ import_dock_needs_update = true;
+ call_deferred("_update_import_dock");
// Return if we don't select something new
if (!p_selected)
@@ -2122,15 +2125,33 @@ void FileSystemDock::_update_import_dock() {
if (!import_dock_needs_update)
return;
- //check import
+ // List selected
+ Vector<String> selected;
+ if (display_mode_setting == DISPLAY_MODE_SETTING_TREE_ONLY) {
+ // Use the tree
+ selected = _tree_get_selected();
+
+ } else {
+ // Use the file list
+ for (int i = 0; i < files->get_item_count(); i++) {
+ if (!files->is_selected(i))
+ continue;
+
+ selected.push_back(files->get_item_metadata(i));
+ }
+ }
+
+ // Check import
Vector<String> imports;
String import_type;
+ for (int i = 0; i < selected.size(); i++) {
+ String fpath = selected[i];
- for (int i = 0; i < files->get_item_count(); i++) {
- if (!files->is_selected(i))
- continue;
+ if (fpath.ends_with("/")) {
+ imports.clear();
+ break;
+ }
- String fpath = files->get_item_metadata(i);
if (!FileAccess::exists(fpath + ".import")) {
imports.clear();
break;