|
@@ -4948,6 +4948,13 @@ void EditorNode::_check_gui_base_size() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void EditorNode::_license_tree_selected() {
|
|
|
+
|
|
|
+ TreeItem *selected = _tpl_tree->get_selected();
|
|
|
+ _tpl_text->select(0, 0, 0, 0);
|
|
|
+ _tpl_text->set_text(selected->get_metadata(0));
|
|
|
+}
|
|
|
+
|
|
|
void EditorNode::open_export_template_manager() {
|
|
|
|
|
|
export_template_manager->popup_manager();
|
|
@@ -5037,6 +5044,8 @@ void EditorNode::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("_dim_timeout"), &EditorNode::_dim_timeout);
|
|
|
ClassDB::bind_method(D_METHOD("_check_gui_base_size"), &EditorNode::_check_gui_base_size);
|
|
|
|
|
|
+ ClassDB::bind_method(D_METHOD("_license_tree_selected"), &EditorNode::_license_tree_selected);
|
|
|
+
|
|
|
ADD_SIGNAL(MethodInfo("play_pressed"));
|
|
|
ADD_SIGNAL(MethodInfo("pause_pressed"));
|
|
|
ADD_SIGNAL(MethodInfo("stop_pressed"));
|
|
@@ -6110,15 +6119,6 @@ EditorNode::EditorNode() {
|
|
|
dev_base->set_v_size_flags(Control::SIZE_EXPAND);
|
|
|
tc->add_child(dev_base);
|
|
|
|
|
|
- TextEdit *license = memnew(TextEdit);
|
|
|
- license->set_name(TTR("License"));
|
|
|
- license->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
- license->set_v_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
- license->set_wrap(true);
|
|
|
- license->set_readonly(true);
|
|
|
- license->set_text(String::utf8(about_license));
|
|
|
- tc->add_child(license);
|
|
|
-
|
|
|
VBoxContainer *dev_vbc = memnew(VBoxContainer);
|
|
|
dev_vbc->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
dev_base->add_child(dev_vbc);
|
|
@@ -6151,6 +6151,90 @@ EditorNode::EditorNode() {
|
|
|
hs->set_modulate(Color(0, 0, 0, 0));
|
|
|
dev_vbc->add_child(hs);
|
|
|
}
|
|
|
+
|
|
|
+ TextEdit *license = memnew(TextEdit);
|
|
|
+ license->set_name(TTR("License"));
|
|
|
+ license->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ license->set_v_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ license->set_wrap(true);
|
|
|
+ license->set_readonly(true);
|
|
|
+ license->set_text(String::utf8(about_license));
|
|
|
+ tc->add_child(license);
|
|
|
+
|
|
|
+ VBoxContainer *license_thirdparty = memnew(VBoxContainer);
|
|
|
+ license_thirdparty->set_name(TTR("Thirdparty License"));
|
|
|
+ license_thirdparty->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ tc->add_child(license_thirdparty);
|
|
|
+
|
|
|
+ Label *tpl_label = memnew(Label);
|
|
|
+ tpl_label->set_custom_minimum_size(Size2(0, 64 * EDSCALE));
|
|
|
+ tpl_label->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ tpl_label->set_autowrap(true);
|
|
|
+ tpl_label->set_text(TTR("Godot Engine relies on a number of thirdparty free and open source libraries, all compatible with the terms of its MIT license. The following is an exhaustive list of all such thirdparty components with their respective copyright statements and license terms."));
|
|
|
+ license_thirdparty->add_child(tpl_label);
|
|
|
+
|
|
|
+ HSplitContainer *tpl_hbc = memnew(HSplitContainer);
|
|
|
+ tpl_hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ tpl_hbc->set_v_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ tpl_hbc->set_split_offset(240 * EDSCALE);
|
|
|
+ license_thirdparty->add_child(tpl_hbc);
|
|
|
+
|
|
|
+ _tpl_tree = memnew(Tree);
|
|
|
+ _tpl_tree->set_hide_root(true);
|
|
|
+ TreeItem *root = _tpl_tree->create_item();
|
|
|
+ TreeItem *tpl_ti_all = _tpl_tree->create_item(root);
|
|
|
+ tpl_ti_all->set_text(0, TTR("All Components"));
|
|
|
+ TreeItem *tpl_ti_tp = _tpl_tree->create_item(root);
|
|
|
+ tpl_ti_tp->set_text(0, TTR("Components"));
|
|
|
+ tpl_ti_tp->set_selectable(0, false);
|
|
|
+ TreeItem *tpl_ti_lc = _tpl_tree->create_item(root);
|
|
|
+ tpl_ti_lc->set_text(0, TTR("Licenses"));
|
|
|
+ tpl_ti_lc->set_selectable(0, false);
|
|
|
+ int read_idx = 0;
|
|
|
+ String long_text = "";
|
|
|
+ for (int i = 0; i < THIRDPARTY_COUNT; i++) {
|
|
|
+
|
|
|
+ TreeItem *ti = _tpl_tree->create_item(tpl_ti_tp);
|
|
|
+ String thirdparty = String(about_thirdparty[i]);
|
|
|
+ ti->set_text(0, thirdparty);
|
|
|
+ String text = thirdparty + "\n";
|
|
|
+ long_text += "- " + thirdparty + "\n\n";
|
|
|
+ for (int j = 0; j < about_tp_copyright_count[i]; j++) {
|
|
|
+
|
|
|
+ text += "\n Files:\n " + String(about_tp_file[read_idx]).replace("\n", "\n ") + "\n";
|
|
|
+ String copyright = String::utf8(" \u00A9 ") + String::utf8(about_tp_copyright[read_idx]).replace("\n", String::utf8("\n \u00A9 "));
|
|
|
+ text += copyright;
|
|
|
+ long_text += copyright;
|
|
|
+ String license = "\n License: " + String(about_tp_license[read_idx]) + "\n";
|
|
|
+ text += license;
|
|
|
+ long_text += license + "\n";
|
|
|
+ read_idx++;
|
|
|
+ }
|
|
|
+ ti->set_metadata(0, text);
|
|
|
+ }
|
|
|
+ for (int i = 0; i < LICENSE_COUNT; i++) {
|
|
|
+
|
|
|
+ TreeItem *ti = _tpl_tree->create_item(tpl_ti_lc);
|
|
|
+ String licensename = String(about_license_name[i]);
|
|
|
+ ti->set_text(0, licensename);
|
|
|
+ long_text += "- " + licensename + "\n\n";
|
|
|
+ String licensebody = String(about_license_body[i]);
|
|
|
+ ti->set_metadata(0, licensebody);
|
|
|
+ long_text += " " + licensebody.replace("\n", "\n ") + "\n\n";
|
|
|
+ }
|
|
|
+ tpl_ti_all->set_metadata(0, long_text);
|
|
|
+ tpl_hbc->add_child(_tpl_tree);
|
|
|
+
|
|
|
+ _tpl_text = memnew(TextEdit);
|
|
|
+ _tpl_text->set_h_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ _tpl_text->set_v_size_flags(Control::SIZE_EXPAND_FILL);
|
|
|
+ _tpl_text->set_wrap(true);
|
|
|
+ _tpl_text->set_readonly(true);
|
|
|
+ tpl_hbc->add_child(_tpl_text);
|
|
|
+
|
|
|
+ _tpl_tree->connect("item_selected", this, "_license_tree_selected");
|
|
|
+ tpl_ti_all->select(0);
|
|
|
+ _tpl_text->set_text(tpl_ti_all->get_metadata(0));
|
|
|
}
|
|
|
|
|
|
warning = memnew(AcceptDialog);
|