Merge pull request #62531 from Faless/fix/4.x_assetlib_is_available

This commit is contained in:
Rémi Verschelde 2022-06-30 10:06:17 +02:00 committed by GitHub
commit fd3970f762
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 12 deletions

View File

@ -460,7 +460,7 @@ void EditorNode::shortcut_input(const Ref<InputEvent> &p_event) {
_editor_select(EDITOR_SCRIPT); _editor_select(EDITOR_SCRIPT);
} else if (ED_IS_SHORTCUT("editor/editor_help", p_event)) { } else if (ED_IS_SHORTCUT("editor/editor_help", p_event)) {
emit_signal(SNAME("request_help_search"), ""); emit_signal(SNAME("request_help_search"), "");
} else if (ED_IS_SHORTCUT("editor/editor_assetlib", p_event) && StreamPeerSSL::is_available()) { } else if (ED_IS_SHORTCUT("editor/editor_assetlib", p_event) && AssetLibraryEditorPlugin::is_available()) {
_editor_select(EDITOR_ASSETLIB); _editor_select(EDITOR_ASSETLIB);
} else if (ED_IS_SHORTCUT("editor/editor_next", p_event)) { } else if (ED_IS_SHORTCUT("editor/editor_next", p_event)) {
_editor_select_next(); _editor_select_next();
@ -5752,12 +5752,12 @@ void EditorNode::_feature_profile_changed() {
main_editor_buttons[EDITOR_3D]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D)); main_editor_buttons[EDITOR_3D]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D));
main_editor_buttons[EDITOR_SCRIPT]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT)); main_editor_buttons[EDITOR_SCRIPT]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT));
if (StreamPeerSSL::is_available()) { if (AssetLibraryEditorPlugin::is_available()) {
main_editor_buttons[EDITOR_ASSETLIB]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB)); main_editor_buttons[EDITOR_ASSETLIB]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB));
} }
if ((profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D) && singleton->main_editor_buttons[EDITOR_3D]->is_pressed()) || if ((profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D) && singleton->main_editor_buttons[EDITOR_3D]->is_pressed()) ||
(profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT) && singleton->main_editor_buttons[EDITOR_SCRIPT]->is_pressed()) || (profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT) && singleton->main_editor_buttons[EDITOR_SCRIPT]->is_pressed()) ||
(StreamPeerSSL::is_available() && profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB) && singleton->main_editor_buttons[EDITOR_ASSETLIB]->is_pressed())) { (AssetLibraryEditorPlugin::is_available() && profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB) && singleton->main_editor_buttons[EDITOR_ASSETLIB]->is_pressed())) {
_editor_select(EDITOR_2D); _editor_select(EDITOR_2D);
} }
} else { } else {
@ -5769,7 +5769,7 @@ void EditorNode::_feature_profile_changed() {
FileSystemDock::get_singleton()->set_visible(true); FileSystemDock::get_singleton()->set_visible(true);
main_editor_buttons[EDITOR_3D]->set_visible(true); main_editor_buttons[EDITOR_3D]->set_visible(true);
main_editor_buttons[EDITOR_SCRIPT]->set_visible(true); main_editor_buttons[EDITOR_SCRIPT]->set_visible(true);
if (StreamPeerSSL::is_available()) { if (AssetLibraryEditorPlugin::is_available()) {
main_editor_buttons[EDITOR_ASSETLIB]->set_visible(true); main_editor_buttons[EDITOR_ASSETLIB]->set_visible(true);
} }
} }
@ -7073,13 +7073,11 @@ EditorNode::EditorNode() {
// Asset Library can't work on Web editor for now as most assets are sourced // Asset Library can't work on Web editor for now as most assets are sourced
// directly from GitHub which does not set CORS. // directly from GitHub which does not set CORS.
#ifndef JAVASCRIPT_ENABLED if (AssetLibraryEditorPlugin::is_available()) {
if (StreamPeerSSL::is_available()) {
add_editor_plugin(memnew(AssetLibraryEditorPlugin)); add_editor_plugin(memnew(AssetLibraryEditorPlugin));
} else { } else {
WARN_PRINT("Asset Library not available, as it requires SSL to work."); WARN_PRINT("Asset Library not available, as it requires SSL to work.");
} }
#endif
// Add interface before adding plugins. // Add interface before adding plugins.

View File

@ -32,6 +32,7 @@
#include "core/input/input.h" #include "core/input/input.h"
#include "core/io/json.h" #include "core/io/json.h"
#include "core/io/stream_peer_ssl.h"
#include "core/os/keyboard.h" #include "core/os/keyboard.h"
#include "core/version.h" #include "core/version.h"
#include "editor/editor_file_dialog.h" #include "editor/editor_file_dialog.h"
@ -1588,6 +1589,16 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
/////// ///////
bool AssetLibraryEditorPlugin::is_available() {
#ifdef JAVASCRIPT_ENABLED
// Asset Library can't work on Web editor for now as most assets are sourced
// directly from GitHub which does not set CORS.
return false;
#else
return StreamPeerSSL::is_available();
#endif
}
void AssetLibraryEditorPlugin::make_visible(bool p_visible) { void AssetLibraryEditorPlugin::make_visible(bool p_visible) {
if (p_visible) { if (p_visible) {
addon_library->show(); addon_library->show();

View File

@ -322,6 +322,8 @@ class AssetLibraryEditorPlugin : public EditorPlugin {
EditorAssetLibrary *addon_library = nullptr; EditorAssetLibrary *addon_library = nullptr;
public: public:
static bool is_available();
virtual String get_name() const override { return "AssetLib"; } virtual String get_name() const override { return "AssetLib"; }
bool has_main_screen() const override { return true; } bool has_main_screen() const override { return true; }
virtual void edit(Object *p_object) override {} virtual void edit(Object *p_object) override {}

View File

@ -2792,10 +2792,7 @@ ProjectManager::ProjectManager() {
center_box->add_child(settings_hb); center_box->add_child(settings_hb);
} }
// Asset Library can't work on Web editor for now as most assets are sourced if (AssetLibraryEditorPlugin::is_available()) {
// directly from GitHub which does not set CORS.
#ifndef JAVASCRIPT_ENABLED
if (StreamPeerSSL::is_available()) {
asset_library = memnew(EditorAssetLibrary(true)); asset_library = memnew(EditorAssetLibrary(true));
asset_library->set_name(TTR("Asset Library Projects")); asset_library->set_name(TTR("Asset Library Projects"));
tabs->add_child(asset_library); tabs->add_child(asset_library);
@ -2803,7 +2800,6 @@ ProjectManager::ProjectManager() {
} else { } else {
WARN_PRINT("Asset Library not available, as it requires SSL to work."); WARN_PRINT("Asset Library not available, as it requires SSL to work.");
} }
#endif
{ {
// Dialogs // Dialogs