summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/editor/editor_dir_dialog.cpp15
-rw-r--r--tools/editor/editor_dir_dialog.h2
-rw-r--r--tools/editor/script_create_dialog.cpp2
3 files changed, 18 insertions, 1 deletions
diff --git a/tools/editor/editor_dir_dialog.cpp b/tools/editor/editor_dir_dialog.cpp
index fda2d9bacf..a6e231cf18 100644
--- a/tools/editor/editor_dir_dialog.cpp
+++ b/tools/editor/editor_dir_dialog.cpp
@@ -78,6 +78,11 @@ void EditorDirDialog::_update_dir(TreeItem* p_item) {
void EditorDirDialog::reload() {
+ if (!is_visible()) {
+ must_reload=true;
+ return;
+ }
+
tree->clear();
TreeItem *root = tree->create_item();
root->set_metadata(0,"res://");
@@ -85,6 +90,8 @@ void EditorDirDialog::reload() {
root->set_text(0,"/");
_update_dir(root);
_item_collapsed(root);
+ must_reload=false;
+
}
@@ -96,6 +103,12 @@ void EditorDirDialog::_notification(int p_what) {
EditorFileSystem::get_singleton()->connect("filesystem_changed",this,"reload");
}
+
+ if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
+ if (must_reload && is_visible()) {
+ reload();
+ }
+ }
}
void EditorDirDialog::_item_collapsed(Object* _p_item){
@@ -243,6 +256,8 @@ EditorDirDialog::EditorDirDialog() {
get_ok()->set_text(TTR("Choose"));
+ must_reload=false;
+
}
diff --git a/tools/editor/editor_dir_dialog.h b/tools/editor/editor_dir_dialog.h
index 94facceed4..69f9850c30 100644
--- a/tools/editor/editor_dir_dialog.h
+++ b/tools/editor/editor_dir_dialog.h
@@ -54,6 +54,8 @@ class EditorDirDialog : public ConfirmationDialog {
void ok_pressed();
+ bool must_reload;
+
protected:
diff --git a/tools/editor/script_create_dialog.cpp b/tools/editor/script_create_dialog.cpp
index e88d603b30..02b94f5ad8 100644
--- a/tools/editor/script_create_dialog.cpp
+++ b/tools/editor/script_create_dialog.cpp
@@ -184,7 +184,7 @@ void ScriptCreateDialog::_built_in_pressed() {
void ScriptCreateDialog::_browse_path() {
- file_browse->set_mode(EditorFileDialog::MODE_SAVE_FILE);
+ file_browse->set_mode(EditorFileDialog::MODE_OPEN_FILE);
file_browse->clear_filters();
List<String> extensions;