diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index abc50032c93..5a08f999af4 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -3536,7 +3536,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { about->popup_centered(Size2(780, 500) * EDSCALE); } break; case HELP_SUPPORT_GODOT_DEVELOPMENT: { - OS::get_singleton()->shell_open("https://fund.godotengine.org"); + OS::get_singleton()->shell_open("https://fund.godotengine.org/?ref=help_menu"); } break; } } diff --git a/editor/project_manager/project_manager.cpp b/editor/project_manager/project_manager.cpp index 4c12378ef62..816c39851ed 100644 --- a/editor/project_manager/project_manager.cpp +++ b/editor/project_manager/project_manager.cpp @@ -269,6 +269,7 @@ void ProjectManager::_update_theme(bool p_skip_creation) { erase_btn->set_button_icon(get_editor_theme_icon("Remove")); erase_missing_btn->set_button_icon(get_editor_theme_icon("Clear")); create_tag_btn->set_button_icon(get_editor_theme_icon("Add")); + donate_btn->set_button_icon(get_editor_theme_icon("Heart")); tag_error->add_theme_color_override(SceneStringName(font_color), get_theme_color("error_color", EditorStringName(Editor))); tag_edit_error->add_theme_color_override(SceneStringName(font_color), get_theme_color("error_color", EditorStringName(Editor))); @@ -1287,6 +1288,10 @@ void ProjectManager::_titlebar_resized() { } } +void ProjectManager::_open_donate_page() { + OS::get_singleton()->shell_open("https://fund.godotengine.org/?ref=project_manager"); +} + // Object methods. ProjectManager::ProjectManager() { @@ -1658,14 +1663,19 @@ ProjectManager::ProjectManager() { erase_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_erase_project)); project_list_sidebar->add_child(erase_btn); - Control *filler = memnew(Control); - filler->set_v_size_flags(Control::SIZE_EXPAND_FILL); - project_list_sidebar->add_child(filler); - erase_missing_btn = memnew(Button); erase_missing_btn->set_text(TTRC("Remove Missing")); erase_missing_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_erase_missing_projects)); project_list_sidebar->add_child(erase_missing_btn); + + Control *filler = memnew(Control); + filler->set_v_size_flags(Control::SIZE_EXPAND_FILL); + project_list_sidebar->add_child(filler); + + donate_btn = memnew(Button); + donate_btn->set_text(TTRC("Donate")); + donate_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_open_donate_page)); + project_list_sidebar->add_child(donate_btn); } } diff --git a/editor/project_manager/project_manager.h b/editor/project_manager/project_manager.h index a2fbd3ee028..0feda07dae2 100644 --- a/editor/project_manager/project_manager.h +++ b/editor/project_manager/project_manager.h @@ -163,6 +163,7 @@ class ProjectManager : public Control { Button *show_in_fm_btn = nullptr; Button *erase_btn = nullptr; Button *erase_missing_btn = nullptr; + Button *donate_btn = nullptr; HBoxContainer *open_btn_container = nullptr; PopupMenu *open_options_popup = nullptr; @@ -203,6 +204,7 @@ class ProjectManager : public Control { void _update_project_buttons(); void _open_options_popup(); void _open_recovery_mode_ask(bool manual = false); + void _open_donate_page(); void _on_project_created(const String &dir, bool edit); void _on_project_duplicated(const String &p_original_path, const String &p_duplicate_path, bool p_edit);