diff options
-rw-r--r-- | core/input/input_event.cpp | 6 | ||||
-rw-r--r-- | doc/classes/ProjectSettings.xml | 3 | ||||
-rw-r--r-- | doc/classes/VisibleOnScreenNotifier2D.xml | 1 | ||||
-rw-r--r-- | doc/classes/VisibleOnScreenNotifier3D.xml | 2 | ||||
-rw-r--r-- | drivers/gles3/rasterizer_canvas_gles3.cpp | 1 | ||||
-rw-r--r-- | editor/editor_autoload_settings.cpp | 2 | ||||
-rw-r--r-- | editor/editor_file_system.cpp | 5 | ||||
-rw-r--r-- | editor/editor_locale_dialog.cpp | 6 | ||||
-rw-r--r-- | editor/event_listener_line_edit.cpp | 3 | ||||
-rw-r--r-- | editor/import/dynamic_font_import_settings.cpp | 14 | ||||
-rw-r--r-- | editor/plugins/tiles/tile_map_editor.cpp | 2 | ||||
-rw-r--r-- | editor/plugins/tiles/tile_set_editor.cpp | 2 | ||||
-rw-r--r-- | editor/plugins/tiles/tiles_editor_plugin.cpp | 2 | ||||
-rw-r--r-- | editor/project_manager.cpp | 4 | ||||
-rw-r--r-- | modules/gdscript/gdscript.cpp | 1 | ||||
-rw-r--r-- | modules/gdscript/gdscript_parser.cpp | 2 | ||||
-rw-r--r-- | scene/animation/animation_player.cpp | 2 | ||||
-rw-r--r-- | scene/gui/line_edit.cpp | 10 | ||||
-rw-r--r-- | scene/gui/tree.cpp | 8 | ||||
-rw-r--r-- | scene/main/viewport.cpp | 5 | ||||
-rw-r--r-- | servers/rendering/renderer_viewport.cpp | 2 |
21 files changed, 56 insertions, 27 deletions
diff --git a/core/input/input_event.cpp b/core/input/input_event.cpp index 7c4642a8a5..a6c1bb168c 100644 --- a/core/input/input_event.cpp +++ b/core/input/input_event.cpp @@ -1186,14 +1186,14 @@ static const char *_joy_button_descriptions[(size_t)JoyButton::SDL_MAX] = { }; String InputEventJoypadButton::as_text() const { - String text = "Joypad Button " + itos((int64_t)button_index); + String text = vformat(RTR("Joypad Button %d"), (int64_t)button_index); if (button_index > JoyButton::INVALID && button_index < JoyButton::SDL_MAX) { - text += vformat(" (%s)", _joy_button_descriptions[(size_t)button_index]); + text += vformat(" (%s)", TTRGET(_joy_button_descriptions[(size_t)button_index])); } if (pressure != 0) { - text += ", Pressure:" + String(Variant(pressure)); + text += ", " + RTR("Pressure:") + " " + String(Variant(pressure)); } return text; diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index c30747eac1..21be5e4bee 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -474,9 +474,6 @@ <member name="debug/gdscript/warnings/static_called_on_instance" type="int" setter="" getter="" default="1"> When set to [code]warn[/code] or [code]error[/code], produces a warning or an error respectively when calling a static method from an instance of a class instead of from the class directly. </member> - <member name="debug/gdscript/warnings/treat_warnings_as_errors" type="bool" setter="" getter="" default="false"> - If [code]true[/code], all warnings will be reported as if they are errors. - </member> <member name="debug/gdscript/warnings/unassigned_variable" type="int" setter="" getter="" default="1"> When set to [code]warn[/code] or [code]error[/code], produces a warning or an error respectively when using a variable that wasn't previously assigned. </member> diff --git a/doc/classes/VisibleOnScreenNotifier2D.xml b/doc/classes/VisibleOnScreenNotifier2D.xml index 32cb191067..c6a7bd5690 100644 --- a/doc/classes/VisibleOnScreenNotifier2D.xml +++ b/doc/classes/VisibleOnScreenNotifier2D.xml @@ -6,6 +6,7 @@ <description> The VisibleOnScreenNotifier2D detects when it is visible on the screen. It also notifies when its bounding rectangle enters or exits the screen or a viewport. If you want nodes to be disabled automatically when they exit the screen, use [VisibleOnScreenEnabler2D] instead. + [b]Note:[/b] VisibleOnScreenNotifier2D uses the render culling code to determine whether it's visible on screen, which also means that its [member CanvasItem.visible] must be [code]true[/code] to work correctly. </description> <tutorials> <link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link> diff --git a/doc/classes/VisibleOnScreenNotifier3D.xml b/doc/classes/VisibleOnScreenNotifier3D.xml index 6dec09d03f..aecc3dd0d5 100644 --- a/doc/classes/VisibleOnScreenNotifier3D.xml +++ b/doc/classes/VisibleOnScreenNotifier3D.xml @@ -6,7 +6,7 @@ <description> The VisibleOnScreenNotifier3D detects when it is visible on the screen. It also notifies when its bounding rectangle enters or exits the screen or a [Camera3D]'s view. If you want nodes to be disabled automatically when they exit the screen, use [VisibleOnScreenEnabler3D] instead. - [b]Note:[/b] VisibleOnScreenNotifier3D uses an approximate heuristic for performance reasons. It doesn't take walls and other occlusion into account. The heuristic is an implementation detail and may change in future versions. If you need precise visibility checking, use another method such as adding an [Area3D] node as a child of a [Camera3D] node and/or [method Vector3.dot]. + [b]Note:[/b] VisibleOnScreenNotifier3D uses the render culling code to determine whether it's visible on screen, which also means that its [member Node3D.visible] must be [code]true[/code] to work correctly. </description> <tutorials> </tutorials> diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index 0e217f699e..3c5441f3c4 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -2259,6 +2259,7 @@ void RasterizerCanvasGLES3::reset_canvas() { glDisable(GL_DEPTH_TEST); glDisable(GL_SCISSOR_TEST); glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ZERO, GL_ONE); glActiveTexture(GL_TEXTURE0 + GLES3::Config::get_singleton()->max_texture_image_units - 2); diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index f843733f2c..a6defd0e14 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -890,7 +890,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() { hbc->add_child(autoload_add_path); autoload_add_path->set_h_size_flags(Control::SIZE_EXPAND_FILL); autoload_add_path->set_clear_button_enabled(true); - autoload_add_path->set_placeholder(vformat(TTR(R"(Set path or press "%s" to create a script.)"), TTR("Add"))); + autoload_add_path->set_placeholder(vformat(TTR("Set path or press \"%s\" to create a script."), TTR("Add"))); autoload_add_path->connect("text_changed", callable_mp(this, &EditorAutoloadSettings::_autoload_path_text_changed)); browse_button = memnew(Button); diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index ec1ef8a6bc..88831e0c33 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -2167,6 +2167,11 @@ void EditorFileSystem::_find_group_files(EditorFileSystemDirectory *efd, HashMap void EditorFileSystem::reimport_file_with_custom_parameters(const String &p_file, const String &p_importer, const HashMap<StringName, Variant> &p_custom_params) { _reimport_file(p_file, p_custom_params, p_importer); + + // Emit the resource_reimported signal for the single file we just reimported. + Vector<String> reloads; + reloads.append(p_file); + emit_signal(SNAME("resources_reimported"), reloads); } void EditorFileSystem::_reimport_thread(uint32_t p_index, ImportThreadData *p_import_data) { diff --git a/editor/editor_locale_dialog.cpp b/editor/editor_locale_dialog.cpp index fbf3c99690..13b4a8c128 100644 --- a/editor/editor_locale_dialog.cpp +++ b/editor/editor_locale_dialog.cpp @@ -294,7 +294,7 @@ void EditorLocaleDialog::_update_tree() { if (!is_edit_mode) { TreeItem *t = script_list->create_item(s_root); - t->set_text(0, "[Default]"); + t->set_text(0, TTR("[Default]")); t->set_metadata(0, ""); } @@ -404,7 +404,7 @@ EditorLocaleDialog::EditorLocaleDialog() { } { edit_filters = memnew(CheckButton); - edit_filters->set_text("Edit Filters"); + edit_filters->set_text(TTR("Edit Filters")); edit_filters->set_toggle_mode(true); edit_filters->set_pressed(false); edit_filters->connect("toggled", callable_mp(this, &EditorLocaleDialog::_edit_filters)); @@ -412,7 +412,7 @@ EditorLocaleDialog::EditorLocaleDialog() { } { advanced = memnew(CheckButton); - advanced->set_text("Advanced"); + advanced->set_text(TTR("Advanced")); advanced->set_toggle_mode(true); advanced->set_pressed(false); advanced->connect("toggled", callable_mp(this, &EditorLocaleDialog::_toggle_advanced)); diff --git a/editor/event_listener_line_edit.cpp b/editor/event_listener_line_edit.cpp index ea4a7133bf..ee401810ad 100644 --- a/editor/event_listener_line_edit.cpp +++ b/editor/event_listener_line_edit.cpp @@ -105,7 +105,8 @@ String EventListenerLineEdit::get_event_text(const Ref<InputEvent> &p_event, boo desc = RTR(_joy_axis_descriptions[2 * (size_t)jp_motion->get_axis() + (jp_motion->get_axis_value() < 0 ? 0 : 1)]); } - text = vformat("Joypad Axis %s %s (%s)", itos((int64_t)jp_motion->get_axis()), jp_motion->get_axis_value() < 0 ? "-" : "+", desc); + // TRANSLATORS: %d is the axis number, the first %s is either "-" or "+", and the second %s is the description of the axis. + text = vformat(TTR("Joypad Axis %d %s (%s)"), (int64_t)jp_motion->get_axis(), jp_motion->get_axis_value() < 0 ? "-" : "+", desc); } if (p_include_device && (mouse.is_valid() || jp_button.is_valid() || jp_motion.is_valid())) { String device_string = get_device_string(p_event->get_device()); diff --git a/editor/import/dynamic_font_import_settings.cpp b/editor/import/dynamic_font_import_settings.cpp index 6e74c42b2c..b34656c481 100644 --- a/editor/import/dynamic_font_import_settings.cpp +++ b/editor/import/dynamic_font_import_settings.cpp @@ -36,7 +36,9 @@ #include "editor/editor_inspector.h" #include "editor/editor_locale_dialog.h" #include "editor/editor_node.h" +#include "editor/editor_property_name_processor.h" #include "editor/editor_scale.h" +#include "editor/editor_settings.h" /*************************************************************************/ /* Settings data */ @@ -926,6 +928,15 @@ void DynamicFontImportSettings::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { add_var->set_icon(get_theme_icon(SNAME("Add"), SNAME("EditorIcons"))); } break; + + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { + if (EditorSettings::get_singleton()->check_changed_settings_in_group("interface/editor/localize_settings")) { + EditorPropertyNameProcessor::Style style = EditorPropertyNameProcessor::get_singleton()->get_settings_style(); + inspector_general->set_property_name_style(style); + inspector_vars->set_property_name_style(style); + inspector_text->set_property_name_style(style); + } + } break; } } @@ -1334,6 +1345,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { inspector_general->set_v_size_flags(Control::SIZE_EXPAND_FILL); inspector_general->set_custom_minimum_size(Size2(300 * EDSCALE, 250 * EDSCALE)); inspector_general->connect("property_edited", callable_mp(this, &DynamicFontImportSettings::_main_prop_changed)); + inspector_general->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); page1_hb->add_child(inspector_general); // Page 2 layout: Configurations @@ -1386,6 +1398,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { inspector_vars = memnew(EditorInspector); inspector_vars->set_v_size_flags(Control::SIZE_EXPAND_FILL); inspector_vars->connect("property_edited", callable_mp(this, &DynamicFontImportSettings::_variation_changed)); + inspector_vars->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); page2_side_vb->add_child(inspector_vars); VBoxContainer *preload_pages_vb = memnew(VBoxContainer); @@ -1461,6 +1474,7 @@ DynamicFontImportSettings::DynamicFontImportSettings() { inspector_text->set_v_size_flags(Control::SIZE_EXPAND_FILL); inspector_text->set_custom_minimum_size(Size2(300 * EDSCALE, 250 * EDSCALE)); inspector_text->connect("property_edited", callable_mp(this, &DynamicFontImportSettings::_change_text_opts)); + inspector_text->set_property_name_style(EditorPropertyNameProcessor::get_singleton()->get_settings_style()); page2_1_hb->add_child(inspector_text); text_edit = memnew(TextEdit); diff --git a/editor/plugins/tiles/tile_map_editor.cpp b/editor/plugins/tiles/tile_map_editor.cpp index f0a02a3768..8277e473fd 100644 --- a/editor/plugins/tiles/tile_map_editor.cpp +++ b/editor/plugins/tiles/tile_map_editor.cpp @@ -1277,7 +1277,7 @@ void TileMapEditorTilesPlugin::_stop_dragging() { tile_map->set_cell(tile_map_layer, kv.key, kv.value.source_id, kv.value.get_atlas_coords(), kv.value.alternative_tile); } - if (EditorNode::get_singleton()->is_resource_read_only(tile_set)) { + if (!EditorNode::get_singleton()->is_resource_read_only(tile_set)) { // Creating a pattern in the pattern list. select_last_pattern = true; int new_pattern_index = tile_set->get_patterns_count(); diff --git a/editor/plugins/tiles/tile_set_editor.cpp b/editor/plugins/tiles/tile_set_editor.cpp index 39d17c718e..358cc47977 100644 --- a/editor/plugins/tiles/tile_set_editor.cpp +++ b/editor/plugins/tiles/tile_set_editor.cpp @@ -687,7 +687,7 @@ void TileSetEditor::_undo_redo_inspector_callback(Object *p_undo_redo, Object *p void TileSetEditor::edit(Ref<TileSet> p_tile_set) { bool new_read_only_state = false; - if (tile_set.is_valid()) { + if (p_tile_set.is_valid()) { new_read_only_state = EditorNode::get_singleton()->is_resource_read_only(p_tile_set); } diff --git a/editor/plugins/tiles/tiles_editor_plugin.cpp b/editor/plugins/tiles/tiles_editor_plugin.cpp index fad36660d9..78522dfa73 100644 --- a/editor/plugins/tiles/tiles_editor_plugin.cpp +++ b/editor/plugins/tiles/tiles_editor_plugin.cpp @@ -117,7 +117,7 @@ void TilesEditorPlugin::_thread() { tile_map->set_position(-(scale * encompassing_rect.get_center()) + thumbnail_size2 / 2); // Add the viewport at the last moment to avoid rendering too early. - EditorNode::get_singleton()->add_child(viewport); + EditorNode::get_singleton()->call_deferred("add_child", viewport); RS::get_singleton()->connect(SNAME("frame_pre_draw"), callable_mp(const_cast<TilesEditorPlugin *>(this), &TilesEditorPlugin::_preview_frame_started), Object::CONNECT_ONE_SHOT); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 105e3a5d47..6c7ad259ea 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -961,8 +961,8 @@ public: default_files_container->add_child(l); vcs_metadata_selection = memnew(OptionButton); vcs_metadata_selection->set_custom_minimum_size(Size2(100, 20)); - vcs_metadata_selection->add_item("None", (int)EditorVCSInterface::VCSMetadata::NONE); - vcs_metadata_selection->add_item("Git", (int)EditorVCSInterface::VCSMetadata::GIT); + vcs_metadata_selection->add_item(TTR("None"), (int)EditorVCSInterface::VCSMetadata::NONE); + vcs_metadata_selection->add_item(TTR("Git"), (int)EditorVCSInterface::VCSMetadata::GIT); vcs_metadata_selection->select((int)EditorVCSInterface::VCSMetadata::GIT); default_files_container->add_child(vcs_metadata_selection); Control *spacer = memnew(Control); diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index a876229276..fe79f37454 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -2578,7 +2578,6 @@ GDScriptLanguage::GDScriptLanguage() { #ifdef DEBUG_ENABLED GLOBAL_DEF("debug/gdscript/warnings/enable", true); - GLOBAL_DEF("debug/gdscript/warnings/treat_warnings_as_errors", false); GLOBAL_DEF("debug/gdscript/warnings/exclude_addons", true); for (int i = 0; i < (int)GDScriptWarning::WARNING_MAX; i++) { GDScriptWarning::Code code = (GDScriptWarning::Code)i; diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 42e1f27603..b5cb5a4680 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -175,7 +175,7 @@ void GDScriptParser::push_warning(const Node *p_source, GDScriptWarning::Code p_ warning.leftmost_column = p_source->leftmost_column; warning.rightmost_column = p_source->rightmost_column; - if (warn_level == GDScriptWarning::WarnLevel::ERROR || bool(GLOBAL_GET("debug/gdscript/warnings/treat_warnings_as_errors"))) { + if (warn_level == GDScriptWarning::WarnLevel::ERROR) { push_error(warning.get_message() + String(" (Warning treated as error.)"), p_source); return; } diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index ad0c19b1e6..fc3a3d306f 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -199,7 +199,7 @@ void AnimationPlayer::_validate_property(PropertyInfo &p_property) const { void AnimationPlayer::_get_property_list(List<PropertyInfo> *p_list) const { List<PropertyInfo> anim_names; - anim_names.push_back(PropertyInfo(Variant::DICTIONARY, "libraries")); + anim_names.push_back(PropertyInfo(Variant::DICTIONARY, PNAME("libraries"))); for (const KeyValue<StringName, AnimationData> &E : animation_set) { if (E.value.next != StringName()) { diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 16a718722c..a57dccd5c8 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -274,6 +274,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) { } } grab_focus(); + accept_event(); return; } @@ -383,6 +384,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) { } queue_redraw(); + return; } Ref<InputEventMouseMotion> m = p_event; @@ -407,6 +409,8 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) { drag_caret_force_displayed = true; set_caret_at_pixel_pos(m->get_position().x); } + + return; } Ref<InputEventKey> k = p_event; @@ -460,6 +464,9 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) { menu->reset_size(); menu->popup(); menu->grab_focus(); + + accept_event(); + return; } } @@ -469,6 +476,8 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) { if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { DisplayServer::get_singleton()->virtual_keyboard_hide(); } + accept_event(); + return; } if (is_shortcut_keys_enabled()) { @@ -608,6 +617,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) { _text_changed(); } accept_event(); + return; } } } diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 0f39715851..f8c2e9f4ad 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -1775,10 +1775,10 @@ void Tree::draw_item_rect(TreeItem::Cell &p_cell, const Rect2i &p_rect, const Co RID ci = get_canvas_item(); - if (rtl) { + if (rtl && rect.size.width > 0) { Point2 draw_pos = rect.position; draw_pos.y += Math::floor((rect.size.y - p_cell.text_buf->get_size().y) / 2.0); - p_cell.text_buf->set_width(MAX(0, rect.size.width)); + p_cell.text_buf->set_width(rect.size.width); if (p_ol_size > 0 && p_ol_color.a > 0) { p_cell.text_buf->draw_outline(ci, draw_pos, p_ol_size, p_ol_color); } @@ -1800,10 +1800,10 @@ void Tree::draw_item_rect(TreeItem::Cell &p_cell, const Rect2i &p_rect, const Co rect.size.x -= bmsize.x + theme_cache.h_separation; } - if (!rtl) { + if (!rtl && rect.size.width > 0) { Point2 draw_pos = rect.position; draw_pos.y += Math::floor((rect.size.y - p_cell.text_buf->get_size().y) / 2.0); - p_cell.text_buf->set_width(MAX(0, rect.size.width)); + p_cell.text_buf->set_width(rect.size.width); if (p_ol_size > 0 && p_ol_color.a > 0) { p_cell.text_buf->draw_outline(ci, draw_pos, p_ol_size, p_ol_color); } diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index a1e7555a5d..23b7c072be 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -823,11 +823,12 @@ void Viewport::_set_size(const Size2i &p_size, const Size2i &p_size_2d_override, stretch_transform_new.scale(scale); } - if (size == p_size && size_allocated == p_allocated && stretch_transform == stretch_transform_new && p_size_2d_override == size_2d_override) { + Size2i new_size = p_size.max(Size2i(2, 2)); + if (size == new_size && size_allocated == p_allocated && stretch_transform == stretch_transform_new && p_size_2d_override == size_2d_override) { return; } - size = p_size; + size = new_size; size_allocated = p_allocated; size_2d_override = p_size_2d_override; stretch_transform = stretch_transform_new; diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index aecd0593bc..d251a81427 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -844,7 +844,7 @@ void RendererViewport::viewport_set_scaling_3d_scale(RID p_viewport, float p_sca } void RendererViewport::viewport_set_size(RID p_viewport, int p_width, int p_height) { - ERR_FAIL_COND(p_width < 0 && p_height < 0); + ERR_FAIL_COND(p_width < 0 || p_height < 0); Viewport *viewport = viewport_owner.get_or_null(p_viewport); ERR_FAIL_COND(!viewport); |