From 257d3706777bed2f07003f53435144f48707d020 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sat, 18 Jun 2016 16:03:00 -0300 Subject: [PATCH] update EditorDirDialog on external change, closes #4629 (cherry picked from commit 5e7f1fc79b03f0c1eb9877ff82f24b921d2c43ea) --- main/main.cpp | 5 +++-- tools/editor/editor_dir_dialog.cpp | 7 +++++++ tools/editor/editor_dir_dialog.h | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/main/main.cpp b/main/main.cpp index 5c0b25cd643..3e171718617 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -107,6 +107,7 @@ static String locale; static int init_screen=-1; +static bool editor=false; static String unescape_cmdline(const String& p_str) { @@ -275,7 +276,7 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas packed_data->add_pack_source(zip_packed_data); #endif - bool editor=false; + while(I) { @@ -931,7 +932,7 @@ Error Main::setup2() { Globals::get_singleton()->set_custom_property_info("application/icon",PropertyInfo(Variant::STRING,"application/icon",PROPERTY_HINT_FILE,"*.png,*.webp")); if (bool(GLOBAL_DEF("display/emulate_touchscreen",false))) { - if (!OS::get_singleton()->has_touchscreen_ui_hint() && Input::get_singleton()) { + if (!OS::get_singleton()->has_touchscreen_ui_hint() && Input::get_singleton() && !editor) { //only if no touchscreen ui hint, set emulation InputDefault *id = Input::get_singleton()->cast_to(); if (id) diff --git a/tools/editor/editor_dir_dialog.cpp b/tools/editor/editor_dir_dialog.cpp index 1a92a61882c..d1ed55fdf96 100644 --- a/tools/editor/editor_dir_dialog.cpp +++ b/tools/editor/editor_dir_dialog.cpp @@ -30,6 +30,7 @@ #include "os/os.h" #include "os/keyboard.h" #include "tools/editor/editor_settings.h" +#include "tools/editor/editor_file_system.h" void EditorDirDialog::_update_dir(TreeItem* p_item) { @@ -86,11 +87,14 @@ void EditorDirDialog::reload() { _item_collapsed(root); } + void EditorDirDialog::_notification(int p_what) { if (p_what==NOTIFICATION_ENTER_TREE) { reload(); tree->connect("item_collapsed",this,"_item_collapsed",varray(),CONNECT_DEFERRED); + EditorFileSystem::get_singleton()->connect("filesystem_changed",this,"reload"); + } } @@ -198,6 +202,7 @@ void EditorDirDialog::_bind_methods() { ObjectTypeDB::bind_method(_MD("_item_collapsed"),&EditorDirDialog::_item_collapsed); ObjectTypeDB::bind_method(_MD("_make_dir"),&EditorDirDialog::_make_dir); ObjectTypeDB::bind_method(_MD("_make_dir_confirm"),&EditorDirDialog::_make_dir_confirm); + ObjectTypeDB::bind_method(_MD("reload"),&EditorDirDialog::reload); ADD_SIGNAL(MethodInfo("dir_selected",PropertyInfo(Variant::STRING,"dir"))); } @@ -238,4 +243,6 @@ EditorDirDialog::EditorDirDialog() { get_ok()->set_text("Choose"); + + } diff --git a/tools/editor/editor_dir_dialog.h b/tools/editor/editor_dir_dialog.h index 1c2593219c7..94facceed4d 100644 --- a/tools/editor/editor_dir_dialog.h +++ b/tools/editor/editor_dir_dialog.h @@ -53,6 +53,8 @@ class EditorDirDialog : public ConfirmationDialog { void _make_dir_confirm(); void ok_pressed(); + + protected: void _notification(int p_what);