diff options
-rw-r--r-- | editor/project_manager.cpp | 9 | ||||
-rw-r--r-- | editor/project_manager.h | 8 | ||||
-rw-r--r-- | main/main.cpp | 5 | ||||
-rw-r--r-- | platform/osx/godot_content_view.mm | 4 |
4 files changed, 20 insertions, 6 deletions
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 1cd13e10c8..3ca25bb4e3 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -1863,6 +1863,8 @@ void ProjectList::_bind_methods() { ADD_SIGNAL(MethodInfo(SIGNAL_PROJECT_ASK_OPEN)); } +ProjectManager *ProjectManager::singleton = nullptr; + void ProjectManager::_notification(int p_what) { switch (p_what) { case NOTIFICATION_TRANSLATION_CHANGED: @@ -1908,10 +1910,8 @@ void ProjectManager::_notification(int p_what) { } } -Map<String, Ref<Texture2D>> ProjectManager::icon_type_cache; - Ref<Texture2D> ProjectManager::_file_dialog_get_icon(const String &p_path) { - return icon_type_cache["ObjectHR"]; + return singleton->icon_type_cache["ObjectHR"]; } void ProjectManager::_build_icon_type_cache(Ref<Theme> p_theme) { @@ -2481,6 +2481,8 @@ void ProjectManager::_version_button_pressed() { } ProjectManager::ProjectManager() { + singleton = this; + // load settings if (!EditorSettings::get_singleton()) { EditorSettings::create(); @@ -2870,6 +2872,7 @@ ProjectManager::ProjectManager() { } ProjectManager::~ProjectManager() { + singleton = nullptr; if (EditorSettings::get_singleton()) { EditorSettings::destroy(); } diff --git a/editor/project_manager.h b/editor/project_manager.h index d3cd929eb7..2965dc7d2e 100644 --- a/editor/project_manager.h +++ b/editor/project_manager.h @@ -50,8 +50,10 @@ enum FilterOption { class ProjectManager : public Control { GDCLASS(ProjectManager, Control); - static Map<String, Ref<Texture2D>> icon_type_cache; - static void _build_icon_type_cache(Ref<Theme> p_theme); + Map<String, Ref<Texture2D>> icon_type_cache; + void _build_icon_type_cache(Ref<Theme> p_theme); + + static ProjectManager *singleton; TabContainer *tabs; @@ -139,6 +141,8 @@ protected: static void _bind_methods(); public: + static ProjectManager *get_singleton() { return singleton; } + ProjectManager(); ~ProjectManager(); }; diff --git a/main/main.cpp b/main/main.cpp index bfe560fa31..7cbafe37a3 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1212,6 +1212,10 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph // If we didn't find a project, we fall back to the project manager. project_manager = !found_project && !cmdline_tool; } + + if (project_manager) { + Engine::get_singleton()->set_project_manager_hint(true); + } #endif GLOBAL_DEF("debug/file_logging/enable_file_logging", false); @@ -2540,7 +2544,6 @@ bool Main::start() { #ifdef TOOLS_ENABLED if (project_manager) { Engine::get_singleton()->set_editor_hint(true); - Engine::get_singleton()->set_project_manager_hint(true); ProjectManager *pmanager = memnew(ProjectManager); ProgressDialog *progress_dialog = memnew(ProgressDialog); pmanager->add_child(progress_dialog); diff --git a/platform/osx/godot_content_view.mm b/platform/osx/godot_content_view.mm index 4e831e1ccc..76d9cfb081 100644 --- a/platform/osx/godot_content_view.mm +++ b/platform/osx/godot_content_view.mm @@ -117,6 +117,10 @@ } } +- (void)doCommandBySelector:(SEL)aSelector { + [self tryToPerform:aSelector with:self]; +} + - (void)unmarkText { ime_input_event_in_progress = false; [[marked_text mutableString] setString:@""]; |