Skip to content

Commit

Permalink
Merge pull request #48362 from Calinou/project-manager-add-about-dial…
Browse files Browse the repository at this point in the history
…og-3.x

Add the About dialog to the project manager (3.x)
  • Loading branch information
akien-mga authored May 2, 2021
2 parents 48cc756 + 81ca8e4 commit c37464b
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 4 deletions.
5 changes: 2 additions & 3 deletions editor/editor_about.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,12 @@ void EditorAbout::_notification(int p_what) {
case NOTIFICATION_ENTER_TREE:
case NOTIFICATION_THEME_CHANGED: {

Control *base = EditorNode::get_singleton()->get_gui_base();
Ref<Font> font = base->get_font("source", "EditorFonts");
Ref<Font> font = get_font("source", "EditorFonts");
_tpl_text->add_font_override("normal_font", font);
_tpl_text->add_constant_override("line_separation", 6 * EDSCALE);
_license_text->add_font_override("normal_font", font);
_license_text->add_constant_override("line_separation", 6 * EDSCALE);
_logo->set_texture(base->get_icon("Logo", "EditorIcons"));
_logo->set_texture(get_icon("Logo", "EditorIcons"));
} break;
}
}
Expand Down
4 changes: 4 additions & 0 deletions editor/editor_about.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@

#include "editor_scale.h"

/**
* NOTE: Do not assume the EditorNode singleton to be available in this class' methods.
* EditorAbout is also used from the project manager where EditorNode isn't initialized.
*/
class EditorAbout : public AcceptDialog {

GDCLASS(EditorAbout, AcceptDialog);
Expand Down
20 changes: 19 additions & 1 deletion editor/project_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1835,6 +1835,10 @@ void ProjectManager::_notification(int p_what) {

_dim_window();
} break;
case NOTIFICATION_WM_ABOUT: {

_show_about();
} break;
}
}

Expand Down Expand Up @@ -2283,6 +2287,11 @@ void ProjectManager::_erase_missing_projects() {
erase_missing_ask->popup_centered_minsize();
}

void ProjectManager::_show_about() {

about->popup_centered(Size2(780, 500) * EDSCALE);
}

void ProjectManager::_language_selected(int p_id) {

String lang = language_btn->get_item_metadata(p_id);
Expand Down Expand Up @@ -2393,6 +2402,7 @@ void ProjectManager::_bind_methods() {
ClassDB::bind_method("_erase_missing_projects", &ProjectManager::_erase_missing_projects);
ClassDB::bind_method("_erase_project_confirm", &ProjectManager::_erase_project_confirm);
ClassDB::bind_method("_erase_missing_projects_confirm", &ProjectManager::_erase_missing_projects_confirm);
ClassDB::bind_method("_show_about", &ProjectManager::_show_about);
ClassDB::bind_method("_language_selected", &ProjectManager::_language_selected);
ClassDB::bind_method("_restart_confirm", &ProjectManager::_restart_confirm);
ClassDB::bind_method("_on_order_option_changed", &ProjectManager::_on_order_option_changed);
Expand Down Expand Up @@ -2505,7 +2515,7 @@ ProjectManager::ProjectManager() {
String cp;
cp += 0xA9;
// TRANSLATORS: This refers to the application where users manage their Godot projects.
OS::get_singleton()->set_window_title(VERSION_NAME + String(" - ") + TTR("Project Manager") + " - " + cp + " 2007-2021 Juan Linietsky, Ariel Manzur & Godot Contributors");
OS::get_singleton()->set_window_title(VERSION_NAME + String(" - ") + TTR("Project Manager"));

Control *center_box = memnew(Control);
center_box->set_v_size_flags(SIZE_EXPAND_FILL);
Expand Down Expand Up @@ -2635,6 +2645,11 @@ ProjectManager::ProjectManager() {

tree_vb->add_spacer();

about_btn = memnew(Button);
about_btn->set_text(TTR("About"));
about_btn->connect("pressed", this, "_show_about");
tree_vb->add_child(about_btn);

if (StreamPeerSSL::is_available()) {
asset_library = memnew(EditorAssetLibrary(true));
asset_library->set_name(TTR("Templates"));
Expand Down Expand Up @@ -2774,6 +2789,9 @@ ProjectManager::ProjectManager() {
open_templates->get_ok()->set_text(TTR("Open Asset Library"));
open_templates->connect("confirmed", this, "_open_asset_library");
add_child(open_templates);

about = memnew(EditorAbout);
add_child(about);
}

ProjectManager::~ProjectManager() {
Expand Down
4 changes: 4 additions & 0 deletions editor/project_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#ifndef PROJECT_MANAGER_H
#define PROJECT_MANAGER_H

#include "editor/editor_about.h"
#include "editor/plugins/asset_library_editor_plugin.h"
#include "scene/gui/dialogs.h"
#include "scene/gui/file_dialog.h"
Expand All @@ -51,6 +52,7 @@ class ProjectManager : public Control {
Button *open_btn;
Button *rename_btn;
Button *run_btn;
Button *about_btn;

EditorAssetLibrary *asset_library;

Expand All @@ -67,6 +69,7 @@ class ProjectManager : public Control {
ConfirmationDialog *multi_scan_ask;
ConfirmationDialog *ask_update_settings;
ConfirmationDialog *open_templates;
EditorAbout *about;
AcceptDialog *run_error_diag;
AcceptDialog *dialog_error;
ProjectDialog *npdialog;
Expand All @@ -93,6 +96,7 @@ class ProjectManager : public Control {
void _erase_missing_projects();
void _erase_project_confirm();
void _erase_missing_projects_confirm();
void _show_about();
void _update_project_buttons();
void _language_selected(int p_id);
void _restart_confirm();
Expand Down

0 comments on commit c37464b

Please sign in to comment.