summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editor/project_manager.cpp9
-rw-r--r--editor/project_manager.h8
-rw-r--r--main/main.cpp5
-rw-r--r--platform/osx/godot_content_view.mm4
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:@""];