diff options
Diffstat (limited to 'editor')
-rw-r--r-- | editor/SCsub | 1 | ||||
-rw-r--r-- | editor/animation_bezier_editor.cpp | 26 | ||||
-rw-r--r-- | editor/animation_track_editor.cpp | 187 | ||||
-rw-r--r-- | editor/animation_track_editor.h | 2 | ||||
-rw-r--r-- | editor/animation_track_editor_plugins.cpp | 4 | ||||
-rw-r--r-- | editor/array_property_edit.cpp | 6 | ||||
-rw-r--r-- | editor/code_editor.cpp | 64 | ||||
-rw-r--r-- | editor/connections_dialog.cpp | 80 | ||||
-rw-r--r-- | editor/connections_dialog.h | 36 | ||||
-rw-r--r-- | editor/create_dialog.cpp | 24 | ||||
-rw-r--r-- | editor/debugger/SCsub | 5 | ||||
-rw-r--r-- | editor/debugger/editor_debugger_inspector.cpp | 277 | ||||
-rw-r--r-- | editor/debugger/editor_debugger_inspector.h | 98 | ||||
-rw-r--r-- | editor/debugger/editor_debugger_node.cpp | 591 | ||||
-rw-r--r-- | editor/debugger/editor_debugger_node.h | 177 | ||||
-rw-r--r-- | editor/debugger/editor_debugger_tree.cpp | 274 | ||||
-rw-r--r-- | editor/debugger/editor_debugger_tree.h | 74 | ||||
-rw-r--r-- | editor/debugger/script_editor_debugger.cpp (renamed from editor/script_editor_debugger.cpp) | 1665 | ||||
-rw-r--r-- | editor/debugger/script_editor_debugger.h (renamed from editor/script_editor_debugger.h) | 113 | ||||
-rw-r--r-- | editor/dependency_editor.cpp | 16 | ||||
-rw-r--r-- | editor/doc/doc_data.cpp | 13 | ||||
-rw-r--r-- | editor/doc/doc_dump.cpp | 21 | ||||
-rw-r--r-- | editor/editor_about.cpp | 2 | ||||
-rw-r--r-- | editor/editor_asset_installer.cpp | 2 | ||||
-rw-r--r-- | editor/editor_audio_buses.cpp | 56 | ||||
-rw-r--r-- | editor/editor_autoload_settings.cpp | 22 | ||||
-rw-r--r-- | editor/editor_data.cpp | 4 | ||||
-rw-r--r-- | editor/editor_dir_dialog.cpp | 20 | ||||
-rw-r--r-- | editor/editor_export.cpp | 12 | ||||
-rw-r--r-- | editor/editor_export.h | 6 | ||||
-rw-r--r-- | editor/editor_feature_profile.cpp | 40 | ||||
-rw-r--r-- | editor/editor_file_dialog.cpp | 66 | ||||
-rw-r--r-- | editor/editor_file_system.cpp | 4 | ||||
-rw-r--r-- | editor/editor_folding.cpp | 22 | ||||
-rw-r--r-- | editor/editor_folding.h | 4 | ||||
-rw-r--r-- | editor/editor_help.cpp | 18 | ||||
-rw-r--r-- | editor/editor_help_search.cpp | 16 | ||||
-rw-r--r-- | editor/editor_inspector.cpp | 100 | ||||
-rw-r--r-- | editor/editor_layouts_dialog.cpp | 4 | ||||
-rw-r--r-- | editor/editor_log.cpp | 4 | ||||
-rw-r--r-- | editor/editor_network_profiler.cpp | 6 | ||||
-rw-r--r-- | editor/editor_node.cpp | 243 | ||||
-rw-r--r-- | editor/editor_node.h | 10 | ||||
-rw-r--r-- | editor/editor_path.cpp | 6 | ||||
-rw-r--r-- | editor/editor_plugin.cpp | 8 | ||||
-rw-r--r-- | editor/editor_plugin_settings.cpp | 10 | ||||
-rw-r--r-- | editor/editor_profiler.cpp | 26 | ||||
-rw-r--r-- | editor/editor_profiler.h | 2 | ||||
-rw-r--r-- | editor/editor_properties.cpp | 201 | ||||
-rw-r--r-- | editor/editor_properties.h | 5 | ||||
-rw-r--r-- | editor/editor_properties_array_dict.cpp | 133 | ||||
-rw-r--r-- | editor/editor_run.cpp | 32 | ||||
-rw-r--r-- | editor/editor_run.h | 8 | ||||
-rw-r--r-- | editor/editor_run_native.cpp | 4 | ||||
-rw-r--r-- | editor/editor_run_script.cpp | 6 | ||||
-rw-r--r-- | editor/editor_sectioned_inspector.cpp | 4 | ||||
-rw-r--r-- | editor/editor_settings.cpp | 34 | ||||
-rw-r--r-- | editor/editor_spin_slider.cpp | 12 | ||||
-rw-r--r-- | editor/editor_sub_scene.cpp | 12 | ||||
-rw-r--r-- | editor/editor_themes.cpp | 3 | ||||
-rw-r--r-- | editor/editor_visual_profiler.cpp | 32 | ||||
-rw-r--r-- | editor/editor_visual_profiler.h | 2 | ||||
-rw-r--r-- | editor/export_template_manager.cpp | 28 | ||||
-rw-r--r-- | editor/export_template_manager.h | 4 | ||||
-rw-r--r-- | editor/filesystem_dock.cpp | 70 | ||||
-rw-r--r-- | editor/filesystem_dock.h | 2 | ||||
-rw-r--r-- | editor/find_in_files.cpp | 56 | ||||
-rw-r--r-- | editor/find_in_files.h | 6 | ||||
-rw-r--r-- | editor/groups_editor.cpp | 31 | ||||
-rw-r--r-- | editor/icons/2D.svg (renamed from editor/icons/icon_2_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/3D.svg (renamed from editor/icons/icon_3_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AABB.svg (renamed from editor/icons/icon_a_a_b_b.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ARVRAnchor.svg (renamed from editor/icons/icon_a_r_v_r_anchor.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ARVRCamera.svg (renamed from editor/icons/icon_a_r_v_r_camera.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ARVRController.svg (renamed from editor/icons/icon_a_r_v_r_controller.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ARVROrigin.svg (renamed from editor/icons/icon_a_r_v_r_origin.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AcceptDialog.svg (renamed from editor/icons/icon_accept_dialog.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ActionCopy.svg (renamed from editor/icons/icon_action_copy.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ActionCut.svg (renamed from editor/icons/icon_action_cut.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ActionPaste.svg (renamed from editor/icons/icon_action_paste.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Add.svg (renamed from editor/icons/icon_add.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AddAtlasTile.svg (renamed from editor/icons/icon_add_atlas_tile.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AddAutotile.svg (renamed from editor/icons/icon_add_autotile.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AddSingleTile.svg (renamed from editor/icons/icon_add_single_tile.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AddSplit.svg (renamed from editor/icons/icon_add_split.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Anchor.svg (renamed from editor/icons/icon_anchor.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimatedSprite.svg (renamed from editor/icons/icon_animated_sprite.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimatedSprite3D.svg (renamed from editor/icons/icon_animated_sprite_3d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimatedTexture.svg (renamed from editor/icons/icon_animated_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Animation.svg (renamed from editor/icons/icon_animation.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimationFilter.svg (renamed from editor/icons/icon_animation_filter.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimationPlayer.svg (renamed from editor/icons/icon_animation_player.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimationTrackGroup.svg (renamed from editor/icons/icon_animation_track_group.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimationTrackList.svg (renamed from editor/icons/icon_animation_track_list.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AnimationTree.svg (renamed from editor/icons/icon_animation_tree.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Area.svg (renamed from editor/icons/icon_area.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Area2D.svg (renamed from editor/icons/icon_area_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Array.svg (renamed from editor/icons/icon_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ArrayMesh.svg (renamed from editor/icons/icon_array_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ArrowDown.svg (renamed from editor/icons/icon_arrow_down.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ArrowLeft.svg (renamed from editor/icons/icon_arrow_left.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ArrowRight.svg (renamed from editor/icons/icon_arrow_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ArrowUp.svg (renamed from editor/icons/icon_arrow_up.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AssetLib.svg (renamed from editor/icons/icon_asset_lib.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AtlasTexture.svg (renamed from editor/icons/icon_atlas_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioBusBypass.svg (renamed from editor/icons/icon_audio_bus_bypass.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioBusLayout.svg (renamed from editor/icons/icon_audio_bus_layout.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioBusMute.svg (renamed from editor/icons/icon_audio_bus_mute.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioBusSolo.svg (renamed from editor/icons/icon_audio_bus_solo.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioStreamOGGVorbis.svg (renamed from editor/icons/icon_audio_stream_o_g_g_vorbis.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioStreamPlayer.svg (renamed from editor/icons/icon_audio_stream_player.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioStreamPlayer2D.svg (renamed from editor/icons/icon_audio_stream_player_2_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioStreamPlayer3D.svg (renamed from editor/icons/icon_audio_stream_player_3_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AudioStreamSample.svg (renamed from editor/icons/icon_audio_stream_sample.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AutoEnd.svg (renamed from editor/icons/icon_auto_end.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AutoKey.svg (renamed from editor/icons/icon_auto_key.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AutoPlay.svg (renamed from editor/icons/icon_auto_play.svg) | 0 | ||||
-rw-r--r-- | editor/icons/AutoTriangle.svg (renamed from editor/icons/icon_auto_triangle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Back.svg (renamed from editor/icons/icon_back.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BackBufferCopy.svg (renamed from editor/icons/icon_back_buffer_copy.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Bake.svg (renamed from editor/icons/icon_bake.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BakedLightmap.svg (renamed from editor/icons/icon_baked_lightmap.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BakedLightmapData.svg (renamed from editor/icons/icon_baked_lightmap_data.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Basis.svg (renamed from editor/icons/icon_basis.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BezierHandlesBalanced.svg (renamed from editor/icons/icon_bezier_handles_balanced.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BezierHandlesFree.svg (renamed from editor/icons/icon_bezier_handles_free.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BezierHandlesMirror.svg (renamed from editor/icons/icon_bezier_handles_mirror.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BitMap.svg (renamed from editor/icons/icon_bit_map.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BitmapFont.svg (renamed from editor/icons/icon_bitmap_font.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Blend.svg (renamed from editor/icons/icon_blend.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Bone.svg (renamed from editor/icons/icon_bone.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Bone2D.svg (renamed from editor/icons/icon_bone_2_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BoneAttachment.svg (renamed from editor/icons/icon_bone_attachment.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BoneTrack.svg (renamed from editor/icons/icon_bone_track.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BoxShape.svg (renamed from editor/icons/icon_box_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Bucket.svg (renamed from editor/icons/icon_bucket.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BusVuEmpty.svg (renamed from editor/icons/icon_bus_vu_empty.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BusVuFrozen.svg (renamed from editor/icons/icon_bus_vu_frozen.svg) | 0 | ||||
-rw-r--r-- | editor/icons/BusVuFull.svg (renamed from editor/icons/icon_bus_vu_full.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Button.svg (renamed from editor/icons/icon_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ButtonGroup.svg (renamed from editor/icons/icon_button_group.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CPUParticles.svg (renamed from editor/icons/icon_c_p_u_particles.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CPUParticles2D.svg (renamed from editor/icons/icon_c_p_u_particles_2_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Callable.svg | 5 | ||||
-rw-r--r-- | editor/icons/Camera.svg (renamed from editor/icons/icon_camera.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Camera2D.svg (renamed from editor/icons/icon_camera_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CameraTexture.svg (renamed from editor/icons/icon_camera_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CanvasItem.svg (renamed from editor/icons/icon_canvas_item.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CanvasItemMaterial.svg (renamed from editor/icons/icon_canvas_item_material.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CanvasItemShader.svg (renamed from editor/icons/icon_canvas_item_shader.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CanvasItemShaderGraph.svg (renamed from editor/icons/icon_canvas_item_shader_graph.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CanvasLayer.svg (renamed from editor/icons/icon_canvas_layer.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CanvasModulate.svg (renamed from editor/icons/icon_canvas_modulate.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CapsuleMesh.svg (renamed from editor/icons/icon_capsule_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CapsuleShape.svg (renamed from editor/icons/icon_capsule_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CapsuleShape2D.svg (renamed from editor/icons/icon_capsule_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CenterContainer.svg (renamed from editor/icons/icon_center_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CheckBox.svg (renamed from editor/icons/icon_check_box.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CheckButton.svg (renamed from editor/icons/icon_check_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Checkerboard.svg (renamed from editor/icons/icon_checkerboard.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CircleShape2D.svg (renamed from editor/icons/icon_circle_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ClassList.svg (renamed from editor/icons/icon_class_list.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Clear.svg (renamed from editor/icons/icon_clear.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ClippedCamera.svg (renamed from editor/icons/icon_clipped_camera.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Close.svg (renamed from editor/icons/icon_close.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Collapse.svg (renamed from editor/icons/icon_collapse.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CollisionPolygon.svg (renamed from editor/icons/icon_collision_polygon.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CollisionPolygon2D.svg (renamed from editor/icons/icon_collision_polygon_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CollisionShape.svg (renamed from editor/icons/icon_collision_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CollisionShape2D.svg (renamed from editor/icons/icon_collision_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Color.svg (renamed from editor/icons/icon_color.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ColorPick.svg (renamed from editor/icons/icon_color_pick.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ColorPicker.svg (renamed from editor/icons/icon_color_picker.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ColorPickerButton.svg (renamed from editor/icons/icon_color_picker_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ColorRamp.svg (renamed from editor/icons/icon_color_ramp.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ColorRect.svg (renamed from editor/icons/icon_color_rect.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ColorTrackVu.svg (renamed from editor/icons/icon_color_track_vu.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ConcavePolygonShape.svg (renamed from editor/icons/icon_concave_polygon_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ConcavePolygonShape2D.svg (renamed from editor/icons/icon_concave_polygon_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ConeTwistJoint.svg (renamed from editor/icons/icon_cone_twist_joint.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ConfirmationDialog.svg (renamed from editor/icons/icon_confirmation_dialog.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Container.svg (renamed from editor/icons/icon_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Control.svg (renamed from editor/icons/icon_control.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignBottomCenter.svg (renamed from editor/icons/icon_control_align_bottom_center.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignBottomLeft.svg (renamed from editor/icons/icon_control_align_bottom_left.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignBottomRight.svg (renamed from editor/icons/icon_control_align_bottom_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignBottomWide.svg (renamed from editor/icons/icon_control_align_bottom_wide.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignCenter.svg (renamed from editor/icons/icon_control_align_center.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignCenterLeft.svg (renamed from editor/icons/icon_control_align_center_left.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignCenterRight.svg (renamed from editor/icons/icon_control_align_center_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignLeftCenter.svg (renamed from editor/icons/icon_control_align_left_center.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignLeftWide.svg (renamed from editor/icons/icon_control_align_left_wide.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignRightCenter.svg (renamed from editor/icons/icon_control_align_right_center.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignRightWide.svg (renamed from editor/icons/icon_control_align_right_wide.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignTopCenter.svg (renamed from editor/icons/icon_control_align_top_center.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignTopLeft.svg (renamed from editor/icons/icon_control_align_top_left.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignTopRight.svg (renamed from editor/icons/icon_control_align_top_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignTopWide.svg (renamed from editor/icons/icon_control_align_top_wide.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlAlignWide.svg (renamed from editor/icons/icon_control_align_wide.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlHcenterWide.svg (renamed from editor/icons/icon_control_hcenter_wide.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlLayout.svg (renamed from editor/icons/icon_control_layout.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ControlVcenterWide.svg (renamed from editor/icons/icon_control_vcenter_wide.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ConvexPolygonShape.svg (renamed from editor/icons/icon_convex_polygon_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ConvexPolygonShape2D.svg (renamed from editor/icons/icon_convex_polygon_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CopyNodePath.svg (renamed from editor/icons/icon_copy_node_path.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CreateNewSceneFrom.svg (renamed from editor/icons/icon_create_new_scene_from.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Crosshair.svg (renamed from editor/icons/icon_crosshair.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CryptoKey.svg (renamed from editor/icons/icon_crypto_key.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CubeMap.svg (renamed from editor/icons/icon_cube_map.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CubeMesh.svg (renamed from editor/icons/icon_cube_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Curve.svg (renamed from editor/icons/icon_curve.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Curve2D.svg (renamed from editor/icons/icon_curve_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Curve3D.svg (renamed from editor/icons/icon_curve_3d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveClose.svg (renamed from editor/icons/icon_curve_close.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveConstant.svg (renamed from editor/icons/icon_curve_constant.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveCreate.svg (renamed from editor/icons/icon_curve_create.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveCurve.svg (renamed from editor/icons/icon_curve_curve.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveDelete.svg (renamed from editor/icons/icon_curve_delete.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveEdit.svg (renamed from editor/icons/icon_curve_edit.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveIn.svg (renamed from editor/icons/icon_curve_in.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveInOut.svg (renamed from editor/icons/icon_curve_in_out.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveLinear.svg (renamed from editor/icons/icon_curve_linear.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveOut.svg (renamed from editor/icons/icon_curve_out.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveOutIn.svg (renamed from editor/icons/icon_curve_out_in.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CurveTexture.svg (renamed from editor/icons/icon_curve_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CylinderMesh.svg (renamed from editor/icons/icon_cylinder_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/CylinderShape.svg (renamed from editor/icons/icon_cylinder_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DampedSpringJoint2D.svg (renamed from editor/icons/icon_damped_spring_joint_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Debug.svg (renamed from editor/icons/icon_debug.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DebugContinue.svg (renamed from editor/icons/icon_debug_continue.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DebugNext.svg (renamed from editor/icons/icon_debug_next.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DebugSkipBreakpointsOff.svg (renamed from editor/icons/icon_debug_skip_breakpoints_off.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DebugSkipBreakpointsOn.svg (renamed from editor/icons/icon_debug_skip_breakpoints_on.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DebugStep.svg (renamed from editor/icons/icon_debug_step.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DefaultProjectIcon.svg (renamed from editor/icons/icon_default_project_icon.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DeleteSplit.svg (renamed from editor/icons/icon_delete_split.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Dictionary.svg (renamed from editor/icons/icon_dictionary.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DirectionalLight.svg (renamed from editor/icons/icon_directional_light.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DistractionFree.svg (renamed from editor/icons/icon_distraction_free.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Duplicate.svg (renamed from editor/icons/icon_duplicate.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DynamicFont.svg (renamed from editor/icons/icon_dynamic_font.svg) | 0 | ||||
-rw-r--r-- | editor/icons/DynamicFontData.svg (renamed from editor/icons/icon_dynamic_font_data.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Edit.svg (renamed from editor/icons/icon_edit.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditBezier.svg (renamed from editor/icons/icon_edit_bezier.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditInternal.svg (renamed from editor/icons/icon_edit_internal.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditKey.svg (renamed from editor/icons/icon_edit_key.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditPivot.svg (renamed from editor/icons/icon_edit_pivot.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditResource.svg (renamed from editor/icons/icon_edit_resource.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Editor3DHandle.svg (renamed from editor/icons/icon_editor_3d_handle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorControlAnchor.svg (renamed from editor/icons/icon_editor_control_anchor.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorCurveHandle.svg (renamed from editor/icons/icon_editor_curve_handle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorHandle.svg (renamed from editor/icons/icon_editor_handle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorHandleAdd.svg (renamed from editor/icons/icon_editor_handle_add.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorInternalHandle.svg (renamed from editor/icons/icon_editor_internal_handle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorPathSharpHandle.svg (renamed from editor/icons/icon_editor_path_sharp_handle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorPathSmoothHandle.svg (renamed from editor/icons/icon_editor_path_smooth_handle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorPivot.svg (renamed from editor/icons/icon_editor_pivot.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorPlugin.svg (renamed from editor/icons/icon_editor_plugin.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorPosition.svg (renamed from editor/icons/icon_editor_position.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorPositionPrevious.svg (renamed from editor/icons/icon_editor_position_previous.svg) | 0 | ||||
-rw-r--r-- | editor/icons/EditorPositionUnselected.svg (renamed from editor/icons/icon_editor_position_unselected.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Enum.svg (renamed from editor/icons/icon_enum.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Environment.svg (renamed from editor/icons/icon_environment.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Error.svg (renamed from editor/icons/icon_error.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ErrorSign.svg (renamed from editor/icons/icon_error_sign.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ExpandBottomDock.svg (renamed from editor/icons/icon_expand_bottom_dock.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Favorites.svg (renamed from editor/icons/icon_favorites.svg) | 0 | ||||
-rw-r--r-- | editor/icons/File.svg (renamed from editor/icons/icon_file.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileBigThumb.svg (renamed from editor/icons/icon_file_big_thumb.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileBroken.svg (renamed from editor/icons/icon_file_broken.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileBrokenBigThumb.svg (renamed from editor/icons/icon_file_broken_big_thumb.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileDead.svg (renamed from editor/icons/icon_file_dead.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileDeadBigThumb.svg (renamed from editor/icons/icon_file_dead_big_thumb.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileDeadMediumThumb.svg (renamed from editor/icons/icon_file_dead_medium_thumb.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileDialog.svg (renamed from editor/icons/icon_file_dialog.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileList.svg (renamed from editor/icons/icon_file_list.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileMediumThumb.svg (renamed from editor/icons/icon_file_medium_thumb.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FileThumbnail.svg (renamed from editor/icons/icon_file_thumbnail.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Filesystem.svg (renamed from editor/icons/icon_filesystem.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FixedMaterial.svg (renamed from editor/icons/icon_fixed_material.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FixedSpatialMaterial.svg (renamed from editor/icons/icon_fixed_spatial_material.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Folder.svg (renamed from editor/icons/icon_folder.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FolderBigThumb.svg (renamed from editor/icons/icon_folder_big_thumb.svg) | 0 | ||||
-rw-r--r-- | editor/icons/FolderMediumThumb.svg (renamed from editor/icons/icon_folder_medium_thumb.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Font.svg (renamed from editor/icons/icon_font.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Forward.svg (renamed from editor/icons/icon_forward.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GIProbe.svg (renamed from editor/icons/icon_g_i_probe.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GIProbeData.svg (renamed from editor/icons/icon_g_i_probe_data.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Generic6DOFJoint.svg (renamed from editor/icons/icon_generic_6_d_o_f_joint.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoBakedLightmap.svg (renamed from editor/icons/icon_gizmo_baked_lightmap.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoCPUParticles.svg (renamed from editor/icons/icon_gizmo_c_p_u_particles.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoCamera.svg (renamed from editor/icons/icon_gizmo_camera.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoDirectionalLight.svg (renamed from editor/icons/icon_gizmo_directional_light.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoGIProbe.svg (renamed from editor/icons/icon_gizmo_g_i_probe.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoLight.svg (renamed from editor/icons/icon_gizmo_light.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoListener.svg (renamed from editor/icons/icon_gizmo_listener.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoParticles.svg (renamed from editor/icons/icon_gizmo_particles.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoReflectionProbe.svg (renamed from editor/icons/icon_gizmo_reflection_probe.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoSpatialSamplePlayer.svg (renamed from editor/icons/icon_gizmo_spatial_sample_player.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GizmoSpotLight.svg (renamed from editor/icons/icon_gizmo_spot_light.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Godot.svg (renamed from editor/icons/icon_godot.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Gradient.svg (renamed from editor/icons/icon_gradient.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GradientTexture.svg (renamed from editor/icons/icon_gradient_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GraphEdit.svg (renamed from editor/icons/icon_graph_edit.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GraphNode.svg (renamed from editor/icons/icon_graph_node.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Grid.svg (renamed from editor/icons/icon_grid.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GridContainer.svg (renamed from editor/icons/icon_grid_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GrooveJoint2D.svg (renamed from editor/icons/icon_groove_joint_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Group.svg (renamed from editor/icons/icon_group.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GroupViewport.svg (renamed from editor/icons/icon_group_viewport.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Groups.svg (renamed from editor/icons/icon_groups.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiChecked.svg (renamed from editor/icons/icon_GUI_checked.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiClose.svg (renamed from editor/icons/icon_gui_close.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiCloseCustomizable.svg (renamed from editor/icons/icon_gui_close_customizable.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiDropdown.svg (renamed from editor/icons/icon_GUI_dropdown.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiEllipsis.svg (renamed from editor/icons/icon_GUI_ellipsis.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiGraphNodePort.svg (renamed from editor/icons/icon_gui_graph_node_port.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiHTick.svg (renamed from editor/icons/icon_GUI_h_tick.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiHsplitter.svg (renamed from editor/icons/icon_GUI_hsplitter.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiMiniCheckerboard.svg (renamed from editor/icons/icon_GUI_mini_checkerboard.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiOptionArrow.svg (renamed from editor/icons/icon_GUI_option_arrow.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiProgressBar.svg (renamed from editor/icons/icon_GUI_progress_bar.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiProgressFill.svg (renamed from editor/icons/icon_GUI_progress_fill.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiRadioChecked.svg (renamed from editor/icons/icon_GUI_radio_checked.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiRadioUnchecked.svg (renamed from editor/icons/icon_GUI_radio_unchecked.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiResizer.svg (renamed from editor/icons/icon_gui_resizer.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollArrowLeft.svg (renamed from editor/icons/icon_GUI_scroll_arrow_left.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollArrowLeftHl.svg (renamed from editor/icons/icon_GUI_scroll_arrow_left_hl.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollArrowRight.svg (renamed from editor/icons/icon_GUI_scroll_arrow_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollArrowRightHl.svg (renamed from editor/icons/icon_GUI_scroll_arrow_right_hl.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollBg.svg (renamed from editor/icons/icon_GUI_scroll_bg.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollGrabber.svg (renamed from editor/icons/icon_GUI_scroll_grabber.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollGrabberHl.svg (renamed from editor/icons/icon_GUI_scroll_grabber_hl.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiScrollGrabberPressed.svg (renamed from editor/icons/icon_GUI_scroll_grabber_pressed.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiSliderGrabber.svg (renamed from editor/icons/icon_GUI_slider_grabber.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiSliderGrabberHl.svg (renamed from editor/icons/icon_GUI_slider_grabber_hl.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiSpace.svg (renamed from editor/icons/icon_GUI_space.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiSpinboxUpdown.svg (renamed from editor/icons/icon_GUI_spinbox_updown.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiTab.svg (renamed from editor/icons/icon_GUI_tab.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiTabMenu.svg (renamed from editor/icons/icon_GUI_tab_menu.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiTabMenuHl.svg (renamed from editor/icons/icon_GUI_tab_menu_hl.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiToggleOff.svg (renamed from editor/icons/icon_GUI_toggle_off.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiToggleOn.svg (renamed from editor/icons/icon_GUI_toggle_on.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiTreeArrowDown.svg (renamed from editor/icons/icon_GUI_tree_arrow_down.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiTreeArrowRight.svg (renamed from editor/icons/icon_GUI_tree_arrow_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiTreeArrowUp.svg (renamed from editor/icons/icon_GUI_tree_arrow_up.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiTreeUpdown.svg (renamed from editor/icons/icon_GUI_tree_updown.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiUnchecked.svg (renamed from editor/icons/icon_GUI_unchecked.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiVTick.svg (renamed from editor/icons/icon_GUI_v_tick.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiViewportHdiagsplitter.svg (renamed from editor/icons/icon_GUI_viewport_hdiagsplitter.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiViewportVdiagsplitter.svg (renamed from editor/icons/icon_GUI_viewport_vdiagsplitter.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiViewportVhsplitter.svg (renamed from editor/icons/icon_GUI_viewport_vhsplitter.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiVisibilityHidden.svg (renamed from editor/icons/icon_GUI_visibility_hidden.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiVisibilityVisible.svg (renamed from editor/icons/icon_GUI_visibility_visible.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiVisibilityXray.svg (renamed from editor/icons/icon_GUI_visibility_xray.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiVsplitBg.svg (renamed from editor/icons/icon_GUI_vsplit_bg.svg) | 0 | ||||
-rw-r--r-- | editor/icons/GuiVsplitter.svg (renamed from editor/icons/icon_GUI_vsplitter.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HBoxContainer.svg (renamed from editor/icons/icon_h_box_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HScrollBar.svg (renamed from editor/icons/icon_h_scroll_bar.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HSeparator.svg (renamed from editor/icons/icon_h_separator.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HSlider.svg (renamed from editor/icons/icon_h_slider.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HSplitContainer.svg (renamed from editor/icons/icon_h_split_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HTTPRequest.svg (renamed from editor/icons/icon_h_t_t_p_request.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Headphones.svg (renamed from editor/icons/icon_headphones.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HeightMapShape.svg (renamed from editor/icons/icon_height_map_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Help.svg (renamed from editor/icons/icon_help.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HelpSearch.svg (renamed from editor/icons/icon_help_search.svg) | 0 | ||||
-rw-r--r-- | editor/icons/HingeJoint.svg (renamed from editor/icons/icon_hinge_joint.svg) | 0 | ||||
-rw-r--r-- | editor/icons/History.svg (renamed from editor/icons/icon_history.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Hsize.svg (renamed from editor/icons/icon_hsize.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Image.svg (renamed from editor/icons/icon_image.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ImageTexture.svg (renamed from editor/icons/icon_image_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ImmediateGeometry.svg (renamed from editor/icons/icon_immediate_geometry.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ImportCheck.svg (renamed from editor/icons/icon_import_check.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ImportFail.svg (renamed from editor/icons/icon_import_fail.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InformationSign.svg (renamed from editor/icons/icon_information_sign.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InsertAfter.svg (renamed from editor/icons/icon_insert_after.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InsertBefore.svg (renamed from editor/icons/icon_insert_before.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Instance.svg (renamed from editor/icons/icon_instance.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InstanceOptions.svg (renamed from editor/icons/icon_instance_options.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InterpCubic.svg (renamed from editor/icons/icon_interp_cubic.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InterpLinear.svg (renamed from editor/icons/icon_interp_linear.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InterpRaw.svg (renamed from editor/icons/icon_interp_raw.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InterpWrapClamp.svg (renamed from editor/icons/icon_interp_wrap_clamp.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InterpWrapLoop.svg (renamed from editor/icons/icon_interp_wrap_loop.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InterpolatedCamera.svg (renamed from editor/icons/icon_interpolated_camera.svg) | 0 | ||||
-rw-r--r-- | editor/icons/InverseKinematics.svg (renamed from editor/icons/icon_inverse_kinematics.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Issue.svg (renamed from editor/icons/icon_issue.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ItemList.svg (renamed from editor/icons/icon_item_list.svg) | 0 | ||||
-rw-r--r-- | editor/icons/JoyAxis.svg (renamed from editor/icons/icon_joy_axis.svg) | 0 | ||||
-rw-r--r-- | editor/icons/JoyButton.svg (renamed from editor/icons/icon_joy_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Joypad.svg (renamed from editor/icons/icon_joypad.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Key.svg (renamed from editor/icons/icon_key.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyAnimation.svg (renamed from editor/icons/icon_key_animation.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyAudio.svg (renamed from editor/icons/icon_key_audio.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyBezier.svg (renamed from editor/icons/icon_key_bezier.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyBezierHandle.svg (renamed from editor/icons/icon_key_bezier_handle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyBezierPoint.svg (renamed from editor/icons/icon_key_bezier_point.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyBezierSelected.svg (renamed from editor/icons/icon_key_bezier_selected.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyCall.svg (renamed from editor/icons/icon_key_call.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyHover.svg (renamed from editor/icons/icon_key_hover.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyInvalid.svg (renamed from editor/icons/icon_key_invalid.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyNext.svg (renamed from editor/icons/icon_key_next.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyPosition.svg (renamed from editor/icons/icon_key_position.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyRotation.svg (renamed from editor/icons/icon_key_rotation.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyScale.svg (renamed from editor/icons/icon_key_scale.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeySelected.svg (renamed from editor/icons/icon_key_selected.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyValue.svg (renamed from editor/icons/icon_key_value.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KeyXform.svg (renamed from editor/icons/icon_key_xform.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Keyboard.svg (renamed from editor/icons/icon_keyboard.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KinematicBody.svg (renamed from editor/icons/icon_kinematic_body.svg) | 0 | ||||
-rw-r--r-- | editor/icons/KinematicBody2D.svg (renamed from editor/icons/icon_kinematic_body_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Label.svg (renamed from editor/icons/icon_label.svg) | 0 | ||||
-rw-r--r-- | editor/icons/LargeTexture.svg (renamed from editor/icons/icon_large_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Light2D.svg (renamed from editor/icons/icon_light_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/LightOccluder2D.svg (renamed from editor/icons/icon_light_occluder_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Line2D.svg (renamed from editor/icons/icon_line_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/LineEdit.svg (renamed from editor/icons/icon_line_edit.svg) | 0 | ||||
-rw-r--r-- | editor/icons/LineShape2D.svg (renamed from editor/icons/icon_line_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/LinkButton.svg (renamed from editor/icons/icon_link_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ListSelect.svg (renamed from editor/icons/icon_list_select.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Listener.svg (renamed from editor/icons/icon_listener.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Load.svg (renamed from editor/icons/icon_load.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Lock.svg (renamed from editor/icons/icon_lock.svg) | 0 | ||||
-rw-r--r-- | editor/icons/LockViewport.svg (renamed from editor/icons/icon_lock_viewport.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Logo.svg (renamed from editor/icons/icon_logo.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Loop.svg (renamed from editor/icons/icon_loop.svg) | 0 | ||||
-rw-r--r-- | editor/icons/LoopInterpolation.svg (renamed from editor/icons/icon_loop_interpolation.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MainPlay.svg (renamed from editor/icons/icon_main_play.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MarginContainer.svg (renamed from editor/icons/icon_margin_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MatchCase.svg (renamed from editor/icons/icon_match_case.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewCube.svg (renamed from editor/icons/icon_material_preview_cube.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewCubeOff.svg (renamed from editor/icons/icon_material_preview_cube_off.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewLight1.svg (renamed from editor/icons/icon_material_preview_light_1.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewLight1Off.svg (renamed from editor/icons/icon_material_preview_light_1_off.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewLight2.svg (renamed from editor/icons/icon_material_preview_light_2.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewLight2Off.svg (renamed from editor/icons/icon_material_preview_light_2_off.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewSphere.svg (renamed from editor/icons/icon_material_preview_sphere.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MaterialPreviewSphereOff.svg (renamed from editor/icons/icon_material_preview_sphere_off.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MemberConstant.svg (renamed from editor/icons/icon_member_constant.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MemberMethod.svg (renamed from editor/icons/icon_member_method.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MemberProperty.svg (renamed from editor/icons/icon_member_property.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MemberSignal.svg (renamed from editor/icons/icon_member_signal.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MemberTheme.svg (renamed from editor/icons/icon_member_theme.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MenuButton.svg (renamed from editor/icons/icon_menu_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Mesh.svg (renamed from editor/icons/icon_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MeshInstance.svg (renamed from editor/icons/icon_mesh_instance.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MeshInstance2D.svg (renamed from editor/icons/icon_mesh_instance_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MeshLibrary.svg (renamed from editor/icons/icon_mesh_library.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MeshTexture.svg (renamed from editor/icons/icon_mesh_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MiniObject.svg (renamed from editor/icons/icon_mini_object.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MirrorX.svg (renamed from editor/icons/icon_mirror_x.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MirrorY.svg (renamed from editor/icons/icon_mirror_y.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Mouse.svg (renamed from editor/icons/icon_mouse.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MoveDown.svg (renamed from editor/icons/icon_move_down.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MoveLeft.svg (renamed from editor/icons/icon_move_left.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MovePoint.svg (renamed from editor/icons/icon_move_point.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MoveRight.svg (renamed from editor/icons/icon_move_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MoveUp.svg (renamed from editor/icons/icon_move_up.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MultiEdit.svg (renamed from editor/icons/icon_multi_edit.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MultiLine.svg (renamed from editor/icons/icon_multi_line.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MultiMesh.svg (renamed from editor/icons/icon_multi_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MultiMeshInstance.svg (renamed from editor/icons/icon_multi_mesh_instance.svg) | 0 | ||||
-rw-r--r-- | editor/icons/MultiMeshInstance2D.svg (renamed from editor/icons/icon_multi_mesh_instance_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Navigation.svg (renamed from editor/icons/icon_navigation.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Navigation2D.svg (renamed from editor/icons/icon_navigation_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NavigationMesh.svg (renamed from editor/icons/icon_navigation_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NavigationMeshInstance.svg (renamed from editor/icons/icon_navigation_mesh_instance.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NavigationPolygon.svg (renamed from editor/icons/icon_navigation_polygon.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NavigationPolygonInstance.svg (renamed from editor/icons/icon_navigation_polygon_instance.svg) | 0 | ||||
-rw-r--r-- | editor/icons/New.svg (renamed from editor/icons/icon_new.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NewRoot.svg (renamed from editor/icons/icon_new_root.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Nil.svg (renamed from editor/icons/icon_nil.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NinePatchRect.svg (renamed from editor/icons/icon_nine_patch_rect.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Node.svg (renamed from editor/icons/icon_node.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Node2D.svg (renamed from editor/icons/icon_node_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NodePath.svg (renamed from editor/icons/icon_node_path.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NodeWarning.svg (renamed from editor/icons/icon_node_warning.svg) | 0 | ||||
-rw-r--r-- | editor/icons/NonFavorite.svg (renamed from editor/icons/icon_non_favorite.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ORMMaterial3D.svg (renamed from editor/icons/icon_o_r_m_material_3d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Object.svg (renamed from editor/icons/icon_object.svg) | 0 | ||||
-rw-r--r-- | editor/icons/OccluderPolygon2D.svg (renamed from editor/icons/icon_occluder_polygon_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/OmniLight.svg (renamed from editor/icons/icon_omni_light.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Onion.svg (renamed from editor/icons/icon_onion.svg) | 0 | ||||
-rw-r--r-- | editor/icons/OptionButton.svg (renamed from editor/icons/icon_option_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/OverbrightIndicator.svg (renamed from editor/icons/icon_overbright_indicator.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Override.svg (renamed from editor/icons/icon_override.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedByteArray.svg (renamed from editor/icons/icon_pool_byte_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedColorArray.svg (renamed from editor/icons/icon_pool_color_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedDataContainer.svg (renamed from editor/icons/icon_packed_data_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedFloat32Array.svg (renamed from editor/icons/icon_pool_real_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedFloat64Array.svg | 1 | ||||
-rw-r--r-- | editor/icons/PackedInt32Array.svg (renamed from editor/icons/icon_pool_int_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedInt64Array.svg | 1 | ||||
-rw-r--r-- | editor/icons/PackedScene.svg (renamed from editor/icons/icon_packed_scene.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedStringArray.svg (renamed from editor/icons/icon_pool_string_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedVector2Array.svg (renamed from editor/icons/icon_pool_vector2_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PackedVector3Array.svg (renamed from editor/icons/icon_pool_vector3_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PaintVertex.svg (renamed from editor/icons/icon_paint_vertex.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Panel.svg (renamed from editor/icons/icon_panel.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PanelContainer.svg (renamed from editor/icons/icon_panel_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Panels1.svg (renamed from editor/icons/icon_panels_1.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Panels2.svg (renamed from editor/icons/icon_panels_2.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Panels2Alt.svg (renamed from editor/icons/icon_panels_2_alt.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Panels3.svg (renamed from editor/icons/icon_panels_3.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Panels3Alt.svg (renamed from editor/icons/icon_panels_3_alt.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Panels4.svg (renamed from editor/icons/icon_panels_4.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PanoramaSky.svg (renamed from editor/icons/icon_panorama_sky.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ParallaxBackground.svg (renamed from editor/icons/icon_parallax_background.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ParallaxLayer.svg (renamed from editor/icons/icon_parallax_layer.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Particles.svg (renamed from editor/icons/icon_particles.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Particles2D.svg (renamed from editor/icons/icon_particles_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ParticlesMaterial.svg (renamed from editor/icons/icon_particles_material.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Path.svg (renamed from editor/icons/icon_path.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Path2D.svg (renamed from editor/icons/icon_path_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PathFollow.svg (renamed from editor/icons/icon_path_follow.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PathFollow2D.svg (renamed from editor/icons/icon_path_follow_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Pause.svg (renamed from editor/icons/icon_pause.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PhysicalBone.svg (renamed from editor/icons/icon_physical_bone.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Pin.svg (renamed from editor/icons/icon_pin.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PinJoint.svg (renamed from editor/icons/icon_pin_joint.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PinJoint2D.svg (renamed from editor/icons/icon_pin_joint_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PinPressed.svg (renamed from editor/icons/icon_pin_pressed.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Plane.svg (renamed from editor/icons/icon_plane.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlaneMesh.svg (renamed from editor/icons/icon_plane_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlaneShape.svg (renamed from editor/icons/icon_plane_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Play.svg (renamed from editor/icons/icon_play.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlayBackwards.svg (renamed from editor/icons/icon_play_backwards.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlayCustom.svg (renamed from editor/icons/icon_play_custom.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlayOverlay.svg (renamed from editor/icons/icon_play_overlay.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlayScene.svg (renamed from editor/icons/icon_play_scene.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlayStart.svg (renamed from editor/icons/icon_play_start.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlayStartBackwards.svg (renamed from editor/icons/icon_play_start_backwards.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PlayTravel.svg (renamed from editor/icons/icon_play_travel.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PluginScript.svg (renamed from editor/icons/icon_plugin_script.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PointMesh.svg (renamed from editor/icons/icon_point_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Polygon2D.svg (renamed from editor/icons/icon_polygon_2_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PolygonPathFinder.svg (renamed from editor/icons/icon_polygon_path_finder.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Popup.svg (renamed from editor/icons/icon_popup.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PopupDialog.svg (renamed from editor/icons/icon_popup_dialog.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PopupMenu.svg (renamed from editor/icons/icon_popup_menu.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PopupPanel.svg (renamed from editor/icons/icon_popup_panel.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Portal.svg (renamed from editor/icons/icon_portal.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Position2D.svg (renamed from editor/icons/icon_position_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Position3D.svg (renamed from editor/icons/icon_position_3d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/PrismMesh.svg (renamed from editor/icons/icon_prism_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ProceduralSky.svg (renamed from editor/icons/icon_procedural_sky.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress1.svg (renamed from editor/icons/icon_progress_1.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress2.svg (renamed from editor/icons/icon_progress_2.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress3.svg (renamed from editor/icons/icon_progress_3.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress4.svg (renamed from editor/icons/icon_progress_4.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress5.svg (renamed from editor/icons/icon_progress_5.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress6.svg (renamed from editor/icons/icon_progress_6.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress7.svg (renamed from editor/icons/icon_progress_7.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Progress8.svg (renamed from editor/icons/icon_progress_8.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ProgressBar.svg (renamed from editor/icons/icon_progress_bar.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ProjectIconLoading.svg (renamed from editor/icons/icon_project_icon_loading.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ProximityGroup.svg (renamed from editor/icons/icon_proximity_group.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ProxyTexture.svg (renamed from editor/icons/icon_proxy_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Quad.svg (renamed from editor/icons/icon_quad.svg) | 0 | ||||
-rw-r--r-- | editor/icons/QuadMesh.svg (renamed from editor/icons/icon_quad_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Quat.svg (renamed from editor/icons/icon_quat.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RID.svg (renamed from editor/icons/icon_r_i_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RayCast.svg (renamed from editor/icons/icon_ray_cast.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RayCast2D.svg (renamed from editor/icons/icon_ray_cast_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RayShape.svg (renamed from editor/icons/icon_ray_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RayShape2D.svg (renamed from editor/icons/icon_ray_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rayito.svg (renamed from editor/icons/icon_rayito.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rect2.svg (renamed from editor/icons/icon_rect2.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rect2i.svg | 4 | ||||
-rw-r--r-- | editor/icons/RectangleShape2D.svg (renamed from editor/icons/icon_rectangle_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ReferenceRect.svg (renamed from editor/icons/icon_reference_rect.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ReflectionProbe.svg (renamed from editor/icons/icon_reflection_probe.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RegionEdit.svg (renamed from editor/icons/icon_region_edit.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Reload.svg (renamed from editor/icons/icon_reload.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ReloadSmall.svg (renamed from editor/icons/icon_reload_small.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RemoteTransform.svg (renamed from editor/icons/icon_remote_transform.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RemoteTransform2D.svg (renamed from editor/icons/icon_remote_transform_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Remove.svg (renamed from editor/icons/icon_remove.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RemoveInternal.svg (renamed from editor/icons/icon_remove_internal.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rename.svg (renamed from editor/icons/icon_rename.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Reparent.svg (renamed from editor/icons/icon_reparent.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ReparentToNewNode.svg (renamed from editor/icons/icon_reparent_to_new_node.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ResourcePreloader.svg (renamed from editor/icons/icon_resource_preloader.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RichTextEffect.svg (renamed from editor/icons/icon_rich_text_effect.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RichTextLabel.svg (renamed from editor/icons/icon_rich_text_label.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RigidBody.svg (renamed from editor/icons/icon_rigid_body.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RigidBody2D.svg (renamed from editor/icons/icon_rigid_body_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Room.svg (renamed from editor/icons/icon_room.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RoomBounds.svg (renamed from editor/icons/icon_room_bounds.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rotate0.svg (renamed from editor/icons/icon_rotate_0.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rotate180.svg (renamed from editor/icons/icon_rotate_180.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rotate270.svg (renamed from editor/icons/icon_rotate_270.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Rotate90.svg (renamed from editor/icons/icon_rotate_90.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RotateLeft.svg (renamed from editor/icons/icon_rotate_left.svg) | 0 | ||||
-rw-r--r-- | editor/icons/RotateRight.svg (renamed from editor/icons/icon_rotate_right.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Ruler.svg (renamed from editor/icons/icon_ruler.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SampleLibrary.svg (renamed from editor/icons/icon_sample_library.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Save.svg (renamed from editor/icons/icon_save.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Script.svg (renamed from editor/icons/icon_script.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ScriptCreate.svg (renamed from editor/icons/icon_script_create.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ScriptCreateDialog.svg (renamed from editor/icons/icon_script_create_dialog.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ScriptExtend.svg (renamed from editor/icons/icon_script_extend.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ScriptRemove.svg (renamed from editor/icons/icon_script_remove.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ScrollContainer.svg (renamed from editor/icons/icon_scroll_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Search.svg (renamed from editor/icons/icon_search.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SegmentShape2D.svg (renamed from editor/icons/icon_segment_shape_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Shader.svg (renamed from editor/icons/icon_shader.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ShaderMaterial.svg (renamed from editor/icons/icon_shader_material.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ShortCut.svg (renamed from editor/icons/icon_short_cut.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Signal.svg (renamed from editor/icons/icon_signal.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Signals.svg (renamed from editor/icons/icon_signals.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SignalsAndGroups.svg (renamed from editor/icons/icon_signals_and_groups.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Skeleton.svg (renamed from editor/icons/icon_skeleton.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Skeleton2D.svg (renamed from editor/icons/icon_skeleton_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SkeletonIK.svg (renamed from editor/icons/icon_skeleton_i_k.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SliderJoint.svg (renamed from editor/icons/icon_slider_joint.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Slot.svg (renamed from editor/icons/icon_slot.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Snap.svg (renamed from editor/icons/icon_snap.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SnapGrid.svg (renamed from editor/icons/icon_snap_grid.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SoftBody.svg (renamed from editor/icons/icon_soft_body.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Sort.svg (renamed from editor/icons/icon_sort.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Spatial.svg (renamed from editor/icons/icon_spatial.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SpatialMaterial.svg (renamed from editor/icons/icon_spatial_material.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SphereMesh.svg (renamed from editor/icons/icon_sphere_mesh.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SphereShape.svg (renamed from editor/icons/icon_sphere_shape.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SpinBox.svg (renamed from editor/icons/icon_spin_box.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SpotLight.svg (renamed from editor/icons/icon_spot_light.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SpringArm.svg (renamed from editor/icons/icon_spring_arm.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Sprite.svg (renamed from editor/icons/icon_sprite.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Sprite3D.svg (renamed from editor/icons/icon_sprite_3d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SpriteFrames.svg (renamed from editor/icons/icon_sprite_frames.svg) | 0 | ||||
-rw-r--r-- | editor/icons/SpriteSheet.svg (renamed from editor/icons/icon_sprite_sheet.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StandardMaterial3D.svg (renamed from editor/icons/icon_standard_material_3d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StaticBody.svg (renamed from editor/icons/icon_static_body.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StaticBody2D.svg (renamed from editor/icons/icon_static_body_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StatusError.svg (renamed from editor/icons/icon_status_error.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StatusSuccess.svg (renamed from editor/icons/icon_status_success.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StatusWarning.svg (renamed from editor/icons/icon_status_warning.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Stop.svg (renamed from editor/icons/icon_stop.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StreamTexture.svg (renamed from editor/icons/icon_stream_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/String.svg (renamed from editor/icons/icon_string.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StringName.svg | 4 | ||||
-rw-r--r-- | editor/icons/StyleBoxEmpty.svg (renamed from editor/icons/icon_style_box_empty.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StyleBoxFlat.svg (renamed from editor/icons/icon_style_box_flat.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StyleBoxLine.svg (renamed from editor/icons/icon_style_box_line.svg) | 0 | ||||
-rw-r--r-- | editor/icons/StyleBoxTexture.svg (renamed from editor/icons/icon_style_box_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TabContainer.svg (renamed from editor/icons/icon_tab_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Tabs.svg (renamed from editor/icons/icon_tabs.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TestCube.svg (renamed from editor/icons/icon_test_cube.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TextEdit.svg (renamed from editor/icons/icon_text_edit.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TextFile.svg (renamed from editor/icons/icon_text_file.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Texture3D.svg (renamed from editor/icons/icon_texture_3_d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TextureArray.svg (renamed from editor/icons/icon_texture_array.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TextureButton.svg (renamed from editor/icons/icon_texture_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TextureProgress.svg (renamed from editor/icons/icon_texture_progress.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TextureRect.svg (renamed from editor/icons/icon_texture_rect.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Theme.svg (renamed from editor/icons/icon_theme.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ThumbnailWait.svg (renamed from editor/icons/icon_thumbnail_wait.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TileMap.svg (renamed from editor/icons/icon_tile_map.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TileSet.svg (renamed from editor/icons/icon_tile_set.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Time.svg (renamed from editor/icons/icon_time.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TimelineIndicator.svg (renamed from editor/icons/icon_timeline_indicator.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Timer.svg (renamed from editor/icons/icon_timer.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolAddNode.svg (renamed from editor/icons/icon_tool_add_node.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolButton.svg (renamed from editor/icons/icon_tool_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolConnect.svg (renamed from editor/icons/icon_tool_connect.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolMove.svg (renamed from editor/icons/icon_tool_move.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolPan.svg (renamed from editor/icons/icon_tool_pan.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolRotate.svg (renamed from editor/icons/icon_tool_rotate.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolScale.svg (renamed from editor/icons/icon_tool_scale.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolSelect.svg (renamed from editor/icons/icon_tool_select.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ToolTriangle.svg (renamed from editor/icons/icon_tool_triangle.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Tools.svg (renamed from editor/icons/icon_tools.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TouchScreenButton.svg (renamed from editor/icons/icon_touch_screen_button.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TrackAddKey.svg (renamed from editor/icons/icon_track_add_key.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TrackAddKeyHl.svg (renamed from editor/icons/icon_track_add_key_hl.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TrackCapture.svg (renamed from editor/icons/icon_track_capture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TrackColor.svg (renamed from editor/icons/icon_track_color.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TrackContinuous.svg (renamed from editor/icons/icon_track_continuous.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TrackDiscrete.svg (renamed from editor/icons/icon_track_discrete.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TrackTrigger.svg (renamed from editor/icons/icon_track_trigger.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Transform.svg (renamed from editor/icons/icon_transform.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Transform2D.svg (renamed from editor/icons/icon_transform_2_D.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionEnd.svg (renamed from editor/icons/icon_transition_end.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionEndAuto.svg (renamed from editor/icons/icon_transition_end_auto.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionEndAutoBig.svg (renamed from editor/icons/icon_transition_end_auto_big.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionEndBig.svg (renamed from editor/icons/icon_transition_end_big.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionImmediate.svg (renamed from editor/icons/icon_transition_immediate.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionImmediateAuto.svg (renamed from editor/icons/icon_transition_immediate_auto.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionImmediateAutoBig.svg (renamed from editor/icons/icon_transition_immediate_auto_big.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionImmediateBig.svg (renamed from editor/icons/icon_transition_immediate_big.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionSync.svg (renamed from editor/icons/icon_transition_sync.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionSyncAuto.svg (renamed from editor/icons/icon_transition_sync_auto.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionSyncAutoBig.svg (renamed from editor/icons/icon_transition_sync_auto_big.svg) | 0 | ||||
-rw-r--r-- | editor/icons/TransitionSyncBig.svg (renamed from editor/icons/icon_transition_sync_big.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Translation.svg (renamed from editor/icons/icon_translation.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Transpose.svg (renamed from editor/icons/icon_transpose.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Tree.svg (renamed from editor/icons/icon_tree.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Tween.svg (renamed from editor/icons/icon_tween.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Unbone.svg (renamed from editor/icons/icon_unbone.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Ungroup.svg (renamed from editor/icons/icon_ungroup.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Unlock.svg (renamed from editor/icons/icon_unlock.svg) | 0 | ||||
-rw-r--r-- | editor/icons/UnpaintVertex.svg (renamed from editor/icons/icon_unpaint_vertex.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Uv.svg (renamed from editor/icons/icon_uv.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VBoxContainer.svg (renamed from editor/icons/icon_v_box_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VScrollBar.svg (renamed from editor/icons/icon_v_scroll_bar.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VSeparator.svg (renamed from editor/icons/icon_v_separator.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VSlider.svg (renamed from editor/icons/icon_v_slider.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VSplitContainer.svg (renamed from editor/icons/icon_v_split_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Variant.svg (renamed from editor/icons/icon_variant.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Vector2.svg (renamed from editor/icons/icon_vector2.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Vector2i.svg | 5 | ||||
-rw-r--r-- | editor/icons/Vector3.svg (renamed from editor/icons/icon_vector3.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Vector3i.svg | 5 | ||||
-rw-r--r-- | editor/icons/VehicleBody.svg (renamed from editor/icons/icon_vehicle_body.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VehicleWheel.svg (renamed from editor/icons/icon_vehicle_wheel.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VideoPlayer.svg (renamed from editor/icons/icon_video_player.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Viewport.svg (renamed from editor/icons/icon_viewport.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ViewportContainer.svg (renamed from editor/icons/icon_viewport_container.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ViewportSpeed.svg (renamed from editor/icons/icon_viewport_speed.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ViewportTexture.svg (renamed from editor/icons/icon_viewport_texture.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ViewportZoom.svg (renamed from editor/icons/icon_viewport_zoom.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VisibilityEnabler.svg (renamed from editor/icons/icon_visibility_enabler.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VisibilityEnabler2D.svg (renamed from editor/icons/icon_visibility_enabler_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VisibilityNotifier.svg (renamed from editor/icons/icon_visibility_notifier.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VisibilityNotifier2D.svg (renamed from editor/icons/icon_visibility_notifier_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VisualShader.svg (renamed from editor/icons/icon_visual_shader.svg) | 0 | ||||
-rw-r--r-- | editor/icons/VisualShaderPort.svg (renamed from editor/icons/icon_visual_shader_port.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Warning.svg (renamed from editor/icons/icon_warning.svg) | 0 | ||||
-rw-r--r-- | editor/icons/WindowDialog.svg (renamed from editor/icons/icon_window_dialog.svg) | 0 | ||||
-rw-r--r-- | editor/icons/World.svg (renamed from editor/icons/icon_world.svg) | 0 | ||||
-rw-r--r-- | editor/icons/World2D.svg (renamed from editor/icons/icon_world_2d.svg) | 0 | ||||
-rw-r--r-- | editor/icons/WorldEnvironment.svg (renamed from editor/icons/icon_world_environment.svg) | 0 | ||||
-rw-r--r-- | editor/icons/X509Certificate.svg (renamed from editor/icons/icon_x509_certificate.svg) | 0 | ||||
-rw-r--r-- | editor/icons/YSort.svg (renamed from editor/icons/icon_y_sort.svg) | 0 | ||||
-rw-r--r-- | editor/icons/Zoom.svg (renamed from editor/icons/icon_zoom.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ZoomLess.svg (renamed from editor/icons/icon_zoom_less.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ZoomMore.svg (renamed from editor/icons/icon_zoom_more.svg) | 0 | ||||
-rw-r--r-- | editor/icons/ZoomReset.svg (renamed from editor/icons/icon_zoom_reset.svg) | 0 | ||||
-rw-r--r-- | editor/icons/bool.svg (renamed from editor/icons/icon_bool.svg) | 0 | ||||
-rw-r--r-- | editor/icons/editor_icons_builders.py | 10 | ||||
-rw-r--r-- | editor/icons/float.svg (renamed from editor/icons/icon_float.svg) | 0 | ||||
-rw-r--r-- | editor/icons/icon_gizmo_spatial_stream_player.svg | 1 | ||||
-rw-r--r-- | editor/icons/int.svg (renamed from editor/icons/icon_int.svg) | 0 | ||||
-rw-r--r-- | editor/import/editor_import_plugin.cpp | 2 | ||||
-rw-r--r-- | editor/import/editor_scene_importer_gltf.cpp | 101 | ||||
-rw-r--r-- | editor/import/editor_scene_importer_gltf.h | 13 | ||||
-rw-r--r-- | editor/import/resource_importer_bitmask.cpp | 3 | ||||
-rw-r--r-- | editor/import/resource_importer_layered_texture.cpp | 12 | ||||
-rw-r--r-- | editor/import/resource_importer_scene.cpp | 16 | ||||
-rw-r--r-- | editor/import/resource_importer_scene.h | 3 | ||||
-rw-r--r-- | editor/import/resource_importer_texture.cpp | 36 | ||||
-rw-r--r-- | editor/import/resource_importer_texture_atlas.cpp | 26 | ||||
-rw-r--r-- | editor/import/resource_importer_wav.cpp | 16 | ||||
-rw-r--r-- | editor/import/resource_importer_wav.h | 6 | ||||
-rw-r--r-- | editor/import_dock.cpp | 12 | ||||
-rw-r--r-- | editor/inspector_dock.cpp | 35 | ||||
-rw-r--r-- | editor/inspector_dock.h | 6 | ||||
-rw-r--r-- | editor/node_dock.cpp | 4 | ||||
-rw-r--r-- | editor/plugin_config_dialog.cpp | 8 | ||||
-rw-r--r-- | editor/plugins/abstract_polygon_2d_editor.cpp | 22 | ||||
-rw-r--r-- | editor/plugins/animation_blend_space_1d_editor.cpp | 32 | ||||
-rw-r--r-- | editor/plugins/animation_blend_space_2d_editor.cpp | 52 | ||||
-rw-r--r-- | editor/plugins/animation_blend_tree_editor_plugin.cpp | 42 | ||||
-rw-r--r-- | editor/plugins/animation_player_editor_plugin.cpp | 65 | ||||
-rw-r--r-- | editor/plugins/animation_player_editor_plugin.h | 1 | ||||
-rw-r--r-- | editor/plugins/animation_state_machine_editor.cpp | 32 | ||||
-rw-r--r-- | editor/plugins/animation_tree_editor_plugin.cpp | 4 | ||||
-rw-r--r-- | editor/plugins/asset_library_editor_plugin.cpp | 112 | ||||
-rw-r--r-- | editor/plugins/asset_library_editor_plugin.h | 10 | ||||
-rw-r--r-- | editor/plugins/audio_stream_editor_plugin.cpp | 14 | ||||
-rw-r--r-- | editor/plugins/camera_editor_plugin.cpp | 2 | ||||
-rw-r--r-- | editor/plugins/canvas_item_editor_plugin.cpp | 134 | ||||
-rw-r--r-- | editor/plugins/collision_polygon_editor_plugin.cpp | 10 | ||||
-rw-r--r-- | editor/plugins/cpu_particles_2d_editor_plugin.cpp | 22 | ||||
-rw-r--r-- | editor/plugins/cpu_particles_editor_plugin.cpp | 13 | ||||
-rw-r--r-- | editor/plugins/cpu_particles_editor_plugin.h | 1 | ||||
-rw-r--r-- | editor/plugins/curve_editor_plugin.cpp | 16 | ||||
-rw-r--r-- | editor/plugins/debugger_editor_plugin.cpp | 51 | ||||
-rw-r--r-- | editor/plugins/debugger_editor_plugin.h | 50 | ||||
-rw-r--r-- | editor/plugins/editor_preview_plugins.cpp | 31 | ||||
-rw-r--r-- | editor/plugins/gi_probe_editor_plugin.cpp | 4 | ||||
-rw-r--r-- | editor/plugins/gradient_editor_plugin.cpp | 4 | ||||
-rw-r--r-- | editor/plugins/item_list_editor_plugin.cpp | 8 | ||||
-rw-r--r-- | editor/plugins/material_editor_plugin.cpp | 8 | ||||
-rw-r--r-- | editor/plugins/mesh_editor_plugin.cpp | 4 | ||||
-rw-r--r-- | editor/plugins/mesh_instance_editor_plugin.cpp | 18 | ||||
-rw-r--r-- | editor/plugins/mesh_library_editor_plugin.cpp | 6 | ||||
-rw-r--r-- | editor/plugins/multimesh_editor_plugin.cpp | 20 | ||||
-rw-r--r-- | editor/plugins/particles_2d_editor_plugin.cpp | 28 | ||||
-rw-r--r-- | editor/plugins/particles_editor_plugin.cpp | 68 | ||||
-rw-r--r-- | editor/plugins/particles_editor_plugin.h | 6 | ||||
-rw-r--r-- | editor/plugins/path_2d_editor_plugin.cpp | 20 | ||||
-rw-r--r-- | editor/plugins/path_editor_plugin.cpp | 20 | ||||
-rw-r--r-- | editor/plugins/physical_bone_plugin.cpp | 2 | ||||
-rw-r--r-- | editor/plugins/polygon_2d_editor_plugin.cpp | 96 | ||||
-rw-r--r-- | editor/plugins/polygon_2d_editor_plugin.h | 10 | ||||
-rw-r--r-- | editor/plugins/resource_preloader_editor_plugin.cpp | 10 | ||||
-rw-r--r-- | editor/plugins/root_motion_editor_plugin.cpp | 8 | ||||
-rw-r--r-- | editor/plugins/script_editor_plugin.cpp | 251 | ||||
-rw-r--r-- | editor/plugins/script_editor_plugin.h | 20 | ||||
-rw-r--r-- | editor/plugins/script_text_editor.cpp | 125 | ||||
-rw-r--r-- | editor/plugins/script_text_editor.h | 2 | ||||
-rw-r--r-- | editor/plugins/shader_editor_plugin.cpp | 24 | ||||
-rw-r--r-- | editor/plugins/skeleton_2d_editor_plugin.cpp | 2 | ||||
-rw-r--r-- | editor/plugins/skeleton_editor_plugin.cpp | 4 | ||||
-rw-r--r-- | editor/plugins/skeleton_ik_editor_plugin.cpp | 2 | ||||
-rw-r--r-- | editor/plugins/spatial_editor_plugin.cpp | 116 | ||||
-rw-r--r-- | editor/plugins/sprite_editor_plugin.cpp | 24 | ||||
-rw-r--r-- | editor/plugins/sprite_frames_editor_plugin.cpp | 54 | ||||
-rw-r--r-- | editor/plugins/sprite_frames_editor_plugin.h | 2 | ||||
-rw-r--r-- | editor/plugins/style_box_editor_plugin.cpp | 6 | ||||
-rw-r--r-- | editor/plugins/text_editor.cpp | 24 | ||||
-rw-r--r-- | editor/plugins/text_editor.h | 2 | ||||
-rw-r--r-- | editor/plugins/texture_region_editor_plugin.cpp | 30 | ||||
-rw-r--r-- | editor/plugins/theme_editor_plugin.cpp | 12 | ||||
-rw-r--r-- | editor/plugins/tile_map_editor_plugin.cpp | 86 | ||||
-rw-r--r-- | editor/plugins/tile_map_editor_plugin.h | 8 | ||||
-rw-r--r-- | editor/plugins/tile_set_editor_plugin.cpp | 94 | ||||
-rw-r--r-- | editor/plugins/tile_set_editor_plugin.h | 6 | ||||
-rw-r--r-- | editor/plugins/version_control_editor_plugin.cpp | 22 | ||||
-rw-r--r-- | editor/plugins/visual_shader_editor_plugin.cpp | 593 | ||||
-rw-r--r-- | editor/plugins/visual_shader_editor_plugin.h | 33 | ||||
-rw-r--r-- | editor/progress_dialog.cpp | 2 | ||||
-rw-r--r-- | editor/project_export.cpp | 66 | ||||
-rw-r--r-- | editor/project_manager.cpp | 96 | ||||
-rw-r--r-- | editor/project_manager.h | 4 | ||||
-rw-r--r-- | editor/project_settings_editor.cpp | 94 | ||||
-rw-r--r-- | editor/property_editor.cpp | 88 | ||||
-rw-r--r-- | editor/property_selector.cpp | 32 | ||||
-rw-r--r-- | editor/quick_open.cpp | 12 | ||||
-rw-r--r-- | editor/rename_dialog.cpp | 58 | ||||
-rw-r--r-- | editor/reparent_dialog.cpp | 6 | ||||
-rw-r--r-- | editor/run_settings_dialog.cpp | 2 | ||||
-rw-r--r-- | editor/scene_tree_dock.cpp | 136 | ||||
-rw-r--r-- | editor/scene_tree_editor.cpp | 68 | ||||
-rw-r--r-- | editor/script_create_dialog.cpp | 26 | ||||
-rw-r--r-- | editor/settings_config_dialog.cpp | 29 | ||||
-rw-r--r-- | editor/spatial_editor_gizmos.cpp | 71 | ||||
-rw-r--r-- | editor/translations/af.po | 9 | ||||
-rw-r--r-- | editor/translations/ar.po | 9 | ||||
-rw-r--r-- | editor/translations/bg.po | 8 | ||||
-rw-r--r-- | editor/translations/bn.po | 10 | ||||
-rw-r--r-- | editor/translations/ca.po | 8 | ||||
-rw-r--r-- | editor/translations/cs.po | 58 | ||||
-rw-r--r-- | editor/translations/da.po | 8 | ||||
-rw-r--r-- | editor/translations/de.po | 83 | ||||
-rw-r--r-- | editor/translations/de_CH.po | 9 | ||||
-rw-r--r-- | editor/translations/editor.pot | 6 | ||||
-rw-r--r-- | editor/translations/el.po | 8 | ||||
-rw-r--r-- | editor/translations/eo.po | 9 | ||||
-rw-r--r-- | editor/translations/es.po | 8 | ||||
-rw-r--r-- | editor/translations/es_AR.po | 91 | ||||
-rw-r--r-- | editor/translations/et.po | 6 | ||||
-rw-r--r-- | editor/translations/eu.po | 6 | ||||
-rw-r--r-- | editor/translations/fa.po | 9 | ||||
-rw-r--r-- | editor/translations/fi.po | 86 | ||||
-rw-r--r-- | editor/translations/fil.po | 6 | ||||
-rw-r--r-- | editor/translations/fr.po | 95 | ||||
-rw-r--r-- | editor/translations/ga.po | 9 | ||||
-rw-r--r-- | editor/translations/he.po | 9 | ||||
-rw-r--r-- | editor/translations/hi.po | 6 | ||||
-rw-r--r-- | editor/translations/hr.po | 9 | ||||
-rw-r--r-- | editor/translations/hu.po | 9 | ||||
-rw-r--r-- | editor/translations/id.po | 33 | ||||
-rw-r--r-- | editor/translations/is.po | 6 | ||||
-rw-r--r-- | editor/translations/it.po | 23 | ||||
-rw-r--r-- | editor/translations/ja.po | 294 | ||||
-rw-r--r-- | editor/translations/ka.po | 6 | ||||
-rw-r--r-- | editor/translations/ko.po | 9 | ||||
-rw-r--r-- | editor/translations/lt.po | 9 | ||||
-rw-r--r-- | editor/translations/lv.po | 9 | ||||
-rw-r--r-- | editor/translations/mi.po | 6 | ||||
-rw-r--r-- | editor/translations/ml.po | 6 | ||||
-rw-r--r-- | editor/translations/mr.po | 6 | ||||
-rw-r--r-- | editor/translations/ms.po | 6 | ||||
-rw-r--r-- | editor/translations/nb.po | 8 | ||||
-rw-r--r-- | editor/translations/nl.po | 8 | ||||
-rw-r--r-- | editor/translations/or.po | 6 | ||||
-rw-r--r-- | editor/translations/pl.po | 51 | ||||
-rw-r--r-- | editor/translations/pr.po | 9 | ||||
-rw-r--r-- | editor/translations/pt_BR.po | 94 | ||||
-rw-r--r-- | editor/translations/pt_PT.po | 556 | ||||
-rw-r--r-- | editor/translations/ro.po | 9 | ||||
-rw-r--r-- | editor/translations/ru.po | 9 | ||||
-rw-r--r-- | editor/translations/si.po | 6 | ||||
-rw-r--r-- | editor/translations/sk.po | 10 | ||||
-rw-r--r-- | editor/translations/sl.po | 9 | ||||
-rw-r--r-- | editor/translations/sq.po | 9 | ||||
-rw-r--r-- | editor/translations/sr_Cyrl.po | 9 | ||||
-rw-r--r-- | editor/translations/sr_Latn.po | 6 | ||||
-rw-r--r-- | editor/translations/sv.po | 8 | ||||
-rw-r--r-- | editor/translations/ta.po | 6 | ||||
-rw-r--r-- | editor/translations/te.po | 6 | ||||
-rw-r--r-- | editor/translations/th.po | 9 | ||||
-rw-r--r-- | editor/translations/tr.po | 9 | ||||
-rw-r--r-- | editor/translations/uk.po | 78 | ||||
-rw-r--r-- | editor/translations/ur_PK.po | 9 | ||||
-rw-r--r-- | editor/translations/vi.po | 9 | ||||
-rw-r--r-- | editor/translations/zh_CN.po | 79 | ||||
-rw-r--r-- | editor/translations/zh_HK.po | 10 | ||||
-rw-r--r-- | editor/translations/zh_TW.po | 9 |
903 files changed, 5885 insertions, 5008 deletions
diff --git a/editor/SCsub b/editor/SCsub index 2b560f68e8..4431166ee6 100644 --- a/editor/SCsub +++ b/editor/SCsub @@ -82,6 +82,7 @@ if env['tools']: SConscript('collada/SCsub') SConscript('doc/SCsub') + SConscript('debugger/SCsub') SConscript('fileserver/SCsub') SConscript('icons/SCsub') SConscript('import/SCsub') diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp index 719e4af6b5..69e3c3b19d 100644 --- a/editor/animation_bezier_editor.cpp +++ b/editor/animation_bezier_editor.cpp @@ -502,12 +502,12 @@ void AnimationBezierTrackEdit::set_animation_and_track(const Ref<Animation> &p_a animation = p_animation; track = p_track; - if (is_connected("select_key", editor, "_key_selected")) - disconnect("select_key", editor, "_key_selected"); - if (is_connected("deselect_key", editor, "_key_deselected")) - disconnect("deselect_key", editor, "_key_deselected"); - connect("select_key", editor, "_key_selected", varray(p_track), CONNECT_DEFERRED); - connect("deselect_key", editor, "_key_deselected", varray(p_track), CONNECT_DEFERRED); + if (is_connected_compat("select_key", editor, "_key_selected")) + disconnect_compat("select_key", editor, "_key_selected"); + if (is_connected_compat("deselect_key", editor, "_key_deselected")) + disconnect_compat("deselect_key", editor, "_key_deselected"); + connect_compat("select_key", editor, "_key_selected", varray(p_track), CONNECT_DEFERRED); + connect_compat("deselect_key", editor, "_key_deselected", varray(p_track), CONNECT_DEFERRED); update(); } @@ -522,11 +522,11 @@ void AnimationBezierTrackEdit::set_undo_redo(UndoRedo *p_undo_redo) { void AnimationBezierTrackEdit::set_timeline(AnimationTimelineEdit *p_timeline) { timeline = p_timeline; - timeline->connect("zoom_changed", this, "_zoom_changed"); + timeline->connect_compat("zoom_changed", this, "_zoom_changed"); } void AnimationBezierTrackEdit::set_editor(AnimationTrackEditor *p_editor) { editor = p_editor; - connect("clear_selection", editor, "_clear_selection", varray(false)); + connect_compat("clear_selection", editor, "_clear_selection", varray(false)); } void AnimationBezierTrackEdit::_play_position_draw() { @@ -1150,16 +1150,16 @@ void AnimationBezierTrackEdit::_bind_methods() { ClassDB::bind_method("_clear_selection_for_anim", &AnimationBezierTrackEdit::_clear_selection_for_anim); ClassDB::bind_method("_select_at_anim", &AnimationBezierTrackEdit::_select_at_anim); - ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::REAL, "position"), PropertyInfo(Variant::BOOL, "drag"))); + ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"))); ADD_SIGNAL(MethodInfo("remove_request", PropertyInfo(Variant::INT, "track"))); - ADD_SIGNAL(MethodInfo("insert_key", PropertyInfo(Variant::REAL, "ofs"))); + ADD_SIGNAL(MethodInfo("insert_key", PropertyInfo(Variant::FLOAT, "ofs"))); ADD_SIGNAL(MethodInfo("select_key", PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::BOOL, "single"))); ADD_SIGNAL(MethodInfo("deselect_key", PropertyInfo(Variant::INT, "index"))); ADD_SIGNAL(MethodInfo("clear_selection")); ADD_SIGNAL(MethodInfo("close_request")); ADD_SIGNAL(MethodInfo("move_selection_begin")); - ADD_SIGNAL(MethodInfo("move_selection", PropertyInfo(Variant::REAL, "ofs"))); + ADD_SIGNAL(MethodInfo("move_selection", PropertyInfo(Variant::FLOAT, "ofs"))); ADD_SIGNAL(MethodInfo("move_selection_commit")); ADD_SIGNAL(MethodInfo("move_selection_cancel")); } @@ -1184,7 +1184,7 @@ AnimationBezierTrackEdit::AnimationBezierTrackEdit() { play_position->set_mouse_filter(MOUSE_FILTER_PASS); add_child(play_position); play_position->set_anchors_and_margins_preset(PRESET_WIDE); - play_position->connect("draw", this, "_play_position_draw"); + play_position->connect_compat("draw", this, "_play_position_draw"); set_focus_mode(FOCUS_CLICK); v_scroll = 0; @@ -1198,7 +1198,7 @@ AnimationBezierTrackEdit::AnimationBezierTrackEdit() { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_menu_selected"); + menu->connect_compat("id_pressed", this, "_menu_selected"); //set_mouse_filter(MOUSE_FILTER_PASS); //scroll has to work too for selection } diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index cc64db22cc..8758fbcfc9 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -235,7 +235,7 @@ public: Variant::Type t = Variant::Type(int(p_value)); if (t != args[idx].get_type()) { - Variant::CallError err; + Callable::CallError err; if (Variant::can_convert(args[idx].get_type(), t)) { Variant old = args[idx]; Variant *ptrs[1] = { &old }; @@ -548,9 +548,9 @@ public: if (use_fps && animation->get_step() > 0) { float max_frame = animation->get_length() / animation->get_step(); - p_list->push_back(PropertyInfo(Variant::REAL, "frame", PROPERTY_HINT_RANGE, "0," + rtos(max_frame) + ",1")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "frame", PROPERTY_HINT_RANGE, "0," + rtos(max_frame) + ",1")); } else { - p_list->push_back(PropertyInfo(Variant::REAL, "time", PROPERTY_HINT_RANGE, "0," + rtos(animation->get_length()) + ",0.01")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "time", PROPERTY_HINT_RANGE, "0," + rtos(animation->get_length()) + ",0.01")); } switch (animation->track_get_type(track)) { @@ -593,7 +593,7 @@ public: } break; case Animation::TYPE_METHOD: { - p_list->push_back(PropertyInfo(Variant::STRING, "name")); + p_list->push_back(PropertyInfo(Variant::STRING_NAME, "name")); p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,5,1")); Dictionary d = animation->track_get_key_value(track, key); @@ -617,7 +617,7 @@ public: } break; case Animation::TYPE_BEZIER: { - p_list->push_back(PropertyInfo(Variant::REAL, "value")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "value")); p_list->push_back(PropertyInfo(Variant::VECTOR2, "in_handle")); p_list->push_back(PropertyInfo(Variant::VECTOR2, "out_handle")); @@ -625,8 +625,8 @@ public: case Animation::TYPE_AUDIO: { p_list->push_back(PropertyInfo(Variant::OBJECT, "stream", PROPERTY_HINT_RESOURCE_TYPE, "AudioStream")); - p_list->push_back(PropertyInfo(Variant::REAL, "start_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); - p_list->push_back(PropertyInfo(Variant::REAL, "end_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "start_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "end_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); } break; case Animation::TYPE_ANIMATION: { @@ -654,13 +654,13 @@ public: } animations += "[stop]"; - p_list->push_back(PropertyInfo(Variant::STRING, "animation", PROPERTY_HINT_ENUM, animations)); + p_list->push_back(PropertyInfo(Variant::STRING_NAME, "animation", PROPERTY_HINT_ENUM, animations)); } break; } if (animation->track_get_type(track) == Animation::TYPE_VALUE) { - p_list->push_back(PropertyInfo(Variant::REAL, "easing", PROPERTY_HINT_EXP_EASING)); + p_list->push_back(PropertyInfo(Variant::FLOAT, "easing", PROPERTY_HINT_EXP_EASING)); } } @@ -898,7 +898,7 @@ public: Variant::Type t = Variant::Type(int(p_value)); if (t != args[idx].get_type()) { - Variant::CallError err; + Callable::CallError err; if (Variant::can_convert(args[idx].get_type(), t)) { Variant old = args[idx]; Variant *ptrs[1] = { &old }; @@ -1243,9 +1243,9 @@ public: if (use_fps && animation->get_step() > 0) { float max_frame = animation->get_length() / animation->get_step(); - p_list->push_back(PropertyInfo(Variant::REAL, "frame", PROPERTY_HINT_RANGE, "0," + rtos(max_frame) + ",1")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "frame", PROPERTY_HINT_RANGE, "0," + rtos(max_frame) + ",1")); } else { - p_list->push_back(PropertyInfo(Variant::REAL, "time", PROPERTY_HINT_RANGE, "0," + rtos(animation->get_length()) + ",0.01")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "time", PROPERTY_HINT_RANGE, "0," + rtos(animation->get_length()) + ",0.01")); } } @@ -1289,11 +1289,11 @@ public: p_list->push_back(PropertyInfo(v.get_type(), "value", hint, hint_string)); } - p_list->push_back(PropertyInfo(Variant::REAL, "easing", PROPERTY_HINT_EXP_EASING)); + p_list->push_back(PropertyInfo(Variant::FLOAT, "easing", PROPERTY_HINT_EXP_EASING)); } break; case Animation::TYPE_METHOD: { - p_list->push_back(PropertyInfo(Variant::STRING, "name")); + p_list->push_back(PropertyInfo(Variant::STRING_NAME, "name")); p_list->push_back(PropertyInfo(Variant::INT, "arg_count", PROPERTY_HINT_RANGE, "0,5,1")); Dictionary d = animation->track_get_key_value(first_track, first_key); @@ -1316,15 +1316,15 @@ public: } break; case Animation::TYPE_BEZIER: { - p_list->push_back(PropertyInfo(Variant::REAL, "value")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "value")); p_list->push_back(PropertyInfo(Variant::VECTOR2, "in_handle")); p_list->push_back(PropertyInfo(Variant::VECTOR2, "out_handle")); } break; case Animation::TYPE_AUDIO: { p_list->push_back(PropertyInfo(Variant::OBJECT, "stream", PROPERTY_HINT_RESOURCE_TYPE, "AudioStream")); - p_list->push_back(PropertyInfo(Variant::REAL, "start_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); - p_list->push_back(PropertyInfo(Variant::REAL, "end_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "start_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); + p_list->push_back(PropertyInfo(Variant::FLOAT, "end_offset", PROPERTY_HINT_RANGE, "0,3600,0.01,or_greater")); } break; case Animation::TYPE_ANIMATION: { @@ -1354,7 +1354,7 @@ public: } animations += "[stop]"; - p_list->push_back(PropertyInfo(Variant::STRING, "animation", PROPERTY_HINT_ENUM, animations)); + p_list->push_back(PropertyInfo(Variant::STRING_NAME, "animation", PROPERTY_HINT_ENUM, animations)); } break; } } @@ -1697,7 +1697,7 @@ void AnimationTimelineEdit::set_undo_redo(UndoRedo *p_undo_redo) { void AnimationTimelineEdit::set_zoom(Range *p_zoom) { zoom = p_zoom; - zoom->connect("value_changed", this, "_zoom_changed"); + zoom->connect_compat("value_changed", this, "_zoom_changed"); } void AnimationTimelineEdit::set_play_position(float p_pos) { @@ -1854,9 +1854,9 @@ void AnimationTimelineEdit::_bind_methods() { ADD_SIGNAL(MethodInfo("zoom_changed")); ADD_SIGNAL(MethodInfo("name_limit_changed")); - ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::REAL, "position"), PropertyInfo(Variant::BOOL, "drag"))); + ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"))); ADD_SIGNAL(MethodInfo("track_added", PropertyInfo(Variant::INT, "track"))); - ADD_SIGNAL(MethodInfo("length_changed", PropertyInfo(Variant::REAL, "size"))); + ADD_SIGNAL(MethodInfo("length_changed", PropertyInfo(Variant::FLOAT, "size"))); } AnimationTimelineEdit::AnimationTimelineEdit() { @@ -1871,7 +1871,7 @@ AnimationTimelineEdit::AnimationTimelineEdit() { play_position->set_mouse_filter(MOUSE_FILTER_PASS); add_child(play_position); play_position->set_anchors_and_margins_preset(PRESET_WIDE); - play_position->connect("draw", this, "_play_position_draw"); + play_position->connect_compat("draw", this, "_play_position_draw"); add_track = memnew(MenuButton); add_track->set_position(Vector2(0, 0)); @@ -1895,17 +1895,17 @@ AnimationTimelineEdit::AnimationTimelineEdit() { length->set_custom_minimum_size(Vector2(70 * EDSCALE, 0)); length->set_hide_slider(true); length->set_tooltip(TTR("Animation length (seconds)")); - length->connect("value_changed", this, "_anim_length_changed"); + length->connect_compat("value_changed", this, "_anim_length_changed"); len_hb->add_child(length); loop = memnew(ToolButton); loop->set_tooltip(TTR("Animation Looping")); - loop->connect("pressed", this, "_anim_loop_pressed"); + loop->connect_compat("pressed", this, "_anim_loop_pressed"); loop->set_toggle_mode(true); len_hb->add_child(loop); add_child(len_hb); add_track->hide(); - add_track->get_popup()->connect("index_pressed", this, "_track_added"); + add_track->get_popup()->connect_compat("index_pressed", this, "_track_added"); len_hb->hide(); panning_timeline = false; @@ -2429,8 +2429,8 @@ void AnimationTrackEdit::set_undo_redo(UndoRedo *p_undo_redo) { void AnimationTrackEdit::set_timeline(AnimationTimelineEdit *p_timeline) { timeline = p_timeline; - timeline->connect("zoom_changed", this, "_zoom_changed"); - timeline->connect("name_limit_changed", this, "_zoom_changed"); + timeline->connect_compat("zoom_changed", this, "_zoom_changed"); + timeline->connect_compat("name_limit_changed", this, "_zoom_changed"); } void AnimationTrackEdit::set_editor(AnimationTrackEditor *p_editor) { editor = p_editor; @@ -2480,6 +2480,9 @@ void AnimationTrackEdit::_path_entered(const String &p_text) { bool AnimationTrackEdit::_is_value_key_valid(const Variant &p_key_value, Variant::Type &r_valid_type) const { + if (root == nullptr) + return false; + RES res; Vector<StringName> leftover_path; Node *node = root->get_node_and_resource(animation->track_get_path(track), res, leftover_path); @@ -2688,7 +2691,7 @@ void AnimationTrackEdit::_gui_input(const Ref<InputEvent> &p_event) { if (!menu) { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_menu_selected"); + menu->connect_compat("id_pressed", this, "_menu_selected"); } menu->clear(); menu->add_icon_item(get_icon("TrackContinuous", "EditorIcons"), TTR("Continuous"), MENU_CALL_MODE_CONTINUOUS); @@ -2707,7 +2710,7 @@ void AnimationTrackEdit::_gui_input(const Ref<InputEvent> &p_event) { if (!menu) { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_menu_selected"); + menu->connect_compat("id_pressed", this, "_menu_selected"); } menu->clear(); menu->add_icon_item(get_icon("InterpRaw", "EditorIcons"), TTR("Nearest"), MENU_INTERPOLATION_NEAREST); @@ -2725,7 +2728,7 @@ void AnimationTrackEdit::_gui_input(const Ref<InputEvent> &p_event) { if (!menu) { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_menu_selected"); + menu->connect_compat("id_pressed", this, "_menu_selected"); } menu->clear(); menu->add_icon_item(get_icon("InterpWrapClamp", "EditorIcons"), TTR("Clamp Loop Interp"), MENU_LOOP_CLAMP); @@ -2820,7 +2823,7 @@ void AnimationTrackEdit::_gui_input(const Ref<InputEvent> &p_event) { if (!menu) { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_menu_selected"); + menu->connect_compat("id_pressed", this, "_menu_selected"); } menu->clear(); @@ -2848,7 +2851,7 @@ void AnimationTrackEdit::_gui_input(const Ref<InputEvent> &p_event) { path = memnew(LineEdit); add_child(path); path->set_as_toplevel(true); - path->connect("text_entered", this, "_path_entered"); + path->connect_compat("text_entered", this, "_path_entered"); } path->set_text(animation->track_get_path(track)); @@ -3073,16 +3076,16 @@ void AnimationTrackEdit::_bind_methods() { ClassDB::bind_method("_path_entered", &AnimationTrackEdit::_path_entered); ClassDB::bind_method("_play_position_draw", &AnimationTrackEdit::_play_position_draw); - ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::REAL, "position"), PropertyInfo(Variant::BOOL, "drag"))); + ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"))); ADD_SIGNAL(MethodInfo("remove_request", PropertyInfo(Variant::INT, "track"))); ADD_SIGNAL(MethodInfo("dropped", PropertyInfo(Variant::INT, "from_track"), PropertyInfo(Variant::INT, "to_track"))); - ADD_SIGNAL(MethodInfo("insert_key", PropertyInfo(Variant::REAL, "ofs"))); + ADD_SIGNAL(MethodInfo("insert_key", PropertyInfo(Variant::FLOAT, "ofs"))); ADD_SIGNAL(MethodInfo("select_key", PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::BOOL, "single"))); ADD_SIGNAL(MethodInfo("deselect_key", PropertyInfo(Variant::INT, "index"))); ADD_SIGNAL(MethodInfo("bezier_edit")); ADD_SIGNAL(MethodInfo("move_selection_begin")); - ADD_SIGNAL(MethodInfo("move_selection", PropertyInfo(Variant::REAL, "ofs"))); + ADD_SIGNAL(MethodInfo("move_selection", PropertyInfo(Variant::FLOAT, "ofs"))); ADD_SIGNAL(MethodInfo("move_selection_commit")); ADD_SIGNAL(MethodInfo("move_selection_cancel")); @@ -3111,7 +3114,7 @@ AnimationTrackEdit::AnimationTrackEdit() { play_position->set_mouse_filter(MOUSE_FILTER_PASS); add_child(play_position); play_position->set_anchors_and_margins_preset(PRESET_WIDE); - play_position->connect("draw", this, "_play_position_draw"); + play_position->connect_compat("draw", this, "_play_position_draw"); set_focus_mode(FOCUS_CLICK); set_mouse_filter(MOUSE_FILTER_PASS); //scroll has to work too for selection } @@ -3138,7 +3141,7 @@ AnimationTrackEdit *AnimationTrackEditPlugin::create_value_track_edit(Object *p_ &args[5] }; - Variant::CallError ce; + Callable::CallError ce; return Object::cast_to<AnimationTrackEdit>(get_script_instance()->call("create_value_track_edit", (const Variant **)&argptrs, 6, ce).operator Object *()); } return NULL; @@ -3217,8 +3220,8 @@ Size2 AnimationTrackEditGroup::get_minimum_size() const { void AnimationTrackEditGroup::set_timeline(AnimationTimelineEdit *p_timeline) { timeline = p_timeline; - timeline->connect("zoom_changed", this, "_zoom_changed"); - timeline->connect("name_limit_changed", this, "_zoom_changed"); + timeline->connect_compat("zoom_changed", this, "_zoom_changed"); + timeline->connect_compat("name_limit_changed", this, "_zoom_changed"); } void AnimationTrackEditGroup::set_root(Node *p_root) { @@ -3258,7 +3261,7 @@ void AnimationTrackEditor::set_animation(const Ref<Animation> &p_anim) { track_edits[_get_track_selected()]->release_focus(); } if (animation.is_valid()) { - animation->disconnect("changed", this, "_animation_changed"); + animation->disconnect_compat("changed", this, "_animation_changed"); _clear_selection(); } animation = p_anim; @@ -3268,7 +3271,7 @@ void AnimationTrackEditor::set_animation(const Ref<Animation> &p_anim) { _update_tracks(); if (animation.is_valid()) { - animation->connect("changed", this, "_animation_changed"); + animation->connect_compat("changed", this, "_animation_changed"); hscroll->show(); edit->set_disabled(false); @@ -3311,13 +3314,13 @@ void AnimationTrackEditor::_root_removed(Node *p_root) { void AnimationTrackEditor::set_root(Node *p_root) { if (root) { - root->disconnect("tree_exiting", this, "_root_removed"); + root->disconnect_compat("tree_exiting", this, "_root_removed"); } root = p_root; if (root) { - root->connect("tree_exiting", this, "_root_removed", make_binds(), CONNECT_ONESHOT); + root->connect_compat("tree_exiting", this, "_root_removed", make_binds(), CONNECT_ONESHOT); } _update_tracks(); @@ -3482,7 +3485,7 @@ void AnimationTrackEditor::_query_insert(const InsertData &p_id) { switch (insert_data[i].value.get_type()) { case Variant::INT: - case Variant::REAL: + case Variant::FLOAT: case Variant::VECTOR2: case Variant::VECTOR3: case Variant::QUAT: @@ -3913,7 +3916,7 @@ static Vector<String> _get_bezier_subindices_for_type(Variant::Type p_type, bool case Variant::INT: { subindices.push_back(""); } break; - case Variant::REAL: { + case Variant::FLOAT: { subindices.push_back(""); } break; case Variant::VECTOR2: { @@ -3991,7 +3994,7 @@ int AnimationTrackEditor::_confirm_insert(InsertData p_id, int p_last_track, boo PropertyInfo h = _find_hint_for_track(animation->get_track_count() - 1, np); animation->remove_track(animation->get_track_count() - 1); //hack - if (h.type == Variant::REAL || + if (h.type == Variant::FLOAT || h.type == Variant::VECTOR2 || h.type == Variant::RECT2 || h.type == Variant::VECTOR3 || @@ -4257,21 +4260,21 @@ void AnimationTrackEditor::_update_tracks() { track_edit->grab_focus(); } - track_edit->connect("timeline_changed", this, "_timeline_changed"); - track_edit->connect("remove_request", this, "_track_remove_request", varray(), CONNECT_DEFERRED); - track_edit->connect("dropped", this, "_dropped_track", varray(), CONNECT_DEFERRED); - track_edit->connect("insert_key", this, "_insert_key_from_track", varray(i), CONNECT_DEFERRED); - track_edit->connect("select_key", this, "_key_selected", varray(i), CONNECT_DEFERRED); - track_edit->connect("deselect_key", this, "_key_deselected", varray(i), CONNECT_DEFERRED); - track_edit->connect("bezier_edit", this, "_bezier_edit", varray(i), CONNECT_DEFERRED); - track_edit->connect("move_selection_begin", this, "_move_selection_begin"); - track_edit->connect("move_selection", this, "_move_selection"); - track_edit->connect("move_selection_commit", this, "_move_selection_commit"); - track_edit->connect("move_selection_cancel", this, "_move_selection_cancel"); + track_edit->connect_compat("timeline_changed", this, "_timeline_changed"); + track_edit->connect_compat("remove_request", this, "_track_remove_request", varray(), CONNECT_DEFERRED); + track_edit->connect_compat("dropped", this, "_dropped_track", varray(), CONNECT_DEFERRED); + track_edit->connect_compat("insert_key", this, "_insert_key_from_track", varray(i), CONNECT_DEFERRED); + track_edit->connect_compat("select_key", this, "_key_selected", varray(i), CONNECT_DEFERRED); + track_edit->connect_compat("deselect_key", this, "_key_deselected", varray(i), CONNECT_DEFERRED); + track_edit->connect_compat("bezier_edit", this, "_bezier_edit", varray(i), CONNECT_DEFERRED); + track_edit->connect_compat("move_selection_begin", this, "_move_selection_begin"); + track_edit->connect_compat("move_selection", this, "_move_selection"); + track_edit->connect_compat("move_selection_commit", this, "_move_selection_commit"); + track_edit->connect_compat("move_selection_cancel", this, "_move_selection_cancel"); - track_edit->connect("duplicate_request", this, "_edit_menu_pressed", varray(EDIT_DUPLICATE_SELECTION), CONNECT_DEFERRED); - track_edit->connect("duplicate_transpose_request", this, "_edit_menu_pressed", varray(EDIT_DUPLICATE_TRANSPOSED), CONNECT_DEFERRED); - track_edit->connect("delete_request", this, "_edit_menu_pressed", varray(EDIT_DELETE_SELECTION), CONNECT_DEFERRED); + track_edit->connect_compat("duplicate_request", this, "_edit_menu_pressed", varray(EDIT_DUPLICATE_SELECTION), CONNECT_DEFERRED); + track_edit->connect_compat("duplicate_transpose_request", this, "_edit_menu_pressed", varray(EDIT_DUPLICATE_TRANSPOSED), CONNECT_DEFERRED); + track_edit->connect_compat("delete_request", this, "_edit_menu_pressed", varray(EDIT_DELETE_SELECTION), CONNECT_DEFERRED); } } @@ -4384,7 +4387,7 @@ void AnimationTrackEditor::_notification(int p_what) { } if (p_what == NOTIFICATION_READY) { - EditorNode::get_singleton()->get_editor_selection()->connect("selection_changed", this, "_selection_changed"); + EditorNode::get_singleton()->get_editor_selection()->connect_compat("selection_changed", this, "_selection_changed"); } if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { @@ -4473,7 +4476,7 @@ void AnimationTrackEditor::_new_track_node_selected(NodePath p_path) { Vector<Variant::Type> filter; filter.push_back(Variant::INT); - filter.push_back(Variant::REAL); + filter.push_back(Variant::FLOAT); filter.push_back(Variant::VECTOR2); filter.push_back(Variant::VECTOR3); filter.push_back(Variant::QUAT); @@ -4543,7 +4546,7 @@ void AnimationTrackEditor::_new_track_property_selected(String p_name) { animation->track_set_path(animation->get_track_count() - 1, full_path); PropertyInfo h = _find_hint_for_track(animation->get_track_count() - 1, np); animation->remove_track(animation->get_track_count() - 1); //hack - if (h.type == Variant::REAL || + if (h.type == Variant::FLOAT || h.type == Variant::VECTOR2 || h.type == Variant::RECT2 || h.type == Variant::VECTOR3 || @@ -4753,7 +4756,7 @@ void AnimationTrackEditor::_add_method_key(const String &p_method) { Variant arg = E->get().default_arguments[i - first_defarg]; params.push_back(arg); } else { - Variant::CallError ce; + Callable::CallError ce; Variant arg = Variant::construct(E->get().arguments[i].type, NULL, 0, ce); params.push_back(arg); } @@ -5707,7 +5710,7 @@ float AnimationTrackEditor::snap_time(float p_value, bool p_relative) { return p_value; } -void AnimationTrackEditor::_show_imported_anim_warning() const { +void AnimationTrackEditor::_show_imported_anim_warning() { // It looks terrible on a single line but the TTR extractor doesn't support line breaks yet. EditorNode::get_singleton()->show_warning(TTR("This animation belongs to an imported scene, so changes to imported tracks will not be saved.\n\nTo enable the ability to add custom tracks, navigate to the scene's import settings and set\n\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks\", then re-import.\nAlternatively, use an import preset that imports animations to separate files."), @@ -5777,10 +5780,10 @@ void AnimationTrackEditor::_bind_methods() { ClassDB::bind_method("_show_imported_anim_warning", &AnimationTrackEditor::_show_imported_anim_warning); ClassDB::bind_method("_select_all_tracks_for_copy", &AnimationTrackEditor::_select_all_tracks_for_copy); - ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::REAL, "position"), PropertyInfo(Variant::BOOL, "drag"))); + ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"))); ADD_SIGNAL(MethodInfo("keying_changed")); - ADD_SIGNAL(MethodInfo("animation_len_changed", PropertyInfo(Variant::REAL, "len"))); - ADD_SIGNAL(MethodInfo("animation_step_changed", PropertyInfo(Variant::REAL, "step"))); + ADD_SIGNAL(MethodInfo("animation_len_changed", PropertyInfo(Variant::FLOAT, "len"))); + ADD_SIGNAL(MethodInfo("animation_step_changed", PropertyInfo(Variant::FLOAT, "step"))); } AnimationTrackEditor::AnimationTrackEditor() { @@ -5813,11 +5816,11 @@ AnimationTrackEditor::AnimationTrackEditor() { timeline = memnew(AnimationTimelineEdit); timeline->set_undo_redo(undo_redo); timeline_vbox->add_child(timeline); - timeline->connect("timeline_changed", this, "_timeline_changed"); - timeline->connect("name_limit_changed", this, "_name_limit_changed"); - timeline->connect("track_added", this, "_add_track"); - timeline->connect("value_changed", this, "_timeline_value_changed"); - timeline->connect("length_changed", this, "_update_length"); + timeline->connect_compat("timeline_changed", this, "_timeline_changed"); + timeline->connect_compat("name_limit_changed", this, "_name_limit_changed"); + timeline->connect_compat("track_added", this, "_add_track"); + timeline->connect_compat("value_changed", this, "_timeline_value_changed"); + timeline->connect_compat("length_changed", this, "_update_length"); scroll = memnew(ScrollContainer); timeline_vbox->add_child(scroll); @@ -5825,7 +5828,7 @@ AnimationTrackEditor::AnimationTrackEditor() { VScrollBar *sb = scroll->get_v_scrollbar(); scroll->remove_child(sb); timeline_scroll->add_child(sb); //move here so timeline and tracks are always aligned - scroll->connect("gui_input", this, "_scroll_input"); + scroll->connect_compat("gui_input", this, "_scroll_input"); bezier_edit = memnew(AnimationBezierTrackEdit); timeline_vbox->add_child(bezier_edit); @@ -5834,14 +5837,14 @@ AnimationTrackEditor::AnimationTrackEditor() { bezier_edit->set_timeline(timeline); bezier_edit->hide(); bezier_edit->set_v_size_flags(SIZE_EXPAND_FILL); - bezier_edit->connect("close_request", this, "_cancel_bezier_edit"); + bezier_edit->connect_compat("close_request", this, "_cancel_bezier_edit"); timeline_vbox->set_custom_minimum_size(Size2(0, 150) * EDSCALE); hscroll = memnew(HScrollBar); hscroll->share(timeline); hscroll->hide(); - hscroll->connect("value_changed", this, "_update_scroll"); + hscroll->connect_compat("value_changed", this, "_update_scroll"); timeline_vbox->add_child(hscroll); timeline->set_hscroll(hscroll); @@ -5858,20 +5861,20 @@ AnimationTrackEditor::AnimationTrackEditor() { imported_anim_warning = memnew(Button); imported_anim_warning->hide(); imported_anim_warning->set_tooltip(TTR("Warning: Editing imported animation")); - imported_anim_warning->connect("pressed", this, "_show_imported_anim_warning"); + imported_anim_warning->connect_compat("pressed", this, "_show_imported_anim_warning"); bottom_hb->add_child(imported_anim_warning); bottom_hb->add_spacer(); selected_filter = memnew(ToolButton); - selected_filter->connect("pressed", this, "_view_group_toggle"); //same function works the same + selected_filter->connect_compat("pressed", this, "_view_group_toggle"); //same function works the same selected_filter->set_toggle_mode(true); selected_filter->set_tooltip(TTR("Only show tracks from nodes selected in tree.")); bottom_hb->add_child(selected_filter); view_group = memnew(ToolButton); - view_group->connect("pressed", this, "_view_group_toggle"); + view_group->connect_compat("pressed", this, "_view_group_toggle"); view_group->set_toggle_mode(true); view_group->set_tooltip(TTR("Group tracks by node or display them as plain list.")); @@ -5893,14 +5896,14 @@ AnimationTrackEditor::AnimationTrackEditor() { step->set_custom_minimum_size(Size2(100, 0) * EDSCALE); step->set_tooltip(TTR("Animation step value.")); bottom_hb->add_child(step); - step->connect("value_changed", this, "_update_step"); + step->connect_compat("value_changed", this, "_update_step"); step->set_read_only(true); snap_mode = memnew(OptionButton); snap_mode->add_item(TTR("Seconds")); snap_mode->add_item(TTR("FPS")); bottom_hb->add_child(snap_mode); - snap_mode->connect("item_selected", this, "_snap_mode_changed"); + snap_mode->connect_compat("item_selected", this, "_snap_mode_changed"); snap_mode->set_disabled(true); bottom_hb->add_child(memnew(VSeparator)); @@ -5945,19 +5948,19 @@ AnimationTrackEditor::AnimationTrackEditor() { edit->get_popup()->add_item(TTR("Optimize Animation"), EDIT_OPTIMIZE_ANIMATION); edit->get_popup()->add_item(TTR("Clean-Up Animation"), EDIT_CLEAN_UP_ANIMATION); - edit->get_popup()->connect("id_pressed", this, "_edit_menu_pressed"); + edit->get_popup()->connect_compat("id_pressed", this, "_edit_menu_pressed"); pick_track = memnew(SceneTreeDialog); add_child(pick_track); pick_track->set_title(TTR("Pick the node that will be animated:")); - pick_track->connect("selected", this, "_new_track_node_selected"); + pick_track->connect_compat("selected", this, "_new_track_node_selected"); prop_selector = memnew(PropertySelector); add_child(prop_selector); - prop_selector->connect("selected", this, "_new_track_property_selected"); + prop_selector->connect_compat("selected", this, "_new_track_property_selected"); method_selector = memnew(PropertySelector); add_child(method_selector); - method_selector->connect("selected", this, "_add_method_key"); + method_selector->connect_compat("selected", this, "_add_method_key"); inserting = false; insert_query = false; @@ -5966,7 +5969,7 @@ AnimationTrackEditor::AnimationTrackEditor() { insert_confirm = memnew(ConfirmationDialog); add_child(insert_confirm); - insert_confirm->connect("confirmed", this, "_confirm_insert_list"); + insert_confirm->connect_compat("confirmed", this, "_confirm_insert_list"); VBoxContainer *icvb = memnew(VBoxContainer); insert_confirm->add_child(icvb); insert_confirm_text = memnew(Label); @@ -5984,7 +5987,7 @@ AnimationTrackEditor::AnimationTrackEditor() { box_selection->set_as_toplevel(true); box_selection->set_mouse_filter(MOUSE_FILTER_IGNORE); box_selection->hide(); - box_selection->connect("draw", this, "_box_selection_draw"); + box_selection->connect_compat("draw", this, "_box_selection_draw"); box_selecting = false; //default plugins @@ -6022,7 +6025,7 @@ AnimationTrackEditor::AnimationTrackEditor() { optimize_max_angle->set_value(22); optimize_dialog->get_ok()->set_text(TTR("Optimize")); - optimize_dialog->connect("confirmed", this, "_edit_menu_pressed", varray(EDIT_CLEAN_UP_ANIMATION_CONFIRM)); + optimize_dialog->connect_compat("confirmed", this, "_edit_menu_pressed", varray(EDIT_CLEAN_UP_ANIMATION_CONFIRM)); // @@ -6048,7 +6051,7 @@ AnimationTrackEditor::AnimationTrackEditor() { cleanup_dialog->set_title(TTR("Clean-Up Animation(s) (NO UNDO!)")); cleanup_dialog->get_ok()->set_text(TTR("Clean-Up")); - cleanup_dialog->connect("confirmed", this, "_edit_menu_pressed", varray(EDIT_CLEAN_UP_ANIMATION_CONFIRM)); + cleanup_dialog->connect_compat("confirmed", this, "_edit_menu_pressed", varray(EDIT_CLEAN_UP_ANIMATION_CONFIRM)); // scale_dialog = memnew(ConfirmationDialog); @@ -6060,7 +6063,7 @@ AnimationTrackEditor::AnimationTrackEditor() { scale->set_max(99999); scale->set_step(0.001); vbc->add_margin_child(TTR("Scale Ratio:"), scale); - scale_dialog->connect("confirmed", this, "_edit_menu_pressed", varray(EDIT_SCALE_CONFIRM)); + scale_dialog->connect_compat("confirmed", this, "_edit_menu_pressed", varray(EDIT_SCALE_CONFIRM)); add_child(scale_dialog); track_copy_dialog = memnew(ConfirmationDialog); @@ -6073,7 +6076,7 @@ AnimationTrackEditor::AnimationTrackEditor() { Button *select_all_button = memnew(Button); select_all_button->set_text(TTR("Select All/None")); - select_all_button->connect("pressed", this, "_select_all_tracks_for_copy"); + select_all_button->connect_compat("pressed", this, "_select_all_tracks_for_copy"); track_vbox->add_child(select_all_button); track_copy_select = memnew(Tree); @@ -6081,7 +6084,7 @@ AnimationTrackEditor::AnimationTrackEditor() { track_copy_select->set_v_size_flags(SIZE_EXPAND_FILL); track_copy_select->set_hide_root(true); track_vbox->add_child(track_copy_select); - track_copy_dialog->connect("confirmed", this, "_edit_menu_pressed", varray(EDIT_COPY_TRACKS_CONFIRM)); + track_copy_dialog->connect_compat("confirmed", this, "_edit_menu_pressed", varray(EDIT_COPY_TRACKS_CONFIRM)); animation_changing_awaiting_update = false; } diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h index c2660652d6..26f9c15f6c 100644 --- a/editor/animation_track_editor.h +++ b/editor/animation_track_editor.h @@ -314,7 +314,7 @@ class AnimationTrackEditor : public VBoxContainer { OptionButton *snap_mode; Button *imported_anim_warning; - void _show_imported_anim_warning() const; + void _show_imported_anim_warning(); void _snap_mode_changed(int p_mode); Vector<AnimationTrackEdit *> track_edits; diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp index bcdd09987f..b94d1645db 100644 --- a/editor/animation_track_editor_plugins.cpp +++ b/editor/animation_track_editor_plugins.cpp @@ -334,7 +334,7 @@ void AnimationTrackEditAudio::_bind_methods() { } AnimationTrackEditAudio::AnimationTrackEditAudio() { - AudioStreamPreviewGenerator::get_singleton()->connect("preview_updated", this, "_preview_changed"); + AudioStreamPreviewGenerator::get_singleton()->connect_compat("preview_updated", this, "_preview_changed"); } /// SPRITE FRAME / FRAME_COORDS /// @@ -949,7 +949,7 @@ void AnimationTrackEditTypeAudio::_bind_methods() { } AnimationTrackEditTypeAudio::AnimationTrackEditTypeAudio() { - AudioStreamPreviewGenerator::get_singleton()->connect("preview_updated", this, "_preview_changed"); + AudioStreamPreviewGenerator::get_singleton()->connect_compat("preview_updated", this, "_preview_changed"); len_resizing = false; } diff --git a/editor/array_property_edit.cpp b/editor/array_property_edit.cpp index 8cbc6a8dff..f14b12b132 100644 --- a/editor/array_property_edit.cpp +++ b/editor/array_property_edit.cpp @@ -42,7 +42,7 @@ Variant ArrayPropertyEdit::get_array() const { return Array(); Variant arr = o->get(property); if (!arr.is_array()) { - Variant::CallError ce; + Callable::CallError ce; arr = Variant::construct(default_type, NULL, 0, ce); } return arr; @@ -104,7 +104,7 @@ bool ArrayPropertyEdit::_set(const StringName &p_name, const Variant &p_value) { } else if (newsize > size) { Variant init; - Variant::CallError ce; + Callable::CallError ce; Variant::Type new_type = subtype; if (new_type == Variant::NIL && size) { new_type = arr.get(size - 1).get_type(); @@ -139,7 +139,7 @@ bool ArrayPropertyEdit::_set(const StringName &p_name, const Variant &p_value) { Variant value = arr.get(idx); if (value.get_type() != type && type >= 0 && type < Variant::VARIANT_MAX) { - Variant::CallError ce; + Callable::CallError ce; Variant new_value = Variant::construct(Variant::Type(type), NULL, 0, ce); UndoRedo *ur = EditorNode::get_undo_redo(); diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index e898bc54dd..86631def9d 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -200,7 +200,7 @@ void FindReplaceBar::_replace() { void FindReplaceBar::_replace_all() { - text_edit->disconnect("text_changed", this, "_editor_text_changed"); + text_edit->disconnect_compat("text_changed", this, "_editor_text_changed"); // Line as x so it gets priority in comparison, column as y. Point2i orig_cursor(text_edit->cursor_get_line(), text_edit->cursor_get_column()); Point2i prev_match = Point2(-1, -1); @@ -280,7 +280,7 @@ void FindReplaceBar::_replace_all() { matches_label->add_color_override("font_color", rc > 0 ? get_color("font_color", "Label") : get_color("error_color", "Editor")); matches_label->set_text(vformat(TTR("%d replaced."), rc)); - text_edit->call_deferred("connect", "text_changed", this, "_editor_text_changed"); + text_edit->call_deferred("connect", "text_changed", Callable(this, "_editor_text_changed")); results_count = -1; } @@ -559,7 +559,7 @@ void FindReplaceBar::set_text_edit(TextEdit *p_text_edit) { results_count = -1; text_edit = p_text_edit; - text_edit->connect("text_changed", this, "_editor_text_changed"); + text_edit->connect_compat("text_changed", this, "_editor_text_changed"); } void FindReplaceBar::_bind_methods() { @@ -613,8 +613,8 @@ FindReplaceBar::FindReplaceBar() { search_text = memnew(LineEdit); vbc_lineedit->add_child(search_text); search_text->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); - search_text->connect("text_changed", this, "_search_text_changed"); - search_text->connect("text_entered", this, "_search_text_entered"); + search_text->connect_compat("text_changed", this, "_search_text_changed"); + search_text->connect_compat("text_entered", this, "_search_text_entered"); matches_label = memnew(Label); hbc_button_search->add_child(matches_label); @@ -623,51 +623,51 @@ FindReplaceBar::FindReplaceBar() { find_prev = memnew(ToolButton); hbc_button_search->add_child(find_prev); find_prev->set_focus_mode(FOCUS_NONE); - find_prev->connect("pressed", this, "_search_prev"); + find_prev->connect_compat("pressed", this, "_search_prev"); find_next = memnew(ToolButton); hbc_button_search->add_child(find_next); find_next->set_focus_mode(FOCUS_NONE); - find_next->connect("pressed", this, "_search_next"); + find_next->connect_compat("pressed", this, "_search_next"); case_sensitive = memnew(CheckBox); hbc_option_search->add_child(case_sensitive); case_sensitive->set_text(TTR("Match Case")); case_sensitive->set_focus_mode(FOCUS_NONE); - case_sensitive->connect("toggled", this, "_search_options_changed"); + case_sensitive->connect_compat("toggled", this, "_search_options_changed"); whole_words = memnew(CheckBox); hbc_option_search->add_child(whole_words); whole_words->set_text(TTR("Whole Words")); whole_words->set_focus_mode(FOCUS_NONE); - whole_words->connect("toggled", this, "_search_options_changed"); + whole_words->connect_compat("toggled", this, "_search_options_changed"); // replace toolbar replace_text = memnew(LineEdit); vbc_lineedit->add_child(replace_text); replace_text->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); - replace_text->connect("text_entered", this, "_replace_text_entered"); + replace_text->connect_compat("text_entered", this, "_replace_text_entered"); replace = memnew(Button); hbc_button_replace->add_child(replace); replace->set_text(TTR("Replace")); - replace->connect("pressed", this, "_replace_pressed"); + replace->connect_compat("pressed", this, "_replace_pressed"); replace_all = memnew(Button); hbc_button_replace->add_child(replace_all); replace_all->set_text(TTR("Replace All")); - replace_all->connect("pressed", this, "_replace_all_pressed"); + replace_all->connect_compat("pressed", this, "_replace_all_pressed"); selection_only = memnew(CheckBox); hbc_option_replace->add_child(selection_only); selection_only->set_text(TTR("Selection Only")); selection_only->set_focus_mode(FOCUS_NONE); - selection_only->connect("toggled", this, "_search_options_changed"); + selection_only->connect_compat("toggled", this, "_search_options_changed"); hide_button = memnew(TextureButton); add_child(hide_button); hide_button->set_focus_mode(FOCUS_NONE); - hide_button->connect("pressed", this, "_hide_pressed"); + hide_button->connect_compat("pressed", this, "_hide_pressed"); hide_button->set_v_size_flags(SIZE_SHRINK_CENTER); } @@ -691,6 +691,16 @@ void CodeTextEditor::_input(const Ref<InputEvent> &event) { accept_event(); return; } + if (ED_IS_SHORTCUT("script_text_editor/delete_line", key_event)) { + delete_lines(); + accept_event(); + return; + } + if (ED_IS_SHORTCUT("script_text_editor/clone_down", key_event)) { + clone_lines_down(); + accept_event(); + return; + } } void CodeTextEditor::_text_editor_gui_input(const Ref<InputEvent> &p_event) { @@ -1707,7 +1717,7 @@ CodeTextEditor::CodeTextEditor() { error_column = 0; toggle_scripts_button = memnew(ToolButton); - toggle_scripts_button->connect("pressed", this, "_toggle_scripts_pressed"); + toggle_scripts_button->connect_compat("pressed", this, "_toggle_scripts_pressed"); status_bar->add_child(toggle_scripts_button); toggle_scripts_button->hide(); @@ -1722,15 +1732,15 @@ CodeTextEditor::CodeTextEditor() { scroll->add_child(error); error->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER); error->set_mouse_filter(MOUSE_FILTER_STOP); - error->connect("gui_input", this, "_error_pressed"); - find_replace_bar->connect("error", error, "set_text"); + error->connect_compat("gui_input", this, "_error_pressed"); + find_replace_bar->connect_compat("error", error, "set_text"); // Warnings warning_button = memnew(ToolButton); status_bar->add_child(warning_button); warning_button->set_v_size_flags(SIZE_EXPAND | SIZE_SHRINK_CENTER); warning_button->set_default_cursor_shape(CURSOR_POINTING_HAND); - warning_button->connect("pressed", this, "_warning_button_pressed"); + warning_button->connect_compat("pressed", this, "_warning_button_pressed"); warning_button->set_tooltip(TTR("Warnings")); warning_count_label = memnew(Label); @@ -1742,7 +1752,7 @@ CodeTextEditor::CodeTextEditor() { warning_count_label->set_tooltip(TTR("Warnings")); warning_count_label->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("warning_color", "Editor")); warning_count_label->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("status_source", "EditorFonts")); - warning_count_label->connect("gui_input", this, "_warning_label_gui_input"); + warning_count_label->connect_compat("gui_input", this, "_warning_label_gui_input"); is_warnings_panel_opened = false; set_warning_nb(0); @@ -1755,10 +1765,10 @@ CodeTextEditor::CodeTextEditor() { line_and_col_txt->set_tooltip(TTR("Line and column numbers.")); line_and_col_txt->set_mouse_filter(MOUSE_FILTER_STOP); - text_editor->connect("gui_input", this, "_text_editor_gui_input"); - text_editor->connect("cursor_changed", this, "_line_col_changed"); - text_editor->connect("text_changed", this, "_text_changed"); - text_editor->connect("request_completion", this, "_complete_request"); + text_editor->connect_compat("gui_input", this, "_text_editor_gui_input"); + text_editor->connect_compat("cursor_changed", this, "_line_col_changed"); + text_editor->connect_compat("text_changed", this, "_text_changed"); + text_editor->connect_compat("request_completion", this, "_complete_request"); Vector<String> cs; cs.push_back("."); cs.push_back(","); @@ -1766,9 +1776,9 @@ CodeTextEditor::CodeTextEditor() { cs.push_back("="); cs.push_back("$"); text_editor->set_completion(true, cs); - idle->connect("timeout", this, "_text_changed_idle_timeout"); + idle->connect_compat("timeout", this, "_text_changed_idle_timeout"); - code_complete_timer->connect("timeout", this, "_code_complete_timer_timeout"); + code_complete_timer->connect_compat("timeout", this, "_code_complete_timer_timeout"); font_resize_val = 0; font_size = EditorSettings::get_singleton()->get("interface/editor/code_font_size"); @@ -1776,7 +1786,7 @@ CodeTextEditor::CodeTextEditor() { add_child(font_resize_timer); font_resize_timer->set_one_shot(true); font_resize_timer->set_wait_time(0.07); - font_resize_timer->connect("timeout", this, "_font_resize_timeout"); + font_resize_timer->connect_compat("timeout", this, "_font_resize_timeout"); - EditorSettings::get_singleton()->connect("settings_changed", this, "_on_settings_change"); + EditorSettings::get_singleton()->connect_compat("settings_changed", this, "_on_settings_change"); } diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index deabb06e1a..f78867e493 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -166,8 +166,9 @@ void ConnectDialog::_add_bind() { switch (vt) { case Variant::BOOL: value = false; break; case Variant::INT: value = 0; break; - case Variant::REAL: value = 0.0; break; + case Variant::FLOAT: value = 0.0; break; case Variant::STRING: value = ""; break; + case Variant::STRING_NAME: value = ""; break; case Variant::VECTOR2: value = Vector2(); break; case Variant::RECT2: value = Rect2(); break; case Variant::VECTOR3: value = Vector3(); break; @@ -304,7 +305,7 @@ bool ConnectDialog::is_editing() const { * If creating a connection from scratch, sensible defaults are used. * If editing an existing connection, previous data is retained. */ -void ConnectDialog::init(Connection c, bool bEdit) { +void ConnectDialog::init(ConnectionData c, bool bEdit) { set_hide_on_ok(false); @@ -389,8 +390,8 @@ ConnectDialog::ConnectDialog() { tree = memnew(SceneTreeEditor(false)); tree->set_connecting_signal(true); - tree->get_scene_tree()->connect("item_activated", this, "_ok"); - tree->connect("node_selected", this, "_tree_node_selected"); + tree->get_scene_tree()->connect_compat("item_activated", this, "_ok"); + tree->connect_compat("node_selected", this, "_tree_node_selected"); tree->set_connect_to_script_mode(true); Node *mc = vbc_left->add_margin_child(TTR("Connect to Script:"), tree, true); @@ -413,8 +414,9 @@ ConnectDialog::ConnectDialog() { add_bind_hb->add_child(type_list); type_list->add_item("bool", Variant::BOOL); type_list->add_item("int", Variant::INT); - type_list->add_item("real", Variant::REAL); + type_list->add_item("real", Variant::FLOAT); type_list->add_item("String", Variant::STRING); + type_list->add_item("StringName", Variant::STRING_NAME); type_list->add_item("Vector2", Variant::VECTOR2); type_list->add_item("Rect2", Variant::RECT2); type_list->add_item("Vector3", Variant::VECTOR3); @@ -429,12 +431,12 @@ ConnectDialog::ConnectDialog() { Button *add_bind = memnew(Button); add_bind->set_text(TTR("Add")); add_bind_hb->add_child(add_bind); - add_bind->connect("pressed", this, "_add_bind"); + add_bind->connect_compat("pressed", this, "_add_bind"); Button *del_bind = memnew(Button); del_bind->set_text(TTR("Remove")); add_bind_hb->add_child(del_bind); - del_bind->connect("pressed", this, "_remove_bind"); + del_bind->connect_compat("pressed", this, "_remove_bind"); vbc_right->add_margin_child(TTR("Add Extra Call Argument:"), add_bind_hb); @@ -447,13 +449,13 @@ ConnectDialog::ConnectDialog() { dst_method = memnew(LineEdit); dst_method->set_h_size_flags(SIZE_EXPAND_FILL); - dst_method->connect("text_entered", this, "_builtin_text_entered"); + dst_method->connect_compat("text_entered", this, "_builtin_text_entered"); dstm_hb->add_child(dst_method); advanced = memnew(CheckButton); dstm_hb->add_child(advanced); advanced->set_text(TTR("Advanced")); - advanced->connect("pressed", this, "_advanced_pressed"); + advanced->connect_compat("pressed", this, "_advanced_pressed"); // Add spacing so the tree and inspector are the same size. Control *spacing = memnew(Control); @@ -500,7 +502,6 @@ Control *ConnectionsDockTree::make_custom_tooltip(const String &p_text) const { String text = TTR("Signal:") + " [u][b]" + p_text.get_slice("::", 0) + "[/b][/u]"; text += p_text.get_slice("::", 1).strip_edges() + "\n"; text += p_text.get_slice("::", 2).strip_edges(); - help_bit->set_text(text); help_bit->call_deferred("set_text", text); //hack so it uses proper theme once inside scene return help_bit; } @@ -525,7 +526,7 @@ void ConnectionsDock::_make_or_edit_connection() { Node *target = selectedNode->get_node(dst_path); ERR_FAIL_COND(!target); - Connection cToMake; + ConnectDialog::ConnectionData cToMake; cToMake.source = connect_dialog->get_source(); cToMake.target = target; cToMake.signal = connect_dialog->get_signal_name(); @@ -555,12 +556,12 @@ void ConnectionsDock::_make_or_edit_connection() { add_script_function = !found_inherited_function; } - PoolStringArray script_function_args; + PackedStringArray script_function_args; if (add_script_function) { // Pick up args here before "it" is deleted by update_tree. script_function_args = it->get_metadata(0).operator Dictionary()["args"]; for (int i = 0; i < cToMake.binds.size(); i++) { - script_function_args.append("extra_arg_" + itos(i) + ":" + Variant::get_type_name(cToMake.binds[i].get_type())); + script_function_args.push_back("extra_arg_" + itos(i) + ":" + Variant::get_type_name(cToMake.binds[i].get_type())); } } @@ -585,7 +586,7 @@ void ConnectionsDock::_make_or_edit_connection() { /* * Creates single connection w/ undo-redo functionality. */ -void ConnectionsDock::_connect(Connection cToMake) { +void ConnectionsDock::_connect(ConnectDialog::ConnectionData cToMake) { Node *source = static_cast<Node *>(cToMake.source); Node *target = static_cast<Node *>(cToMake.target); @@ -595,8 +596,10 @@ void ConnectionsDock::_connect(Connection cToMake) { undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"), String(cToMake.signal), String(cToMake.method))); - undo_redo->add_do_method(source, "connect", cToMake.signal, target, cToMake.method, cToMake.binds, cToMake.flags); - undo_redo->add_undo_method(source, "disconnect", cToMake.signal, target, cToMake.method); + Callable c(target, cToMake.method); + + undo_redo->add_do_method(source, "connect", cToMake.signal, c, cToMake.binds, cToMake.flags); + undo_redo->add_undo_method(source, "disconnect", cToMake.signal, c); undo_redo->add_do_method(this, "update_tree"); undo_redo->add_undo_method(this, "update_tree"); undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); //to force redraw of scene tree @@ -610,13 +613,15 @@ void ConnectionsDock::_connect(Connection cToMake) { */ void ConnectionsDock::_disconnect(TreeItem &item) { - Connection c = item.get_metadata(0); + Connection cd = item.get_metadata(0); + ConnectDialog::ConnectionData c = cd; + ERR_FAIL_COND(c.source != selectedNode); // Shouldn't happen but... Bugcheck. undo_redo->create_action(vformat(TTR("Disconnect '%s' from '%s'"), c.signal, c.method)); - undo_redo->add_do_method(selectedNode, "disconnect", c.signal, c.target, c.method); - undo_redo->add_undo_method(selectedNode, "connect", c.signal, c.target, c.method, c.binds, c.flags); + undo_redo->add_do_method(selectedNode, "disconnect", c.signal, Callable(c.target, c.method)); + undo_redo->add_undo_method(selectedNode, "connect", c.signal, Callable(c.target, c.method), c.binds, c.flags); undo_redo->add_do_method(this, "update_tree"); undo_redo->add_undo_method(this, "update_tree"); undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); // To force redraw of scene tree. @@ -641,9 +646,10 @@ void ConnectionsDock::_disconnect_all() { undo_redo->create_action(vformat(TTR("Disconnect all from signal: '%s'"), signalName)); while (child) { - Connection c = child->get_metadata(0); - undo_redo->add_do_method(selectedNode, "disconnect", c.signal, c.target, c.method); - undo_redo->add_undo_method(selectedNode, "connect", c.signal, c.target, c.method, c.binds, c.flags); + Connection cd = child->get_metadata(0); + ConnectDialog::ConnectionData c = cd; + undo_redo->add_do_method(selectedNode, "disconnect", c.signal, Callable(c.target, c.method)); + undo_redo->add_undo_method(selectedNode, "connect", c.signal, Callable(c.target, c.method), c.binds, c.flags); child = child->get_next(); } @@ -720,7 +726,7 @@ void ConnectionsDock::_open_connection_dialog(TreeItem &item) { StringName dst_method = "_on_" + midname + "_" + signal; - Connection c; + ConnectDialog::ConnectionData c; c.source = selectedNode; c.signal = StringName(signalname); c.target = dst_node; @@ -733,7 +739,7 @@ void ConnectionsDock::_open_connection_dialog(TreeItem &item) { /* * Open connection dialog with Connection data to EDIT an existing connection. */ -void ConnectionsDock::_open_connection_dialog(Connection cToEdit) { +void ConnectionsDock::_open_connection_dialog(ConnectDialog::ConnectionData cToEdit) { Node *src = static_cast<Node *>(cToEdit.source); Node *dst = static_cast<Node *>(cToEdit.target); @@ -753,7 +759,8 @@ void ConnectionsDock::_go_to_script(TreeItem &item) { if (_is_item_signal(item)) return; - Connection c = item.get_metadata(0); + Connection cd = item.get_metadata(0); + ConnectDialog::ConnectionData c = cd; ERR_FAIL_COND(c.source != selectedNode); //shouldn't happen but...bugcheck if (!c.target) @@ -943,7 +950,7 @@ void ConnectionsDock::update_tree() { StringName signal_name = mi.name; String signaldesc = "("; - PoolStringArray argnames; + PackedStringArray argnames; if (mi.arguments.size()) { for (int i = 0; i < mi.arguments.size(); i++) { @@ -1014,7 +1021,7 @@ void ConnectionsDock::update_tree() { for (List<Object::Connection>::Element *F = connections.front(); F; F = F->next()) { - Object::Connection &c = F->get(); + ConnectDialog::ConnectionData c = F->get(); if (!(c.flags & CONNECT_PERSIST)) continue; @@ -1041,7 +1048,8 @@ void ConnectionsDock::update_tree() { TreeItem *item2 = tree->create_item(item); item2->set_text(0, path); - item2->set_metadata(0, c); + Connection cd = c; + item2->set_metadata(0, cd); item2->set_icon(0, get_icon("Slot", "EditorIcons")); } } @@ -1077,7 +1085,7 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) { vbc->add_child(hb); hb->add_spacer(); hb->add_child(connect_button); - connect_button->connect("pressed", this, "_connect_pressed"); + connect_button->connect_compat("pressed", this, "_connect_pressed"); connect_dialog = memnew(ConnectDialog); connect_dialog->set_as_toplevel(true); @@ -1086,26 +1094,26 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) { disconnect_all_dialog = memnew(ConfirmationDialog); disconnect_all_dialog->set_as_toplevel(true); add_child(disconnect_all_dialog); - disconnect_all_dialog->connect("confirmed", this, "_disconnect_all"); + disconnect_all_dialog->connect_compat("confirmed", this, "_disconnect_all"); disconnect_all_dialog->set_text(TTR("Are you sure you want to remove all connections from this signal?")); signal_menu = memnew(PopupMenu); add_child(signal_menu); - signal_menu->connect("id_pressed", this, "_handle_signal_menu_option"); + signal_menu->connect_compat("id_pressed", this, "_handle_signal_menu_option"); signal_menu->add_item(TTR("Connect..."), CONNECT); signal_menu->add_item(TTR("Disconnect All"), DISCONNECT_ALL); slot_menu = memnew(PopupMenu); add_child(slot_menu); - slot_menu->connect("id_pressed", this, "_handle_slot_menu_option"); + slot_menu->connect_compat("id_pressed", this, "_handle_slot_menu_option"); slot_menu->add_item(TTR("Edit..."), EDIT); slot_menu->add_item(TTR("Go To Method"), GO_TO_SCRIPT); slot_menu->add_item(TTR("Disconnect"), DISCONNECT); - connect_dialog->connect("connected", this, "_make_or_edit_connection"); - tree->connect("item_selected", this, "_tree_item_selected"); - tree->connect("item_activated", this, "_tree_item_activated"); - tree->connect("item_rmb_selected", this, "_rmb_pressed"); + connect_dialog->connect_compat("connected", this, "_make_or_edit_connection"); + tree->connect_compat("item_selected", this, "_tree_item_selected"); + tree->connect_compat("item_activated", this, "_tree_item_activated"); + tree->connect_compat("item_rmb_selected", this, "_rmb_pressed"); add_constant_override("separation", 3 * EDSCALE); } diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h index 7e39d7d904..a4ed68b44e 100644 --- a/editor/connections_dialog.h +++ b/editor/connections_dialog.h @@ -53,6 +53,36 @@ class ConnectDialog : public ConfirmationDialog { GDCLASS(ConnectDialog, ConfirmationDialog); +public: + struct ConnectionData { + Node *source = nullptr; + Node *target = nullptr; + StringName signal; + StringName method; + uint32_t flags = 0; + Vector<Variant> binds; + + ConnectionData() { + } + ConnectionData(const Connection &p_connection) { + source = Object::cast_to<Node>(p_connection.signal.get_object()); + signal = p_connection.signal.get_name(); + target = Object::cast_to<Node>(p_connection.callable.get_object()); + method = p_connection.callable.get_method(); + flags = p_connection.flags; + binds = p_connection.binds; + } + operator Connection() { + Connection c; + c.signal = ::Signal(source, signal); + c.callable = Callable(target, method); + c.flags = flags; + c.binds = binds; + return c; + } + }; + +private: Label *connect_to_label; LineEdit *from_signal; Node *source; @@ -98,7 +128,7 @@ public: bool get_oneshot() const; bool is_editing() const; - void init(Connection c, bool bEdit = false); + void init(ConnectionData c, bool bEdit = false); void popup_dialog(const String &p_for_signal); ConnectDialog(); @@ -144,7 +174,7 @@ class ConnectionsDock : public VBoxContainer { Map<StringName, Map<StringName, String> > descr_cache; void _make_or_edit_connection(); - void _connect(Connection cToMake); + void _connect(ConnectDialog::ConnectionData cToMake); void _disconnect(TreeItem &item); void _disconnect_all(); @@ -153,7 +183,7 @@ class ConnectionsDock : public VBoxContainer { bool _is_item_signal(TreeItem &item); void _open_connection_dialog(TreeItem &item); - void _open_connection_dialog(Connection cToEdit); + void _open_connection_dialog(ConnectDialog::ConnectionData cToEdit); void _go_to_script(TreeItem &item); void _handle_signal_menu_option(int option); diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index 4adb3844bc..9584443c75 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -459,13 +459,13 @@ void CreateDialog::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - connect("confirmed", this, "_confirmed"); + connect_compat("confirmed", this, "_confirmed"); search_box->set_right_icon(get_icon("Search", "EditorIcons")); search_box->set_clear_button_enabled(true); favorite->set_icon(get_icon("Favorites", "EditorIcons")); } break; case NOTIFICATION_EXIT_TREE: { - disconnect("confirmed", this, "_confirmed"); + disconnect_compat("confirmed", this, "_confirmed"); } break; case NOTIFICATION_VISIBILITY_CHANGED: { if (is_visible_in_tree()) { @@ -766,8 +766,8 @@ CreateDialog::CreateDialog() { favorites->set_hide_root(true); favorites->set_hide_folding(true); favorites->set_allow_reselect(true); - favorites->connect("cell_selected", this, "_favorite_selected"); - favorites->connect("item_activated", this, "_favorite_activated"); + favorites->connect_compat("cell_selected", this, "_favorite_selected"); + favorites->connect_compat("item_activated", this, "_favorite_activated"); favorites->set_drag_forwarding(this); favorites->add_constant_override("draw_guides", 1); @@ -781,8 +781,8 @@ CreateDialog::CreateDialog() { recent->set_hide_root(true); recent->set_hide_folding(true); recent->set_allow_reselect(true); - recent->connect("cell_selected", this, "_history_selected"); - recent->connect("item_activated", this, "_history_activated"); + recent->connect_compat("cell_selected", this, "_history_selected"); + recent->connect_compat("item_activated", this, "_history_activated"); recent->add_constant_override("draw_guides", 1); VBoxContainer *vbc = memnew(VBoxContainer); @@ -797,23 +797,23 @@ CreateDialog::CreateDialog() { favorite->set_flat(true); favorite->set_toggle_mode(true); search_hb->add_child(favorite); - favorite->connect("pressed", this, "_favorite_toggled"); + favorite->connect_compat("pressed", this, "_favorite_toggled"); vbc->add_margin_child(TTR("Search:"), search_hb); - search_box->connect("text_changed", this, "_text_changed"); - search_box->connect("gui_input", this, "_sbox_input"); + search_box->connect_compat("text_changed", this, "_text_changed"); + search_box->connect_compat("gui_input", this, "_sbox_input"); search_options = memnew(Tree); vbc->add_margin_child(TTR("Matches:"), search_options, true); get_ok()->set_disabled(true); register_text_enter(search_box); set_hide_on_ok(false); - search_options->connect("item_activated", this, "_confirmed"); - search_options->connect("cell_selected", this, "_item_selected"); + search_options->connect_compat("item_activated", this, "_confirmed"); + search_options->connect_compat("cell_selected", this, "_item_selected"); base_type = "Object"; preferred_search_result_type = ""; help_bit = memnew(EditorHelpBit); vbc->add_margin_child(TTR("Description:"), help_bit); - help_bit->connect("request_hide", this, "_closed"); + help_bit->connect_compat("request_hide", this, "_closed"); type_blacklist.insert("PluginScript"); // PluginScript must be initialized before use, which is not possible here type_blacklist.insert("ScriptCreateDialog"); // This is an exposed editor Node that doesn't have an Editor prefix. diff --git a/editor/debugger/SCsub b/editor/debugger/SCsub new file mode 100644 index 0000000000..2b1e889fb0 --- /dev/null +++ b/editor/debugger/SCsub @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +Import('env') + +env.add_source_files(env.editor_sources, "*.cpp") diff --git a/editor/debugger/editor_debugger_inspector.cpp b/editor/debugger/editor_debugger_inspector.cpp new file mode 100644 index 0000000000..35d7dda3f4 --- /dev/null +++ b/editor/debugger/editor_debugger_inspector.cpp @@ -0,0 +1,277 @@ +/*************************************************************************/ +/* editor_debugger_inspector.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "editor_debugger_inspector.h" + +#include "core/io/marshalls.h" +#include "core/script_debugger_remote.h" +#include "editor/editor_node.h" +#include "scene/debugger/scene_debugger.h" + +bool EditorDebuggerRemoteObject::_set(const StringName &p_name, const Variant &p_value) { + + if (!editable || !prop_values.has(p_name) || String(p_name).begins_with("Constants/")) + return false; + + prop_values[p_name] = p_value; + emit_signal("value_edited", remote_object_id, p_name, p_value); + return true; +} + +bool EditorDebuggerRemoteObject::_get(const StringName &p_name, Variant &r_ret) const { + + if (!prop_values.has(p_name)) + return false; + + r_ret = prop_values[p_name]; + return true; +} + +void EditorDebuggerRemoteObject::_get_property_list(List<PropertyInfo> *p_list) const { + + p_list->clear(); //sorry, no want category + for (const List<PropertyInfo>::Element *E = prop_list.front(); E; E = E->next()) { + p_list->push_back(E->get()); + } +} + +String EditorDebuggerRemoteObject::get_title() { + if (remote_object_id.is_valid()) + return TTR("Remote ") + String(type_name) + ": " + itos(remote_object_id); + else + return "<null>"; +} + +Variant EditorDebuggerRemoteObject::get_variant(const StringName &p_name) { + Variant var; + _get(p_name, var); + return var; +} + +void EditorDebuggerRemoteObject::_bind_methods() { + + ClassDB::bind_method(D_METHOD("get_title"), &EditorDebuggerRemoteObject::get_title); + ClassDB::bind_method(D_METHOD("get_variant"), &EditorDebuggerRemoteObject::get_variant); + ClassDB::bind_method(D_METHOD("clear"), &EditorDebuggerRemoteObject::clear); + ClassDB::bind_method(D_METHOD("get_remote_object_id"), &EditorDebuggerRemoteObject::get_remote_object_id); + + ADD_SIGNAL(MethodInfo("value_edited", PropertyInfo(Variant::INT, "object_id"), PropertyInfo(Variant::STRING, "property"), PropertyInfo("value"))); +} + +EditorDebuggerInspector::EditorDebuggerInspector() { + variables = memnew(EditorDebuggerRemoteObject); + variables->editable = false; +} + +EditorDebuggerInspector::~EditorDebuggerInspector() { + memdelete(variables); +} + +void EditorDebuggerInspector::_bind_methods() { + ClassDB::bind_method(D_METHOD("_object_edited", "name", "value"), &EditorDebuggerInspector::_object_edited); + ClassDB::bind_method(D_METHOD("_object_selected", "id"), &EditorDebuggerInspector::_object_selected); + ADD_SIGNAL(MethodInfo("object_selected", PropertyInfo(Variant::INT, "id"))); + ADD_SIGNAL(MethodInfo("object_edited", PropertyInfo(Variant::INT, "id"), PropertyInfo(Variant::STRING, "property"), PropertyInfo("value"))); + ADD_SIGNAL(MethodInfo("object_property_updated", PropertyInfo(Variant::INT, "id"), PropertyInfo(Variant::STRING, "property"))); +} + +void EditorDebuggerInspector::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_POSTINITIALIZE: + connect_compat("object_id_selected", this, "_object_selected"); + break; + case NOTIFICATION_ENTER_TREE: + edit(variables); + break; + default: + break; + } +} + +void EditorDebuggerInspector::_object_edited(ObjectID p_id, const String &p_prop, const Variant &p_value) { + + emit_signal("object_edited", p_id, p_prop, p_value); +} + +void EditorDebuggerInspector::_object_selected(ObjectID p_object) { + + emit_signal("object_selected", p_object); +} + +ObjectID EditorDebuggerInspector::add_object(const Array &p_arr) { + EditorDebuggerRemoteObject *debugObj = NULL; + + SceneDebuggerObject obj; + obj.deserialize(p_arr); + ERR_FAIL_COND_V(obj.id.is_null(), ObjectID()); + + if (remote_objects.has(obj.id)) { + debugObj = remote_objects[obj.id]; + } else { + debugObj = memnew(EditorDebuggerRemoteObject); + debugObj->remote_object_id = obj.id; + debugObj->type_name = obj.class_name; + remote_objects[obj.id] = debugObj; + debugObj->connect_compat("value_edited", this, "_object_edited"); + } + + int old_prop_size = debugObj->prop_list.size(); + + debugObj->prop_list.clear(); + int new_props_added = 0; + Set<String> changed; + for (int i = 0; i < obj.properties.size(); i++) { + + PropertyInfo &pinfo = obj.properties[i].first; + Variant &var = obj.properties[i].second; + + if (pinfo.type == Variant::OBJECT) { + if (var.get_type() == Variant::STRING) { + String path = var; + if (path.find("::") != -1) { + // built-in resource + String base_path = path.get_slice("::", 0); + if (ResourceLoader::get_resource_type(base_path) == "PackedScene") { + if (!EditorNode::get_singleton()->is_scene_open(base_path)) { + EditorNode::get_singleton()->load_scene(base_path); + } + } else { + EditorNode::get_singleton()->load_resource(base_path); + } + } + var = ResourceLoader::load(path); + + if (pinfo.hint_string == "Script") { + if (debugObj->get_script() != var) { + debugObj->set_script(REF()); + Ref<Script> script(var); + if (!script.is_null()) { + ScriptInstance *script_instance = script->placeholder_instance_create(debugObj); + debugObj->set_script_and_instance(var, script_instance); + } + } + } + } + } + + //always add the property, since props may have been added or removed + debugObj->prop_list.push_back(pinfo); + + if (!debugObj->prop_values.has(pinfo.name)) { + new_props_added++; + debugObj->prop_values[pinfo.name] = var; + } else { + + if (bool(Variant::evaluate(Variant::OP_NOT_EQUAL, debugObj->prop_values[pinfo.name], var))) { + debugObj->prop_values[pinfo.name] = var; + changed.insert(pinfo.name); + } + } + } + + if (old_prop_size == debugObj->prop_list.size() && new_props_added == 0) { + //only some may have changed, if so, then update those, if exist + for (Set<String>::Element *E = changed.front(); E; E = E->next()) { + emit_signal("object_property_updated", debugObj->remote_object_id, E->get()); + } + } else { + //full update, because props were added or removed + debugObj->update(); + } + return obj.id; +} + +void EditorDebuggerInspector::clear_cache() { + for (Map<ObjectID, EditorDebuggerRemoteObject *>::Element *E = remote_objects.front(); E; E = E->next()) { + EditorNode *editor = EditorNode::get_singleton(); + if (editor->get_editor_history()->get_current() == E->value()->get_instance_id()) { + editor->push_item(NULL); + } + memdelete(E->value()); + } + remote_objects.clear(); +} + +Object *EditorDebuggerInspector::get_object(ObjectID p_id) { + if (remote_objects.has(p_id)) + return remote_objects[p_id]; + return NULL; +} + +void EditorDebuggerInspector::add_stack_variable(const Array &p_array) { + + ScriptDebuggerRemote::ScriptStackVariable var; + var.deserialize(p_array); + String n = var.name; + Variant v = var.value; + + PropertyHint h = PROPERTY_HINT_NONE; + String hs = String(); + + if (v.get_type() == Variant::OBJECT) { + v = Object::cast_to<EncodedObjectAsID>(v)->get_object_id(); + h = PROPERTY_HINT_OBJECT_ID; + hs = "Object"; + } + String type; + switch (var.type) { + case 0: + type = "Locals/"; + break; + case 1: + type = "Members/"; + break; + case 2: + type = "Globals/"; + break; + default: + type = "Unknown/"; + } + + PropertyInfo pinfo; + pinfo.name = type + n; + pinfo.type = v.get_type(); + pinfo.hint = h; + pinfo.hint_string = hs; + + variables->prop_list.push_back(pinfo); + variables->prop_values[type + n] = v; + variables->update(); + edit(variables); +} + +void EditorDebuggerInspector::clear_stack_variables() { + variables->clear(); + variables->update(); +} + +String EditorDebuggerInspector::get_stack_variable(const String &p_var) { + return variables->get_variant(p_var); +} diff --git a/editor/debugger/editor_debugger_inspector.h b/editor/debugger/editor_debugger_inspector.h new file mode 100644 index 0000000000..e1dfbefcf3 --- /dev/null +++ b/editor/debugger/editor_debugger_inspector.h @@ -0,0 +1,98 @@ +/*************************************************************************/ +/* editor_debugger_inspector.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#ifndef EDITOR_DEBUGGER_INSPECTOR_H +#define EDITOR_DEBUGGER_INSPECTOR_H +#include "editor/editor_inspector.h" + +class EditorDebuggerRemoteObject : public Object { + + GDCLASS(EditorDebuggerRemoteObject, Object); + +protected: + bool _set(const StringName &p_name, const Variant &p_value); + bool _get(const StringName &p_name, Variant &r_ret) const; + void _get_property_list(List<PropertyInfo> *p_list) const; + static void _bind_methods(); + +public: + bool editable = false; + ObjectID remote_object_id; + String type_name; + List<PropertyInfo> prop_list; + Map<StringName, Variant> prop_values; + + ObjectID get_remote_object_id() { return remote_object_id; }; + String get_title(); + + Variant get_variant(const StringName &p_name); + + void clear() { + prop_list.clear(); + prop_values.clear(); + } + + void update() { _change_notify(); } + + EditorDebuggerRemoteObject(){}; +}; + +class EditorDebuggerInspector : public EditorInspector { + + GDCLASS(EditorDebuggerInspector, EditorInspector); + +private: + ObjectID inspected_object_id; + Map<ObjectID, EditorDebuggerRemoteObject *> remote_objects; + EditorDebuggerRemoteObject *variables; + + void _object_selected(ObjectID p_object); + void _object_edited(ObjectID p_id, const String &p_prop, const Variant &p_value); + +protected: + void _notification(int p_what); + static void _bind_methods(); + +public: + EditorDebuggerInspector(); + ~EditorDebuggerInspector(); + + // Remote Object cache + ObjectID add_object(const Array &p_arr); + Object *get_object(ObjectID p_id); + void clear_cache(); + + // Stack Dump variables + String get_stack_variable(const String &p_var); + void add_stack_variable(const Array &p_arr); + void clear_stack_variables(); +}; + +#endif // EDITOR_DEBUGGER_INSPECTOR_H diff --git a/editor/debugger/editor_debugger_node.cpp b/editor/debugger/editor_debugger_node.cpp new file mode 100644 index 0000000000..54708fd908 --- /dev/null +++ b/editor/debugger/editor_debugger_node.cpp @@ -0,0 +1,591 @@ +/*************************************************************************/ +/* editor_debugger_node.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "editor_debugger_node.h" + +#include "editor/debugger/editor_debugger_tree.h" +#include "editor/editor_log.h" +#include "editor/editor_node.h" +#include "editor/plugins/script_editor_plugin.h" + +template <typename Func> +void _for_all(TabContainer *p_node, const Func &p_func) { + for (int i = 0; i < p_node->get_tab_count(); i++) { + ScriptEditorDebugger *dbg = Object::cast_to<ScriptEditorDebugger>(p_node->get_tab_control(i)); + ERR_FAIL_COND(!dbg); + p_func(dbg); + } +} + +EditorDebuggerNode *EditorDebuggerNode::singleton = NULL; + +EditorDebuggerNode::EditorDebuggerNode() { + if (!singleton) + singleton = this; + server.instance(); + + add_constant_override("margin_left", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_LEFT)); + add_constant_override("margin_right", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_RIGHT)); + + tabs = memnew(TabContainer); + tabs->set_tab_align(TabContainer::ALIGN_LEFT); + tabs->set_tabs_visible(false); + tabs->connect_compat("tab_changed", this, "_debugger_changed"); + add_child(tabs); + + Ref<StyleBoxEmpty> empty; + empty.instance(); + tabs->add_style_override("panel", empty); + + auto_switch_remote_scene_tree = EDITOR_DEF("debugger/auto_switch_to_remote_scene_tree", false); + _add_debugger(); + + // Remote scene tree + remote_scene_tree = memnew(EditorDebuggerTree); + remote_scene_tree->connect_compat("object_selected", this, "_remote_object_requested"); + remote_scene_tree->connect_compat("save_node", this, "_save_node_requested"); + EditorNode::get_singleton()->get_scene_tree_dock()->add_remote_tree_editor(remote_scene_tree); + EditorNode::get_singleton()->get_scene_tree_dock()->connect_compat("remote_tree_selected", this, "request_remote_tree"); + + remote_scene_tree_timeout = EDITOR_DEF("debugger/remote_scene_tree_refresh_interval", 1.0); + inspect_edited_object_timeout = EDITOR_DEF("debugger/remote_inspect_refresh_interval", 0.2); + + EditorNode *editor = EditorNode::get_singleton(); + editor->get_undo_redo()->set_method_notify_callback(_method_changeds, this); + editor->get_undo_redo()->set_property_notify_callback(_property_changeds, this); + editor->get_pause_button()->connect_compat("pressed", this, "_paused"); +} + +ScriptEditorDebugger *EditorDebuggerNode::_add_debugger() { + ScriptEditorDebugger *node = memnew(ScriptEditorDebugger(EditorNode::get_singleton())); + + int id = tabs->get_tab_count(); + node->connect_compat("stop_requested", this, "_debugger_wants_stop", varray(id)); + node->connect_compat("stopped", this, "_debugger_stopped", varray(id)); + node->connect_compat("stack_frame_selected", this, "_stack_frame_selected", varray(id)); + node->connect_compat("error_selected", this, "_error_selected", varray(id)); + node->connect_compat("clear_execution", this, "_clear_execution"); + node->connect_compat("breaked", this, "_breaked", varray(id)); + node->connect_compat("remote_tree_updated", this, "_remote_tree_updated", varray(id)); + node->connect_compat("remote_object_updated", this, "_remote_object_updated", varray(id)); + node->connect_compat("remote_object_property_updated", this, "_remote_object_property_updated", varray(id)); + node->connect_compat("remote_object_requested", this, "_remote_object_requested", varray(id)); + + if (tabs->get_tab_count() > 0) { + get_debugger(0)->clear_style(); + } + + tabs->add_child(node); + + node->set_name("Session " + itos(tabs->get_tab_count())); + if (tabs->get_tab_count() > 1) { + node->clear_style(); + tabs->set_tabs_visible(true); + tabs->add_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_stylebox("DebuggerPanel", "EditorStyles")); + } + + return node; +} + +void EditorDebuggerNode::_stack_frame_selected(int p_debugger) { + const ScriptEditorDebugger *dbg = get_debugger(p_debugger); + ERR_FAIL_COND(!dbg); + if (dbg != get_current_debugger()) + return; + _text_editor_stack_goto(dbg); +} + +void EditorDebuggerNode::_error_selected(const String &p_file, int p_line, int p_debugger) { + Ref<Script> s = ResourceLoader::load(p_file); + emit_signal("goto_script_line", s, p_line - 1); +} + +void EditorDebuggerNode::_text_editor_stack_goto(const ScriptEditorDebugger *p_debugger) { + const String file = p_debugger->get_stack_script_file(); + if (file.empty()) + return; + stack_script = ResourceLoader::load(file); + const int line = p_debugger->get_stack_script_line() - 1; + emit_signal("goto_script_line", stack_script, line); + emit_signal("set_execution", stack_script, line); + stack_script.unref(); // Why?!? +} + +void EditorDebuggerNode::_bind_methods() { + ClassDB::bind_method("_menu_option", &EditorDebuggerNode::_menu_option); + ClassDB::bind_method("_debugger_stopped", &EditorDebuggerNode::_debugger_stopped); + ClassDB::bind_method("_debugger_wants_stop", &EditorDebuggerNode::_debugger_wants_stop); + ClassDB::bind_method("_debugger_changed", &EditorDebuggerNode::_debugger_changed); + ClassDB::bind_method("_stack_frame_selected", &EditorDebuggerNode::_stack_frame_selected); + ClassDB::bind_method("_error_selected", &EditorDebuggerNode::_error_selected); + ClassDB::bind_method("_clear_execution", &EditorDebuggerNode::_clear_execution); + ClassDB::bind_method("_breaked", &EditorDebuggerNode::_breaked); + ClassDB::bind_method("start", &EditorDebuggerNode::start); + ClassDB::bind_method("stop", &EditorDebuggerNode::stop); + ClassDB::bind_method("_paused", &EditorDebuggerNode::_paused); + ClassDB::bind_method("request_remote_tree", &EditorDebuggerNode::request_remote_tree); + ClassDB::bind_method("_remote_tree_updated", &EditorDebuggerNode::_remote_tree_updated); + ClassDB::bind_method("_remote_object_updated", &EditorDebuggerNode::_remote_object_updated); + ClassDB::bind_method("_remote_object_property_updated", &EditorDebuggerNode::_remote_object_property_updated); + ClassDB::bind_method("_remote_object_requested", &EditorDebuggerNode::_remote_object_requested); + ClassDB::bind_method("_save_node_requested", &EditorDebuggerNode::_save_node_requested); + + // LiveDebug. + ClassDB::bind_method("live_debug_create_node", &EditorDebuggerNode::live_debug_create_node); + ClassDB::bind_method("live_debug_instance_node", &EditorDebuggerNode::live_debug_instance_node); + ClassDB::bind_method("live_debug_remove_node", &EditorDebuggerNode::live_debug_remove_node); + ClassDB::bind_method("live_debug_remove_and_keep_node", &EditorDebuggerNode::live_debug_remove_and_keep_node); + ClassDB::bind_method("live_debug_restore_node", &EditorDebuggerNode::live_debug_restore_node); + ClassDB::bind_method("live_debug_duplicate_node", &EditorDebuggerNode::live_debug_duplicate_node); + ClassDB::bind_method("live_debug_reparent_node", &EditorDebuggerNode::live_debug_reparent_node); + + ADD_SIGNAL(MethodInfo("goto_script_line")); + ADD_SIGNAL(MethodInfo("set_execution", PropertyInfo("script"), PropertyInfo(Variant::INT, "line"))); + ADD_SIGNAL(MethodInfo("clear_execution", PropertyInfo("script"))); + ADD_SIGNAL(MethodInfo("breaked", PropertyInfo(Variant::BOOL, "reallydid"), PropertyInfo(Variant::BOOL, "can_debug"))); +} + +EditorDebuggerRemoteObject *EditorDebuggerNode::get_inspected_remote_object() { + return Object::cast_to<EditorDebuggerRemoteObject>(ObjectDB::get_instance(EditorNode::get_singleton()->get_editor_history()->get_current())); +} + +ScriptEditorDebugger *EditorDebuggerNode::get_debugger(int p_id) const { + return Object::cast_to<ScriptEditorDebugger>(tabs->get_tab_control(p_id)); +} + +ScriptEditorDebugger *EditorDebuggerNode::get_current_debugger() const { + return Object::cast_to<ScriptEditorDebugger>(tabs->get_tab_control(tabs->get_current_tab())); +} + +ScriptEditorDebugger *EditorDebuggerNode::get_default_debugger() const { + return Object::cast_to<ScriptEditorDebugger>(tabs->get_tab_control(0)); +} + +Error EditorDebuggerNode::start() { + stop(); + if (EDITOR_GET("run/output/always_open_output_on_play")) { + EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log()); + } else { + EditorNode::get_singleton()->make_bottom_panel_item_visible(this); + } + + int remote_port = (int)EditorSettings::get_singleton()->get("network/debug/remote_port"); + const Error err = server->listen(remote_port); + if (err != OK) { + EditorNode::get_log()->add_message(String("Error listening on port ") + itos(remote_port), EditorLog::MSG_TYPE_ERROR); + return err; + } + set_process(true); + EditorNode::get_log()->add_message("--- Debugging process started ---", EditorLog::MSG_TYPE_EDITOR); + return OK; +} + +void EditorDebuggerNode::stop() { + if (server->is_listening()) { + server->stop(); + EditorNode::get_log()->add_message("--- Debugging process stopped ---", EditorLog::MSG_TYPE_EDITOR); + } + // Also close all debugging sessions. + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + if (dbg->is_session_active()) + dbg->stop(); + }); + _break_state_changed(); + if (hide_on_stop) { + if (is_visible_in_tree()) + EditorNode::get_singleton()->hide_bottom_panel(); + } + breakpoints.clear(); + set_process(false); +} + +void EditorDebuggerNode::_notification(int p_what) { + switch (p_what) { + case NOTIFICATION_ENTER_TREE: { + EditorNode::get_singleton()->connect_compat("play_pressed", this, "start"); + EditorNode::get_singleton()->connect_compat("stop_pressed", this, "stop"); + } break; + case NOTIFICATION_EXIT_TREE: { + EditorNode::get_singleton()->disconnect_compat("play_pressed", this, "start"); + EditorNode::get_singleton()->disconnect_compat("stop_pressed", this, "stop"); + } break; + case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { + if (tabs->get_tab_count() > 1) { + add_constant_override("margin_left", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_LEFT)); + add_constant_override("margin_right", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_RIGHT)); + + tabs->add_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_stylebox("DebuggerPanel", "EditorStyles")); + } + } break; + default: + break; + } + + if (p_what != NOTIFICATION_PROCESS || !server->is_listening()) + return; + + // Errors and warnings + int error_count = 0; + int warning_count = 0; + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + error_count += dbg->get_error_count(); + warning_count += dbg->get_warning_count(); + }); + + if (error_count != last_error_count || warning_count != last_warning_count) { + + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->update_tabs(); + }); + + if (error_count == 0 && warning_count == 0) { + debugger_button->set_text(TTR("Debugger")); + debugger_button->set_icon(Ref<Texture2D>()); + } else { + debugger_button->set_text(TTR("Debugger") + " (" + itos(error_count + warning_count) + ")"); + if (error_count == 0) { + debugger_button->set_icon(get_icon("Warning", "EditorIcons")); + } else { + debugger_button->set_icon(get_icon("Error", "EditorIcons")); + } + } + last_error_count = error_count; + last_warning_count = warning_count; + } + + // Remote scene tree update + remote_scene_tree_timeout -= get_process_delta_time(); + if (remote_scene_tree_timeout < 0) { + remote_scene_tree_timeout = EditorSettings::get_singleton()->get("debugger/remote_scene_tree_refresh_interval"); + if (remote_scene_tree->is_visible_in_tree()) { + get_current_debugger()->request_remote_tree(); + } + } + + // Remote inspector update + inspect_edited_object_timeout -= get_process_delta_time(); + if (inspect_edited_object_timeout < 0) { + inspect_edited_object_timeout = EditorSettings::get_singleton()->get("debugger/remote_inspect_refresh_interval"); + if (EditorDebuggerRemoteObject *obj = get_inspected_remote_object()) { + get_current_debugger()->request_remote_object(obj->remote_object_id); + } + } + + // Take connections. + if (server->is_connection_available()) { + ScriptEditorDebugger *debugger = NULL; + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + if (debugger || dbg->is_session_active()) + return; + debugger = dbg; + }); + if (debugger == NULL) { + if (tabs->get_tab_count() <= 4) { // Max 4 debugging sessions active. + debugger = _add_debugger(); + } else { + // We already have too many sessions, disconnecting new clients to prevent it from hanging. + // (Not keeping a reference to the connection will disconnect it) + server->take_connection(); + return; // Can't add, stop here. + } + } + + EditorNode::get_singleton()->get_pause_button()->set_disabled(false); + // Switch to remote tree view if so desired. + auto_switch_remote_scene_tree = (bool)EditorSettings::get_singleton()->get("debugger/auto_switch_to_remote_scene_tree"); + if (auto_switch_remote_scene_tree) { + EditorNode::get_singleton()->get_scene_tree_dock()->show_remote_tree(); + } + // Good to go. + EditorNode::get_singleton()->get_scene_tree_dock()->show_tab_buttons(); + debugger->set_editor_remote_tree(remote_scene_tree); + debugger->start(server->take_connection()); + // Send breakpoints. + for (Map<Breakpoint, bool>::Element *E = breakpoints.front(); E; E = E->next()) { + const Breakpoint &bp = E->key(); + debugger->set_breakpoint(bp.source, bp.line, E->get()); + } // Will arrive too late, how does the regular run work? + + debugger->update_live_edit_root(); + } +} + +void EditorDebuggerNode::_debugger_stopped(int p_id) { + ScriptEditorDebugger *dbg = get_debugger(p_id); + ERR_FAIL_COND(!dbg); + + bool found = false; + _for_all(tabs, [&](ScriptEditorDebugger *p_debugger) { + if (p_debugger->is_session_active()) + found = true; + }); + if (!found) { + EditorNode::get_singleton()->get_pause_button()->set_pressed(false); + EditorNode::get_singleton()->get_pause_button()->set_disabled(true); + EditorNode::get_singleton()->get_scene_tree_dock()->hide_remote_tree(); + EditorNode::get_singleton()->get_scene_tree_dock()->hide_tab_buttons(); + EditorNode::get_singleton()->notify_all_debug_sessions_exited(); + } +} + +void EditorDebuggerNode::_debugger_wants_stop(int p_id) { + // Ask editor to kill PID. + int pid = get_debugger(p_id)->get_remote_pid(); + if (pid) + EditorNode::get_singleton()->call_deferred("stop_child_process", pid); +} + +void EditorDebuggerNode::_debugger_changed(int p_tab) { + if (get_inspected_remote_object()) { + // Clear inspected object, you can only inspect objects in selected debugger. + // Hopefully, in the future, we will have one inspector per debugger. + EditorNode::get_singleton()->push_item(NULL); + } + if (remote_scene_tree->is_visible_in_tree()) { + get_current_debugger()->request_remote_tree(); + } + if (get_current_debugger()->is_breaked()) { + _text_editor_stack_goto(get_current_debugger()); + } +} + +void EditorDebuggerNode::set_script_debug_button(MenuButton *p_button) { + script_menu = p_button; + script_menu->set_text(TTR("Debug")); + script_menu->set_switch_on_hover(true); + PopupMenu *p = script_menu->get_popup(); + p->set_hide_on_window_lose_focus(true); + p->add_shortcut(ED_GET_SHORTCUT("debugger/step_into"), DEBUG_STEP); + p->add_shortcut(ED_GET_SHORTCUT("debugger/step_over"), DEBUG_NEXT); + p->add_separator(); + p->add_shortcut(ED_GET_SHORTCUT("debugger/break"), DEBUG_BREAK); + p->add_shortcut(ED_GET_SHORTCUT("debugger/continue"), DEBUG_CONTINUE); + p->add_separator(); + p->add_check_shortcut(ED_GET_SHORTCUT("debugger/keep_debugger_open"), DEBUG_SHOW_KEEP_OPEN); + p->add_check_shortcut(ED_GET_SHORTCUT("debugger/debug_with_external_editor"), DEBUG_WITH_EXTERNAL_EDITOR); + p->connect_compat("id_pressed", this, "_menu_option"); + + _break_state_changed(); + script_menu->show(); +} + +void EditorDebuggerNode::_break_state_changed() { + const bool breaked = get_current_debugger()->is_breaked(); + const bool can_debug = get_current_debugger()->is_debuggable(); + if (breaked) // Show debugger. + EditorNode::get_singleton()->make_bottom_panel_item_visible(this); + + // Update script menu. + if (!script_menu) + return; + PopupMenu *p = script_menu->get_popup(); + p->set_item_disabled(p->get_item_index(DEBUG_NEXT), !(breaked && can_debug)); + p->set_item_disabled(p->get_item_index(DEBUG_STEP), !(breaked && can_debug)); + p->set_item_disabled(p->get_item_index(DEBUG_BREAK), breaked); + p->set_item_disabled(p->get_item_index(DEBUG_CONTINUE), !breaked); +} + +void EditorDebuggerNode::_menu_option(int p_id) { + switch (p_id) { + case DEBUG_NEXT: { + debug_next(); + } break; + case DEBUG_STEP: { + debug_step(); + } break; + case DEBUG_BREAK: { + debug_break(); + } break; + case DEBUG_CONTINUE: { + debug_continue(); + } break; + + case DEBUG_SHOW_KEEP_OPEN: { + bool visible = script_menu->get_popup()->is_item_checked(script_menu->get_popup()->get_item_index(DEBUG_SHOW_KEEP_OPEN)); + hide_on_stop = visible; + script_menu->get_popup()->set_item_checked(script_menu->get_popup()->get_item_index(DEBUG_SHOW_KEEP_OPEN), !visible); + } break; + case DEBUG_WITH_EXTERNAL_EDITOR: { + bool checked = !script_menu->get_popup()->is_item_checked(script_menu->get_popup()->get_item_index(DEBUG_WITH_EXTERNAL_EDITOR)); + debug_with_external_editor = checked; + script_menu->get_popup()->set_item_checked(script_menu->get_popup()->get_item_index(DEBUG_WITH_EXTERNAL_EDITOR), checked); + } break; + } +} + +void EditorDebuggerNode::_paused() { + const bool paused = EditorNode::get_singleton()->get_pause_button()->is_pressed(); + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + if (paused && !dbg->is_breaked()) { + dbg->debug_break(); + } else if (!paused && dbg->is_breaked()) { + dbg->debug_continue(); + } + }); +} + +void EditorDebuggerNode::_breaked(bool p_breaked, bool p_can_debug, int p_debugger) { + if (get_current_debugger() != get_debugger(p_debugger)) { + if (!p_breaked) + return; + tabs->set_current_tab(p_debugger); + } + _break_state_changed(); + EditorNode::get_singleton()->get_pause_button()->set_pressed(p_breaked); + emit_signal("breaked", p_breaked, p_can_debug); +} + +bool EditorDebuggerNode::is_skip_breakpoints() const { + return get_default_debugger()->is_skip_breakpoints(); +} + +void EditorDebuggerNode::set_breakpoint(const String &p_path, int p_line, bool p_enabled) { + breakpoints[Breakpoint(p_path, p_line)] = p_enabled; + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->set_breakpoint(p_path, p_line, p_enabled); + }); +} + +void EditorDebuggerNode::reload_scripts() { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->reload_scripts(); + }); +} + +// LiveEdit/Inspector +void EditorDebuggerNode::request_remote_tree() { + get_current_debugger()->request_remote_tree(); +} + +void EditorDebuggerNode::_remote_tree_updated(int p_debugger) { + if (p_debugger != tabs->get_current_tab()) + return; + remote_scene_tree->clear(); + remote_scene_tree->update_scene_tree(get_current_debugger()->get_remote_tree(), p_debugger); +} + +void EditorDebuggerNode::_remote_object_updated(ObjectID p_id, int p_debugger) { + if (p_debugger != tabs->get_current_tab()) + return; + if (EditorDebuggerRemoteObject *obj = get_inspected_remote_object()) { + if (obj->remote_object_id == p_id) + return; // Already being edited + } + + EditorNode::get_singleton()->push_item(get_current_debugger()->get_remote_object(p_id)); +} + +void EditorDebuggerNode::_remote_object_property_updated(ObjectID p_id, const String &p_property, int p_debugger) { + if (p_debugger != tabs->get_current_tab()) + return; + if (EditorDebuggerRemoteObject *obj = get_inspected_remote_object()) { + if (obj->remote_object_id != p_id) + return; + EditorNode::get_singleton()->get_inspector()->update_property(p_property); + } +} + +void EditorDebuggerNode::_remote_object_requested(ObjectID p_id, int p_debugger) { + if (p_debugger != tabs->get_current_tab()) + return; + inspect_edited_object_timeout = 0.7; // Temporarily disable timeout to avoid multiple requests. + get_current_debugger()->request_remote_object(p_id); +} + +void EditorDebuggerNode::_save_node_requested(ObjectID p_id, const String &p_file, int p_debugger) { + if (p_debugger != tabs->get_current_tab()) + return; + get_current_debugger()->save_node(p_id, p_file); +} + +// Remote inspector/edit. +void EditorDebuggerNode::_method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE) { + if (!singleton) + return; + _for_all(singleton->tabs, [&](ScriptEditorDebugger *dbg) { + dbg->_method_changed(p_base, p_name, VARIANT_ARG_PASS); + }); +} + +void EditorDebuggerNode::_property_changeds(void *p_ud, Object *p_base, const StringName &p_property, const Variant &p_value) { + if (!singleton) + return; + _for_all(singleton->tabs, [&](ScriptEditorDebugger *dbg) { + dbg->_property_changed(p_base, p_property, p_value); + }); +} + +// LiveDebug +void EditorDebuggerNode::set_live_debugging(bool p_enabled) { + + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->set_live_debugging(p_enabled); + }); +} +void EditorDebuggerNode::update_live_edit_root() { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->update_live_edit_root(); + }); +} +void EditorDebuggerNode::live_debug_create_node(const NodePath &p_parent, const String &p_type, const String &p_name) { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->live_debug_create_node(p_parent, p_type, p_name); + }); +} +void EditorDebuggerNode::live_debug_instance_node(const NodePath &p_parent, const String &p_path, const String &p_name) { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->live_debug_instance_node(p_parent, p_path, p_name); + }); +} +void EditorDebuggerNode::live_debug_remove_node(const NodePath &p_at) { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->live_debug_remove_node(p_at); + }); +} +void EditorDebuggerNode::live_debug_remove_and_keep_node(const NodePath &p_at, ObjectID p_keep_id) { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->live_debug_remove_and_keep_node(p_at, p_keep_id); + }); +} +void EditorDebuggerNode::live_debug_restore_node(ObjectID p_id, const NodePath &p_at, int p_at_pos) { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->live_debug_restore_node(p_id, p_at, p_at_pos); + }); +} +void EditorDebuggerNode::live_debug_duplicate_node(const NodePath &p_at, const String &p_new_name) { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->live_debug_duplicate_node(p_at, p_new_name); + }); +} +void EditorDebuggerNode::live_debug_reparent_node(const NodePath &p_at, const NodePath &p_new_place, const String &p_new_name, int p_at_pos) { + _for_all(tabs, [&](ScriptEditorDebugger *dbg) { + dbg->live_debug_reparent_node(p_at, p_new_place, p_new_name, p_at_pos); + }); +} diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h new file mode 100644 index 0000000000..13a1d6dcb3 --- /dev/null +++ b/editor/debugger/editor_debugger_node.h @@ -0,0 +1,177 @@ +/*************************************************************************/ +/* editor_debugger_node.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#ifndef EDITOR_DEBUGGER_NODE_H +#define EDITOR_DEBUGGER_NODE_H + +#include "core/io/tcp_server.h" +#include "editor/debugger/script_editor_debugger.h" +#include "scene/gui/button.h" +#include "scene/gui/tab_container.h" + +class EditorDebuggerTree; + +class EditorDebuggerNode : public MarginContainer { + + GDCLASS(EditorDebuggerNode, MarginContainer); + +private: + enum Options { + DEBUG_NEXT, + DEBUG_STEP, + DEBUG_BREAK, + DEBUG_CONTINUE, + DEBUG_SHOW_KEEP_OPEN, + DEBUG_WITH_EXTERNAL_EDITOR, + }; + + class Breakpoint { + public: + String source; + int line = 0; + + bool operator<(const Breakpoint &p_b) const { + if (line == p_b.line) + return source < p_b.source; + return line < p_b.line; + } + + Breakpoint(){}; + + Breakpoint(const String &p_source, int p_line) { + line = p_line; + source = p_source; + } + }; + + Ref<TCP_Server> server = NULL; + TabContainer *tabs = NULL; + Button *debugger_button = NULL; + MenuButton *script_menu = NULL; + + Ref<Script> stack_script; // Why?!? + + int last_error_count = 0; + int last_warning_count = 0; + + float inspect_edited_object_timeout = 0; + EditorDebuggerTree *remote_scene_tree = NULL; + float remote_scene_tree_timeout = 0.0; + bool auto_switch_remote_scene_tree = false; + bool debug_with_external_editor = false; + bool hide_on_stop = true; + ScriptEditorDebugger::CameraOverride camera_override = ScriptEditorDebugger::OVERRIDE_NONE; + Map<Breakpoint, bool> breakpoints; + + ScriptEditorDebugger *_add_debugger(); + EditorDebuggerRemoteObject *get_inspected_remote_object(); + + friend class DebuggerEditorPlugin; + static EditorDebuggerNode *singleton; + EditorDebuggerNode(); + +protected: + void _debugger_stopped(int p_id); + void _debugger_wants_stop(int p_id); + void _debugger_changed(int p_tab); + void _remote_tree_updated(int p_debugger); + void _remote_object_updated(ObjectID p_id, int p_debugger); + void _remote_object_property_updated(ObjectID p_id, const String &p_property, int p_debugger); + void _remote_object_requested(ObjectID p_id, int p_debugger); + void _save_node_requested(ObjectID p_id, const String &p_file, int p_debugger); + + void _clear_execution(REF p_script) { + emit_signal("clear_execution", p_script); + } + + void _text_editor_stack_goto(const ScriptEditorDebugger *p_debugger); + void _stack_frame_selected(int p_debugger); + void _error_selected(const String &p_file, int p_line, int p_debugger); + void _breaked(bool p_breaked, bool p_can_debug, int p_debugger); + void _paused(); + void _break_state_changed(); + void _menu_option(int p_id); + +protected: + void _notification(int p_what); + static void _bind_methods(); + +public: + static EditorDebuggerNode *get_singleton() { return singleton; } + + ScriptEditorDebugger *get_current_debugger() const; + ScriptEditorDebugger *get_default_debugger() const; + ScriptEditorDebugger *get_debugger(int p_debugger) const; + + void debug_next() { get_default_debugger()->debug_next(); } + void debug_step() { get_default_debugger()->debug_step(); } + void debug_break() { get_default_debugger()->debug_break(); } + void debug_continue() { get_default_debugger()->debug_continue(); } + + void set_script_debug_button(MenuButton *p_button); + + void set_tool_button(Button *p_button) { + debugger_button = p_button; + } + + String get_var_value(const String &p_var) const { return get_default_debugger()->get_var_value(p_var); } + Ref<Script> get_dump_stack_script() const { return stack_script; } // Why do we need this? + + bool get_debug_with_external_editor() { return debug_with_external_editor; } + + bool is_skip_breakpoints() const; + void set_breakpoint(const String &p_path, int p_line, bool p_enabled); + void reload_scripts(); + + // Remote inspector/edit. + void request_remote_tree(); + static void _method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE); + static void _property_changeds(void *p_ud, Object *p_base, const StringName &p_property, const Variant &p_value); + + // LiveDebug + void set_live_debugging(bool p_enabled); + void update_live_edit_root(); + void live_debug_create_node(const NodePath &p_parent, const String &p_type, const String &p_name); + void live_debug_instance_node(const NodePath &p_parent, const String &p_path, const String &p_name); + void live_debug_remove_node(const NodePath &p_at); + void live_debug_remove_and_keep_node(const NodePath &p_at, ObjectID p_keep_id); + void live_debug_restore_node(ObjectID p_id, const NodePath &p_at, int p_at_pos); + void live_debug_duplicate_node(const NodePath &p_at, const String &p_new_name); + void live_debug_reparent_node(const NodePath &p_at, const NodePath &p_new_place, const String &p_new_name, int p_at_pos); + + // Camera + void set_camera_override(ScriptEditorDebugger::CameraOverride p_override) { camera_override = p_override; } + ScriptEditorDebugger::CameraOverride get_camera_override() { return camera_override; } + + Error start(); + + void stop(); +}; +#endif // EDITOR_DEBUGGER_NODE_H diff --git a/editor/debugger/editor_debugger_tree.cpp b/editor/debugger/editor_debugger_tree.cpp new file mode 100644 index 0000000000..9ba5d0cbe1 --- /dev/null +++ b/editor/debugger/editor_debugger_tree.cpp @@ -0,0 +1,274 @@ +/*************************************************************************/ +/* editor_debugger_tree.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "editor_debugger_tree.h" + +#include "editor/editor_node.h" +#include "scene/debugger/scene_debugger.h" +#include "scene/resources/packed_scene.h" + +EditorDebuggerTree::EditorDebuggerTree() { + set_v_size_flags(SIZE_EXPAND_FILL); + set_allow_rmb_select(true); + + // Popup + item_menu = memnew(PopupMenu); + item_menu->connect_compat("id_pressed", this, "_item_menu_id_pressed"); + add_child(item_menu); + + // File Dialog + file_dialog = memnew(EditorFileDialog); + file_dialog->connect_compat("file_selected", this, "_file_selected"); + add_child(file_dialog); +} + +void EditorDebuggerTree::_notification(int p_what) { + if (p_what == NOTIFICATION_POSTINITIALIZE) { + connect_compat("cell_selected", this, "_scene_tree_selected"); + connect_compat("item_collapsed", this, "_scene_tree_folded"); + connect_compat("item_rmb_selected", this, "_scene_tree_rmb_selected"); + } +} + +void EditorDebuggerTree::_bind_methods() { + ClassDB::bind_method(D_METHOD("_scene_tree_selected"), &EditorDebuggerTree::_scene_tree_selected); + ClassDB::bind_method(D_METHOD("_scene_tree_folded"), &EditorDebuggerTree::_scene_tree_folded); + ClassDB::bind_method(D_METHOD("_scene_tree_rmb_selected"), &EditorDebuggerTree::_scene_tree_rmb_selected); + ClassDB::bind_method(D_METHOD("_item_menu_id_pressed"), &EditorDebuggerTree::_item_menu_id_pressed); + ClassDB::bind_method(D_METHOD("_file_selected"), &EditorDebuggerTree::_file_selected); + ADD_SIGNAL(MethodInfo("object_selected", PropertyInfo(Variant::INT, "object_id"), PropertyInfo(Variant::INT, "debugger"))); + ADD_SIGNAL(MethodInfo("save_node", PropertyInfo(Variant::INT, "object_id"), PropertyInfo(Variant::STRING, "filename"), PropertyInfo(Variant::INT, "debugger"))); +} + +void EditorDebuggerTree::_scene_tree_selected() { + + if (updating_scene_tree) { + return; + } + + TreeItem *item = get_selected(); + if (!item) { + return; + } + + inspected_object_id = uint64_t(item->get_metadata(0)); + + emit_signal("object_selected", inspected_object_id, debugger_id); +} + +void EditorDebuggerTree::_scene_tree_folded(Object *p_obj) { + + if (updating_scene_tree) { + + return; + } + TreeItem *item = Object::cast_to<TreeItem>(p_obj); + + if (!item) + return; + + ObjectID id = ObjectID(uint64_t(item->get_metadata(0))); + if (unfold_cache.has(id)) { + unfold_cache.erase(id); + } else { + unfold_cache.insert(id); + } +} + +void EditorDebuggerTree::_scene_tree_rmb_selected(const Vector2 &p_position) { + + TreeItem *item = get_item_at_position(p_position); + if (!item) + return; + + item->select(0); + + item_menu->clear(); + item_menu->add_icon_item(get_icon("CreateNewSceneFrom", "EditorIcons"), TTR("Save Branch as Scene"), ITEM_MENU_SAVE_REMOTE_NODE); + item_menu->add_icon_item(get_icon("CopyNodePath", "EditorIcons"), TTR("Copy Node Path"), ITEM_MENU_COPY_NODE_PATH); + item_menu->set_global_position(get_global_mouse_position()); + item_menu->popup(); +} + +/// Populates inspect_scene_tree given data in nodes as a flat list, encoded depth first. +/// +/// Given a nodes array like [R,A,B,C,D,E] the following Tree will be generated, assuming +/// filter is an empty String, R and A child count are 2, B is 1 and C, D and E are 0. +/// +/// R +/// |-A +/// | |-B +/// | | |-C +/// | | +/// | |-D +/// | +/// |-E +/// +void EditorDebuggerTree::update_scene_tree(const SceneDebuggerTree *p_tree, int p_debugger) { + updating_scene_tree = true; + const String last_path = get_selected_path(); + const String filter = EditorNode::get_singleton()->get_scene_tree_dock()->get_filter(); + + // Nodes are in a flatten list, depth first. Use a stack of parents, avoid recursion. + List<Pair<TreeItem *, int> > parents; + for (int i = 0; i < p_tree->nodes.size(); i++) { + TreeItem *parent = NULL; + if (parents.size()) { // Find last parent. + Pair<TreeItem *, int> &p = parents[0]; + parent = p.first; + if (!(--p.second)) { // If no child left, remove it. + parents.pop_front(); + } + } + // Add this node. + const SceneDebuggerTree::RemoteNode &node = p_tree->nodes[i]; + TreeItem *item = create_item(parent); + item->set_text(0, node.name); + item->set_tooltip(0, TTR("Type:") + " " + node.type_name); + Ref<Texture2D> icon = EditorNode::get_singleton()->get_class_icon(node.type_name, ""); + if (icon.is_valid()) { + item->set_icon(0, icon); + } + item->set_metadata(0, node.id); + + // Set current item as collapsed if necessary (root is never collapsed) + if (parent) { + if (!unfold_cache.has(node.id)) { + item->set_collapsed(true); + } + } + // Select previously selected node. + if (debugger_id == p_debugger) { // Can use remote id. + if (node.id == inspected_object_id) { + item->select(0); + } + } else { // Must use path + if (last_path == _get_path(item)) { + updating_scene_tree = false; // Force emission of new selection + item->select(0); + updating_scene_tree = true; + } + } + + // Add in front of the parents stack if children are expected. + if (node.child_count) { + parents.push_front(Pair<TreeItem *, int>(item, node.child_count)); + } else { + // Apply filters. + while (parent) { + const bool had_siblings = item->get_prev() || item->get_next(); + if (filter.is_subsequence_ofi(item->get_text(0))) + break; // Filter matches, must survive. + parent->remove_child(item); + memdelete(item); + if (had_siblings) + break; // Parent must survive. + item = parent; + parent = item->get_parent(); + // Check if parent expects more children. + for (int j = 0; j < parents.size(); j++) { + if (parents[j].first == item) { + parent = NULL; + break; // Might have more children. + } + } + } + } + } + debugger_id = p_debugger; // Needed by hook, could be avoided if every debugger had its own tree + updating_scene_tree = false; +} + +String EditorDebuggerTree::get_selected_path() { + if (!get_selected()) + return ""; + return _get_path(get_selected()); +} + +String EditorDebuggerTree::_get_path(TreeItem *p_item) { + ERR_FAIL_COND_V(!p_item, ""); + + if (p_item->get_parent() == NULL) { + return "/root"; + } + String text = p_item->get_text(0); + TreeItem *cur = p_item->get_parent(); + while (cur) { + text = cur->get_text(0) + "/" + text; + cur = cur->get_parent(); + } + return "/" + text; +} + +void EditorDebuggerTree::_item_menu_id_pressed(int p_option) { + + switch (p_option) { + + case ITEM_MENU_SAVE_REMOTE_NODE: { + + file_dialog->set_access(EditorFileDialog::ACCESS_RESOURCES); + file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); + + List<String> extensions; + Ref<PackedScene> sd = memnew(PackedScene); + ResourceSaver::get_recognized_extensions(sd, &extensions); + file_dialog->clear_filters(); + for (int i = 0; i < extensions.size(); i++) { + file_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); + } + + file_dialog->popup_centered_ratio(); + } break; + case ITEM_MENU_COPY_NODE_PATH: { + + String text = get_selected_path(); + if (text.empty()) { + return; + } else if (text == "/root") { + text = "."; + } else { + text = text.replace("/root/", ""); + int slash = text.find("/"); + if (slash < 0) { + text = "."; + } else { + text = text.substr(slash + 1); + } + } + OS::get_singleton()->set_clipboard(text); + } break; + } +} + +void EditorDebuggerTree::_file_selected(const String &p_file) { + if (inspected_object_id.is_null()) + return; + emit_signal("save_node", inspected_object_id, p_file, debugger_id); +} diff --git a/editor/debugger/editor_debugger_tree.h b/editor/debugger/editor_debugger_tree.h new file mode 100644 index 0000000000..d9084bc596 --- /dev/null +++ b/editor/debugger/editor_debugger_tree.h @@ -0,0 +1,74 @@ +/*************************************************************************/ +/* editor_debugger_tree.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "scene/gui/tree.h" + +#ifndef EDITOR_DEBUGGER_TREE_H +#define EDITOR_DEBUGGER_TREE_H + +class SceneDebuggerTree; +class EditorFileDialog; + +class EditorDebuggerTree : public Tree { + + GDCLASS(EditorDebuggerTree, Tree); + +private: + enum ItemMenu { + ITEM_MENU_SAVE_REMOTE_NODE, + ITEM_MENU_COPY_NODE_PATH, + }; + + ObjectID inspected_object_id; + int debugger_id = 0; + bool updating_scene_tree = false; + Set<ObjectID> unfold_cache; + PopupMenu *item_menu = NULL; + EditorFileDialog *file_dialog = NULL; + + String _get_path(TreeItem *p_item); + void _scene_tree_folded(Object *p_obj); + void _scene_tree_selected(); + void _scene_tree_rmb_selected(const Vector2 &p_position); + void _item_menu_id_pressed(int p_option); + void _file_selected(const String &p_file); + +protected: + static void _bind_methods(); + void _notification(int p_what); + +public: + String get_selected_path(); + ObjectID get_selected_object(); + int get_current_debugger(); // Would love to have one tree for every debugger. + void update_scene_tree(const SceneDebuggerTree *p_tree, int p_debugger); + EditorDebuggerTree(); +}; +#endif // EDITOR_DEBUGGER_TREE_H diff --git a/editor/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp index 88d45d5dde..45af70f191 100644 --- a/editor/script_editor_debugger.cpp +++ b/editor/debugger/script_editor_debugger.cpp @@ -32,18 +32,20 @@ #include "core/io/marshalls.h" #include "core/project_settings.h" +#include "core/script_debugger_remote.h" #include "core/ustring.h" #include "editor/editor_log.h" #include "editor/editor_network_profiler.h" +#include "editor/editor_node.h" +#include "editor/editor_profiler.h" +#include "editor/editor_scale.h" +#include "editor/editor_settings.h" #include "editor/editor_visual_profiler.h" #include "editor/plugins/canvas_item_editor_plugin.h" #include "editor/plugins/spatial_editor_plugin.h" -#include "editor_node.h" -#include "editor_profiler.h" -#include "editor_scale.h" -#include "editor_settings.h" +#include "editor/property_editor.h" #include "main/performance.h" -#include "property_editor.h" +#include "scene/debugger/scene_debugger.h" #include "scene/gui/dialogs.h" #include "scene/gui/label.h" #include "scene/gui/line_edit.h" @@ -56,149 +58,14 @@ #include "scene/gui/tree.h" #include "scene/resources/packed_scene.h" -class ScriptEditorDebuggerVariables : public Object { - - GDCLASS(ScriptEditorDebuggerVariables, Object); - - List<PropertyInfo> props; - Map<StringName, Variant> values; - -protected: - bool _set(const StringName &p_name, const Variant &p_value) { - - return false; - } - - bool _get(const StringName &p_name, Variant &r_ret) const { - - if (!values.has(p_name)) - return false; - r_ret = values[p_name]; - return true; - } - void _get_property_list(List<PropertyInfo> *p_list) const { - - for (const List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) - p_list->push_back(E->get()); - } - -public: - void clear() { - - props.clear(); - values.clear(); - } - - String get_var_value(const String &p_var) const { - - for (Map<StringName, Variant>::Element *E = values.front(); E; E = E->next()) { - String v = E->key().operator String().get_slice("/", 1); - if (v == p_var) - return E->get(); - } - - return ""; - } - - void add_property(const String &p_name, const Variant &p_value, const PropertyHint &p_hint, const String p_hint_string) { - - PropertyInfo pinfo; - pinfo.name = p_name; - pinfo.type = p_value.get_type(); - pinfo.hint = p_hint; - pinfo.hint_string = p_hint_string; - props.push_back(pinfo); - values[p_name] = p_value; - } - - void update() { - _change_notify(); - } - - ScriptEditorDebuggerVariables() { - } -}; - -class ScriptEditorDebuggerInspectedObject : public Object { - - GDCLASS(ScriptEditorDebuggerInspectedObject, Object); - -protected: - bool _set(const StringName &p_name, const Variant &p_value) { - - if (!prop_values.has(p_name) || String(p_name).begins_with("Constants/")) - return false; - - prop_values[p_name] = p_value; - emit_signal("value_edited", p_name, p_value); - return true; - } - - bool _get(const StringName &p_name, Variant &r_ret) const { - - if (!prop_values.has(p_name)) - return false; - - r_ret = prop_values[p_name]; - return true; - } - - void _get_property_list(List<PropertyInfo> *p_list) const { - - p_list->clear(); //sorry, no want category - for (const List<PropertyInfo>::Element *E = prop_list.front(); E; E = E->next()) { - p_list->push_back(E->get()); - } - } - - static void _bind_methods() { - - ClassDB::bind_method(D_METHOD("get_title"), &ScriptEditorDebuggerInspectedObject::get_title); - ClassDB::bind_method(D_METHOD("get_variant"), &ScriptEditorDebuggerInspectedObject::get_variant); - ClassDB::bind_method(D_METHOD("clear"), &ScriptEditorDebuggerInspectedObject::clear); - ClassDB::bind_method(D_METHOD("get_remote_object_id"), &ScriptEditorDebuggerInspectedObject::get_remote_object_id); - - ADD_SIGNAL(MethodInfo("value_edited")); - } - -public: - String type_name; - ObjectID remote_object_id; - List<PropertyInfo> prop_list; - Map<StringName, Variant> prop_values; - - ObjectID get_remote_object_id() { - return remote_object_id; - } - - String get_title() { - if (remote_object_id.is_valid()) - return TTR("Remote ") + String(type_name) + ": " + itos(remote_object_id); - else - return "<null>"; - } - Variant get_variant(const StringName &p_name) { - - Variant var; - _get(p_name, var); - return var; - } - - void clear() { - - prop_list.clear(); - prop_values.clear(); - } - void update() { - _change_notify(); - } - void update_single(const char *p_prop) { - _change_notify(p_prop); - } - - ScriptEditorDebuggerInspectedObject() { +void ScriptEditorDebugger::_put_msg(String p_message, Array p_data) { + if (is_session_active()) { + Array msg; + msg.push_back(p_message); + msg.push_back(p_data); + ppeer->put_var(msg); } -}; +} void ScriptEditorDebugger::debug_copy() { String msg = reason->get_text(); @@ -213,285 +80,153 @@ void ScriptEditorDebugger::debug_skip_breakpoints() { else skip_breakpoints->set_icon(get_icon("DebugSkipBreakpointsOff", "EditorIcons")); - if (connection.is_valid()) { - Array msg; - msg.push_back("set_skip_breakpoints"); - msg.push_back(skip_breakpoints_value); - ppeer->put_var(msg); - } + Array msg; + msg.push_back(skip_breakpoints_value); + _put_msg("set_skip_breakpoints", msg); } void ScriptEditorDebugger::debug_next() { ERR_FAIL_COND(!breaked); - ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected_to_host()); - Array msg; - msg.push_back("next"); - ppeer->put_var(msg); + + _put_msg("next", Array()); _clear_execution(); - stack_dump->clear(); } void ScriptEditorDebugger::debug_step() { ERR_FAIL_COND(!breaked); - ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected_to_host()); - Array msg; - msg.push_back("step"); - ppeer->put_var(msg); + _put_msg("step", Array()); _clear_execution(); - stack_dump->clear(); } void ScriptEditorDebugger::debug_break() { ERR_FAIL_COND(breaked); - ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected_to_host()); - Array msg; - msg.push_back("break"); - ppeer->put_var(msg); + _put_msg("break", Array()); } void ScriptEditorDebugger::debug_continue() { ERR_FAIL_COND(!breaked); - ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected_to_host()); - OS::get_singleton()->enable_for_stealing_focus(EditorNode::get_singleton()->get_child_process_id()); + // Allow focus stealing only if we actually run this client for security. + if (remote_pid && EditorNode::get_singleton()->has_child_process(remote_pid)) + OS::get_singleton()->enable_for_stealing_focus(remote_pid); - Array msg; _clear_execution(); - msg.push_back("continue"); - ppeer->put_var(msg); + _put_msg("continue", Array()); } -void ScriptEditorDebugger::_scene_tree_folded(Object *obj) { - - if (updating_scene_tree) { - - return; - } - TreeItem *item = Object::cast_to<TreeItem>(obj); - - if (!item) - return; - - ObjectID id = item->get_metadata(0); - if (unfold_cache.has(id)) { - unfold_cache.erase(id); +void ScriptEditorDebugger::update_tabs() { + if (error_count == 0 && warning_count == 0) { + errors_tab->set_name(TTR("Errors")); + tabs->set_tab_icon(errors_tab->get_index(), Ref<Texture2D>()); } else { - unfold_cache.insert(id); + errors_tab->set_name(TTR("Errors") + " (" + itos(error_count + warning_count) + ")"); + if (error_count == 0) { + tabs->set_tab_icon(errors_tab->get_index(), get_icon("Warning", "EditorIcons")); + } else { + tabs->set_tab_icon(errors_tab->get_index(), get_icon("Error", "EditorIcons")); + } } } -void ScriptEditorDebugger::_scene_tree_selected() { - - if (updating_scene_tree) { - - return; - } - TreeItem *item = inspect_scene_tree->get_selected(); - if (!item) { - - return; - } - - inspected_object_id = item->get_metadata(0).operator ObjectID(); +void ScriptEditorDebugger::clear_style() { + tabs->add_style_override("panel", NULL); +} +void ScriptEditorDebugger::save_node(ObjectID p_id, const String &p_file) { Array msg; - msg.push_back("inspect_object"); - msg.push_back(inspected_object_id); - ppeer->put_var(msg); + msg.push_back(p_id); + msg.push_back(p_file); + _put_msg("save_node", msg); } -void ScriptEditorDebugger::_scene_tree_rmb_selected(const Vector2 &p_position) { +void ScriptEditorDebugger::_file_selected(const String &p_file) { + Error err; + FileAccessRef file = FileAccess::open(p_file, FileAccess::WRITE, &err); - TreeItem *item = inspect_scene_tree->get_item_at_position(p_position); - if (!item) + if (err != OK) { + ERR_PRINT("Failed to open " + p_file); return; + } + Vector<String> line; + line.resize(Performance::MONITOR_MAX); - item->select(0); - - item_menu->clear(); - item_menu->add_icon_item(get_icon("CreateNewSceneFrom", "EditorIcons"), TTR("Save Branch as Scene"), ITEM_MENU_SAVE_REMOTE_NODE); - item_menu->add_icon_item(get_icon("CopyNodePath", "EditorIcons"), TTR("Copy Node Path"), ITEM_MENU_COPY_NODE_PATH); - item_menu->set_global_position(get_global_mouse_position()); - item_menu->popup(); -} + // signatures + for (int i = 0; i < Performance::MONITOR_MAX; i++) { + line.write[i] = Performance::get_singleton()->get_monitor_name(Performance::Monitor(i)); + } + file->store_csv_line(line); -void ScriptEditorDebugger::_file_selected(const String &p_file) { - switch (file_dialog_mode) { - case SAVE_NODE: { - Array msg; - msg.push_back("save_node"); - msg.push_back(inspected_object_id); - msg.push_back(p_file); - ppeer->put_var(msg); - } break; - case SAVE_CSV: { - Error err; - FileAccessRef file = FileAccess::open(p_file, FileAccess::WRITE, &err); + // values + List<Vector<float> >::Element *E = perf_history.back(); + while (E) { - if (err != OK) { - ERR_PRINT("Failed to open " + p_file); - return; - } - Vector<String> line; - line.resize(Performance::MONITOR_MAX); + Vector<float> &perf_data = E->get(); + for (int i = 0; i < perf_data.size(); i++) { - // signatures - for (int i = 0; i < Performance::MONITOR_MAX; i++) { - line.write[i] = Performance::get_singleton()->get_monitor_name(Performance::Monitor(i)); - } - file->store_csv_line(line); - - // values - List<Vector<float> >::Element *E = perf_history.back(); - while (E) { + line.write[i] = String::num_real(perf_data[i]); + } + file->store_csv_line(line); + E = E->prev(); + } + file->store_string("\n"); - Vector<float> &perf_data = E->get(); - for (int i = 0; i < perf_data.size(); i++) { + Vector<Vector<String> > profiler_data = profiler->get_data_as_csv(); + for (int i = 0; i < profiler_data.size(); i++) { + file->store_csv_line(profiler_data[i]); + } +} - line.write[i] = String::num_real(perf_data[i]); - } - file->store_csv_line(line); - E = E->prev(); - } - file->store_string("\n"); +void ScriptEditorDebugger::request_remote_tree() { - Vector<Vector<String> > profiler_data = profiler->get_data_as_csv(); - for (int i = 0; i < profiler_data.size(); i++) { - file->store_csv_line(profiler_data[i]); - } + _put_msg("request_scene_tree", Array()); +} - } break; - } +const SceneDebuggerTree *ScriptEditorDebugger::get_remote_tree() { + return scene_tree; } -void ScriptEditorDebugger::_scene_tree_property_value_edited(const String &p_prop, const Variant &p_value) { +void ScriptEditorDebugger::update_remote_object(ObjectID p_obj_id, const String &p_prop, const Variant &p_value) { Array msg; - msg.push_back("set_object_property"); - msg.push_back(inspected_object_id); + msg.push_back(p_obj_id); msg.push_back(p_prop); msg.push_back(p_value); - ppeer->put_var(msg); - inspect_edited_object_timeout = 0.7; //avoid annoyance, don't request soon after editing + _put_msg("set_object_property", msg); } -void ScriptEditorDebugger::_scene_tree_property_select_object(ObjectID p_object) { +void ScriptEditorDebugger::request_remote_object(ObjectID p_obj_id) { - inspected_object_id = p_object; + ERR_FAIL_COND(p_obj_id.is_null()); Array msg; - msg.push_back("inspect_object"); - msg.push_back(inspected_object_id); - ppeer->put_var(msg); + msg.push_back(p_obj_id); + _put_msg("inspect_object", msg); } -void ScriptEditorDebugger::_scene_tree_request() { - - ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected_to_host()); - - Array msg; - msg.push_back("request_scene_tree"); - ppeer->put_var(msg); -} - -/// Populates inspect_scene_tree recursively given data in nodes. -/// Nodes is an array containing 4 elements for each node, it follows this pattern: -/// nodes[i] == number of direct children of this node -/// nodes[i + 1] == node name -/// nodes[i + 2] == node class -/// nodes[i + 3] == node instance id -/// -/// Returns the number of items parsed in nodes from current_index. -/// -/// Given a nodes array like [R,A,B,C,D,E] the following Tree will be generated, assuming -/// filter is an empty String, R and A child count are 2, B is 1 and C, D and E are 0. -/// -/// R -/// |-A -/// | |-B -/// | | |-C -/// | | -/// | |-D -/// | -/// |-E -/// -int ScriptEditorDebugger::_update_scene_tree(TreeItem *parent, const Array &nodes, int current_index) { - String filter = EditorNode::get_singleton()->get_scene_tree_dock()->get_filter(); - String item_text = nodes[current_index + 1]; - String item_type = nodes[current_index + 2]; - bool keep = filter.is_subsequence_ofi(item_text); - - TreeItem *item = inspect_scene_tree->create_item(parent); - item->set_text(0, item_text); - item->set_tooltip(0, TTR("Type:") + " " + item_type); - ObjectID id = nodes[current_index + 3].operator ObjectID(); - Ref<Texture2D> icon = EditorNode::get_singleton()->get_class_icon(nodes[current_index + 2], ""); - if (icon.is_valid()) { - item->set_icon(0, icon); - } - item->set_metadata(0, id); - - if (id == inspected_object_id) { - TreeItem *cti = item->get_parent(); - while (cti) { - cti->set_collapsed(false); - cti = cti->get_parent(); - } - item->select(0); - } - - // Set current item as collapsed if necessary - if (parent) { - if (!unfold_cache.has(id)) { - item->set_collapsed(true); - } - } +Object *ScriptEditorDebugger::get_remote_object(ObjectID p_id) { + return inspector->get_object(p_id); +} - int children_count = nodes[current_index]; - // Tracks the total number of items parsed in nodes, this is used to skips nodes that - // are not direct children of the current node since we can't know in advance the total - // number of children, direct and not, of a node without traversing the nodes array previously. - // Keeping track of this allows us to build our remote scene tree by traversing the node - // array just once. - int items_count = 1; - for (int i = 0; i < children_count; i++) { - // Called for each direct child of item. - // Direct children of current item might not be adjacent so items_count must - // be incremented by the number of items parsed until now, otherwise we would not - // be able to access the next child of the current item. - // items_count is multiplied by 4 since that's the number of elements in the nodes - // array needed to represent a single node. - items_count += _update_scene_tree(item, nodes, current_index + items_count * 4); - } +void ScriptEditorDebugger::_remote_object_selected(ObjectID p_id) { + emit_signal("remote_object_requested", p_id); +} - // If item has not children and should not be kept delete it - if (!keep && !item->get_children() && parent) { - parent->remove_child(item); - memdelete(item); - } +void ScriptEditorDebugger::_remote_object_edited(ObjectID p_id, const String &p_prop, const Variant &p_value) { + update_remote_object(p_id, p_prop, p_value); + request_remote_object(p_id); +} - return items_count; +void ScriptEditorDebugger::_remote_object_property_updated(ObjectID p_id, const String &p_property) { + emit_signal("remote_object_property_updated", p_id, p_property); } void ScriptEditorDebugger::_video_mem_request() { - if (connection.is_null() || !connection->is_connected_to_host()) { - // Video RAM usage is only available while a project is being debugged. - return; - } - - Array msg; - msg.push_back("request_video_mem"); - ppeer->put_var(msg); + _put_msg("request_video_mem", Array()); } Size2 ScriptEditorDebugger::get_minimum_size() const { @@ -504,184 +239,72 @@ Size2 ScriptEditorDebugger::get_minimum_size() const { void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_data) { if (p_msg == "debug_enter") { - Array msg; - msg.push_back("get_stack_dump"); - ppeer->put_var(msg); + + _put_msg("get_stack_dump", Array()); + ERR_FAIL_COND(p_data.size() != 2); bool can_continue = p_data[0]; String error = p_data[1]; - step->set_disabled(!can_continue); - next->set_disabled(!can_continue); - _set_reason_text(error, MESSAGE_ERROR); - copy->set_disabled(false); breaked = true; - dobreak->set_disabled(true); - docontinue->set_disabled(false); + can_debug = can_continue; + _update_buttons_state(); + _set_reason_text(error, MESSAGE_ERROR); emit_signal("breaked", true, can_continue); OS::get_singleton()->move_window_to_foreground(); if (error != "") { tabs->set_current_tab(0); } profiler->set_enabled(false); - EditorNode::get_singleton()->get_pause_button()->set_pressed(true); - EditorNode::get_singleton()->make_bottom_panel_item_visible(this); - _clear_remote_objects(); + inspector->clear_cache(); // Take a chance to force remote objects update. } else if (p_msg == "debug_exit") { breaked = false; + can_debug = false; _clear_execution(); - copy->set_disabled(true); - step->set_disabled(true); - next->set_disabled(true); - reason->set_text(""); - reason->set_tooltip(""); - back->set_disabled(true); - forward->set_disabled(true); - dobreak->set_disabled(false); - docontinue->set_disabled(true); - emit_signal("breaked", false, false, Variant()); + _update_buttons_state(); + _set_reason_text(TTR("Execution resumed."), MESSAGE_SUCCESS); + emit_signal("breaked", false, false); profiler->set_enabled(true); profiler->disable_seeking(); - EditorNode::get_singleton()->get_pause_button()->set_pressed(false); + } else if (p_msg == "message:set_pid") { + + ERR_FAIL_COND(p_data.size() < 1); + remote_pid = p_data[0]; } else if (p_msg == "message:click_ctrl") { + ERR_FAIL_COND(p_data.size() < 2); clicked_ctrl->set_text(p_data[0]); clicked_ctrl_type->set_text(p_data[1]); - } else if (p_msg == "message:scene_tree") { - inspect_scene_tree->clear(); - Map<int, TreeItem *> lv; - - updating_scene_tree = true; - - _update_scene_tree(NULL, p_data, 0); - - updating_scene_tree = false; - - le_clear->set_disabled(false); - le_set->set_disabled(false); + scene_tree->nodes.clear(); + scene_tree->deserialize(p_data); + emit_signal("remote_tree_updated"); + _update_buttons_state(); } else if (p_msg == "message:inspect_object") { - ScriptEditorDebuggerInspectedObject *debugObj = NULL; - - ObjectID id = p_data[0]; - String type = p_data[1]; - Array properties = p_data[2]; - - if (remote_objects.has(id)) { - debugObj = remote_objects[id]; - } else { - debugObj = memnew(ScriptEditorDebuggerInspectedObject); - debugObj->remote_object_id = id; - debugObj->type_name = type; - remote_objects[id] = debugObj; - debugObj->connect("value_edited", this, "_scene_tree_property_value_edited"); - } - - int old_prop_size = debugObj->prop_list.size(); - - debugObj->prop_list.clear(); - int new_props_added = 0; - Set<String> changed; - for (int i = 0; i < properties.size(); i++) { - - Array prop = properties[i]; - if (prop.size() != 6) - continue; - - PropertyInfo pinfo; - pinfo.name = prop[0]; - pinfo.type = Variant::Type(int(prop[1])); - pinfo.hint = PropertyHint(int(prop[2])); - pinfo.hint_string = prop[3]; - pinfo.usage = PropertyUsageFlags(int(prop[4])); - Variant var = prop[5]; - - if (pinfo.type == Variant::OBJECT) { - if (var.is_zero()) { - var = RES(); - } else if (var.get_type() == Variant::STRING) { - String path = var; - if (path.find("::") != -1) { - // built-in resource - String base_path = path.get_slice("::", 0); - if (ResourceLoader::get_resource_type(base_path) == "PackedScene") { - if (!EditorNode::get_singleton()->is_scene_open(base_path)) { - EditorNode::get_singleton()->load_scene(base_path); - } - } else { - EditorNode::get_singleton()->load_resource(base_path); - } - } - var = ResourceLoader::load(path); - - if (pinfo.hint_string == "Script") { - if (debugObj->get_script() != var) { - debugObj->set_script(REF()); - Ref<Script> script(var); - if (!script.is_null()) { - ScriptInstance *script_instance = script->placeholder_instance_create(debugObj); - debugObj->set_script_and_instance(var, script_instance); - } - } - } - } else if (var.get_type() == Variant::OBJECT) { - if (((Object *)var)->is_class("EncodedObjectAsID")) { - var = Object::cast_to<EncodedObjectAsID>(var)->get_object_id(); - pinfo.type = var.get_type(); - pinfo.hint = PROPERTY_HINT_OBJECT_ID; - pinfo.hint_string = "Object"; - } - } - } - - //always add the property, since props may have been added or removed - debugObj->prop_list.push_back(pinfo); - - if (!debugObj->prop_values.has(pinfo.name)) { - new_props_added++; - debugObj->prop_values[pinfo.name] = var; - } else { - - if (bool(Variant::evaluate(Variant::OP_NOT_EQUAL, debugObj->prop_values[pinfo.name], var))) { - debugObj->prop_values[pinfo.name] = var; - changed.insert(pinfo.name); - } - } - } - - if (editor->get_editor_history()->get_current() != debugObj->get_instance_id()) { - editor->push_item(debugObj, ""); - } else { - - if (old_prop_size == debugObj->prop_list.size() && new_props_added == 0) { - //only some may have changed, if so, then update those, if exist - for (Set<String>::Element *E = changed.front(); E; E = E->next()) { - EditorNode::get_singleton()->get_inspector()->update_property(E->get()); - } - } else { - //full update, because props were added or removed - debugObj->update(); - } - } + ObjectID id = inspector->add_object(p_data); + if (id.is_valid()) + emit_signal("remote_object_updated", id); } else if (p_msg == "message:video_mem") { vmem_tree->clear(); TreeItem *root = vmem_tree->create_item(); + ScriptDebuggerRemote::ResourceUsage usage; + usage.deserialize(p_data); int total = 0; - for (int i = 0; i < p_data.size(); i += 4) { + for (List<ScriptDebuggerRemote::ResourceInfo>::Element *E = usage.infos.front(); E; E = E->next()) { TreeItem *it = vmem_tree->create_item(root); - String type = p_data[i + 1]; - int bytes = p_data[i + 3].operator int(); - it->set_text(0, p_data[i + 0]); //path - it->set_text(1, type); //type - it->set_text(2, p_data[i + 2]); //type - it->set_text(3, String::humanize_size(bytes)); //type + String type = E->get().type; + int bytes = E->get().vram; + it->set_text(0, E->get().path); + it->set_text(1, type); + it->set_text(2, E->get().format); + it->set_text(3, String::humanize_size(bytes)); total += bytes; if (has_icon(type, "EditorIcons")) @@ -693,18 +316,21 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da } else if (p_msg == "stack_dump") { + ScriptDebuggerRemote::ScriptStackDump stack; + stack.deserialize(p_data); + stack_dump->clear(); + inspector->clear_stack_variables(); TreeItem *r = stack_dump->create_item(); - for (int i = 0; i < p_data.size(); i++) { + for (int i = 0; i < stack.frames.size(); i++) { - Dictionary d = p_data[i]; - ERR_CONTINUE(!d.has("function")); - ERR_CONTINUE(!d.has("file")); - ERR_CONTINUE(!d.has("line")); - ERR_CONTINUE(!d.has("id")); TreeItem *s = stack_dump->create_item(r); + Dictionary d; d["frame"] = i; + d["file"] = stack.frames[i].file; + d["function"] = stack.frames[i].func; + d["line"] = stack.frames[i].line; s->set_metadata(0, d); String line = itos(i) + " - " + String(d["file"]) + ":" + itos(d["line"]) + " - at function: " + d["function"]; @@ -715,97 +341,22 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da } } else if (p_msg == "stack_frame_vars") { - variables->clear(); - - int ofs = 0; - int mcount = p_data[ofs]; - ofs++; - for (int i = 0; i < mcount; i++) { + inspector->clear_stack_variables(); - String n = p_data[ofs + i * 2 + 0]; - Variant v = p_data[ofs + i * 2 + 1]; + } else if (p_msg == "stack_frame_var") { - PropertyHint h = PROPERTY_HINT_NONE; - String hs = String(); - - if (v.get_type() == Variant::OBJECT) { - v = Object::cast_to<EncodedObjectAsID>(v)->get_object_id(); - h = PROPERTY_HINT_OBJECT_ID; - hs = "Object"; - } - - variables->add_property("Locals/" + n, v, h, hs); - } - - ofs += mcount * 2; - mcount = p_data[ofs]; - ofs++; - for (int i = 0; i < mcount; i++) { - - String n = p_data[ofs + i * 2 + 0]; - Variant v = p_data[ofs + i * 2 + 1]; - PropertyHint h = PROPERTY_HINT_NONE; - String hs = String(); - - if (v.get_type() == Variant::OBJECT) { - v = Object::cast_to<EncodedObjectAsID>(v)->get_object_id(); - h = PROPERTY_HINT_OBJECT_ID; - hs = "Object"; - } - - variables->add_property("Members/" + n, v, h, hs); - - if (n == "self") { - _scene_tree_property_select_object(v); - } - } - - ofs += mcount * 2; - mcount = p_data[ofs]; - ofs++; - for (int i = 0; i < mcount; i++) { - - String n = p_data[ofs + i * 2 + 0]; - Variant v = p_data[ofs + i * 2 + 1]; - PropertyHint h = PROPERTY_HINT_NONE; - String hs = String(); - - if (v.get_type() == Variant::OBJECT) { - v = Object::cast_to<EncodedObjectAsID>(v)->get_object_id(); - h = PROPERTY_HINT_OBJECT_ID; - hs = "Object"; - } - - variables->add_property("Globals/" + n, v, h, hs); - } - - variables->update(); - inspector->edit(variables); + inspector->add_stack_variable(p_data); } else if (p_msg == "output") { - - //OUT - for (int i = 0; i < p_data.size(); i++) { - - String t = p_data[i]; - //LOG - - if (!EditorNode::get_log()->is_visible()) { - if (EditorNode::get_singleton()->are_bottom_panels_hidden()) { - if (EDITOR_GET("run/output/always_open_output_on_play")) { - EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log()); - } - } - } - EditorNode::get_log()->add_message(t); - } + ERR_FAIL_COND(p_data.size() < 1); + String t = p_data[0]; + EditorNode::get_log()->add_message(t); } else if (p_msg == "performance") { - Array arr = p_data[0]; Vector<float> p; - p.resize(arr.size()); - for (int i = 0; i < arr.size(); i++) { - p.write[i] = arr[i]; + p.resize(p_data.size()); + for (int i = 0; i < p_data.size(); i++) { + p.write[i] = p_data[i]; if (i < perf_items.size()) { const float value = p[i]; @@ -833,10 +384,12 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da } perf_history.push_front(p); perf_draw->update(); + } else if (p_msg == "visual_profile") { + // TODO check me. uint64_t frame = p_data[0]; - PoolVector<String> names = p_data[1]; - PoolVector<real_t> values = p_data[2]; + Vector<String> names = p_data[1]; + Vector<real_t> values = p_data[2]; EditorVisualProfiler::Metric metric; metric.areas.resize(names.size()); @@ -847,8 +400,8 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da EditorVisualProfiler::Metric::Area *areas_ptr = metric.areas.ptrw(); int metric_count = names.size(); - PoolVector<String>::Read rs = names.read(); - PoolVector<real_t>::Read rr = values.read(); + const String *rs = names.ptr(); + const real_t *rr = values.ptr(); for (int i = 0; i < metric_count; i++) { @@ -857,42 +410,29 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da areas_ptr[i].gpu_time = rr[i * 2 + 1]; } } - visual_profiler->add_frame_metric(metric); } else if (p_msg == "error") { - // Should have at least two elements, error array and stack items count. - ERR_FAIL_COND_MSG(p_data.size() < 2, "Malformed error message from script debugger."); - - // Error or warning data. - Array err = p_data[0]; - ERR_FAIL_COND_MSG(err.size() < 10, "Malformed error message from script debugger."); + ScriptDebuggerRemote::OutputError oe; + ERR_FAIL_COND_MSG(oe.deserialize(p_data) == false, "Failed to deserialize error message"); // Format time. Array time_vals; - time_vals.push_back(err[0]); - time_vals.push_back(err[1]); - time_vals.push_back(err[2]); - time_vals.push_back(err[3]); + time_vals.push_back(oe.hr); + time_vals.push_back(oe.min); + time_vals.push_back(oe.sec); + time_vals.push_back(oe.msec); bool e; - String time = String("%d:%02d:%02d.%03d").sprintf(time_vals, &e); + String time = String("%d:%02d:%02d:%04d").sprintf(time_vals, &e); // Rest of the error data. - String method = err[4]; - String source_file = err[5]; - String source_line = err[6]; - String error_cond = err[7]; - String error_msg = err[8]; - bool is_warning = err[9]; - bool has_method = !method.empty(); - bool has_error_msg = !error_msg.empty(); - bool source_is_project_file = source_file.begins_with("res://"); + bool source_is_project_file = oe.source_file.begins_with("res://"); // Metadata to highlight error line in scripts. Array source_meta; - source_meta.push_back(source_file); - source_meta.push_back(source_line); + source_meta.push_back(oe.source_file); + source_meta.push_back(oe.source_line); // Create error tree to display above error or warning details. TreeItem *r = error_tree->get_root(); @@ -902,40 +442,42 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da // Also provide the relevant details as tooltip to quickly check without // uncollapsing the tree. - String tooltip = is_warning ? TTR("Warning:") : TTR("Error:"); + String tooltip = oe.warning ? TTR("Warning:") : TTR("Error:"); TreeItem *error = error_tree->create_item(r); error->set_collapsed(true); - error->set_icon(0, get_icon(is_warning ? "Warning" : "Error", "EditorIcons")); + error->set_icon(0, get_icon(oe.warning ? "Warning" : "Error", "EditorIcons")); error->set_text(0, time); error->set_text_align(0, TreeItem::ALIGN_LEFT); String error_title; // Include method name, when given, in error title. - if (has_method) - error_title += method + ": "; + if (!oe.source_func.empty()) + error_title += oe.source_func + ": "; // If we have a (custom) error message, use it as title, and add a C++ Error // item with the original error condition. - error_title += error_msg.empty() ? error_cond : error_msg; + error_title += oe.error_descr.empty() ? oe.error : oe.error_descr; error->set_text(1, error_title); tooltip += " " + error_title + "\n"; - if (has_error_msg) { + if (!oe.error_descr.empty()) { // Add item for C++ error condition. TreeItem *cpp_cond = error_tree->create_item(error); cpp_cond->set_text(0, "<" + TTR("C++ Error") + ">"); - cpp_cond->set_text(1, error_cond); + cpp_cond->set_text(1, oe.error); cpp_cond->set_text_align(0, TreeItem::ALIGN_LEFT); - tooltip += TTR("C++ Error:") + " " + error_cond + "\n"; + tooltip += TTR("C++ Error:") + " " + oe.error + "\n"; if (source_is_project_file) cpp_cond->set_metadata(0, source_meta); } + Vector<uint8_t> v; + v.resize(100); // Source of the error. - String source_txt = (source_is_project_file ? source_file.get_file() : source_file) + ":" + source_line; - if (has_method) - source_txt += " @ " + method + "()"; + String source_txt = (source_is_project_file ? oe.source_file.get_file() : oe.source_file) + ":" + itos(oe.source_line); + if (!oe.source_func.empty()) + source_txt += " @ " + oe.source_func + "()"; TreeItem *cpp_source = error_tree->create_item(error); cpp_source->set_text(0, "<" + (source_is_project_file ? TTR("Source") : TTR("C++ Source")) + ">"); @@ -955,17 +497,14 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da // Format stack trace. // stack_items_count is the number of elements to parse, with 3 items per frame // of the stack trace (script, method, line). - int stack_items_count = p_data[1]; + const ScriptLanguage::StackInfo *infos = oe.callstack.ptr(); + for (unsigned int i = 0; i < (unsigned int)oe.callstack.size(); i++) { - for (int i = 0; i < stack_items_count; i += 3) { - String script = p_data[2 + i]; - String method2 = p_data[3 + i]; - int line = p_data[4 + i]; TreeItem *stack_trace = error_tree->create_item(error); Array meta; - meta.push_back(script); - meta.push_back(line); + meta.push_back(infos[i].file); + meta.push_back(infos[i].line); stack_trace->set_metadata(0, meta); if (i == 0) { @@ -973,29 +512,32 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da stack_trace->set_text_align(0, TreeItem::ALIGN_LEFT); error->set_metadata(0, meta); } - stack_trace->set_text(1, script.get_file() + ":" + itos(line) + " @ " + method2 + "()"); + stack_trace->set_text(1, infos[i].file.get_file() + ":" + itos(infos[i].line) + " @ " + infos[i].func + "()"); } - if (is_warning) + if (oe.warning) warning_count++; else error_count++; } else if (p_msg == "profile_sig") { - //cache a signature - profiler_signature[p_data[1]] = p_data[0]; + // Cache a profiler signature. + ScriptDebuggerRemote::ProfilerSignature sig; + sig.deserialize(p_data); + profiler_signature[sig.id] = sig.name; } else if (p_msg == "profile_frame" || p_msg == "profile_total") { - EditorProfiler::Metric metric; + ScriptDebuggerRemote::ProfilerFrame frame; + frame.deserialize(p_data); metric.valid = true; - metric.frame_number = p_data[0]; - metric.frame_time = p_data[1]; - metric.idle_time = p_data[2]; - metric.physics_time = p_data[3]; - metric.physics_frame_time = p_data[4]; - int frame_data_amount = p_data[6]; - int frame_function_amount = p_data[7]; + metric.frame_number = frame.frame_number; + metric.frame_time = frame.frame_time; + metric.idle_time = frame.idle_time; + metric.physics_time = frame.physics_time; + metric.physics_frame_time = frame.physics_frame_time; + int frame_data_amount = frame.frames_data.size(); + int frame_function_amount = frame.frame_functions.size(); if (frame_data_amount) { EditorProfiler::Metric::Category frame_time; @@ -1031,12 +573,11 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da metric.categories.push_back(frame_time); } - int idx = 8; for (int i = 0; i < frame_data_amount; i++) { EditorProfiler::Metric::Category c; - String name = p_data[idx++]; - Array values = p_data[idx++]; + String name = frame.frames_data[i].name; + Array values = frame.frames_data[i].data; c.name = name.capitalize(); c.items.resize(values.size() / 2); c.total_time = 0; @@ -1058,16 +599,16 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da } EditorProfiler::Metric::Category funcs; - funcs.total_time = p_data[5]; //script time + funcs.total_time = frame.script_time; funcs.items.resize(frame_function_amount); funcs.name = "Script Functions"; funcs.signature = "script_functions"; for (int i = 0; i < frame_function_amount; i++) { - int signature = p_data[idx++]; - int calls = p_data[idx++]; - float total = p_data[idx++]; - float self = p_data[idx++]; + int signature = frame.frame_functions[i].sig_id; + int calls = frame.frame_functions[i].call_count; + float total = frame.frame_functions[i].total_time; + float self = frame.frame_functions[i].self_time; EditorProfiler::Metric::Category::Item item; if (profiler_signature.has(signature)) { @@ -1102,23 +643,20 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da profiler->add_frame_metric(metric, false); else profiler->add_frame_metric(metric, true); + } else if (p_msg == "network_profile") { - int frame_size = 6; - for (int i = 0; i < p_data.size(); i += frame_size) { - MultiplayerAPI::ProfilingInfo pi; - pi.node = p_data[i + 0].operator ObjectID(); - pi.node_path = p_data[i + 1]; - pi.incoming_rpc = p_data[i + 2]; - pi.incoming_rset = p_data[i + 3]; - pi.outgoing_rpc = p_data[i + 4]; - pi.outgoing_rset = p_data[i + 5]; - network_profiler->add_node_frame_data(pi); + ScriptDebuggerRemote::NetworkProfilerFrame frame; + frame.deserialize(p_data); + for (int i = 0; i < frame.infos.size(); i++) { + network_profiler->add_node_frame_data(frame.infos[i]); } } else if (p_msg == "network_bandwidth") { + ERR_FAIL_COND(p_data.size() < 2); network_profiler->set_bandwidth(p_data[0], p_data[1]); } else if (p_msg == "kill_me") { - editor->call_deferred("stop_child_process"); + emit_signal("stop_requested"); + _stop_and_notify(); } } @@ -1218,20 +756,17 @@ void ScriptEditorDebugger::_notification(int p_what) { case NOTIFICATION_ENTER_TREE: { - inspector->edit(variables); skip_breakpoints->set_icon(get_icon("DebugSkipBreakpointsOff", "EditorIcons")); copy->set_icon(get_icon("ActionCopy", "EditorIcons")); step->set_icon(get_icon("DebugStep", "EditorIcons")); next->set_icon(get_icon("DebugNext", "EditorIcons")); - back->set_icon(get_icon("Back", "EditorIcons")); - forward->set_icon(get_icon("Forward", "EditorIcons")); dobreak->set_icon(get_icon("Pause", "EditorIcons")); docontinue->set_icon(get_icon("DebugContinue", "EditorIcons")); - le_set->connect("pressed", this, "_live_edit_set"); - le_clear->connect("pressed", this, "_live_edit_clear"); - error_tree->connect("item_selected", this, "_error_selected"); - error_tree->connect("item_activated", this, "_error_activated"); + le_set->connect_compat("pressed", this, "_live_edit_set"); + le_clear->connect_compat("pressed", this, "_live_edit_clear"); + error_tree->connect_compat("item_selected", this, "_error_selected"); + error_tree->connect_compat("item_activated", this, "_error_activated"); vmem_refresh->set_icon(get_icon("Reload", "EditorIcons")); reason->add_color_override("font_color", get_color("error_color", "Editor")); @@ -1239,31 +774,7 @@ void ScriptEditorDebugger::_notification(int p_what) { } break; case NOTIFICATION_PROCESS: { - if (connection.is_valid()) { - - inspect_scene_tree_timeout -= get_process_delta_time(); - if (inspect_scene_tree_timeout < 0) { - inspect_scene_tree_timeout = EditorSettings::get_singleton()->get("debugger/remote_scene_tree_refresh_interval"); - if (inspect_scene_tree->is_visible_in_tree()) { - _scene_tree_request(); - } - } - - inspect_edited_object_timeout -= get_process_delta_time(); - if (inspect_edited_object_timeout < 0) { - inspect_edited_object_timeout = EditorSettings::get_singleton()->get("debugger/remote_inspect_refresh_interval"); - if (inspected_object_id.is_valid()) { - if (ScriptEditorDebuggerInspectedObject *obj = Object::cast_to<ScriptEditorDebuggerInspectedObject>(ObjectDB::get_instance(editor->get_editor_history()->get_current()))) { - if (obj->remote_object_id == inspected_object_id) { - //take the chance and re-inspect selected object - Array msg; - msg.push_back("inspect_object"); - msg.push_back(inspected_object_id); - ppeer->put_var(msg); - } - } - } - } + if (is_session_active()) { if (camera_override == OVERRIDE_2D) { CanvasItemEditor *editor = CanvasItemEditor::get_singleton(); @@ -1277,9 +788,8 @@ void ScriptEditorDebugger::_notification(int p_what) { transform.elements[2] = -offset * zoom; Array msg; - msg.push_back("override_camera_2D:transform"); msg.push_back(transform); - ppeer->put_var(msg); + _put_msg("override_camera_2D:transform", msg); } else if (camera_override >= OVERRIDE_3D_1) { int viewport_idx = camera_override - OVERRIDE_3D_1; @@ -1287,7 +797,6 @@ void ScriptEditorDebugger::_notification(int p_what) { Camera *const cam = viewport->get_camera(); Array msg; - msg.push_back("override_camera_3D:transform"); msg.push_back(cam->get_camera_transform()); if (cam->get_projection() == Camera::PROJECTION_ORTHOGONAL) { msg.push_back(false); @@ -1298,86 +807,12 @@ void ScriptEditorDebugger::_notification(int p_what) { } msg.push_back(cam->get_znear()); msg.push_back(cam->get_zfar()); - ppeer->put_var(msg); - } - } - - if (error_count != last_error_count || warning_count != last_warning_count) { - - if (error_count == 0 && warning_count == 0) { - errors_tab->set_name(TTR("Errors")); - debugger_button->set_text(TTR("Debugger")); - debugger_button->set_icon(Ref<Texture2D>()); - tabs->set_tab_icon(errors_tab->get_index(), Ref<Texture2D>()); - } else { - errors_tab->set_name(TTR("Errors") + " (" + itos(error_count + warning_count) + ")"); - debugger_button->set_text(TTR("Debugger") + " (" + itos(error_count + warning_count) + ")"); - if (error_count == 0) { - debugger_button->set_icon(get_icon("Warning", "EditorIcons")); - tabs->set_tab_icon(errors_tab->get_index(), get_icon("Warning", "EditorIcons")); - } else { - debugger_button->set_icon(get_icon("Error", "EditorIcons")); - tabs->set_tab_icon(errors_tab->get_index(), get_icon("Error", "EditorIcons")); - } - } - last_error_count = error_count; - last_warning_count = warning_count; - } - - if (server->is_connection_available()) { - if (connection.is_valid()) { - // We already have a valid connection. Disconnecting any new connecting client to prevent it from hanging. - // (If we don't keep a reference to the connection it will be destroyed and disconnect_from_host will be called internally) - server->take_connection(); - } else { - // We just got the first connection. - connection = server->take_connection(); - if (connection.is_null()) - break; - - EditorNode::get_log()->add_message("--- Debugging process started ---", EditorLog::MSG_TYPE_EDITOR); - - ppeer->set_stream_peer(connection); - - //EditorNode::get_singleton()->make_bottom_panel_item_visible(this); - //emit_signal("show_debugger",true); - - dobreak->set_disabled(false); - tabs->set_current_tab(0); - - _set_reason_text(TTR("Child process connected."), MESSAGE_SUCCESS); - profiler->clear(); - - inspect_scene_tree->clear(); - le_set->set_disabled(true); - le_clear->set_disabled(false); - vmem_refresh->set_disabled(false); - error_tree->clear(); - error_count = 0; - warning_count = 0; - profiler_signature.clear(); - //live_edit_root->set_text("/root"); - - EditorNode::get_singleton()->get_pause_button()->set_pressed(false); - EditorNode::get_singleton()->get_pause_button()->set_disabled(false); - - update_live_edit_root(); - if (profiler->is_profiling()) { - _profiler_activate(true); - } - - if (network_profiler->is_profiling()) { - _network_profiler_activate(true); - } + _put_msg("override_camera_3D:transform", msg); } } - if (connection.is_null()) - break; - - if (!connection->is_connected_to_host()) { - stop(); - editor->notify_child_process_exited(); //somehow, exited + if (!is_session_active()) { + _stop_and_notify(); break; }; @@ -1389,67 +824,22 @@ void ScriptEditorDebugger::_notification(int p_what) { while (ppeer->get_available_packet_count() > 0) { - if (pending_in_queue) { - - int todo = MIN(ppeer->get_available_packet_count(), pending_in_queue); - - for (int i = 0; i < todo; i++) { - - Variant cmd; - Error ret = ppeer->get_var(cmd); - if (ret != OK) { - stop(); - ERR_FAIL_COND(ret != OK); - } - - message.push_back(cmd); - pending_in_queue--; - } - - if (pending_in_queue == 0) { - _parse_message(message_type, message); - message.clear(); - } - - } else { - - if (ppeer->get_available_packet_count() >= 2) { - - Variant cmd; - Error ret = ppeer->get_var(cmd); - if (ret != OK) { - stop(); - ERR_FAIL_COND(ret != OK); - } - if (cmd.get_type() != Variant::STRING) { - stop(); - ERR_FAIL_COND(cmd.get_type() != Variant::STRING); - } - - message_type = cmd; - - ret = ppeer->get_var(cmd); - if (ret != OK) { - stop(); - ERR_FAIL_COND(ret != OK); - } - if (cmd.get_type() != Variant::INT) { - stop(); - ERR_FAIL_COND(cmd.get_type() != Variant::INT); - } - - pending_in_queue = cmd; - - if (pending_in_queue == 0) { - _parse_message(message_type, Array()); - message.clear(); - } - - } else { - - break; - } + Variant cmd; + Error ret = ppeer->get_var(cmd); + if (ret != OK) { + _stop_and_notify(); + ERR_FAIL_MSG("Error decoding variant from peer"); + } + if (cmd.get_type() != Variant::ARRAY) { + _stop_and_notify(); + ERR_FAIL_MSG("Invalid message format received from peer"); } + Array arr = cmd; + if (arr.size() != 2 || arr[0].get_type() != Variant::STRING || arr[1].get_type() != Variant::ARRAY) { + _stop_and_notify(); + ERR_FAIL_MSG("Invalid message format received from peer"); + } + _parse_message(arr[0], arr[1]); if (OS::get_singleton()->get_ticks_msec() > until) break; @@ -1457,18 +847,13 @@ void ScriptEditorDebugger::_notification(int p_what) { } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { - add_constant_override("margin_left", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_LEFT)); - add_constant_override("margin_right", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_RIGHT)); - - tabs->add_style_override("panel", editor->get_gui_base()->get_stylebox("DebuggerPanel", "EditorStyles")); - tabs->add_style_override("tab_fg", editor->get_gui_base()->get_stylebox("DebuggerTabFG", "EditorStyles")); - tabs->add_style_override("tab_bg", editor->get_gui_base()->get_stylebox("DebuggerTabBG", "EditorStyles")); + if (tabs->has_stylebox_override("panel")) { + tabs->add_style_override("panel", editor->get_gui_base()->get_stylebox("DebuggerPanel", "EditorStyles")); + } copy->set_icon(get_icon("ActionCopy", "EditorIcons")); step->set_icon(get_icon("DebugStep", "EditorIcons")); next->set_icon(get_icon("DebugNext", "EditorIcons")); - back->set_icon(get_icon("Back", "EditorIcons")); - forward->set_icon(get_icon("Forward", "EditorIcons")); dobreak->set_icon(get_icon("Pause", "EditorIcons")); docontinue->set_icon(get_icon("DebugContinue", "EditorIcons")); vmem_refresh->set_icon(get_icon("Reload", "EditorIcons")); @@ -1486,15 +871,18 @@ void ScriptEditorDebugger::_clear_execution() { stack_script = ResourceLoader::load(d["file"]); emit_signal("clear_execution", stack_script); stack_script.unref(); + stack_dump->clear(); + inspector->clear_stack_variables(); } -void ScriptEditorDebugger::start() { +void ScriptEditorDebugger::start(Ref<StreamPeerTCP> p_connection) { + error_count = 0; + warning_count = 0; stop(); - if (is_visible_in_tree()) { - EditorNode::get_singleton()->make_bottom_panel_item_visible(this); - } + connection = p_connection; + ppeer->set_stream_peer(connection); perf_history.clear(); for (int i = 0; i < Performance::MONITOR_MAX; i++) { @@ -1502,91 +890,81 @@ void ScriptEditorDebugger::start() { perf_max.write[i] = 0; } - int remote_port = (int)EditorSettings::get_singleton()->get("network/debug/remote_port"); - if (server->listen(remote_port) != OK) { - EditorNode::get_log()->add_message(String("Error listening on port ") + itos(remote_port), EditorLog::MSG_TYPE_ERROR); - return; - } - - EditorNode::get_singleton()->get_scene_tree_dock()->show_tab_buttons(); - auto_switch_remote_scene_tree = (bool)EditorSettings::get_singleton()->get("debugger/auto_switch_to_remote_scene_tree"); - if (auto_switch_remote_scene_tree) { - EditorNode::get_singleton()->get_scene_tree_dock()->show_remote_tree(); - } - set_process(true); breaked = false; + can_debug = true; camera_override = OVERRIDE_NONE; + + tabs->set_current_tab(0); + _set_reason_text(TTR("Debug session started."), MESSAGE_SUCCESS); + _update_buttons_state(); + + if (profiler->is_profiling()) { + _profiler_activate(true); + } + + if (network_profiler->is_profiling()) { + _network_profiler_activate(true); + } } -void ScriptEditorDebugger::pause() { +void ScriptEditorDebugger::_update_buttons_state() { + const bool active = is_session_active(); + const bool has_editor_tree = active && editor_remote_tree && editor_remote_tree->get_selected(); + vmem_refresh->set_disabled(!active); + step->set_disabled(!active || !breaked || !can_debug); + next->set_disabled(!active || !breaked || !can_debug); + copy->set_disabled(!active || !breaked); + docontinue->set_disabled(!active || !breaked); + dobreak->set_disabled(!active || breaked); + le_clear->set_disabled(!active); + le_set->set_disabled(!has_editor_tree); } -void ScriptEditorDebugger::unpause() { +void ScriptEditorDebugger::_stop_and_notify() { + stop(); + emit_signal("stopped"); + _set_reason_text(TTR("Debug session closed."), MESSAGE_WARNING); } void ScriptEditorDebugger::stop() { set_process(false); breaked = false; + can_debug = false; + remote_pid = 0; _clear_execution(); - server->stop(); - _clear_remote_objects(); + inspector->clear_cache(); ppeer->set_stream_peer(Ref<StreamPeer>()); if (connection.is_valid()) { - EditorNode::get_log()->add_message("--- Debugging process stopped ---", EditorLog::MSG_TYPE_EDITOR); connection.unref(); - reason->set_text(""); reason->set_tooltip(""); } - pending_in_queue = 0; - message.clear(); - node_path_cache.clear(); res_path_cache.clear(); profiler_signature.clear(); - le_clear->set_disabled(false); - le_set->set_disabled(true); - profiler->set_enabled(true); - vmem_refresh->set_disabled(true); - inspect_scene_tree->clear(); inspector->edit(NULL); - EditorNode::get_singleton()->get_pause_button()->set_pressed(false); - EditorNode::get_singleton()->get_pause_button()->set_disabled(true); - EditorNode::get_singleton()->get_scene_tree_dock()->hide_remote_tree(); - EditorNode::get_singleton()->get_scene_tree_dock()->hide_tab_buttons(); - - if (hide_on_stop) { - if (is_visible_in_tree()) - EditorNode::get_singleton()->hide_bottom_panel(); - emit_signal("show_debugger", false); - } + _update_buttons_state(); } void ScriptEditorDebugger::_profiler_activate(bool p_enable) { - if (!connection.is_valid()) - return; - if (p_enable) { profiler_signature.clear(); Array msg; - msg.push_back("start_profiling"); int max_funcs = EditorSettings::get_singleton()->get("debugger/profiler_frame_max_functions"); max_funcs = CLAMP(max_funcs, 16, 512); msg.push_back(max_funcs); - ppeer->put_var(msg); + _put_msg("start_profiling", msg); print_verbose("Starting profiling."); } else { - Array msg; - msg.push_back("stop_profiling"); - ppeer->put_var(msg); + _put_msg("stop_profiling", Array()); print_verbose("Ending profiling."); } } @@ -1598,44 +976,30 @@ void ScriptEditorDebugger::_visual_profiler_activate(bool p_enable) { if (p_enable) { profiler_signature.clear(); - Array msg; - msg.push_back("start_visual_profiling"); - ppeer->put_var(msg); + _put_msg("start_visual_profiling", Array()); print_verbose("Starting visual profiling."); } else { - Array msg; - msg.push_back("stop_visual_profiling"); - ppeer->put_var(msg); + _put_msg("stop_visual_profiling", Array()); print_verbose("Ending visual profiling."); } } void ScriptEditorDebugger::_network_profiler_activate(bool p_enable) { - if (!connection.is_valid()) - return; - if (p_enable) { profiler_signature.clear(); - Array msg; - msg.push_back("start_network_profiling"); - ppeer->put_var(msg); + _put_msg("start_network_profiling", Array()); print_verbose("Starting network profiling."); } else { - Array msg; - msg.push_back("stop_network_profiling"); - ppeer->put_var(msg); + _put_msg("stop_network_profiling", Array()); print_verbose("Ending network profiling."); } } void ScriptEditorDebugger::_profiler_seeked() { - if (!connection.is_valid() || !connection->is_connected_to_host()) - return; - if (breaked) return; debug_break(); @@ -1643,45 +1007,30 @@ void ScriptEditorDebugger::_profiler_seeked() { void ScriptEditorDebugger::_stack_dump_frame_selected() { - TreeItem *ti = stack_dump->get_selected(); - if (!ti) - return; + emit_signal("stack_frame_selected"); - Dictionary d = ti->get_metadata(0); + int frame = get_stack_script_frame(); - stack_script = ResourceLoader::load(d["file"]); - emit_signal("goto_script_line", stack_script, int(d["line"]) - 1); - emit_signal("set_execution", stack_script, int(d["line"]) - 1); - stack_script.unref(); - - if (connection.is_valid() && connection->is_connected_to_host()) { + if (is_session_active() && frame >= 0) { Array msg; - msg.push_back("get_stack_frame_vars"); - msg.push_back(d["frame"]); - ppeer->put_var(msg); + msg.push_back(frame); + _put_msg("get_stack_frame_vars", msg); } else { inspector->edit(NULL); } } -void ScriptEditorDebugger::_output_clear() { - - //output->clear(); - //output->push_color(Color(0,0,0)); -} - void ScriptEditorDebugger::_export_csv() { file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM); - file_dialog_mode = SAVE_CSV; file_dialog->popup_centered_ratio(); } String ScriptEditorDebugger::get_var_value(const String &p_var) const { if (!breaked) return String(); - return variables->get_var_value(p_var); + return inspector->get_stack_variable(p_var); } int ScriptEditorDebugger::_get_node_path_cache(const NodePath &p_path) { @@ -1694,10 +1043,9 @@ int ScriptEditorDebugger::_get_node_path_cache(const NodePath &p_path) { node_path_cache[p_path] = last_path_id; Array msg; - msg.push_back("live_node_path"); msg.push_back(p_path); msg.push_back(last_path_id); - ppeer->put_var(msg); + _put_msg("live_node_path", msg); return last_path_id; } @@ -1713,17 +1061,16 @@ int ScriptEditorDebugger::_get_res_path_cache(const String &p_path) { res_path_cache[p_path] = last_path_id; Array msg; - msg.push_back("live_res_path"); msg.push_back(p_path); msg.push_back(last_path_id); - ppeer->put_var(msg); + _put_msg("live_res_path", msg); return last_path_id; } void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE) { - if (!p_base || !live_debug || !connection.is_valid() || !editor->get_edited_scene()) + if (!p_base || !live_debug || !is_session_active() || !editor->get_edited_scene()) return; Node *node = Object::cast_to<Node>(p_base); @@ -1742,14 +1089,13 @@ void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_n int pathid = _get_node_path_cache(path); Array msg; - msg.push_back("live_node_call"); msg.push_back(pathid); msg.push_back(p_name); for (int i = 0; i < VARIANT_ARG_MAX; i++) { //no pointers, sorry msg.push_back(*argptr[i]); } - ppeer->put_var(msg); + _put_msg("live_node_call", msg); return; } @@ -1762,14 +1108,13 @@ void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_n int pathid = _get_res_path_cache(respath); Array msg; - msg.push_back("live_res_call"); msg.push_back(pathid); msg.push_back(p_name); for (int i = 0; i < VARIANT_ARG_MAX; i++) { //no pointers, sorry msg.push_back(*argptr[i]); } - ppeer->put_var(msg); + _put_msg("live_res_call", msg); return; } @@ -1777,7 +1122,7 @@ void ScriptEditorDebugger::_method_changed(Object *p_base, const StringName &p_n void ScriptEditorDebugger::_property_changed(Object *p_base, const StringName &p_property, const Variant &p_value) { - if (!p_base || !live_debug || !connection.is_valid() || !editor->get_edited_scene()) + if (!p_base || !live_debug || !editor->get_edited_scene()) return; Node *node = Object::cast_to<Node>(p_base); @@ -1792,20 +1137,18 @@ void ScriptEditorDebugger::_property_changed(Object *p_base, const StringName &p if (res.is_valid() && res->get_path() != String()) { Array msg; - msg.push_back("live_node_prop_res"); msg.push_back(pathid); msg.push_back(p_property); msg.push_back(res->get_path()); - ppeer->put_var(msg); + _put_msg("live_node_prop_res", msg); } } else { Array msg; - msg.push_back("live_node_prop"); msg.push_back(pathid); msg.push_back(p_property); msg.push_back(p_value); - ppeer->put_var(msg); + _put_msg("live_node_prop", msg); } return; @@ -1823,36 +1166,46 @@ void ScriptEditorDebugger::_property_changed(Object *p_base, const StringName &p if (res2.is_valid() && res2->get_path() != String()) { Array msg; - msg.push_back("live_res_prop_res"); msg.push_back(pathid); msg.push_back(p_property); msg.push_back(res2->get_path()); - ppeer->put_var(msg); + _put_msg("live_res_prop_res", msg); } } else { Array msg; - msg.push_back("live_res_prop"); msg.push_back(pathid); msg.push_back(p_property); msg.push_back(p_value); - ppeer->put_var(msg); + _put_msg("live_res_prop", msg); } return; } } -void ScriptEditorDebugger::_method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE) { - - ScriptEditorDebugger *sed = (ScriptEditorDebugger *)p_ud; - sed->_method_changed(p_base, p_name, VARIANT_ARG_PASS); +String ScriptEditorDebugger::get_stack_script_file() const { + TreeItem *ti = stack_dump->get_selected(); + if (!ti) + return ""; + Dictionary d = ti->get_metadata(0); + return d["file"]; } -void ScriptEditorDebugger::_property_changeds(void *p_ud, Object *p_base, const StringName &p_property, const Variant &p_value) { +int ScriptEditorDebugger::get_stack_script_line() const { + TreeItem *ti = stack_dump->get_selected(); + if (!ti) + return -1; + Dictionary d = ti->get_metadata(0); + return d["line"]; +} - ScriptEditorDebugger *sed = (ScriptEditorDebugger *)p_ud; - sed->_property_changed(p_base, p_property, p_value); +int ScriptEditorDebugger::get_stack_script_frame() const { + TreeItem *ti = stack_dump->get_selected(); + if (!ti) + return -1; + Dictionary d = ti->get_metadata(0); + return d["frame"]; } void ScriptEditorDebugger::set_live_debugging(bool p_enable) { @@ -1862,12 +1215,13 @@ void ScriptEditorDebugger::set_live_debugging(bool p_enable) { void ScriptEditorDebugger::_live_edit_set() { - if (!connection.is_valid()) + if (!is_session_active() || !editor_remote_tree) return; - TreeItem *ti = inspect_scene_tree->get_selected(); + TreeItem *ti = editor_remote_tree->get_selected(); if (!ti) return; + String path; while (ti) { @@ -1895,92 +1249,82 @@ void ScriptEditorDebugger::update_live_edit_root() { NodePath np = editor->get_editor_data().get_edited_scene_live_edit_root(); - if (connection.is_valid()) { - Array msg; - msg.push_back("live_set_root"); - msg.push_back(np); - if (editor->get_edited_scene()) - msg.push_back(editor->get_edited_scene()->get_filename()); - else - msg.push_back(""); - ppeer->put_var(msg); - } + Array msg; + msg.push_back(np); + if (editor->get_edited_scene()) + msg.push_back(editor->get_edited_scene()->get_filename()); + else + msg.push_back(""); + _put_msg("live_set_root", msg); live_edit_root->set_text(np); } void ScriptEditorDebugger::live_debug_create_node(const NodePath &p_parent, const String &p_type, const String &p_name) { - if (live_debug && connection.is_valid()) { + if (live_debug) { Array msg; - msg.push_back("live_create_node"); msg.push_back(p_parent); msg.push_back(p_type); msg.push_back(p_name); - ppeer->put_var(msg); + _put_msg("live_create_node", msg); } } void ScriptEditorDebugger::live_debug_instance_node(const NodePath &p_parent, const String &p_path, const String &p_name) { - if (live_debug && connection.is_valid()) { + if (live_debug) { Array msg; - msg.push_back("live_instance_node"); msg.push_back(p_parent); msg.push_back(p_path); msg.push_back(p_name); - ppeer->put_var(msg); + _put_msg("live_instance_node", msg); } } void ScriptEditorDebugger::live_debug_remove_node(const NodePath &p_at) { - if (live_debug && connection.is_valid()) { + if (live_debug) { Array msg; - msg.push_back("live_remove_node"); msg.push_back(p_at); - ppeer->put_var(msg); + _put_msg("live_remove_node", msg); } } void ScriptEditorDebugger::live_debug_remove_and_keep_node(const NodePath &p_at, ObjectID p_keep_id) { - if (live_debug && connection.is_valid()) { + if (live_debug) { Array msg; - msg.push_back("live_remove_and_keep_node"); msg.push_back(p_at); msg.push_back(p_keep_id); - ppeer->put_var(msg); + _put_msg("live_remove_and_keep_node", msg); } } void ScriptEditorDebugger::live_debug_restore_node(ObjectID p_id, const NodePath &p_at, int p_at_pos) { - if (live_debug && connection.is_valid()) { + if (live_debug) { Array msg; - msg.push_back("live_restore_node"); msg.push_back(p_id); msg.push_back(p_at); msg.push_back(p_at_pos); - ppeer->put_var(msg); + _put_msg("live_restore_node", msg); } } void ScriptEditorDebugger::live_debug_duplicate_node(const NodePath &p_at, const String &p_new_name) { - if (live_debug && connection.is_valid()) { + if (live_debug) { Array msg; - msg.push_back("live_duplicate_node"); msg.push_back(p_at); msg.push_back(p_new_name); - ppeer->put_var(msg); + _put_msg("live_duplicate_node", msg); } } void ScriptEditorDebugger::live_debug_reparent_node(const NodePath &p_at, const NodePath &p_new_place, const String &p_new_name, int p_at_pos) { - if (live_debug && connection.is_valid()) { + if (live_debug) { Array msg; - msg.push_back("live_reparent_node"); msg.push_back(p_at); msg.push_back(p_new_place); msg.push_back(p_new_name); msg.push_back(p_at_pos); - ppeer->put_var(msg); + _put_msg("live_reparent_node", msg); } } @@ -1991,33 +1335,21 @@ ScriptEditorDebugger::CameraOverride ScriptEditorDebugger::get_camera_override() void ScriptEditorDebugger::set_camera_override(CameraOverride p_override) { if (p_override == OVERRIDE_2D && camera_override != OVERRIDE_2D) { - if (connection.is_valid()) { - Array msg; - msg.push_back("override_camera_2D:set"); - msg.push_back(true); - ppeer->put_var(msg); - } + Array msg; + msg.push_back(true); + _put_msg("override_camera_2D:set", msg); } else if (p_override != OVERRIDE_2D && camera_override == OVERRIDE_2D) { - if (connection.is_valid()) { - Array msg; - msg.push_back("override_camera_2D:set"); - msg.push_back(false); - ppeer->put_var(msg); - } + Array msg; + msg.push_back(false); + _put_msg("override_camera_2D:set", msg); } else if (p_override >= OVERRIDE_3D_1 && camera_override < OVERRIDE_3D_1) { - if (connection.is_valid()) { - Array msg; - msg.push_back("override_camera_3D:set"); - msg.push_back(true); - ppeer->put_var(msg); - } + Array msg; + msg.push_back(true); + _put_msg("override_camera_3D:set", msg); } else if (p_override < OVERRIDE_3D_1 && camera_override >= OVERRIDE_3D_1) { - if (connection.is_valid()) { - Array msg; - msg.push_back("override_camera_3D:set"); - msg.push_back(false); - ppeer->put_var(msg); - } + Array msg; + msg.push_back(false); + _put_msg("override_camera_3D:set", msg); } camera_override = p_override; @@ -2025,23 +1357,16 @@ void ScriptEditorDebugger::set_camera_override(CameraOverride p_override) { void ScriptEditorDebugger::set_breakpoint(const String &p_path, int p_line, bool p_enabled) { - if (connection.is_valid()) { - Array msg; - msg.push_back("breakpoint"); - msg.push_back(p_path); - msg.push_back(p_line); - msg.push_back(p_enabled); - ppeer->put_var(msg); - } + Array msg; + msg.push_back(p_path); + msg.push_back(p_line); + msg.push_back(p_enabled); + _put_msg("breakpoint", msg); } void ScriptEditorDebugger::reload_scripts() { - if (connection.is_valid()) { - Array msg; - msg.push_back("reload_scripts"); - ppeer->put_var(msg); - } + _put_msg("reload_scripts", Array()); } bool ScriptEditorDebugger::is_skip_breakpoints() { @@ -2059,15 +1384,12 @@ void ScriptEditorDebugger::_error_activated() { void ScriptEditorDebugger::_error_selected() { TreeItem *selected = error_tree->get_selected(); - Array meta = selected->get_metadata(0); - if (meta.size() == 0) { return; } - Ref<Script> s = ResourceLoader::load(meta[0]); - emit_signal("goto_script_line", s, int(meta[1]) - 1); + emit_signal("error_selected", String(meta[0]), int(meta[1])); } void ScriptEditorDebugger::_expand_errors_list() { @@ -2096,58 +1418,6 @@ void ScriptEditorDebugger::_collapse_errors_list() { } } -void ScriptEditorDebugger::set_hide_on_stop(bool p_hide) { - - hide_on_stop = p_hide; -} - -bool ScriptEditorDebugger::get_debug_with_external_editor() const { - - return enable_external_editor; -} - -void ScriptEditorDebugger::set_debug_with_external_editor(bool p_enabled) { - - enable_external_editor = p_enabled; -} - -Ref<Script> ScriptEditorDebugger::get_dump_stack_script() const { - - return stack_script; -} - -void ScriptEditorDebugger::_paused() { - - ERR_FAIL_COND(connection.is_null()); - ERR_FAIL_COND(!connection->is_connected_to_host()); - - if (!breaked && EditorNode::get_singleton()->get_pause_button()->is_pressed()) { - debug_break(); - } - - if (breaked && !EditorNode::get_singleton()->get_pause_button()->is_pressed()) { - debug_continue(); - } -} - -void ScriptEditorDebugger::_set_remote_object(ObjectID p_id, ScriptEditorDebuggerInspectedObject *p_obj) { - - if (remote_objects.has(p_id)) - memdelete(remote_objects[p_id]); - remote_objects[p_id] = p_obj; -} - -void ScriptEditorDebugger::_clear_remote_objects() { - - for (Map<ObjectID, ScriptEditorDebuggerInspectedObject *>::Element *E = remote_objects.front(); E; E = E->next()) { - if (editor->get_editor_history()->get_current() == E->value()->get_instance_id()) { - editor->push_item(NULL); - } - memdelete(E->value()); - } - remote_objects.clear(); -} - void ScriptEditorDebugger::_clear_errors_list() { error_tree->clear(); @@ -2163,7 +1433,7 @@ void ScriptEditorDebugger::_error_tree_item_rmb_selected(const Vector2 &p_pos) { item_menu->set_size(Size2(1, 1)); if (error_tree->is_anything_selected()) { - item_menu->add_icon_item(get_icon("ActionCopy", "EditorIcons"), TTR("Copy Error"), ITEM_MENU_COPY_ERROR); + item_menu->add_icon_item(get_icon("ActionCopy", "EditorIcons"), TTR("Copy Error"), 0); } if (item_menu->get_item_count() > 0) { @@ -2173,70 +1443,29 @@ void ScriptEditorDebugger::_error_tree_item_rmb_selected(const Vector2 &p_pos) { } void ScriptEditorDebugger::_item_menu_id_pressed(int p_option) { + TreeItem *ti = error_tree->get_selected(); + while (ti->get_parent() != error_tree->get_root()) + ti = ti->get_parent(); - switch (p_option) { - - case ITEM_MENU_COPY_ERROR: { - TreeItem *ti = error_tree->get_selected(); - while (ti->get_parent() != error_tree->get_root()) - ti = ti->get_parent(); - - String type; - - if (ti->get_icon(0) == get_icon("Warning", "EditorIcons")) { - type = "W "; - } else if (ti->get_icon(0) == get_icon("Error", "EditorIcons")) { - type = "E "; - } - - String text = ti->get_text(0) + " "; - int rpad_len = text.length(); - - text = type + text + ti->get_text(1) + "\n"; - TreeItem *ci = ti->get_children(); - while (ci) { - text += " " + ci->get_text(0).rpad(rpad_len) + ci->get_text(1) + "\n"; - ci = ci->get_next(); - } - - OS::get_singleton()->set_clipboard(text); - - } break; - case ITEM_MENU_SAVE_REMOTE_NODE: { - - file_dialog->set_access(EditorFileDialog::ACCESS_RESOURCES); - file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); - file_dialog_mode = SAVE_NODE; - - List<String> extensions; - Ref<PackedScene> sd = memnew(PackedScene); - ResourceSaver::get_recognized_extensions(sd, &extensions); - file_dialog->clear_filters(); - for (int i = 0; i < extensions.size(); i++) { - file_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); - } - - file_dialog->popup_centered_ratio(); - } break; - case ITEM_MENU_COPY_NODE_PATH: { + String type; - TreeItem *ti = inspect_scene_tree->get_selected(); - String text = ti->get_text(0); + if (ti->get_icon(0) == get_icon("Warning", "EditorIcons")) { + type = "W "; + } else if (ti->get_icon(0) == get_icon("Error", "EditorIcons")) { + type = "E "; + } - if (ti->get_parent() == NULL) { - text = "."; - } else if (ti->get_parent()->get_parent() == NULL) { - text = "."; - } else { - while (ti->get_parent()->get_parent() != inspect_scene_tree->get_root()) { - ti = ti->get_parent(); - text = ti->get_text(0) + "/" + text; - } - } + String text = ti->get_text(0) + " "; + int rpad_len = text.length(); - OS::get_singleton()->set_clipboard(text); - } break; + text = type + text + ti->get_text(1) + "\n"; + TreeItem *ci = ti->get_children(); + while (ci) { + text += " " + ci->get_text(0).rpad(rpad_len) + ci->get_text(1) + "\n"; + ci = ci->get_next(); } + + OS::get_singleton()->set_clipboard(text); } void ScriptEditorDebugger::_tab_changed(int p_tab) { @@ -2257,11 +1486,9 @@ void ScriptEditorDebugger::_bind_methods() { ClassDB::bind_method(D_METHOD("debug_step"), &ScriptEditorDebugger::debug_step); ClassDB::bind_method(D_METHOD("debug_break"), &ScriptEditorDebugger::debug_break); ClassDB::bind_method(D_METHOD("debug_continue"), &ScriptEditorDebugger::debug_continue); - ClassDB::bind_method(D_METHOD("_output_clear"), &ScriptEditorDebugger::_output_clear); ClassDB::bind_method(D_METHOD("_export_csv"), &ScriptEditorDebugger::_export_csv); ClassDB::bind_method(D_METHOD("_performance_draw"), &ScriptEditorDebugger::_performance_draw); ClassDB::bind_method(D_METHOD("_performance_select"), &ScriptEditorDebugger::_performance_select); - ClassDB::bind_method(D_METHOD("_scene_tree_request"), &ScriptEditorDebugger::_scene_tree_request); ClassDB::bind_method(D_METHOD("_video_mem_request"), &ScriptEditorDebugger::_video_mem_request); ClassDB::bind_method(D_METHOD("_live_edit_set"), &ScriptEditorDebugger::_live_edit_set); ClassDB::bind_method(D_METHOD("_live_edit_clear"), &ScriptEditorDebugger::_live_edit_clear); @@ -2279,13 +1506,10 @@ void ScriptEditorDebugger::_bind_methods() { ClassDB::bind_method(D_METHOD("_error_tree_item_rmb_selected"), &ScriptEditorDebugger::_error_tree_item_rmb_selected); ClassDB::bind_method(D_METHOD("_item_menu_id_pressed"), &ScriptEditorDebugger::_item_menu_id_pressed); ClassDB::bind_method(D_METHOD("_tab_changed"), &ScriptEditorDebugger::_tab_changed); - - ClassDB::bind_method(D_METHOD("_paused"), &ScriptEditorDebugger::_paused); - - ClassDB::bind_method(D_METHOD("_scene_tree_selected"), &ScriptEditorDebugger::_scene_tree_selected); - ClassDB::bind_method(D_METHOD("_scene_tree_folded"), &ScriptEditorDebugger::_scene_tree_folded); - ClassDB::bind_method(D_METHOD("_scene_tree_rmb_selected"), &ScriptEditorDebugger::_scene_tree_rmb_selected); ClassDB::bind_method(D_METHOD("_file_selected"), &ScriptEditorDebugger::_file_selected); + ClassDB::bind_method(D_METHOD("_remote_object_selected", "id"), &ScriptEditorDebugger::_remote_object_selected); + ClassDB::bind_method(D_METHOD("_remote_object_edited", "id", "property", "value"), &ScriptEditorDebugger::_remote_object_edited); + ClassDB::bind_method(D_METHOD("_remote_object_property_updated", "id", "property"), &ScriptEditorDebugger::_remote_object_property_updated); ClassDB::bind_method(D_METHOD("live_debug_create_node"), &ScriptEditorDebugger::live_debug_create_node); ClassDB::bind_method(D_METHOD("live_debug_instance_node"), &ScriptEditorDebugger::live_debug_instance_node); @@ -2294,32 +1518,32 @@ void ScriptEditorDebugger::_bind_methods() { ClassDB::bind_method(D_METHOD("live_debug_restore_node"), &ScriptEditorDebugger::live_debug_restore_node); ClassDB::bind_method(D_METHOD("live_debug_duplicate_node"), &ScriptEditorDebugger::live_debug_duplicate_node); ClassDB::bind_method(D_METHOD("live_debug_reparent_node"), &ScriptEditorDebugger::live_debug_reparent_node); - ClassDB::bind_method(D_METHOD("_scene_tree_property_select_object"), &ScriptEditorDebugger::_scene_tree_property_select_object); - ClassDB::bind_method(D_METHOD("_scene_tree_property_value_edited"), &ScriptEditorDebugger::_scene_tree_property_value_edited); + ClassDB::bind_method(D_METHOD("request_remote_object", "id"), &ScriptEditorDebugger::request_remote_object); + ClassDB::bind_method(D_METHOD("update_remote_object", "id", "property", "value"), &ScriptEditorDebugger::update_remote_object); - ADD_SIGNAL(MethodInfo("goto_script_line")); + ADD_SIGNAL(MethodInfo("stopped")); + ADD_SIGNAL(MethodInfo("stop_requested")); + ADD_SIGNAL(MethodInfo("stack_frame_selected", PropertyInfo(Variant::INT, "frame"))); + ADD_SIGNAL(MethodInfo("error_selected", PropertyInfo(Variant::INT, "error"))); ADD_SIGNAL(MethodInfo("set_execution", PropertyInfo("script"), PropertyInfo(Variant::INT, "line"))); ADD_SIGNAL(MethodInfo("clear_execution", PropertyInfo("script"))); ADD_SIGNAL(MethodInfo("breaked", PropertyInfo(Variant::BOOL, "reallydid"), PropertyInfo(Variant::BOOL, "can_debug"))); - ADD_SIGNAL(MethodInfo("show_debugger", PropertyInfo(Variant::BOOL, "reallydid"))); + ADD_SIGNAL(MethodInfo("remote_object_requested", PropertyInfo(Variant::INT, "id"))); + ADD_SIGNAL(MethodInfo("remote_object_updated", PropertyInfo(Variant::INT, "id"))); + ADD_SIGNAL(MethodInfo("remote_object_property_updated", PropertyInfo(Variant::INT, "id"), PropertyInfo(Variant::STRING, "property"))); + ADD_SIGNAL(MethodInfo("remote_tree_updated")); } ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { - add_constant_override("margin_left", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_LEFT)); - add_constant_override("margin_right", -EditorNode::get_singleton()->get_gui_base()->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")->get_margin(MARGIN_RIGHT)); - ppeer = Ref<PacketPeerStream>(memnew(PacketPeerStream)); ppeer->set_input_buffer_max_size((1024 * 1024 * 8) - 4); // 8 MiB should be enough, minus 4 bytes for separator. editor = p_editor; - editor->get_inspector()->connect("object_id_selected", this, "_scene_tree_property_select_object"); tabs = memnew(TabContainer); tabs->set_tab_align(TabContainer::ALIGN_LEFT); tabs->add_style_override("panel", editor->get_gui_base()->get_stylebox("DebuggerPanel", "EditorStyles")); - tabs->add_style_override("tab_fg", editor->get_gui_base()->get_stylebox("DebuggerTabFG", "EditorStyles")); - tabs->add_style_override("tab_bg", editor->get_gui_base()->get_stylebox("DebuggerTabBG", "EditorStyles")); - tabs->connect("tab_changed", this, "_tab_changed"); + tabs->connect_compat("tab_changed", this, "_tab_changed"); add_child(tabs); @@ -2344,14 +1568,14 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { skip_breakpoints = memnew(ToolButton); hbc->add_child(skip_breakpoints); skip_breakpoints->set_tooltip(TTR("Skip Breakpoints")); - skip_breakpoints->connect("pressed", this, "debug_skip_breakpoints"); + skip_breakpoints->connect_compat("pressed", this, "debug_skip_breakpoints"); hbc->add_child(memnew(VSeparator)); copy = memnew(ToolButton); hbc->add_child(copy); copy->set_tooltip(TTR("Copy Error")); - copy->connect("pressed", this, "debug_copy"); + copy->connect_compat("pressed", this, "debug_copy"); hbc->add_child(memnew(VSeparator)); @@ -2359,13 +1583,13 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { hbc->add_child(step); step->set_tooltip(TTR("Step Into")); step->set_shortcut(ED_GET_SHORTCUT("debugger/step_into")); - step->connect("pressed", this, "debug_step"); + step->connect_compat("pressed", this, "debug_step"); next = memnew(ToolButton); hbc->add_child(next); next->set_tooltip(TTR("Step Over")); next->set_shortcut(ED_GET_SHORTCUT("debugger/step_over")); - next->connect("pressed", this, "debug_next"); + next->connect_compat("pressed", this, "debug_next"); hbc->add_child(memnew(VSeparator)); @@ -2373,23 +1597,13 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { hbc->add_child(dobreak); dobreak->set_tooltip(TTR("Break")); dobreak->set_shortcut(ED_GET_SHORTCUT("debugger/break")); - dobreak->connect("pressed", this, "debug_break"); + dobreak->connect_compat("pressed", this, "debug_break"); docontinue = memnew(ToolButton); hbc->add_child(docontinue); docontinue->set_tooltip(TTR("Continue")); docontinue->set_shortcut(ED_GET_SHORTCUT("debugger/continue")); - docontinue->connect("pressed", this, "debug_continue"); - - back = memnew(Button); - hbc->add_child(back); - back->set_tooltip(TTR("Inspect Previous Instance")); - back->hide(); - - forward = memnew(Button); - hbc->add_child(forward); - forward->set_tooltip(TTR("Inspect Next Instance")); - forward->hide(); + docontinue->connect_compat("pressed", this, "debug_continue"); HSplitContainer *sc = memnew(HSplitContainer); vbc->add_child(sc); @@ -2402,24 +1616,17 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { stack_dump->set_column_title(0, TTR("Stack Frames")); stack_dump->set_h_size_flags(SIZE_EXPAND_FILL); stack_dump->set_hide_root(true); - stack_dump->connect("cell_selected", this, "_stack_dump_frame_selected"); + stack_dump->connect_compat("cell_selected", this, "_stack_dump_frame_selected"); sc->add_child(stack_dump); - inspector = memnew(EditorInspector); + inspector = memnew(EditorDebuggerInspector); inspector->set_h_size_flags(SIZE_EXPAND_FILL); inspector->set_enable_capitalize_paths(false); inspector->set_read_only(true); - inspector->connect("object_id_selected", this, "_scene_tree_property_select_object"); + inspector->connect_compat("object_selected", this, "_remote_object_selected"); + inspector->connect_compat("object_edited", this, "_remote_object_edited"); + inspector->connect_compat("object_property_updated", this, "_remote_object_property_updated"); sc->add_child(inspector); - - server.instance(); - - pending_in_queue = 0; - - variables = memnew(ScriptEditorDebuggerVariables); - - breaked = false; - tabs->add_child(dbg); } @@ -2432,12 +1639,12 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { Button *expand_all = memnew(Button); expand_all->set_text(TTR("Expand All")); - expand_all->connect("pressed", this, "_expand_errors_list"); + expand_all->connect_compat("pressed", this, "_expand_errors_list"); errhb->add_child(expand_all); Button *collapse_all = memnew(Button); collapse_all->set_text(TTR("Collapse All")); - collapse_all->connect("pressed", this, "_collapse_errors_list"); + collapse_all->connect_compat("pressed", this, "_collapse_errors_list"); errhb->add_child(collapse_all); Control *space = memnew(Control); @@ -2447,7 +1654,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { clearbutton = memnew(Button); clearbutton->set_text(TTR("Clear")); clearbutton->set_h_size_flags(0); - clearbutton->connect("pressed", this, "_clear_errors_list"); + clearbutton->connect_compat("pressed", this, "_clear_errors_list"); errhb->add_child(clearbutton); error_tree = memnew(Tree); @@ -2462,36 +1669,19 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { error_tree->set_hide_root(true); error_tree->set_v_size_flags(SIZE_EXPAND_FILL); error_tree->set_allow_rmb_select(true); - error_tree->connect("item_rmb_selected", this, "_error_tree_item_rmb_selected"); + error_tree->connect_compat("item_rmb_selected", this, "_error_tree_item_rmb_selected"); errors_tab->add_child(error_tree); item_menu = memnew(PopupMenu); - item_menu->connect("id_pressed", this, "_item_menu_id_pressed"); + item_menu->connect_compat("id_pressed", this, "_item_menu_id_pressed"); error_tree->add_child(item_menu); tabs->add_child(errors_tab); } - { // remote scene tree - - inspect_scene_tree = memnew(Tree); - EditorNode::get_singleton()->get_scene_tree_dock()->add_remote_tree_editor(inspect_scene_tree); - EditorNode::get_singleton()->get_scene_tree_dock()->connect("remote_tree_selected", this, "_scene_tree_selected"); - inspect_scene_tree->set_v_size_flags(SIZE_EXPAND_FILL); - inspect_scene_tree->connect("cell_selected", this, "_scene_tree_selected"); - inspect_scene_tree->connect("item_collapsed", this, "_scene_tree_folded"); - inspect_scene_tree->set_allow_rmb_select(true); - inspect_scene_tree->connect("item_rmb_selected", this, "_scene_tree_rmb_selected"); - auto_switch_remote_scene_tree = EDITOR_DEF("debugger/auto_switch_to_remote_scene_tree", false); - inspect_scene_tree_timeout = EDITOR_DEF("debugger/remote_scene_tree_refresh_interval", 1.0); - inspect_edited_object_timeout = EDITOR_DEF("debugger/remote_inspect_refresh_interval", 0.2); - inspected_object_id = ObjectID(); - updating_scene_tree = false; - } - { // File dialog file_dialog = memnew(EditorFileDialog); - file_dialog->connect("file_selected", this, "_file_selected"); + file_dialog->connect_compat("file_selected", this, "_file_selected"); add_child(file_dialog); } @@ -2499,24 +1689,22 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { profiler = memnew(EditorProfiler); profiler->set_name(TTR("Profiler")); tabs->add_child(profiler); - profiler->connect("enable_profiling", this, "_profiler_activate"); - profiler->connect("break_request", this, "_profiler_seeked"); + profiler->connect_compat("enable_profiling", this, "_profiler_activate"); + profiler->connect_compat("break_request", this, "_profiler_seeked"); } { //frame profiler visual_profiler = memnew(EditorVisualProfiler); visual_profiler->set_name(TTR("Visual Profiler")); tabs->add_child(visual_profiler); - visual_profiler->connect("enable_profiling", this, "_visual_profiler_activate"); - visual_profiler->connect("break_request", this, "_profiler_seeked"); + visual_profiler->connect_compat("enable_profiling", this, "_visual_profiler_activate"); } { //network profiler network_profiler = memnew(EditorNetworkProfiler); network_profiler->set_name(TTR("Network Profiler")); tabs->add_child(network_profiler); - network_profiler->connect("enable_profiling", this, "_network_profiler_activate"); - network_profiler->connect("break_request", this, "_profiler_seeked"); + network_profiler->connect_compat("enable_profiling", this, "_network_profiler_activate"); } { //monitors @@ -2528,12 +1716,12 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { perf_monitors->set_column_title(0, TTR("Monitor")); perf_monitors->set_column_title(1, TTR("Value")); perf_monitors->set_column_titles_visible(true); - perf_monitors->connect("item_edited", this, "_performance_select"); + perf_monitors->connect_compat("item_edited", this, "_performance_select"); hsp->add_child(perf_monitors); perf_draw = memnew(Control); perf_draw->set_clip_contents(true); - perf_draw->connect("draw", this, "_performance_draw"); + perf_draw->connect_compat("draw", this, "_performance_draw"); hsp->add_child(perf_draw); hsp->set_name(TTR("Monitors")); @@ -2592,10 +1780,9 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { vmem_total->set_custom_minimum_size(Size2(100, 0) * EDSCALE); vmem_hb->add_child(vmem_total); vmem_refresh = memnew(ToolButton); - vmem_refresh->set_disabled(true); vmem_hb->add_child(vmem_refresh); vmem_vb->add_child(vmem_hb); - vmem_refresh->connect("pressed", this, "_video_mem_request"); + vmem_refresh->connect_compat("pressed", this, "_video_mem_request"); VBoxContainer *vmmc = memnew(VBoxContainer); vmem_tree = memnew(Tree); @@ -2640,6 +1827,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { info_left->add_child(memnew(Label(TTR("Clicked Control Type:")))); info_left->add_child(clicked_ctrl_type); + scene_tree = memnew(SceneDebuggerTree); live_edit_root = memnew(LineEdit); live_edit_root->set_h_size_flags(SIZE_EXPAND_FILL); @@ -2653,8 +1841,6 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { le_clear = memnew(Button(TTR("Clear"))); lehb->add_child(le_clear); info_left->add_child(lehb); - le_set->set_disabled(true); - le_clear->set_disabled(true); } misc->add_child(memnew(VSeparator)); @@ -2662,7 +1848,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { HBoxContainer *buttons = memnew(HBoxContainer); export_csv = memnew(Button(TTR("Export measures as CSV"))); - export_csv->connect("pressed", this, "_export_csv"); + export_csv->connect_compat("pressed", this, "_export_csv"); buttons->add_child(export_csv); misc->add_child(buttons); @@ -2671,27 +1857,18 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) { msgdialog = memnew(AcceptDialog); add_child(msgdialog); - p_editor->get_undo_redo()->set_method_notify_callback(_method_changeds, this); - p_editor->get_undo_redo()->set_property_notify_callback(_property_changeds, this); live_debug = true; camera_override = OVERRIDE_NONE; last_path_id = false; error_count = 0; warning_count = 0; - hide_on_stop = true; - enable_external_editor = false; - last_error_count = 0; - last_warning_count = 0; - - EditorNode::get_singleton()->get_pause_button()->connect("pressed", this, "_paused"); + _update_buttons_state(); } ScriptEditorDebugger::~ScriptEditorDebugger() { - memdelete(variables); - ppeer->set_stream_peer(Ref<StreamPeer>()); - server->stop(); - _clear_remote_objects(); + inspector->clear_cache(); + memdelete(scene_tree); } diff --git a/editor/script_editor_debugger.h b/editor/debugger/script_editor_debugger.h index 5a821a4a88..fd034ba983 100644 --- a/editor/script_editor_debugger.h +++ b/editor/debugger/script_editor_debugger.h @@ -32,7 +32,8 @@ #define SCRIPT_EDITOR_DEBUGGER_H #include "core/io/packet_peer.h" -#include "core/io/tcp_server.h" +#include "core/io/stream_peer_tcp.h" +#include "editor/debugger/editor_debugger_inspector.h" #include "editor/editor_inspector.h" #include "editor/property_editor.h" #include "scene/3d/camera.h" @@ -41,7 +42,6 @@ class Tree; class EditorNode; -class ScriptEditorDebuggerVariables; class LineEdit; class TabContainer; class RichTextLabel; @@ -53,13 +53,14 @@ class ItemList; class EditorProfiler; class EditorVisualProfiler; class EditorNetworkProfiler; - -class ScriptEditorDebuggerInspectedObject; +class SceneDebuggerTree; class ScriptEditorDebugger : public MarginContainer { GDCLASS(ScriptEditorDebugger, MarginContainer); + friend class EditorDebuggerNode; + public: enum CameraOverride { OVERRIDE_NONE, @@ -77,16 +78,8 @@ private: MESSAGE_SUCCESS, }; - enum ItemMenu { - ITEM_MENU_COPY_ERROR, - ITEM_MENU_SAVE_REMOTE_NODE, - ITEM_MENU_COPY_NODE_PATH, - }; - AcceptDialog *msgdialog; - Button *debugger_button; - LineEdit *clicked_ctrl; LineEdit *clicked_ctrl_type; LineEdit *live_edit_root; @@ -94,35 +87,15 @@ private: Button *le_clear; Button *export_csv; - bool updating_scene_tree; - float inspect_scene_tree_timeout; - float inspect_edited_object_timeout; - bool auto_switch_remote_scene_tree; - ObjectID inspected_object_id; - ScriptEditorDebuggerVariables *variables; - Map<ObjectID, ScriptEditorDebuggerInspectedObject *> remote_objects; - Set<ObjectID> unfold_cache; - VBoxContainer *errors_tab; Tree *error_tree; - Tree *inspect_scene_tree; Button *clearbutton; PopupMenu *item_menu; EditorFileDialog *file_dialog; - enum FileDialogMode { - SAVE_CSV, - SAVE_NODE, - }; - FileDialogMode file_dialog_mode; int error_count; int warning_count; - int last_error_count; - int last_warning_count; - - bool hide_on_stop; - bool enable_external_editor; bool skip_breakpoints_value = false; Ref<Script> stack_script; @@ -135,10 +108,11 @@ private: Button *copy; Button *step; Button *next; - Button *back; - Button *forward; Button *dobreak; Button *docontinue; + // Reference to "Remote" tab in scene tree. Needed by _live_edit_set and buttons state. + // Each debugger should have it's tree in the future I guess. + const Tree *editor_remote_tree = NULL; List<Vector<float> > perf_history; Vector<float> perf_max; @@ -155,16 +129,12 @@ private: LineEdit *vmem_total; Tree *stack_dump; - EditorInspector *inspector; + EditorDebuggerInspector *inspector; + SceneDebuggerTree *scene_tree; - Ref<TCP_Server> server; Ref<StreamPeerTCP> connection; Ref<PacketPeerStream> ppeer; - String message_type; - Array message; - int pending_in_queue; - HashMap<NodePath, int> node_path_cache; int last_path_id; Map<String, int> res_path_cache; @@ -175,7 +145,9 @@ private: EditorNode *editor; - bool breaked; + OS::ProcessID remote_pid = 0; + bool breaked = false; + bool can_debug = false; bool live_debug; @@ -184,18 +156,14 @@ private: void _performance_draw(); void _performance_select(); void _stack_dump_frame_selected(); - void _output_clear(); - void _scene_tree_folded(Object *obj); - void _scene_tree_selected(); - void _scene_tree_rmb_selected(const Vector2 &p_position); void _file_selected(const String &p_file); - void _scene_tree_request(); void _parse_message(const String &p_msg, const Array &p_data); void _set_reason_text(const String &p_reason, MessageType p_type); - void _scene_tree_property_select_object(ObjectID p_object); - void _scene_tree_property_value_edited(const String &p_prop, const Variant &p_value); - int _update_scene_tree(TreeItem *parent, const Array &nodes, int current_index); + void _update_buttons_state(); + void _remote_object_selected(ObjectID p_object); + void _remote_object_edited(ObjectID, const String &p_prop, const Variant &p_value); + void _remote_object_property_updated(ObjectID p_id, const String &p_property); void _video_mem_request(); @@ -221,28 +189,34 @@ private: void _network_profiler_activate(bool p_enable); - void _paused(); - - void _set_remote_object(ObjectID p_id, ScriptEditorDebuggerInspectedObject *p_obj); - void _clear_remote_objects(); void _clear_errors_list(); void _error_tree_item_rmb_selected(const Vector2 &p_pos); void _item_menu_id_pressed(int p_option); void _tab_changed(int p_tab); + void _put_msg(String p_message, Array p_data); void _export_csv(); void _clear_execution(); + void _stop_and_notify(); protected: void _notification(int p_what); static void _bind_methods(); public: - void start(); - void pause(); - void unpause(); + void request_remote_object(ObjectID p_obj_id); + void update_remote_object(ObjectID p_obj_id, const String &p_prop, const Variant &p_value); + Object *get_remote_object(ObjectID p_id); + + // Needed by _live_edit_set, buttons state. + void set_editor_remote_tree(const Tree *p_tree) { editor_remote_tree = p_tree; } + + void request_remote_tree(); + const SceneDebuggerTree *get_remote_tree(); + + void start(Ref<StreamPeerTCP> p_connection); void stop(); void debug_skip_breakpoints(); @@ -252,14 +226,24 @@ public: void debug_step(); void debug_break(); void debug_continue(); - + bool is_breaked() const { return breaked; } + bool is_debuggable() const { return can_debug; } + bool is_session_active() { return connection.is_valid() && connection->is_connected_to_host(); }; + int get_remote_pid() const { return remote_pid; } + + int get_error_count() const { return error_count; } + int get_warning_count() const { return warning_count; } + String get_stack_script_file() const; + int get_stack_script_line() const; + int get_stack_script_frame() const; + + void update_tabs(); + void clear_style(); String get_var_value(const String &p_var) const; + void save_node(ObjectID p_id, const String &p_file); void set_live_debugging(bool p_enable); - static void _method_changeds(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE); - static void _property_changeds(void *p_ud, Object *p_base, const StringName &p_property, const Variant &p_value); - void live_debug_create_node(const NodePath &p_parent, const String &p_type, const String &p_name); void live_debug_instance_node(const NodePath &p_parent, const String &p_path, const String &p_name); void live_debug_remove_node(const NodePath &p_at); @@ -275,15 +259,6 @@ public: void update_live_edit_root(); - void set_hide_on_stop(bool p_hide); - - bool get_debug_with_external_editor() const; - void set_debug_with_external_editor(bool p_enabled); - - Ref<Script> get_dump_stack_script() const; - - void set_tool_button(Button *p_tb) { debugger_button = p_tb; } - void reload_scripts(); bool is_skip_breakpoints(); diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index 46f6815f77..e2a447cfcf 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -247,7 +247,7 @@ DependencyEditor::DependencyEditor() { tree->set_column_title(0, TTR("Resource")); tree->set_column_title(1, TTR("Path")); tree->set_hide_root(true); - tree->connect("button_pressed", this, "_load_pressed"); + tree->connect_compat("button_pressed", this, "_load_pressed"); HBoxContainer *hbc = memnew(HBoxContainer); Label *label = memnew(Label(TTR("Dependencies:"))); @@ -255,7 +255,7 @@ DependencyEditor::DependencyEditor() { hbc->add_spacer(); fixdeps = memnew(Button(TTR("Fix Broken"))); hbc->add_child(fixdeps); - fixdeps->connect("pressed", this, "_fix_all"); + fixdeps->connect_compat("pressed", this, "_fix_all"); vb->add_child(hbc); @@ -267,7 +267,7 @@ DependencyEditor::DependencyEditor() { set_title(TTR("Dependency Editor")); search = memnew(EditorFileDialog); - search->connect("file_selected", this, "_searched"); + search->connect_compat("file_selected", this, "_searched"); search->set_mode(EditorFileDialog::MODE_OPEN_FILE); search->set_title(TTR("Search Replacement Resource:")); add_child(search); @@ -360,12 +360,12 @@ DependencyEditorOwners::DependencyEditorOwners(EditorNode *p_editor) { file_options = memnew(PopupMenu); add_child(file_options); - file_options->connect("id_pressed", this, "_file_option"); + file_options->connect_compat("id_pressed", this, "_file_option"); owners = memnew(ItemList); owners->set_select_mode(ItemList::SELECT_SINGLE); - owners->connect("item_rmb_selected", this, "_list_rmb_select"); - owners->connect("item_activated", this, "_select_file"); + owners->connect_compat("item_rmb_selected", this, "_list_rmb_select"); + owners->connect_compat("item_activated", this, "_select_file"); owners->set_allow_rmb_select(true); add_child(owners); } @@ -800,7 +800,7 @@ OrphanResourcesDialog::OrphanResourcesDialog() { add_child(delete_confirm); dep_edit = memnew(DependencyEditor); add_child(dep_edit); - delete_confirm->connect("confirmed", this, "_delete_confirm"); + delete_confirm->connect_compat("confirmed", this, "_delete_confirm"); set_hide_on_ok(false); VBoxContainer *vbc = memnew(VBoxContainer); @@ -816,5 +816,5 @@ OrphanResourcesDialog::OrphanResourcesDialog() { files->set_column_title(1, TTR("Owns")); files->set_hide_root(true); vbc->add_margin_child(TTR("Resources Without Explicit Ownership:"), files, true); - files->connect("button_pressed", this, "_button_pressed"); + files->connect_compat("button_pressed", this, "_button_pressed"); } diff --git a/editor/doc/doc_data.cpp b/editor/doc/doc_data.cpp index de3d13cdac..3fd9e3182d 100644 --- a/editor/doc/doc_data.cpp +++ b/editor/doc/doc_data.cpp @@ -533,7 +533,7 @@ void DocData::generate(bool p_basic_types) { ClassDoc &c = class_list[cname]; c.name = cname; - Variant::CallError cerror; + Callable::CallError cerror; Variant v = Variant::construct(Variant::Type(i), NULL, 0, cerror); List<MethodInfo> method_list; @@ -562,11 +562,12 @@ void DocData::generate(bool p_basic_types) { method.arguments.push_back(ad); } - if (mi.return_val.type == Variant::NIL) { - if (mi.return_val.name != "") - method.return_type = "Variant"; - } else { - method.return_type = Variant::get_type_name(mi.return_val.type); + return_doc_from_retinfo(method, mi.return_val); + + if (mi.flags & METHOD_FLAG_VARARG) { + if (method.qualifiers != "") + method.qualifiers += " "; + method.qualifiers += "vararg"; } c.methods.push_back(method); diff --git a/editor/doc/doc_dump.cpp b/editor/doc/doc_dump.cpp index 5f7fa53ee7..b0a89ff4b8 100644 --- a/editor/doc/doc_dump.cpp +++ b/editor/doc/doc_dump.cpp @@ -161,10 +161,13 @@ void DocDump::dump(const String &p_file) { default_arg_text = "false"; break; case Variant::INT: - case Variant::REAL: + case Variant::FLOAT: //keep it break; case Variant::STRING: + case Variant::STRING_NAME: + default_arg_text = "@\"" + default_arg_text + "\""; + break; case Variant::NODE_PATH: default_arg_text = "\"" + default_arg_text + "\""; break; @@ -184,16 +187,18 @@ void DocDump::dump(const String &p_file) { case Variant::AABB: case Variant::BASIS: case Variant::COLOR: - case Variant::POOL_BYTE_ARRAY: - case Variant::POOL_INT_ARRAY: - case Variant::POOL_REAL_ARRAY: - case Variant::POOL_STRING_ARRAY: - case Variant::POOL_VECTOR3_ARRAY: - case Variant::POOL_COLOR_ARRAY: + case Variant::PACKED_BYTE_ARRAY: + case Variant::PACKED_INT32_ARRAY: + case Variant::PACKED_FLOAT32_ARRAY: + case Variant::PACKED_INT64_ARRAY: + case Variant::PACKED_FLOAT64_ARRAY: + case Variant::PACKED_STRING_ARRAY: + case Variant::PACKED_VECTOR3_ARRAY: + case Variant::PACKED_COLOR_ARRAY: default_arg_text = Variant::get_type_name(default_arg.get_type()) + "(" + default_arg_text + ")"; break; case Variant::OBJECT: - case Variant::DICTIONARY: // 20 + case Variant::DICTIONARY: case Variant::ARRAY: case Variant::_RID: diff --git a/editor/editor_about.cpp b/editor/editor_about.cpp index ba653017ef..37d653ed43 100644 --- a/editor/editor_about.cpp +++ b/editor/editor_about.cpp @@ -255,7 +255,7 @@ EditorAbout::EditorAbout() { _tpl_text->set_v_size_flags(Control::SIZE_EXPAND_FILL); tpl_hbc->add_child(_tpl_text); - _tpl_tree->connect("item_selected", this, "_license_tree_selected"); + _tpl_tree->connect_compat("item_selected", this, "_license_tree_selected"); tpl_ti_all->select(0); _tpl_text->set_text(tpl_ti_all->get_metadata(0)); } diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp index 783b996c4d..8a6fc4cd12 100644 --- a/editor/editor_asset_installer.cpp +++ b/editor/editor_asset_installer.cpp @@ -318,7 +318,7 @@ EditorAssetInstaller::EditorAssetInstaller() { tree = memnew(Tree); vb->add_margin_child(TTR("Package Contents:"), tree, true); - tree->connect("item_edited", this, "_item_edited"); + tree->connect_compat("item_edited", this, "_item_edited"); error = memnew(AcceptDialog); add_child(error); diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 594322f00d..1a72b6e1ca 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -799,8 +799,8 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { set_v_size_flags(SIZE_EXPAND_FILL); track_name = memnew(LineEdit); - track_name->connect("text_entered", this, "_name_changed"); - track_name->connect("focus_exited", this, "_name_focus_exit"); + track_name->connect_compat("text_entered", this, "_name_changed"); + track_name->connect_compat("focus_exited", this, "_name_focus_exit"); vb->add_child(track_name); HBoxContainer *hbc = memnew(HBoxContainer); @@ -809,19 +809,19 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { solo->set_toggle_mode(true); solo->set_tooltip(TTR("Solo")); solo->set_focus_mode(FOCUS_NONE); - solo->connect("pressed", this, "_solo_toggled"); + solo->connect_compat("pressed", this, "_solo_toggled"); hbc->add_child(solo); mute = memnew(ToolButton); mute->set_toggle_mode(true); mute->set_tooltip(TTR("Mute")); mute->set_focus_mode(FOCUS_NONE); - mute->connect("pressed", this, "_mute_toggled"); + mute->connect_compat("pressed", this, "_mute_toggled"); hbc->add_child(mute); bypass = memnew(ToolButton); bypass->set_toggle_mode(true); bypass->set_tooltip(TTR("Bypass")); bypass->set_focus_mode(FOCUS_NONE); - bypass->connect("pressed", this, "_bypass_toggled"); + bypass->connect_compat("pressed", this, "_bypass_toggled"); hbc->add_child(bypass); hbc->add_spacer(); @@ -878,9 +878,9 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { preview_timer->set_one_shot(true); add_child(preview_timer); - slider->connect("value_changed", this, "_volume_changed"); - slider->connect("value_changed", this, "_show_value"); - preview_timer->connect("timeout", this, "_hide_value_preview"); + slider->connect_compat("value_changed", this, "_volume_changed"); + slider->connect_compat("value_changed", this, "_show_value"); + preview_timer->connect_compat("timeout", this, "_hide_value_preview"); hb->add_child(slider); cc = 0; @@ -918,24 +918,24 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { effects->set_hide_folding(true); effects->set_v_size_flags(SIZE_EXPAND_FILL); vb->add_child(effects); - effects->connect("item_edited", this, "_effect_edited"); - effects->connect("cell_selected", this, "_effect_selected"); + effects->connect_compat("item_edited", this, "_effect_edited"); + effects->connect_compat("cell_selected", this, "_effect_selected"); effects->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); effects->set_drag_forwarding(this); - effects->connect("item_rmb_selected", this, "_effect_rmb"); + effects->connect_compat("item_rmb_selected", this, "_effect_rmb"); effects->set_allow_rmb_select(true); effects->set_focus_mode(FOCUS_CLICK); effects->set_allow_reselect(true); send = memnew(OptionButton); send->set_clip_text(true); - send->connect("item_selected", this, "_send_selected"); + send->connect_compat("item_selected", this, "_send_selected"); vb->add_child(send); set_focus_mode(FOCUS_CLICK); effect_options = memnew(PopupMenu); - effect_options->connect("index_pressed", this, "_effect_add"); + effect_options->connect_compat("index_pressed", this, "_effect_add"); add_child(effect_options); List<StringName> effects; ClassDB::get_inheriters_from_class("AudioEffect", &effects); @@ -956,12 +956,12 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { bus_popup->add_item(TTR("Delete")); bus_popup->set_item_disabled(1, is_master); bus_popup->add_item(TTR("Reset Volume")); - bus_popup->connect("index_pressed", this, "_bus_popup_pressed"); + bus_popup->connect_compat("index_pressed", this, "_bus_popup_pressed"); delete_effect_popup = memnew(PopupMenu); delete_effect_popup->add_item(TTR("Delete Effect")); add_child(delete_effect_popup); - delete_effect_popup->connect("index_pressed", this, "_delete_effect_pressed"); + delete_effect_popup->connect_compat("index_pressed", this, "_delete_effect_pressed"); } void EditorAudioBusDrop::_notification(int p_what) { @@ -1029,11 +1029,11 @@ void EditorAudioBuses::_update_buses() { bool is_master = (i == 0); EditorAudioBus *audio_bus = memnew(EditorAudioBus(this, is_master)); bus_hb->add_child(audio_bus); - audio_bus->connect("delete_request", this, "_delete_bus", varray(audio_bus), CONNECT_DEFERRED); - audio_bus->connect("duplicate_request", this, "_duplicate_bus", varray(), CONNECT_DEFERRED); - audio_bus->connect("vol_reset_request", this, "_reset_bus_volume", varray(audio_bus), CONNECT_DEFERRED); - audio_bus->connect("drop_end_request", this, "_request_drop_end"); - audio_bus->connect("dropped", this, "_drop_at_index", varray(), CONNECT_DEFERRED); + audio_bus->connect_compat("delete_request", this, "_delete_bus", varray(audio_bus), CONNECT_DEFERRED); + audio_bus->connect_compat("duplicate_request", this, "_duplicate_bus", varray(), CONNECT_DEFERRED); + audio_bus->connect_compat("vol_reset_request", this, "_reset_bus_volume", varray(audio_bus), CONNECT_DEFERRED); + audio_bus->connect_compat("drop_end_request", this, "_request_drop_end"); + audio_bus->connect_compat("dropped", this, "_drop_at_index", varray(), CONNECT_DEFERRED); } } @@ -1187,7 +1187,7 @@ void EditorAudioBuses::_request_drop_end() { bus_hb->add_child(drop_end); drop_end->set_custom_minimum_size(Object::cast_to<Control>(bus_hb->get_child(0))->get_size()); - drop_end->connect("dropped", this, "_drop_at_index", varray(), CONNECT_DEFERRED); + drop_end->connect_compat("dropped", this, "_drop_at_index", varray(), CONNECT_DEFERRED); } } @@ -1339,7 +1339,7 @@ EditorAudioBuses::EditorAudioBuses() { top_hb->add_child(add); add->set_text(TTR("Add Bus")); add->set_tooltip(TTR("Add a new Audio Bus to this layout.")); - add->connect("pressed", this, "_add_bus"); + add->connect_compat("pressed", this, "_add_bus"); VSeparator *separator = memnew(VSeparator); top_hb->add_child(separator); @@ -1348,25 +1348,25 @@ EditorAudioBuses::EditorAudioBuses() { load->set_text(TTR("Load")); load->set_tooltip(TTR("Load an existing Bus Layout.")); top_hb->add_child(load); - load->connect("pressed", this, "_load_layout"); + load->connect_compat("pressed", this, "_load_layout"); save_as = memnew(Button); save_as->set_text(TTR("Save As")); save_as->set_tooltip(TTR("Save this Bus Layout to a file.")); top_hb->add_child(save_as); - save_as->connect("pressed", this, "_save_as_layout"); + save_as->connect_compat("pressed", this, "_save_as_layout"); _default = memnew(Button); _default->set_text(TTR("Load Default")); _default->set_tooltip(TTR("Load the default Bus Layout.")); top_hb->add_child(_default); - _default->connect("pressed", this, "_load_default_layout"); + _default->connect_compat("pressed", this, "_load_default_layout"); _new = memnew(Button); _new->set_text(TTR("Create")); _new->set_tooltip(TTR("Create a new Bus Layout.")); top_hb->add_child(_new); - _new->connect("pressed", this, "_new_layout"); + _new->connect_compat("pressed", this, "_new_layout"); bus_scroll = memnew(ScrollContainer); bus_scroll->set_v_size_flags(SIZE_EXPAND_FILL); @@ -1381,7 +1381,7 @@ EditorAudioBuses::EditorAudioBuses() { save_timer->set_wait_time(0.8); save_timer->set_one_shot(true); add_child(save_timer); - save_timer->connect("timeout", this, "_server_save"); + save_timer->connect_compat("timeout", this, "_server_save"); set_v_size_flags(SIZE_EXPAND_FILL); @@ -1394,7 +1394,7 @@ EditorAudioBuses::EditorAudioBuses() { file_dialog->add_filter("*." + E->get() + "; Audio Bus Layout"); } add_child(file_dialog); - file_dialog->connect("file_selected", this, "_file_dialog_callback"); + file_dialog->connect_compat("file_selected", this, "_file_dialog_callback"); set_process(true); } diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index 549b15d6f9..feb6dbd302 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -521,7 +521,7 @@ Variant EditorAutoloadSettings::get_drag_data_fw(const Point2 &p_point, Control if (autoload_cache.size() <= 1) return false; - PoolStringArray autoloads; + PackedStringArray autoloads; TreeItem *next = tree->get_next_selected(NULL); @@ -612,7 +612,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant & } Dictionary drop_data = p_data; - PoolStringArray autoloads = drop_data["autoloads"]; + PackedStringArray autoloads = drop_data["autoloads"]; Vector<int> orders; orders.resize(autoload_cache.size()); @@ -835,8 +835,8 @@ EditorAutoloadSettings::EditorAutoloadSettings() { autoload_add_path = memnew(EditorLineEditFileChooser); autoload_add_path->set_h_size_flags(SIZE_EXPAND_FILL); autoload_add_path->get_file_dialog()->set_mode(EditorFileDialog::MODE_OPEN_FILE); - autoload_add_path->get_file_dialog()->connect("file_selected", this, "_autoload_file_callback"); - autoload_add_path->get_line_edit()->connect("text_changed", this, "_autoload_path_text_changed"); + autoload_add_path->get_file_dialog()->connect_compat("file_selected", this, "_autoload_file_callback"); + autoload_add_path->get_line_edit()->connect_compat("text_changed", this, "_autoload_path_text_changed"); hbc->add_child(autoload_add_path); @@ -846,13 +846,13 @@ EditorAutoloadSettings::EditorAutoloadSettings() { autoload_add_name = memnew(LineEdit); autoload_add_name->set_h_size_flags(SIZE_EXPAND_FILL); - autoload_add_name->connect("text_entered", this, "_autoload_text_entered"); - autoload_add_name->connect("text_changed", this, "_autoload_text_changed"); + autoload_add_name->connect_compat("text_entered", this, "_autoload_text_entered"); + autoload_add_name->connect_compat("text_changed", this, "_autoload_text_changed"); hbc->add_child(autoload_add_name); add_autoload = memnew(Button); add_autoload->set_text(TTR("Add")); - add_autoload->connect("pressed", this, "_autoload_add"); + add_autoload->connect_compat("pressed", this, "_autoload_add"); // The button will be enabled once a valid name is entered (either automatically or manually). add_autoload->set_disabled(true); hbc->add_child(add_autoload); @@ -882,10 +882,10 @@ EditorAutoloadSettings::EditorAutoloadSettings() { tree->set_column_expand(3, false); tree->set_column_min_width(3, 120 * EDSCALE); - tree->connect("cell_selected", this, "_autoload_selected"); - tree->connect("item_edited", this, "_autoload_edited"); - tree->connect("button_pressed", this, "_autoload_button_pressed"); - tree->connect("item_activated", this, "_autoload_activated"); + tree->connect_compat("cell_selected", this, "_autoload_selected"); + tree->connect_compat("item_edited", this, "_autoload_edited"); + tree->connect_compat("button_pressed", this, "_autoload_button_pressed"); + tree->connect_compat("item_activated", this, "_autoload_activated"); tree->set_v_size_flags(SIZE_EXPAND_FILL); add_child(tree, true); diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 1468b8fc35..c3592d3f06 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -1024,7 +1024,7 @@ void EditorSelection::add_node(Node *p_node) { } selection[p_node] = meta; - p_node->connect("tree_exiting", this, "_node_removed", varray(p_node), CONNECT_ONESHOT); + p_node->connect_compat("tree_exiting", this, "_node_removed", varray(p_node), CONNECT_ONESHOT); //emit_signal("selection_changed"); } @@ -1042,7 +1042,7 @@ void EditorSelection::remove_node(Node *p_node) { if (meta) memdelete(meta); selection.erase(p_node); - p_node->disconnect("tree_exiting", this, "_node_removed"); + p_node->disconnect_compat("tree_exiting", this, "_node_removed"); //emit_signal("selection_changed"); } bool EditorSelection::is_selected(Node *p_node) const { diff --git a/editor/editor_dir_dialog.cpp b/editor/editor_dir_dialog.cpp index 09e63f70b4..841ad250a4 100644 --- a/editor/editor_dir_dialog.cpp +++ b/editor/editor_dir_dialog.cpp @@ -82,21 +82,21 @@ void EditorDirDialog::reload(const String &p_path) { void EditorDirDialog::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - EditorFileSystem::get_singleton()->connect("filesystem_changed", this, "reload"); + EditorFileSystem::get_singleton()->connect_compat("filesystem_changed", this, "reload"); reload(); - if (!tree->is_connected("item_collapsed", this, "_item_collapsed")) { - tree->connect("item_collapsed", this, "_item_collapsed", varray(), CONNECT_DEFERRED); + if (!tree->is_connected_compat("item_collapsed", this, "_item_collapsed")) { + tree->connect_compat("item_collapsed", this, "_item_collapsed", varray(), CONNECT_DEFERRED); } - if (!EditorFileSystem::get_singleton()->is_connected("filesystem_changed", this, "reload")) { - EditorFileSystem::get_singleton()->connect("filesystem_changed", this, "reload"); + if (!EditorFileSystem::get_singleton()->is_connected_compat("filesystem_changed", this, "reload")) { + EditorFileSystem::get_singleton()->connect_compat("filesystem_changed", this, "reload"); } } if (p_what == NOTIFICATION_EXIT_TREE) { - if (EditorFileSystem::get_singleton()->is_connected("filesystem_changed", this, "reload")) { - EditorFileSystem::get_singleton()->disconnect("filesystem_changed", this, "reload"); + if (EditorFileSystem::get_singleton()->is_connected_compat("filesystem_changed", this, "reload")) { + EditorFileSystem::get_singleton()->disconnect_compat("filesystem_changed", this, "reload"); } } @@ -186,10 +186,10 @@ EditorDirDialog::EditorDirDialog() { tree = memnew(Tree); add_child(tree); - tree->connect("item_activated", this, "_ok"); + tree->connect_compat("item_activated", this, "_ok"); makedir = add_button(TTR("Create Folder"), OS::get_singleton()->get_swap_ok_cancel(), "makedir"); - makedir->connect("pressed", this, "_make_dir"); + makedir->connect_compat("pressed", this, "_make_dir"); makedialog = memnew(ConfirmationDialog); makedialog->set_title(TTR("Create Folder")); @@ -202,7 +202,7 @@ EditorDirDialog::EditorDirDialog() { makedirname = memnew(LineEdit); makevb->add_margin_child(TTR("Name:"), makedirname); makedialog->register_text_enter(makedirname); - makedialog->connect("confirmed", this, "_make_dir_confirm"); + makedialog->connect_compat("confirmed", this, "_make_dir_confirm"); mkdirerr = memnew(AcceptDialog); mkdirerr->set_text(TTR("Could not create folder.")); diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index f638df28a8..827b9111f3 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -582,14 +582,14 @@ String EditorExportPlugin::get_ios_cpp_code() const { return ios_cpp_code; } -void EditorExportPlugin::_export_file_script(const String &p_path, const String &p_type, const PoolVector<String> &p_features) { +void EditorExportPlugin::_export_file_script(const String &p_path, const String &p_type, const Vector<String> &p_features) { if (get_script_instance()) { get_script_instance()->call("_export_file", p_path, p_type, p_features); } } -void EditorExportPlugin::_export_begin_script(const PoolVector<String> &p_features, bool p_debug, const String &p_path, int p_flags) { +void EditorExportPlugin::_export_begin_script(const Vector<String> &p_features, bool p_debug, const String &p_path, int p_flags) { if (get_script_instance()) { get_script_instance()->call("_export_begin", p_features, p_debug, p_path, p_flags); @@ -625,8 +625,8 @@ void EditorExportPlugin::_bind_methods() { ClassDB::bind_method(D_METHOD("add_ios_cpp_code", "code"), &EditorExportPlugin::add_ios_cpp_code); ClassDB::bind_method(D_METHOD("skip"), &EditorExportPlugin::skip); - BIND_VMETHOD(MethodInfo("_export_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::STRING, "type"), PropertyInfo(Variant::POOL_STRING_ARRAY, "features"))); - BIND_VMETHOD(MethodInfo("_export_begin", PropertyInfo(Variant::POOL_STRING_ARRAY, "features"), PropertyInfo(Variant::BOOL, "is_debug"), PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::INT, "flags"))); + BIND_VMETHOD(MethodInfo("_export_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::STRING, "type"), PropertyInfo(Variant::PACKED_STRING_ARRAY, "features"))); + BIND_VMETHOD(MethodInfo("_export_begin", PropertyInfo(Variant::PACKED_STRING_ARRAY, "features"), PropertyInfo(Variant::BOOL, "is_debug"), PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::INT, "flags"))); BIND_VMETHOD(MethodInfo("_export_end")); } @@ -731,7 +731,7 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> & FeatureContainers feature_containers = get_feature_containers(p_preset); Set<String> &features = feature_containers.features; - PoolVector<String> &features_pv = feature_containers.features_pv; + Vector<String> &features_pv = feature_containers.features_pv; //store everything in the export medium int idx = 0; @@ -1416,7 +1416,7 @@ EditorExport::EditorExport() { add_child(save_timer); save_timer->set_wait_time(0.8); save_timer->set_one_shot(true); - save_timer->connect("timeout", this, "_save"); + save_timer->connect_compat("timeout", this, "_save"); block_save = false; singleton = this; diff --git a/editor/editor_export.h b/editor/editor_export.h index 19651b2c62..139d672cb8 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -188,7 +188,7 @@ private: struct FeatureContainers { Set<String> features; - PoolVector<String> features_pv; + Vector<String> features_pv; }; void _export_find_resources(EditorFileSystemDirectory *p_dir, Set<String> &p_paths); @@ -310,8 +310,8 @@ class EditorExportPlugin : public Reference { ios_cpp_code = ""; } - void _export_file_script(const String &p_path, const String &p_type, const PoolVector<String> &p_features); - void _export_begin_script(const PoolVector<String> &p_features, bool p_debug, const String &p_path, int p_flags); + void _export_file_script(const String &p_path, const String &p_type, const Vector<String> &p_features); + void _export_begin_script(const Vector<String> &p_features, bool p_debug, const String &p_path, int p_flags); void _export_end_script(); protected: diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp index 559a0ef0ea..32fadfc60e 100644 --- a/editor/editor_feature_profile.cpp +++ b/editor/editor_feature_profile.cpp @@ -534,7 +534,7 @@ void EditorFeatureProfileManager::_class_list_item_selected() { } Variant md = item->get_metadata(0); - if (md.get_type() != Variant::STRING) { + if (md.get_type() != Variant::STRING && md.get_type() != Variant::STRING_NAME) { return; } @@ -598,7 +598,7 @@ void EditorFeatureProfileManager::_class_list_item_edited() { bool checked = item->is_checked(0); Variant md = item->get_metadata(0); - if (md.get_type() == Variant::STRING) { + if (md.get_type() == Variant::STRING || md.get_type() == Variant::STRING_NAME) { String class_selected = md; edited->set_disable_class(class_selected, !checked); _save_and_update(); @@ -620,7 +620,7 @@ void EditorFeatureProfileManager::_property_item_edited() { } Variant md = class_item->get_metadata(0); - if (md.get_type() != Variant::STRING) { + if (md.get_type() != Variant::STRING && md.get_type() != Variant::STRING_NAME) { return; } @@ -633,7 +633,7 @@ void EditorFeatureProfileManager::_property_item_edited() { bool checked = item->is_checked(0); md = item->get_metadata(0); - if (md.get_type() == Variant::STRING) { + if (md.get_type() == Variant::STRING || md.get_type() == Variant::STRING_NAME) { String property_selected = md; edited->set_disable_class_property(class_name, property_selected, !checked); _save_and_update(); @@ -657,7 +657,7 @@ void EditorFeatureProfileManager::_update_selected_profile() { if (class_list->get_selected()) { Variant md = class_list->get_selected()->get_metadata(0); - if (md.get_type() == Variant::STRING) { + if (md.get_type() == Variant::STRING || md.get_type() == Variant::STRING_NAME) { class_selected = md; } else if (md.get_type() == Variant::INT) { feature_selected = md; @@ -819,7 +819,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { profile_actions[PROFILE_CLEAR] = memnew(Button(TTR("Unset"))); name_hbc->add_child(profile_actions[PROFILE_CLEAR]); profile_actions[PROFILE_CLEAR]->set_disabled(true); - profile_actions[PROFILE_CLEAR]->connect("pressed", this, "_profile_action", varray(PROFILE_CLEAR)); + profile_actions[PROFILE_CLEAR]->connect_compat("pressed", this, "_profile_action", varray(PROFILE_CLEAR)); main_vbc->add_margin_child(TTR("Current Profile:"), name_hbc); @@ -827,34 +827,34 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { profile_list = memnew(OptionButton); profile_list->set_h_size_flags(SIZE_EXPAND_FILL); profiles_hbc->add_child(profile_list); - profile_list->connect("item_selected", this, "_profile_selected"); + profile_list->connect_compat("item_selected", this, "_profile_selected"); profile_actions[PROFILE_SET] = memnew(Button(TTR("Make Current"))); profiles_hbc->add_child(profile_actions[PROFILE_SET]); profile_actions[PROFILE_SET]->set_disabled(true); - profile_actions[PROFILE_SET]->connect("pressed", this, "_profile_action", varray(PROFILE_SET)); + profile_actions[PROFILE_SET]->connect_compat("pressed", this, "_profile_action", varray(PROFILE_SET)); profile_actions[PROFILE_ERASE] = memnew(Button(TTR("Remove"))); profiles_hbc->add_child(profile_actions[PROFILE_ERASE]); profile_actions[PROFILE_ERASE]->set_disabled(true); - profile_actions[PROFILE_ERASE]->connect("pressed", this, "_profile_action", varray(PROFILE_ERASE)); + profile_actions[PROFILE_ERASE]->connect_compat("pressed", this, "_profile_action", varray(PROFILE_ERASE)); profiles_hbc->add_child(memnew(VSeparator)); profile_actions[PROFILE_NEW] = memnew(Button(TTR("New"))); profiles_hbc->add_child(profile_actions[PROFILE_NEW]); - profile_actions[PROFILE_NEW]->connect("pressed", this, "_profile_action", varray(PROFILE_NEW)); + profile_actions[PROFILE_NEW]->connect_compat("pressed", this, "_profile_action", varray(PROFILE_NEW)); profiles_hbc->add_child(memnew(VSeparator)); profile_actions[PROFILE_IMPORT] = memnew(Button(TTR("Import"))); profiles_hbc->add_child(profile_actions[PROFILE_IMPORT]); - profile_actions[PROFILE_IMPORT]->connect("pressed", this, "_profile_action", varray(PROFILE_IMPORT)); + profile_actions[PROFILE_IMPORT]->connect_compat("pressed", this, "_profile_action", varray(PROFILE_IMPORT)); profile_actions[PROFILE_EXPORT] = memnew(Button(TTR("Export"))); profiles_hbc->add_child(profile_actions[PROFILE_EXPORT]); profile_actions[PROFILE_EXPORT]->set_disabled(true); - profile_actions[PROFILE_EXPORT]->connect("pressed", this, "_profile_action", varray(PROFILE_EXPORT)); + profile_actions[PROFILE_EXPORT]->connect_compat("pressed", this, "_profile_action", varray(PROFILE_EXPORT)); main_vbc->add_margin_child(TTR("Available Profiles:"), profiles_hbc); @@ -870,8 +870,8 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { class_list_vbc->add_margin_child(TTR("Enabled Classes:"), class_list, true); class_list->set_hide_root(true); class_list->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); - class_list->connect("cell_selected", this, "_class_list_item_selected"); - class_list->connect("item_edited", this, "_class_list_item_edited", varray(), CONNECT_DEFERRED); + class_list->connect_compat("cell_selected", this, "_class_list_item_selected"); + class_list->connect_compat("item_edited", this, "_class_list_item_edited", varray(), CONNECT_DEFERRED); VBoxContainer *property_list_vbc = memnew(VBoxContainer); h_split->add_child(property_list_vbc); @@ -882,7 +882,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { property_list->set_hide_root(true); property_list->set_hide_folding(true); property_list->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); - property_list->connect("item_edited", this, "_property_item_edited", varray(), CONNECT_DEFERRED); + property_list->connect_compat("item_edited", this, "_property_item_edited", varray(), CONNECT_DEFERRED); new_profile_dialog = memnew(ConfirmationDialog); new_profile_dialog->set_title(TTR("New profile name:")); @@ -890,20 +890,20 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { new_profile_dialog->add_child(new_profile_name); new_profile_name->set_custom_minimum_size(Size2(300 * EDSCALE, 1)); add_child(new_profile_dialog); - new_profile_dialog->connect("confirmed", this, "_create_new_profile"); + new_profile_dialog->connect_compat("confirmed", this, "_create_new_profile"); new_profile_dialog->register_text_enter(new_profile_name); new_profile_dialog->get_ok()->set_text(TTR("Create")); erase_profile_dialog = memnew(ConfirmationDialog); add_child(erase_profile_dialog); erase_profile_dialog->set_title(TTR("Erase Profile")); - erase_profile_dialog->connect("confirmed", this, "_erase_selected_profile"); + erase_profile_dialog->connect_compat("confirmed", this, "_erase_selected_profile"); import_profiles = memnew(EditorFileDialog); add_child(import_profiles); import_profiles->set_mode(EditorFileDialog::MODE_OPEN_FILES); import_profiles->add_filter("*.profile; " + TTR("Godot Feature Profile")); - import_profiles->connect("files_selected", this, "_import_profiles"); + import_profiles->connect_compat("files_selected", this, "_import_profiles"); import_profiles->set_title(TTR("Import Profile(s)")); import_profiles->set_access(EditorFileDialog::ACCESS_FILESYSTEM); @@ -911,7 +911,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { add_child(export_profile); export_profile->set_mode(EditorFileDialog::MODE_SAVE_FILE); export_profile->add_filter("*.profile; " + TTR("Godot Feature Profile")); - export_profile->connect("file_selected", this, "_export_profile"); + export_profile->connect_compat("file_selected", this, "_export_profile"); export_profile->set_title(TTR("Export Profile")); export_profile->set_access(EditorFileDialog::ACCESS_FILESYSTEM); @@ -921,7 +921,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { update_timer = memnew(Timer); update_timer->set_wait_time(1); //wait a second before updating editor add_child(update_timer); - update_timer->connect("timeout", this, "_emit_current_profile_changed"); + update_timer->connect_compat("timeout", this, "_emit_current_profile_changed"); update_timer->set_one_shot(true); updating_features = false; diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index c869768c6c..dd6523e12c 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -347,7 +347,7 @@ void EditorFileDialog::_action_pressed() { String fbase = dir_access->get_current_dir(); - PoolVector<String> files; + Vector<String> files; for (int i = 0; i < item_list->get_item_count(); i++) { if (item_list->is_selected(i)) files.push_back(fbase.plus_file(item_list->get_item_text(i))); @@ -1419,7 +1419,7 @@ void EditorFileDialog::_bind_methods() { ClassDB::bind_method(D_METHOD("invalidate"), &EditorFileDialog::invalidate); ADD_SIGNAL(MethodInfo("file_selected", PropertyInfo(Variant::STRING, "path"))); - ADD_SIGNAL(MethodInfo("files_selected", PropertyInfo(Variant::POOL_STRING_ARRAY, "paths"))); + ADD_SIGNAL(MethodInfo("files_selected", PropertyInfo(Variant::PACKED_STRING_ARRAY, "paths"))); ADD_SIGNAL(MethodInfo("dir_selected", PropertyInfo(Variant::STRING, "dir"))); ADD_PROPERTY(PropertyInfo(Variant::INT, "access", PROPERTY_HINT_ENUM, "Resources,User data,File system"), "set_access", "get_access"); @@ -1537,9 +1537,9 @@ EditorFileDialog::EditorFileDialog() { pathhb->add_child(dir_next); pathhb->add_child(dir_up); - dir_prev->connect("pressed", this, "_go_back"); - dir_next->connect("pressed", this, "_go_forward"); - dir_up->connect("pressed", this, "_go_up"); + dir_prev->connect_compat("pressed", this, "_go_back"); + dir_next->connect_compat("pressed", this, "_go_forward"); + dir_up->connect_compat("pressed", this, "_go_up"); pathhb->add_child(memnew(Label(TTR("Path:")))); @@ -1549,20 +1549,20 @@ EditorFileDialog::EditorFileDialog() { refresh = memnew(ToolButton); refresh->set_tooltip(TTR("Refresh files.")); - refresh->connect("pressed", this, "_update_file_list"); + refresh->connect_compat("pressed", this, "_update_file_list"); pathhb->add_child(refresh); favorite = memnew(ToolButton); favorite->set_toggle_mode(true); favorite->set_tooltip(TTR("(Un)favorite current folder.")); - favorite->connect("pressed", this, "_favorite_pressed"); + favorite->connect_compat("pressed", this, "_favorite_pressed"); pathhb->add_child(favorite); show_hidden = memnew(ToolButton); show_hidden->set_toggle_mode(true); show_hidden->set_pressed(is_showing_hidden_files()); show_hidden->set_tooltip(TTR("Toggle the visibility of hidden files.")); - show_hidden->connect("toggled", this, "set_show_hidden_files"); + show_hidden->connect_compat("toggled", this, "set_show_hidden_files"); pathhb->add_child(show_hidden); pathhb->add_child(memnew(VSeparator)); @@ -1571,7 +1571,7 @@ EditorFileDialog::EditorFileDialog() { view_mode_group.instance(); mode_thumbnails = memnew(ToolButton); - mode_thumbnails->connect("pressed", this, "set_display_mode", varray(DISPLAY_THUMBNAILS)); + mode_thumbnails->connect_compat("pressed", this, "set_display_mode", varray(DISPLAY_THUMBNAILS)); mode_thumbnails->set_toggle_mode(true); mode_thumbnails->set_pressed(display_mode == DISPLAY_THUMBNAILS); mode_thumbnails->set_button_group(view_mode_group); @@ -1579,7 +1579,7 @@ EditorFileDialog::EditorFileDialog() { pathhb->add_child(mode_thumbnails); mode_list = memnew(ToolButton); - mode_list->connect("pressed", this, "set_display_mode", varray(DISPLAY_LIST)); + mode_list->connect_compat("pressed", this, "set_display_mode", varray(DISPLAY_LIST)); mode_list->set_toggle_mode(true); mode_list->set_pressed(display_mode == DISPLAY_LIST); mode_list->set_button_group(view_mode_group); @@ -1588,11 +1588,11 @@ EditorFileDialog::EditorFileDialog() { drives = memnew(OptionButton); pathhb->add_child(drives); - drives->connect("item_selected", this, "_select_drive"); + drives->connect_compat("item_selected", this, "_select_drive"); makedir = memnew(Button); makedir->set_text(TTR("Create Folder")); - makedir->connect("pressed", this, "_make_dir"); + makedir->connect_compat("pressed", this, "_make_dir"); pathhb->add_child(makedir); list_hb = memnew(HSplitContainer); @@ -1614,15 +1614,15 @@ EditorFileDialog::EditorFileDialog() { fav_hb->add_spacer(); fav_up = memnew(ToolButton); fav_hb->add_child(fav_up); - fav_up->connect("pressed", this, "_favorite_move_up"); + fav_up->connect_compat("pressed", this, "_favorite_move_up"); fav_down = memnew(ToolButton); fav_hb->add_child(fav_down); - fav_down->connect("pressed", this, "_favorite_move_down"); + fav_down->connect_compat("pressed", this, "_favorite_move_down"); favorites = memnew(ItemList); fav_vb->add_child(favorites); favorites->set_v_size_flags(SIZE_EXPAND_FILL); - favorites->connect("item_selected", this, "_favorite_selected"); + favorites->connect_compat("item_selected", this, "_favorite_selected"); VBoxContainer *rec_vb = memnew(VBoxContainer); vsc->add_child(rec_vb); @@ -1631,7 +1631,7 @@ EditorFileDialog::EditorFileDialog() { recent = memnew(ItemList); recent->set_allow_reselect(true); rec_vb->add_margin_child(TTR("Recent:"), recent, true); - recent->connect("item_selected", this, "_recent_selected"); + recent->connect_compat("item_selected", this, "_recent_selected"); VBoxContainer *item_vb = memnew(VBoxContainer); list_hb->add_child(item_vb); @@ -1650,13 +1650,13 @@ EditorFileDialog::EditorFileDialog() { item_list = memnew(ItemList); item_list->set_v_size_flags(SIZE_EXPAND_FILL); - item_list->connect("item_rmb_selected", this, "_item_list_item_rmb_selected"); - item_list->connect("rmb_clicked", this, "_item_list_rmb_clicked"); + item_list->connect_compat("item_rmb_selected", this, "_item_list_item_rmb_selected"); + item_list->connect_compat("rmb_clicked", this, "_item_list_rmb_clicked"); item_list->set_allow_rmb_select(true); list_vb->add_child(item_list); item_menu = memnew(PopupMenu); - item_menu->connect("id_pressed", this, "_item_menu_id_pressed"); + item_menu->connect_compat("id_pressed", this, "_item_menu_id_pressed"); add_child(item_menu); // Other stuff. @@ -1687,19 +1687,19 @@ EditorFileDialog::EditorFileDialog() { access = ACCESS_RESOURCES; _update_drives(); - connect("confirmed", this, "_action_pressed"); - item_list->connect("item_selected", this, "_item_selected", varray(), CONNECT_DEFERRED); - item_list->connect("multi_selected", this, "_multi_selected", varray(), CONNECT_DEFERRED); - item_list->connect("item_activated", this, "_item_db_selected", varray()); - item_list->connect("nothing_selected", this, "_items_clear_selection"); - dir->connect("text_entered", this, "_dir_entered"); - file->connect("text_entered", this, "_file_entered"); - filter->connect("item_selected", this, "_filter_selected"); + connect_compat("confirmed", this, "_action_pressed"); + item_list->connect_compat("item_selected", this, "_item_selected", varray(), CONNECT_DEFERRED); + item_list->connect_compat("multi_selected", this, "_multi_selected", varray(), CONNECT_DEFERRED); + item_list->connect_compat("item_activated", this, "_item_db_selected", varray()); + item_list->connect_compat("nothing_selected", this, "_items_clear_selection"); + dir->connect_compat("text_entered", this, "_dir_entered"); + file->connect_compat("text_entered", this, "_file_entered"); + filter->connect_compat("item_selected", this, "_filter_selected"); confirm_save = memnew(ConfirmationDialog); confirm_save->set_as_toplevel(true); add_child(confirm_save); - confirm_save->connect("confirmed", this, "_save_confirm_pressed"); + confirm_save->connect_compat("confirmed", this, "_save_confirm_pressed"); remove_dialog = memnew(DependencyRemoveDialog); add_child(remove_dialog); @@ -1713,7 +1713,7 @@ EditorFileDialog::EditorFileDialog() { makevb->add_margin_child(TTR("Name:"), makedirname); add_child(makedialog); makedialog->register_text_enter(makedirname); - makedialog->connect("confirmed", this, "_make_dir_confirm"); + makedialog->connect_compat("confirmed", this, "_make_dir_confirm"); mkdirerr = memnew(AcceptDialog); mkdirerr->set_text(TTR("Could not create folder.")); add_child(mkdirerr); @@ -1777,10 +1777,10 @@ EditorLineEditFileChooser::EditorLineEditFileChooser() { line_edit->set_h_size_flags(SIZE_EXPAND_FILL); button = memnew(Button); add_child(button); - button->connect("pressed", this, "_browse"); + button->connect_compat("pressed", this, "_browse"); dialog = memnew(EditorFileDialog); add_child(dialog); - dialog->connect("file_selected", this, "_chosen"); - dialog->connect("dir_selected", this, "_chosen"); - dialog->connect("files_selected", this, "_chosen"); + dialog->connect_compat("file_selected", this, "_chosen"); + dialog->connect_compat("dir_selected", this, "_chosen"); + dialog->connect_compat("files_selected", this, "_chosen"); } diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 107ecac3b0..b5ec08ef60 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -2100,8 +2100,8 @@ void EditorFileSystem::_bind_methods() { ADD_SIGNAL(MethodInfo("filesystem_changed")); ADD_SIGNAL(MethodInfo("sources_changed", PropertyInfo(Variant::BOOL, "exist"))); - ADD_SIGNAL(MethodInfo("resources_reimported", PropertyInfo(Variant::POOL_STRING_ARRAY, "resources"))); - ADD_SIGNAL(MethodInfo("resources_reload", PropertyInfo(Variant::POOL_STRING_ARRAY, "resources"))); + ADD_SIGNAL(MethodInfo("resources_reimported", PropertyInfo(Variant::PACKED_STRING_ARRAY, "resources"))); + ADD_SIGNAL(MethodInfo("resources_reload", PropertyInfo(Variant::PACKED_STRING_ARRAY, "resources"))); } void EditorFileSystem::_update_extensions() { diff --git a/editor/editor_folding.cpp b/editor/editor_folding.cpp index 475f16f12f..8308cd760b 100644 --- a/editor/editor_folding.cpp +++ b/editor/editor_folding.cpp @@ -34,12 +34,12 @@ #include "editor_inspector.h" #include "editor_settings.h" -PoolVector<String> EditorFolding::_get_unfolds(const Object *p_object) { +Vector<String> EditorFolding::_get_unfolds(const Object *p_object) { - PoolVector<String> sections; + Vector<String> sections; sections.resize(p_object->editor_get_section_folding().size()); if (sections.size()) { - PoolVector<String>::Write w = sections.write(); + String *w = sections.ptrw(); int idx = 0; for (const Set<String>::Element *E = p_object->editor_get_section_folding().front(); E; E = E->next()) { w[idx++] = E->get(); @@ -52,7 +52,7 @@ PoolVector<String> EditorFolding::_get_unfolds(const Object *p_object) { void EditorFolding::save_resource_folding(const RES &p_resource, const String &p_path) { Ref<ConfigFile> config; config.instance(); - PoolVector<String> unfolds = _get_unfolds(p_resource.ptr()); + Vector<String> unfolds = _get_unfolds(p_resource.ptr()); config->set_value("folding", "sections_unfolded", unfolds); String file = p_path.get_file() + "-folding-" + p_path.md5_text() + ".cfg"; @@ -60,10 +60,10 @@ void EditorFolding::save_resource_folding(const RES &p_resource, const String &p config->save(file); } -void EditorFolding::_set_unfolds(Object *p_object, const PoolVector<String> &p_unfolds) { +void EditorFolding::_set_unfolds(Object *p_object, const Vector<String> &p_unfolds) { int uc = p_unfolds.size(); - PoolVector<String>::Read r = p_unfolds.read(); + const String *r = p_unfolds.ptr(); p_object->editor_clear_section_folding(); for (int i = 0; i < uc; i++) { p_object->editor_set_section_unfold(r[i], true); @@ -82,7 +82,7 @@ void EditorFolding::load_resource_folding(RES p_resource, const String &p_path) return; } - PoolVector<String> unfolds; + Vector<String> unfolds; if (config->has_section_key("folding", "sections_unfolded")) { unfolds = config->get_value("folding", "sections_unfolded"); @@ -103,7 +103,7 @@ void EditorFolding::_fill_folds(const Node *p_root, const Node *p_node, Array &p if (p_node->is_displayed_folded()) { nodes_folded.push_back(p_root->get_path_to(p_node)); } - PoolVector<String> unfolds = _get_unfolds(p_node); + Vector<String> unfolds = _get_unfolds(p_node); if (unfolds.size()) { p_folds.push_back(p_root->get_path_to(p_node)); @@ -118,7 +118,7 @@ void EditorFolding::_fill_folds(const Node *p_root, const Node *p_node, Array &p RES res = p_node->get(E->get().name); if (res.is_valid() && !resources.has(res) && res->get_path() != String() && !res->get_path().is_resource_file()) { - PoolVector<String> res_unfolds = _get_unfolds(res.ptr()); + Vector<String> res_unfolds = _get_unfolds(res.ptr()); resource_folds.push_back(res->get_path()); resource_folds.push_back(res_unfolds); resources.insert(res); @@ -184,7 +184,7 @@ void EditorFolding::load_scene_folding(Node *p_scene, const String &p_path) { for (int i = 0; i < unfolds.size(); i += 2) { NodePath path2 = unfolds[i]; - PoolVector<String> un = unfolds[i + 1]; + Vector<String> un = unfolds[i + 1]; Node *node = p_scene->get_node_or_null(path2); if (!node) { continue; @@ -202,7 +202,7 @@ void EditorFolding::load_scene_folding(Node *p_scene, const String &p_path) { continue; } - PoolVector<String> unfolds2 = res_unfolds[i + 1]; + Vector<String> unfolds2 = res_unfolds[i + 1]; _set_unfolds(res.ptr(), unfolds2); } diff --git a/editor/editor_folding.h b/editor/editor_folding.h index cc49b062d0..5220907fe7 100644 --- a/editor/editor_folding.h +++ b/editor/editor_folding.h @@ -35,8 +35,8 @@ class EditorFolding { - PoolVector<String> _get_unfolds(const Object *p_object); - void _set_unfolds(Object *p_object, const PoolVector<String> &p_unfolds); + Vector<String> _get_unfolds(const Object *p_object); + void _set_unfolds(Object *p_object, const Vector<String> &p_unfolds); void _fill_folds(const Node *p_root, const Node *p_node, Array &p_folds, Array &resource_folds, Array &nodes_folded, Set<RES> &resources); diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index 0ade4c5c80..9c64540a9e 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -1551,9 +1551,9 @@ EditorHelp::EditorHelp() { class_desc->set_v_size_flags(SIZE_EXPAND_FILL); class_desc->add_color_override("selection_color", get_color("accent_color", "Editor") * Color(1, 1, 1, 0.4)); - class_desc->connect("meta_clicked", this, "_class_desc_select"); - class_desc->connect("gui_input", this, "_class_desc_input"); - class_desc->connect("resized", this, "_class_desc_resized"); + class_desc->connect_compat("meta_clicked", this, "_class_desc_select"); + class_desc->connect_compat("gui_input", this, "_class_desc_input"); + class_desc->connect_compat("resized", this, "_class_desc_resized"); _class_desc_resized(); // Added second so it opens at the bottom so it won't offset the entire widget. @@ -1633,7 +1633,7 @@ EditorHelpBit::EditorHelpBit() { rich_text = memnew(RichTextLabel); add_child(rich_text); - rich_text->connect("meta_clicked", this, "_meta_clicked"); + rich_text->connect_compat("meta_clicked", this, "_meta_clicked"); rich_text->add_color_override("selection_color", get_color("accent_color", "Editor") * Color(1, 1, 1, 0.4)); rich_text->set_override_selected_font_color(false); set_custom_minimum_size(Size2(0, 70 * EDSCALE)); @@ -1645,8 +1645,8 @@ FindBar::FindBar() { add_child(search_text); search_text->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); search_text->set_h_size_flags(SIZE_EXPAND_FILL); - search_text->connect("text_changed", this, "_search_text_changed"); - search_text->connect("text_entered", this, "_search_text_entered"); + search_text->connect_compat("text_changed", this, "_search_text_changed"); + search_text->connect_compat("text_entered", this, "_search_text_entered"); matches_label = memnew(Label); add_child(matches_label); @@ -1655,12 +1655,12 @@ FindBar::FindBar() { find_prev = memnew(ToolButton); add_child(find_prev); find_prev->set_focus_mode(FOCUS_NONE); - find_prev->connect("pressed", this, "_search_prev"); + find_prev->connect_compat("pressed", this, "_search_prev"); find_next = memnew(ToolButton); add_child(find_next); find_next->set_focus_mode(FOCUS_NONE); - find_next->connect("pressed", this, "_search_next"); + find_next->connect_compat("pressed", this, "_search_next"); Control *space = memnew(Control); add_child(space); @@ -1671,7 +1671,7 @@ FindBar::FindBar() { hide_button->set_focus_mode(FOCUS_NONE); hide_button->set_expand(true); hide_button->set_stretch_mode(TextureButton::STRETCH_KEEP_CENTERED); - hide_button->connect("pressed", this, "_hide_pressed"); + hide_button->connect_compat("pressed", this, "_hide_pressed"); } void FindBar::popup_search() { diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index d45b66afce..8bad46e4d0 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -111,7 +111,7 @@ void EditorHelpSearch::_notification(int p_what) { } break; case NOTIFICATION_ENTER_TREE: { - connect("confirmed", this, "_confirmed"); + connect_compat("confirmed", this, "_confirmed"); _update_icons(); } break; case NOTIFICATION_POPUP_HIDE: { @@ -206,21 +206,21 @@ EditorHelpSearch::EditorHelpSearch() { search_box = memnew(LineEdit); search_box->set_custom_minimum_size(Size2(200, 0) * EDSCALE); search_box->set_h_size_flags(SIZE_EXPAND_FILL); - search_box->connect("gui_input", this, "_search_box_gui_input"); - search_box->connect("text_changed", this, "_search_box_text_changed"); + search_box->connect_compat("gui_input", this, "_search_box_gui_input"); + search_box->connect_compat("text_changed", this, "_search_box_text_changed"); register_text_enter(search_box); hbox->add_child(search_box); case_sensitive_button = memnew(ToolButton); case_sensitive_button->set_tooltip(TTR("Case Sensitive")); - case_sensitive_button->connect("pressed", this, "_update_results"); + case_sensitive_button->connect_compat("pressed", this, "_update_results"); case_sensitive_button->set_toggle_mode(true); case_sensitive_button->set_focus_mode(FOCUS_NONE); hbox->add_child(case_sensitive_button); hierarchy_button = memnew(ToolButton); hierarchy_button->set_tooltip(TTR("Show Hierarchy")); - hierarchy_button->connect("pressed", this, "_update_results"); + hierarchy_button->connect_compat("pressed", this, "_update_results"); hierarchy_button->set_toggle_mode(true); hierarchy_button->set_pressed(true); hierarchy_button->set_focus_mode(FOCUS_NONE); @@ -237,7 +237,7 @@ EditorHelpSearch::EditorHelpSearch() { filter_combo->add_item(TTR("Constants Only"), SEARCH_CONSTANTS); filter_combo->add_item(TTR("Properties Only"), SEARCH_PROPERTIES); filter_combo->add_item(TTR("Theme Properties Only"), SEARCH_THEME_ITEMS); - filter_combo->connect("item_selected", this, "_filter_combo_item_selected"); + filter_combo->connect_compat("item_selected", this, "_filter_combo_item_selected"); hbox->add_child(filter_combo); // Create the results tree. @@ -251,8 +251,8 @@ EditorHelpSearch::EditorHelpSearch() { results_tree->set_custom_minimum_size(Size2(0, 100) * EDSCALE); results_tree->set_hide_root(true); results_tree->set_select_mode(Tree::SELECT_ROW); - results_tree->connect("item_activated", this, "_confirmed"); - results_tree->connect("item_selected", get_ok(), "set_disabled", varray(false)); + results_tree->connect_compat("item_activated", this, "_confirmed"); + results_tree->connect_compat("item_selected", get_ok(), "set_disabled", varray(false)); vbox->add_child(results_tree, true); } diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 6d2b891dc6..adf6a42f53 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -430,7 +430,7 @@ bool EditorPropertyRevert::is_node_property_different(Node *p_node, const Varian return false; //pointless to check if we are not comparing against anything. } - if (p_current.get_type() == Variant::REAL && p_orig.get_type() == Variant::REAL) { + if (p_current.get_type() == Variant::FLOAT && p_orig.get_type() == Variant::FLOAT) { float a = p_current; float b = p_orig; @@ -570,7 +570,7 @@ void EditorProperty::_focusable_focused(int p_index) { void EditorProperty::add_focusable(Control *p_control) { - p_control->connect("focus_entered", this, "_focusable_focused", varray(focusables.size())); + p_control->connect_compat("focus_entered", this, "_focusable_focused", varray(focusables.size())); focusables.push_back(p_control); } @@ -778,10 +778,20 @@ Control *EditorProperty::make_custom_tooltip(const String &p_text) const { help_bit->add_style_override("panel", get_stylebox("panel", "TooltipPanel")); help_bit->get_rich_text()->set_fixed_size_to_width(360 * EDSCALE); - String text = TTR("Property:") + " [u][b]" + p_text.get_slice("::", 0) + "[/b][/u]\n"; - text += p_text.get_slice("::", 1).strip_edges(); - help_bit->set_text(text); - help_bit->call_deferred("set_text", text); //hack so it uses proper theme once inside scene + PackedStringArray slices = p_text.split("::", false); + if (!slices.empty()) { + String property_name = slices[0].strip_edges(); + String text = TTR("Property:") + " [u][b]" + property_name + "[/b][/u]"; + + if (slices.size() > 1) { + String property_doc = slices[1].strip_edges(); + if (property_name != property_doc) { + text += "\n" + property_doc; + } + } + help_bit->call_deferred("set_text", text); //hack so it uses proper theme once inside scene + } + return help_bit; } @@ -828,13 +838,13 @@ void EditorProperty::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "checked"), "set_checked", "is_checked"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "draw_red"), "set_draw_red", "is_draw_red"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "keying"), "set_keying", "is_keying"); - ADD_SIGNAL(MethodInfo("property_changed", PropertyInfo(Variant::STRING, "property"), PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT))); - ADD_SIGNAL(MethodInfo("multiple_properties_changed", PropertyInfo(Variant::POOL_STRING_ARRAY, "properties"), PropertyInfo(Variant::ARRAY, "value"))); - ADD_SIGNAL(MethodInfo("property_keyed", PropertyInfo(Variant::STRING, "property"))); - ADD_SIGNAL(MethodInfo("property_keyed_with_value", PropertyInfo(Variant::STRING, "property"), PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT))); - ADD_SIGNAL(MethodInfo("property_checked", PropertyInfo(Variant::STRING, "property"), PropertyInfo(Variant::STRING, "bool"))); + ADD_SIGNAL(MethodInfo("property_changed", PropertyInfo(Variant::STRING_NAME, "property"), PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT))); + ADD_SIGNAL(MethodInfo("multiple_properties_changed", PropertyInfo(Variant::PACKED_STRING_ARRAY, "properties"), PropertyInfo(Variant::ARRAY, "value"))); + ADD_SIGNAL(MethodInfo("property_keyed", PropertyInfo(Variant::STRING_NAME, "property"))); + ADD_SIGNAL(MethodInfo("property_keyed_with_value", PropertyInfo(Variant::STRING_NAME, "property"), PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT))); + ADD_SIGNAL(MethodInfo("property_checked", PropertyInfo(Variant::STRING_NAME, "property"), PropertyInfo(Variant::STRING, "bool"))); ADD_SIGNAL(MethodInfo("resource_selected", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::OBJECT, "resource", PROPERTY_HINT_RESOURCE_TYPE, "Resource"))); - ADD_SIGNAL(MethodInfo("object_id_selected", PropertyInfo(Variant::STRING, "property"), PropertyInfo(Variant::INT, "id"))); + ADD_SIGNAL(MethodInfo("object_id_selected", PropertyInfo(Variant::STRING_NAME, "property"), PropertyInfo(Variant::INT, "id"))); ADD_SIGNAL(MethodInfo("selected", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::INT, "focusable_idx"))); MethodInfo vm; @@ -925,7 +935,7 @@ bool EditorInspectorPlugin::parse_property(Object *p_object, Variant::Type p_typ &arg[0], &arg[1], &arg[2], &arg[3], &arg[4], &arg[5] }; - Variant::CallError err; + Callable::CallError err; return get_script_instance()->call("parse_property", (const Variant **)&argptr, 6, err); } return false; @@ -1005,10 +1015,20 @@ Control *EditorInspectorCategory::make_custom_tooltip(const String &p_text) cons help_bit->add_style_override("panel", get_stylebox("panel", "TooltipPanel")); help_bit->get_rich_text()->set_fixed_size_to_width(360 * EDSCALE); - String text = "[u][b]" + p_text.get_slice("::", 0) + "[/b][/u]\n"; - text += p_text.get_slice("::", 1).strip_edges(); - help_bit->set_text(text); - help_bit->call_deferred("set_text", text); //hack so it uses proper theme once inside scene + PackedStringArray slices = p_text.split("::", false); + if (!slices.empty()) { + String property_name = slices[0].strip_edges(); + String text = "[u][b]" + property_name + "[/b][/u]"; + + if (slices.size() > 1) { + String property_doc = slices[1].strip_edges(); + if (property_name != property_doc) { + text += "\n" + property_doc; + } + } + help_bit->call_deferred("set_text", text); //hack so it uses proper theme once inside scene + } + return help_bit; } @@ -1339,14 +1359,14 @@ void EditorInspector::_parse_added_editors(VBoxContainer *current_vbox, Ref<Edit if (ep) { ep->object = object; - ep->connect("property_changed", this, "_property_changed"); - ep->connect("property_keyed", this, "_property_keyed"); - ep->connect("property_keyed_with_value", this, "_property_keyed_with_value"); - ep->connect("property_checked", this, "_property_checked"); - ep->connect("selected", this, "_property_selected"); - ep->connect("multiple_properties_changed", this, "_multiple_properties_changed"); - ep->connect("resource_selected", this, "_resource_selected", varray(), CONNECT_DEFERRED); - ep->connect("object_id_selected", this, "_object_id_selected", varray(), CONNECT_DEFERRED); + ep->connect_compat("property_changed", this, "_property_changed"); + ep->connect_compat("property_keyed", this, "_property_keyed"); + ep->connect_compat("property_keyed_with_value", this, "_property_keyed_with_value"); + ep->connect_compat("property_checked", this, "_property_checked"); + ep->connect_compat("selected", this, "_property_selected"); + ep->connect_compat("multiple_properties_changed", this, "_multiple_properties_changed"); + ep->connect_compat("resource_selected", this, "_resource_selected", varray(), CONNECT_DEFERRED); + ep->connect_compat("object_id_selected", this, "_object_id_selected", varray(), CONNECT_DEFERRED); if (F->get().properties.size()) { @@ -1751,17 +1771,17 @@ void EditorInspector::update_tree() { if (ep) { - ep->connect("property_changed", this, "_property_changed"); + ep->connect_compat("property_changed", this, "_property_changed"); if (p.usage & PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED) { - ep->connect("property_changed", this, "_property_changed_update_all", varray(), CONNECT_DEFERRED); + ep->connect_compat("property_changed", this, "_property_changed_update_all", varray(), CONNECT_DEFERRED); } - ep->connect("property_keyed", this, "_property_keyed"); - ep->connect("property_keyed_with_value", this, "_property_keyed_with_value"); - ep->connect("property_checked", this, "_property_checked"); - ep->connect("selected", this, "_property_selected"); - ep->connect("multiple_properties_changed", this, "_multiple_properties_changed"); - ep->connect("resource_selected", this, "_resource_selected", varray(), CONNECT_DEFERRED); - ep->connect("object_id_selected", this, "_object_id_selected", varray(), CONNECT_DEFERRED); + ep->connect_compat("property_keyed", this, "_property_keyed"); + ep->connect_compat("property_keyed_with_value", this, "_property_keyed_with_value"); + ep->connect_compat("property_checked", this, "_property_checked"); + ep->connect_compat("selected", this, "_property_selected"); + ep->connect_compat("multiple_properties_changed", this, "_multiple_properties_changed"); + ep->connect_compat("resource_selected", this, "_resource_selected", varray(), CONNECT_DEFERRED); + ep->connect_compat("object_id_selected", this, "_object_id_selected", varray(), CONNECT_DEFERRED); if (doc_hint != String()) { ep->set_tooltip(property_prefix + p.name + "::" + doc_hint); } else { @@ -1889,7 +1909,7 @@ void EditorInspector::set_use_filter(bool p_use) { void EditorInspector::register_text_enter(Node *p_line_edit) { search_box = Object::cast_to<LineEdit>(p_line_edit); if (search_box) - search_box->connect("text_changed", this, "_filter_changed"); + search_box->connect_compat("text_changed", this, "_filter_changed"); } void EditorInspector::_filter_changed(const String &p_text) { @@ -2109,7 +2129,7 @@ void EditorInspector::_property_checked(const String &p_path, bool p_checked) { object->get_property_list(&pinfo); for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) { if (E->get().name == p_path) { - Variant::CallError ce; + Callable::CallError ce; to_create = Variant::construct(E->get().type, NULL, 0, ce); break; } @@ -2165,7 +2185,7 @@ void EditorInspector::_node_removed(Node *p_node) { void EditorInspector::_notification(int p_what) { if (p_what == NOTIFICATION_READY) { - EditorFeatureProfileManager::get_singleton()->connect("current_feature_profile_changed", this, "_feature_profile_changed"); + EditorFeatureProfileManager::get_singleton()->connect_compat("current_feature_profile_changed", this, "_feature_profile_changed"); } if (p_what == NOTIFICATION_ENTER_TREE) { @@ -2174,7 +2194,7 @@ void EditorInspector::_notification(int p_what) { add_style_override("bg", get_stylebox("sub_inspector_bg", "Editor")); } else { add_style_override("bg", get_stylebox("bg", "Tree")); - get_tree()->connect("node_removed", this, "_node_removed"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); } } if (p_what == NOTIFICATION_PREDELETE) { @@ -2183,7 +2203,7 @@ void EditorInspector::_notification(int p_what) { if (p_what == NOTIFICATION_EXIT_TREE) { if (!sub_inspector) { - get_tree()->disconnect("node_removed", this, "_node_removed"); + get_tree()->disconnect_compat("node_removed", this, "_node_removed"); } edit(NULL); } @@ -2337,6 +2357,6 @@ EditorInspector::EditorInspector() { property_focusable = -1; sub_inspector = false; - get_v_scrollbar()->connect("value_changed", this, "_vscroll_changed"); + get_v_scrollbar()->connect_compat("value_changed", this, "_vscroll_changed"); update_scroll_request = -1; } diff --git a/editor/editor_layouts_dialog.cpp b/editor/editor_layouts_dialog.cpp index 727e758341..05a5df45a9 100644 --- a/editor/editor_layouts_dialog.cpp +++ b/editor/editor_layouts_dialog.cpp @@ -128,8 +128,8 @@ EditorLayoutsDialog::EditorLayoutsDialog() { name->set_margin(MARGIN_TOP, 5); name->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_BEGIN, 5); name->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -5); - name->connect("gui_input", this, "_line_gui_input"); - name->connect("focus_entered", layout_names, "unselect_all"); + name->connect_compat("gui_input", this, "_line_gui_input"); + name->connect_compat("focus_entered", layout_names, "unselect_all"); } void EditorLayoutsDialog::set_name_line_enabled(bool p_enabled) { diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp index 5b77db7707..ca755a6cb7 100644 --- a/editor/editor_log.cpp +++ b/editor/editor_log.cpp @@ -159,13 +159,13 @@ EditorLog::EditorLog() { hb->add_child(copybutton); copybutton->set_text(TTR("Copy")); copybutton->set_shortcut(ED_SHORTCUT("editor/copy_output", TTR("Copy Selection"), KEY_MASK_CMD | KEY_C)); - copybutton->connect("pressed", this, "_copy_request"); + copybutton->connect_compat("pressed", this, "_copy_request"); clearbutton = memnew(Button); hb->add_child(clearbutton); clearbutton->set_text(TTR("Clear")); clearbutton->set_shortcut(ED_SHORTCUT("editor/clear_output", TTR("Clear Output"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_K)); - clearbutton->connect("pressed", this, "_clear_request"); + clearbutton->connect_compat("pressed", this, "_clear_request"); log = memnew(RichTextLabel); log->set_scroll_follow(true); diff --git a/editor/editor_network_profiler.cpp b/editor/editor_network_profiler.cpp index 1b80743237..1dffafa359 100644 --- a/editor/editor_network_profiler.cpp +++ b/editor/editor_network_profiler.cpp @@ -142,12 +142,12 @@ EditorNetworkProfiler::EditorNetworkProfiler() { activate = memnew(Button); activate->set_toggle_mode(true); activate->set_text(TTR("Start")); - activate->connect("pressed", this, "_activate_pressed"); + activate->connect_compat("pressed", this, "_activate_pressed"); hb->add_child(activate); clear_button = memnew(Button); clear_button->set_text(TTR("Clear")); - clear_button->connect("pressed", this, "_clear_pressed"); + clear_button->connect_compat("pressed", this, "_clear_pressed"); hb->add_child(clear_button); hb->add_spacer(); @@ -207,5 +207,5 @@ EditorNetworkProfiler::EditorNetworkProfiler() { frame_delay->set_wait_time(0.1); frame_delay->set_one_shot(true); add_child(frame_delay); - frame_delay->connect("timeout", this, "_update_frame"); + frame_delay->connect_compat("timeout", this, "_update_frame"); } diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 24656410e8..9cc6134f27 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -123,6 +123,7 @@ #include "editor/plugins/cpu_particles_2d_editor_plugin.h" #include "editor/plugins/cpu_particles_editor_plugin.h" #include "editor/plugins/curve_editor_plugin.h" +#include "editor/plugins/debugger_editor_plugin.h" #include "editor/plugins/editor_preview_plugins.h" #include "editor/plugins/gi_probe_editor_plugin.h" #include "editor/plugins/gradient_editor_plugin.h" @@ -168,7 +169,6 @@ #include "editor/quick_open.h" #include "editor/register_exporters.h" #include "editor/run_settings_dialog.h" -#include "editor/script_editor_debugger.h" #include "editor/settings_config_dialog.h" #include <stdio.h> @@ -374,8 +374,8 @@ void EditorNode::_notification(int p_what) { get_tree()->get_root()->set_as_audio_listener(false); get_tree()->get_root()->set_as_audio_listener_2d(false); get_tree()->set_auto_accept_quit(false); - get_tree()->connect("files_dropped", this, "_dropped_files"); - get_tree()->connect("global_menu_action", this, "_global_menu_action"); + get_tree()->connect_compat("files_dropped", this, "_dropped_files"); + get_tree()->connect_compat("global_menu_action", this, "_global_menu_action"); /* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */ } break; @@ -472,7 +472,7 @@ void EditorNode::_notification(int p_what) { recent_scenes->set_as_minsize(); // debugger area - if (ScriptEditor::get_singleton()->get_debugger()->is_visible()) + if (EditorDebuggerNode::get_singleton()->is_visible()) bottom_panel->add_style_override("panel", gui_base->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")); // update_icons @@ -547,7 +547,7 @@ void EditorNode::_on_plugin_ready(Object *p_script, const String &p_activate_nam push_item(script.operator->()); } -void EditorNode::_resources_changed(const PoolVector<String> &p_resources) { +void EditorNode::_resources_changed(const Vector<String> &p_resources) { List<Ref<Resource> > changed; @@ -1846,7 +1846,7 @@ void EditorNode::_edit_current() { Node *selected_node = NULL; - if (current_obj->is_class("ScriptEditorDebuggerInspectedObject")) { + if (current_obj->is_class("EditorDebuggerRemoteObject")) { editable_warning = TTR("This is a remote object, so changes to it won't be kept.\nPlease read the documentation relevant to debugging to better understand this workflow."); capitalize = false; disable_folding = true; @@ -2048,9 +2048,13 @@ void EditorNode::_run(bool p_current, const String &p_custom) { editor_data.get_editor_breakpoints(&breakpoints); args = ProjectSettings::get_singleton()->get("editor/main_run_args"); - skip_breakpoints = ScriptEditor::get_singleton()->get_debugger()->is_skip_breakpoints(); + skip_breakpoints = EditorDebuggerNode::get_singleton()->is_skip_breakpoints(); - Error error = editor_run.run(run_filename, args, breakpoints, skip_breakpoints); + int instances = 1; + if (debug_menu->get_popup()->is_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_TWO))) + instances = 2; + + Error error = editor_run.run(run_filename, args, breakpoints, skip_breakpoints, instances); if (error != OK) { @@ -2174,7 +2178,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { break; } - FALLTHROUGH; + [[fallthrough]]; } case SCENE_TAB_CLOSE: case FILE_SAVE_SCENE: { @@ -2195,7 +2199,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { break; } - FALLTHROUGH; + [[fallthrough]]; } case FILE_SAVE_AS_SCENE: { int scene_idx = (p_option == FILE_SAVE_SCENE || p_option == FILE_SAVE_AS_SCENE) ? -1 : tab_closing; @@ -2481,6 +2485,16 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { run_settings_dialog->popup_run_settings(); } break; + case RUN_DEBUG_ONE: { + debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_ONE), true); + debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_TWO), false); + + } break; + case RUN_DEBUG_TWO: { + debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_TWO), true); + debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(RUN_DEBUG_ONE), false); + + } break; case RUN_SETTINGS: { project_settings->popup_project_settings(); @@ -2571,7 +2585,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { bool ischecked = debug_menu->get_popup()->is_item_checked(debug_menu->get_popup()->get_item_index(RUN_LIVE_DEBUG)); debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(RUN_LIVE_DEBUG), !ischecked); - ScriptEditor::get_singleton()->get_debugger()->set_live_debugging(!ischecked); + EditorDebuggerNode::get_singleton()->set_live_debugging(!ischecked); EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_live_debug", !ischecked); } break; @@ -2746,10 +2760,10 @@ void EditorNode::_tool_menu_option(int p_idx) { Object *handler = ObjectDB::get_instance(params[0]); String callback = params[1]; Variant *ud = ¶ms[2]; - Variant::CallError ce; + Callable::CallError ce; handler->call(callback, (const Variant **)&ud, 1, ce); - if (ce.error != Variant::CallError::CALL_OK) { + if (ce.error != Callable::CallError::CALL_OK) { String err = Variant::get_call_error_text(handler, callback, (const Variant **)&ud, 1, ce); ERR_PRINT("Error calling function from tool menu: " + err); } @@ -2958,7 +2972,7 @@ void EditorNode::add_editor_plugin(EditorPlugin *p_editor, bool p_config_changed ToolButton *tb = memnew(ToolButton); tb->set_toggle_mode(true); - tb->connect("pressed", singleton, "_editor_select", varray(singleton->main_editor_buttons.size())); + tb->connect_compat("pressed", singleton, "_editor_select", varray(singleton->main_editor_buttons.size())); tb->set_text(p_editor->get_name()); Ref<Texture2D> icon = p_editor->get_icon(); @@ -3052,7 +3066,7 @@ void EditorNode::set_addon_plugin_enabled(const String &p_addon, bool p_enabled, String addon_path = String("res://addons").plus_file(p_addon).plus_file("plugin.cfg"); if (!DirAccess::exists(addon_path.get_base_dir())) { ProjectSettings *ps = ProjectSettings::get_singleton(); - PoolStringArray enabled_plugins = ps->get("editor_plugins/enabled"); + PackedStringArray enabled_plugins = ps->get("editor_plugins/enabled"); for (int i = 0; i < enabled_plugins.size(); ++i) { if (enabled_plugins.get(i) == p_addon) { enabled_plugins.remove(i); @@ -3242,7 +3256,7 @@ void EditorNode::_set_main_scene_state(Dictionary p_state, Node *p_for_scene) { //this should only happen at the very end - ScriptEditor::get_singleton()->get_debugger()->update_live_edit_root(); + EditorDebuggerNode::get_singleton()->update_live_edit_root(); ScriptEditor::get_singleton()->set_scene_root_script(editor_data.get_scene_root_script(editor_data.get_edited_scene())); editor_data.notify_edited_scene_changed(); } @@ -3477,7 +3491,7 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b opening_prev = false; scene_tree_dock->set_selected(new_scene); - ScriptEditor::get_singleton()->get_debugger()->update_live_edit_root(); + EditorDebuggerNode::get_singleton()->update_live_edit_root(); push_item(new_scene); @@ -3619,7 +3633,7 @@ void EditorNode::_quick_run() { _run(false, quick_run->get_selected()); } -void EditorNode::notify_child_process_exited() { +void EditorNode::notify_all_debug_sessions_exited() { _menu_option_confirm(RUN_STOP, false); stop_button->set_pressed(false); @@ -3703,9 +3717,13 @@ void EditorNode::unregister_editor_types() { _init_callbacks.clear(); } -void EditorNode::stop_child_process() { +void EditorNode::stop_child_process(OS::ProcessID p_pid) { - _menu_option_confirm(RUN_STOP, false); + if (has_child_process(p_pid)) { + editor_run.stop_child_process(p_pid); + if (!editor_run.get_child_process_count()) // All children stopped. Closing. + _menu_option_confirm(RUN_STOP, false); + } } Ref<Script> EditorNode::get_object_custom_type_base(const Object *p_object) const { @@ -4785,7 +4803,7 @@ void EditorNode::_scene_tab_changed(int p_tab) { ToolButton *EditorNode::add_bottom_panel_item(String p_text, Control *p_item) { ToolButton *tb = memnew(ToolButton); - tb->connect("toggled", this, "_bottom_panel_switch", varray(bottom_panel_items.size())); + tb->connect_compat("toggled", this, "_bottom_panel_switch", varray(bottom_panel_items.size())); tb->set_text(p_text); tb->set_toggle_mode(true); tb->set_focus_mode(Control::FOCUS_NONE); @@ -4847,8 +4865,8 @@ void EditorNode::raise_bottom_panel_item(Control *p_item) { } for (int i = 0; i < bottom_panel_items.size(); i++) { - bottom_panel_items[i].button->disconnect("toggled", this, "_bottom_panel_switch"); - bottom_panel_items[i].button->connect("toggled", this, "_bottom_panel_switch", varray(i)); + bottom_panel_items[i].button->disconnect_compat("toggled", this, "_bottom_panel_switch"); + bottom_panel_items[i].button->connect_compat("toggled", this, "_bottom_panel_switch", varray(i)); } } @@ -4869,8 +4887,8 @@ void EditorNode::remove_bottom_panel_item(Control *p_item) { } for (int i = 0; i < bottom_panel_items.size(); i++) { - bottom_panel_items[i].button->disconnect("toggled", this, "_bottom_panel_switch"); - bottom_panel_items[i].button->connect("toggled", this, "_bottom_panel_switch", varray(i)); + bottom_panel_items[i].button->disconnect_compat("toggled", this, "_bottom_panel_switch"); + bottom_panel_items[i].button->connect_compat("toggled", this, "_bottom_panel_switch", varray(i)); } } @@ -4888,7 +4906,7 @@ void EditorNode::_bottom_panel_switch(bool p_enable, int p_idx) { bottom_panel_items[i].button->set_pressed(i == p_idx); bottom_panel_items[i].control->set_visible(i == p_idx); } - if (ScriptEditor::get_singleton()->get_debugger() == bottom_panel_items[p_idx].control) { // this is the debug panel which uses tabs, so the top section should be smaller + if (EditorDebuggerNode::get_singleton() == bottom_panel_items[p_idx].control) { // this is the debug panel which uses tabs, so the top section should be smaller bottom_panel->add_style_override("panel", gui_base->get_stylebox("BottomPanelDebuggerOverride", "EditorStyles")); } else { bottom_panel->add_style_override("panel", gui_base->get_stylebox("panel", "TabContainer")); @@ -5519,7 +5537,7 @@ void EditorNode::_bind_methods() { ADD_SIGNAL(MethodInfo("pause_pressed")); ADD_SIGNAL(MethodInfo("stop_pressed")); ADD_SIGNAL(MethodInfo("request_help_search")); - ADD_SIGNAL(MethodInfo("script_add_function_request", PropertyInfo(Variant::OBJECT, "obj"), PropertyInfo(Variant::STRING, "function"), PropertyInfo(Variant::POOL_STRING_ARRAY, "args"))); + ADD_SIGNAL(MethodInfo("script_add_function_request", PropertyInfo(Variant::OBJECT, "obj"), PropertyInfo(Variant::STRING, "function"), PropertyInfo(Variant::PACKED_STRING_ARRAY, "args"))); ADD_SIGNAL(MethodInfo("resource_saved", PropertyInfo(Variant::OBJECT, "obj"))); } @@ -5823,7 +5841,7 @@ EditorNode::EditorNode() { EDITOR_DEF_RST("interface/scene_tabs/show_thumbnail_on_hover", true); EDITOR_DEF_RST("interface/inspector/capitalize_properties", true); EDITOR_DEF_RST("interface/inspector/default_float_step", 0.001); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::REAL, "interface/inspector/default_float_step", PROPERTY_HINT_RANGE, "0,1,0")); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::FLOAT, "interface/inspector/default_float_step", PROPERTY_HINT_RANGE, "0,1,0")); EDITOR_DEF_RST("interface/inspector/disable_folding", false); EDITOR_DEF_RST("interface/inspector/auto_unfold_foreign_scenes", true); EDITOR_DEF("interface/inspector/horizontal_vector2_editing", false); @@ -5925,8 +5943,8 @@ EditorNode::EditorNode() { hsplits.push_back(right_hsplit); for (int i = 0; i < vsplits.size(); i++) { - vsplits[i]->connect("dragged", this, "_dock_split_dragged"); - hsplits[i]->connect("dragged", this, "_dock_split_dragged"); + vsplits[i]->connect_compat("dragged", this, "_dock_split_dragged"); + hsplits[i]->connect_compat("dragged", this, "_dock_split_dragged"); } dock_select_popup = memnew(PopupPanel); @@ -5938,7 +5956,7 @@ EditorNode::EditorNode() { dock_tab_move_left = memnew(ToolButton); dock_tab_move_left->set_icon(theme->get_icon("Back", "EditorIcons")); dock_tab_move_left->set_focus_mode(Control::FOCUS_NONE); - dock_tab_move_left->connect("pressed", this, "_dock_move_left"); + dock_tab_move_left->connect_compat("pressed", this, "_dock_move_left"); dock_hb->add_child(dock_tab_move_left); Label *dock_label = memnew(Label); @@ -5950,16 +5968,16 @@ EditorNode::EditorNode() { dock_tab_move_right = memnew(ToolButton); dock_tab_move_right->set_icon(theme->get_icon("Forward", "EditorIcons")); dock_tab_move_right->set_focus_mode(Control::FOCUS_NONE); - dock_tab_move_right->connect("pressed", this, "_dock_move_right"); + dock_tab_move_right->connect_compat("pressed", this, "_dock_move_right"); dock_hb->add_child(dock_tab_move_right); dock_vb->add_child(dock_hb); dock_select = memnew(Control); dock_select->set_custom_minimum_size(Size2(128, 64) * EDSCALE); - dock_select->connect("gui_input", this, "_dock_select_input"); - dock_select->connect("draw", this, "_dock_select_draw"); - dock_select->connect("mouse_exited", this, "_dock_popup_exit"); + dock_select->connect_compat("gui_input", this, "_dock_select_input"); + dock_select->connect_compat("draw", this, "_dock_select_draw"); + dock_select->connect_compat("mouse_exited", this, "_dock_popup_exit"); dock_select->set_v_size_flags(Control::SIZE_EXPAND_FILL); dock_vb->add_child(dock_select); @@ -5970,11 +5988,11 @@ EditorNode::EditorNode() { dock_slot[i]->set_custom_minimum_size(Size2(170, 0) * EDSCALE); dock_slot[i]->set_v_size_flags(Control::SIZE_EXPAND_FILL); dock_slot[i]->set_popup(dock_select_popup); - dock_slot[i]->connect("pre_popup_pressed", this, "_dock_pre_popup", varray(i)); + dock_slot[i]->connect_compat("pre_popup_pressed", this, "_dock_pre_popup", varray(i)); dock_slot[i]->set_tab_align(TabContainer::ALIGN_LEFT); dock_slot[i]->set_drag_to_rearrange_enabled(true); dock_slot[i]->set_tabs_rearrange_group(1); - dock_slot[i]->connect("tab_changed", this, "_dock_tab_changed"); + dock_slot[i]->connect_compat("tab_changed", this, "_dock_tab_changed"); dock_slot[i]->set_use_hidden_tabs_for_min_size(true); } @@ -5982,7 +6000,7 @@ EditorNode::EditorNode() { add_child(dock_drag_timer); dock_drag_timer->set_wait_time(0.5); dock_drag_timer->set_one_shot(true); - dock_drag_timer->connect("timeout", this, "_save_docks"); + dock_drag_timer->connect_compat("timeout", this, "_save_docks"); top_split = memnew(VSplitContainer); center_split->add_child(top_split); @@ -6015,21 +6033,21 @@ EditorNode::EditorNode() { scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/scene_tabs/always_show_close_button", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY)); scene_tabs->set_min_width(int(EDITOR_DEF("interface/scene_tabs/minimum_width", 50)) * EDSCALE); scene_tabs->set_drag_to_rearrange_enabled(true); - scene_tabs->connect("tab_changed", this, "_scene_tab_changed"); - scene_tabs->connect("right_button_pressed", this, "_scene_tab_script_edited"); - scene_tabs->connect("tab_close", this, "_scene_tab_closed", varray(SCENE_TAB_CLOSE)); - scene_tabs->connect("tab_hover", this, "_scene_tab_hover"); - scene_tabs->connect("mouse_exited", this, "_scene_tab_exit"); - scene_tabs->connect("gui_input", this, "_scene_tab_input"); - scene_tabs->connect("reposition_active_tab_request", this, "_reposition_active_tab"); - scene_tabs->connect("resized", this, "_update_scene_tabs"); + scene_tabs->connect_compat("tab_changed", this, "_scene_tab_changed"); + scene_tabs->connect_compat("right_button_pressed", this, "_scene_tab_script_edited"); + scene_tabs->connect_compat("tab_close", this, "_scene_tab_closed", varray(SCENE_TAB_CLOSE)); + scene_tabs->connect_compat("tab_hover", this, "_scene_tab_hover"); + scene_tabs->connect_compat("mouse_exited", this, "_scene_tab_exit"); + scene_tabs->connect_compat("gui_input", this, "_scene_tab_input"); + scene_tabs->connect_compat("reposition_active_tab_request", this, "_reposition_active_tab"); + scene_tabs->connect_compat("resized", this, "_update_scene_tabs"); tabbar_container = memnew(HBoxContainer); scene_tabs->set_h_size_flags(Control::SIZE_EXPAND_FILL); scene_tabs_context_menu = memnew(PopupMenu); tabbar_container->add_child(scene_tabs_context_menu); - scene_tabs_context_menu->connect("id_pressed", this, "_menu_option"); + scene_tabs_context_menu->connect_compat("id_pressed", this, "_menu_option"); scene_tabs_context_menu->set_hide_on_window_lose_focus(true); srt->add_child(tabbar_container); @@ -6041,7 +6059,7 @@ EditorNode::EditorNode() { distraction_free->set_shortcut(ED_SHORTCUT("editor/distraction_free_mode", TTR("Distraction Free Mode"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_F11)); #endif distraction_free->set_tooltip(TTR("Toggle distraction-free mode.")); - distraction_free->connect("pressed", this, "_toggle_distraction_free_mode"); + distraction_free->connect_compat("pressed", this, "_toggle_distraction_free_mode"); distraction_free->set_icon(gui_base->get_icon("DistractionFree", "EditorIcons")); distraction_free->set_toggle_mode(true); @@ -6051,7 +6069,7 @@ EditorNode::EditorNode() { scene_tab_add->set_tooltip(TTR("Add a new scene.")); scene_tab_add->set_icon(gui_base->get_icon("Add", "EditorIcons")); scene_tab_add->add_color_override("icon_color_normal", Color(0.6f, 0.6f, 0.6f, 0.8f)); - scene_tab_add->connect("pressed", this, "_menu_option", make_binds(FILE_NEW_SCENE)); + scene_tab_add->connect_compat("pressed", this, "_menu_option", make_binds(FILE_NEW_SCENE)); scene_root_parent = memnew(PanelContainer); scene_root_parent->set_custom_minimum_size(Size2(0, 80) * EDSCALE); @@ -6086,14 +6104,14 @@ EditorNode::EditorNode() { prev_scene->set_icon(gui_base->get_icon("PrevScene", "EditorIcons")); prev_scene->set_tooltip(TTR("Go to previously opened scene.")); prev_scene->set_disabled(true); - prev_scene->connect("pressed", this, "_menu_option", make_binds(FILE_OPEN_PREV)); + prev_scene->connect_compat("pressed", this, "_menu_option", make_binds(FILE_OPEN_PREV)); gui_base->add_child(prev_scene); prev_scene->set_position(Point2(3, 24)); prev_scene->hide(); accept = memnew(AcceptDialog); gui_base->add_child(accept); - accept->connect("confirmed", this, "_menu_confirm_current"); + accept->connect_compat("confirmed", this, "_menu_confirm_current"); project_export = memnew(ProjectExportDialog); gui_base->add_child(project_export); @@ -6120,16 +6138,16 @@ EditorNode::EditorNode() { gui_base->add_child(feature_profile_manager); about = memnew(EditorAbout); gui_base->add_child(about); - feature_profile_manager->connect("current_feature_profile_changed", this, "_feature_profile_changed"); + feature_profile_manager->connect_compat("current_feature_profile_changed", this, "_feature_profile_changed"); warning = memnew(AcceptDialog); warning->add_button(TTR("Copy Text"), true, "copy"); gui_base->add_child(warning); - warning->connect("custom_action", this, "_copy_warning"); + warning->connect_compat("custom_action", this, "_copy_warning"); ED_SHORTCUT("editor/next_tab", TTR("Next tab"), KEY_MASK_CMD + KEY_TAB); ED_SHORTCUT("editor/prev_tab", TTR("Previous tab"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_TAB); - ED_SHORTCUT("editor/filter_files", TTR("Filter Files..."), KEY_MASK_ALT + KEY_MASK_CMD + KEY_P); + ED_SHORTCUT("editor/filter_files", TTR("Filter Files..."), KEY_MASK_CMD + KEY_MASK_ALT + KEY_P); PopupMenu *p; file_menu->set_tooltip(TTR("Operations with scene files.")); @@ -6144,13 +6162,14 @@ EditorNode::EditorNode() { p->add_separator(); p->add_shortcut(ED_SHORTCUT("editor/save_scene", TTR("Save Scene"), KEY_MASK_CMD + KEY_S), FILE_SAVE_SCENE); - p->add_shortcut(ED_SHORTCUT("editor/save_scene_as", TTR("Save Scene As..."), KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_S), FILE_SAVE_AS_SCENE); - p->add_shortcut(ED_SHORTCUT("editor/save_all_scenes", TTR("Save All Scenes"), KEY_MASK_ALT + KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_S), FILE_SAVE_ALL_SCENES); + p->add_shortcut(ED_SHORTCUT("editor/save_scene_as", TTR("Save Scene As..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_S), FILE_SAVE_AS_SCENE); + p->add_shortcut(ED_SHORTCUT("editor/save_all_scenes", TTR("Save All Scenes"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_S), FILE_SAVE_ALL_SCENES); p->add_separator(); + p->add_shortcut(ED_SHORTCUT("editor/quick_open", TTR("Quick Open..."), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_O), FILE_QUICK_OPEN); - p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene", TTR("Quick Open Scene..."), KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_O), FILE_QUICK_OPEN_SCENE); - p->add_shortcut(ED_SHORTCUT("editor/quick_open_script", TTR("Quick Open Script..."), KEY_MASK_ALT + KEY_MASK_CMD + KEY_O), FILE_QUICK_OPEN_SCRIPT); + p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene", TTR("Quick Open Scene..."), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_O), FILE_QUICK_OPEN_SCENE); + p->add_shortcut(ED_SHORTCUT("editor/quick_open_script", TTR("Quick Open Script..."), KEY_MASK_CMD + KEY_MASK_ALT + KEY_O), FILE_QUICK_OPEN_SCRIPT); p->add_separator(); PopupMenu *pm_export = memnew(PopupMenu); @@ -6159,20 +6178,20 @@ EditorNode::EditorNode() { p->add_submenu_item(TTR("Convert To..."), "Export"); pm_export->add_shortcut(ED_SHORTCUT("editor/convert_to_MeshLibrary", TTR("MeshLibrary...")), FILE_EXPORT_MESH_LIBRARY); pm_export->add_shortcut(ED_SHORTCUT("editor/convert_to_TileSet", TTR("TileSet...")), FILE_EXPORT_TILESET); - pm_export->connect("id_pressed", this, "_menu_option"); + pm_export->connect_compat("id_pressed", this, "_menu_option"); p->add_separator(); p->add_shortcut(ED_SHORTCUT("editor/undo", TTR("Undo"), KEY_MASK_CMD + KEY_Z), EDIT_UNDO, true); - p->add_shortcut(ED_SHORTCUT("editor/redo", TTR("Redo"), KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_Z), EDIT_REDO, true); + p->add_shortcut(ED_SHORTCUT("editor/redo", TTR("Redo"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_Z), EDIT_REDO, true); p->add_separator(); p->add_shortcut(ED_SHORTCUT("editor/revert_scene", TTR("Revert Scene")), EDIT_REVERT); - p->add_shortcut(ED_SHORTCUT("editor/close_scene", TTR("Close Scene"), KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_W), FILE_CLOSE); + p->add_shortcut(ED_SHORTCUT("editor/close_scene", TTR("Close Scene"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_W), FILE_CLOSE); recent_scenes = memnew(PopupMenu); recent_scenes->set_name("RecentScenes"); p->add_child(recent_scenes); - recent_scenes->connect("id_pressed", this, "_open_recent_scene"); + recent_scenes->connect_compat("id_pressed", this, "_open_recent_scene"); p->add_separator(); p->add_shortcut(ED_SHORTCUT("editor/file_quit", TTR("Quit"), KEY_MASK_CMD + KEY_Q), FILE_QUIT, true); @@ -6188,11 +6207,11 @@ EditorNode::EditorNode() { p = project_menu->get_popup(); p->set_hide_on_window_lose_focus(true); p->add_shortcut(ED_SHORTCUT("editor/project_settings", TTR("Project Settings...")), RUN_SETTINGS); - p->connect("id_pressed", this, "_menu_option"); + p->connect_compat("id_pressed", this, "_menu_option"); vcs_actions_menu = VersionControlEditorPlugin::get_singleton()->get_version_control_actions_panel(); vcs_actions_menu->set_name("Version Control"); - vcs_actions_menu->connect("index_pressed", this, "_version_control_menu_option"); + vcs_actions_menu->connect_compat("index_pressed", this, "_version_control_menu_option"); p->add_separator(); p->add_child(vcs_actions_menu); p->add_submenu_item(TTR("Version Control"), "Version Control"); @@ -6205,12 +6224,12 @@ EditorNode::EditorNode() { p->add_item(TTR("Open Project Data Folder"), RUN_PROJECT_DATA_FOLDER); plugin_config_dialog = memnew(PluginConfigDialog); - plugin_config_dialog->connect("plugin_ready", this, "_on_plugin_ready"); + plugin_config_dialog->connect_compat("plugin_ready", this, "_on_plugin_ready"); gui_base->add_child(plugin_config_dialog); tool_menu = memnew(PopupMenu); tool_menu->set_name("Tools"); - tool_menu->connect("index_pressed", this, "_tool_menu_option"); + tool_menu->connect_compat("index_pressed", this, "_tool_menu_option"); p->add_child(tool_menu); p->add_submenu_item(TTR("Tools"), "Tools"); tool_menu->add_item(TTR("Orphan Resource Explorer..."), TOOLS_ORPHAN_RESOURCES); @@ -6219,7 +6238,7 @@ EditorNode::EditorNode() { #ifdef OSX_ENABLED p->add_shortcut(ED_SHORTCUT("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_Q), RUN_PROJECT_MANAGER, true); #else - p->add_shortcut(ED_SHORTCUT("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_Q), RUN_PROJECT_MANAGER, true); + p->add_shortcut(ED_SHORTCUT("editor/quit_to_project_list", TTR("Quit to Project List"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_Q), RUN_PROJECT_MANAGER, true); #endif menu_hb->add_spacer(); @@ -6254,7 +6273,14 @@ EditorNode::EditorNode() { p->add_check_shortcut(ED_SHORTCUT("editor/sync_script_changes", TTR("Sync Script Changes")), RUN_RELOAD_SCRIPTS); p->set_item_tooltip(p->get_item_count() - 1, TTR("When this option is turned on, any script that is saved will be reloaded on the running game.\nWhen used remotely on a device, this is more efficient with network filesystem.")); p->set_item_checked(p->get_item_count() - 1, true); - p->connect("id_pressed", this, "_menu_option"); + + // Multi-instance, start/stop + p->add_separator(); + p->add_radio_check_item(TTR("Debug 1 instance"), RUN_DEBUG_ONE); + p->add_radio_check_item(TTR("Debug 2 instances"), RUN_DEBUG_TWO); + p->set_item_checked(p->get_item_index(RUN_DEBUG_ONE), true); + + p->connect_compat("id_pressed", this, "_menu_option"); menu_hb->add_spacer(); @@ -6273,7 +6299,7 @@ EditorNode::EditorNode() { editor_layouts = memnew(PopupMenu); editor_layouts->set_name("Layouts"); p->add_child(editor_layouts); - editor_layouts->connect("id_pressed", this, "_layout_menu_option"); + editor_layouts->connect_compat("id_pressed", this, "_layout_menu_option"); p->add_submenu_item(TTR("Editor Layout"), "Layouts"); p->add_separator(); #ifdef OSX_ENABLED @@ -6315,7 +6341,7 @@ EditorNode::EditorNode() { p = help_menu->get_popup(); p->set_hide_on_window_lose_focus(true); - p->connect("id_pressed", this, "_menu_option"); + p->connect_compat("id_pressed", this, "_menu_option"); p->add_icon_shortcut(gui_base->get_icon("HelpSearch", "EditorIcons"), ED_SHORTCUT("editor/editor_help", TTR("Search"), KEY_MASK_SHIFT | KEY_F1), HELP_SEARCH); p->add_separator(); p->add_icon_shortcut(gui_base->get_icon("Instance", "EditorIcons"), ED_SHORTCUT("editor/online_docs", TTR("Online Docs")), HELP_DOCS); @@ -6333,7 +6359,7 @@ EditorNode::EditorNode() { play_button->set_toggle_mode(true); play_button->set_icon(gui_base->get_icon("MainPlay", "EditorIcons")); play_button->set_focus_mode(Control::FOCUS_NONE); - play_button->connect("pressed", this, "_menu_option", make_binds(RUN_PLAY)); + play_button->connect_compat("pressed", this, "_menu_option", make_binds(RUN_PLAY)); play_button->set_tooltip(TTR("Play the project.")); #ifdef OSX_ENABLED play_button->set_shortcut(ED_SHORTCUT("editor/play", TTR("Play"), KEY_MASK_CMD | KEY_B)); @@ -6358,7 +6384,7 @@ EditorNode::EditorNode() { play_hb->add_child(stop_button); stop_button->set_focus_mode(Control::FOCUS_NONE); stop_button->set_icon(gui_base->get_icon("Stop", "EditorIcons")); - stop_button->connect("pressed", this, "_menu_option", make_binds(RUN_STOP)); + stop_button->connect_compat("pressed", this, "_menu_option", make_binds(RUN_STOP)); stop_button->set_tooltip(TTR("Stop the scene.")); stop_button->set_disabled(true); #ifdef OSX_ENABLED @@ -6369,14 +6395,14 @@ EditorNode::EditorNode() { run_native = memnew(EditorRunNative); play_hb->add_child(run_native); - run_native->connect("native_run", this, "_menu_option", varray(RUN_PLAY_NATIVE)); + run_native->connect_compat("native_run", this, "_menu_option", varray(RUN_PLAY_NATIVE)); play_scene_button = memnew(ToolButton); play_hb->add_child(play_scene_button); play_scene_button->set_toggle_mode(true); play_scene_button->set_focus_mode(Control::FOCUS_NONE); play_scene_button->set_icon(gui_base->get_icon("PlayScene", "EditorIcons")); - play_scene_button->connect("pressed", this, "_menu_option", make_binds(RUN_PLAY_SCENE)); + play_scene_button->connect_compat("pressed", this, "_menu_option", make_binds(RUN_PLAY_SCENE)); play_scene_button->set_tooltip(TTR("Play the edited scene.")); #ifdef OSX_ENABLED play_scene_button->set_shortcut(ED_SHORTCUT("editor/play_scene", TTR("Play Scene"), KEY_MASK_CMD | KEY_R)); @@ -6389,7 +6415,7 @@ EditorNode::EditorNode() { play_custom_scene_button->set_toggle_mode(true); play_custom_scene_button->set_focus_mode(Control::FOCUS_NONE); play_custom_scene_button->set_icon(gui_base->get_icon("PlayCustom", "EditorIcons")); - play_custom_scene_button->connect("pressed", this, "_menu_option", make_binds(RUN_PLAY_CUSTOM_SCENE)); + play_custom_scene_button->connect_compat("pressed", this, "_menu_option", make_binds(RUN_PLAY_CUSTOM_SCENE)); play_custom_scene_button->set_tooltip(TTR("Play custom scene")); #ifdef OSX_ENABLED play_custom_scene_button->set_shortcut(ED_SHORTCUT("editor/play_custom_scene", TTR("Play Custom Scene"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_R)); @@ -6404,7 +6430,7 @@ EditorNode::EditorNode() { video_driver = memnew(OptionButton); video_driver->set_flat(true); video_driver->set_focus_mode(Control::FOCUS_NONE); - video_driver->connect("item_selected", this, "_video_driver_selected"); + video_driver->connect_compat("item_selected", this, "_video_driver_selected"); video_driver->add_font_override("font", gui_base->get_font("bold", "EditorFonts")); // TODO re-enable when GLES2 is ported video_driver->set_disabled(true); @@ -6429,7 +6455,7 @@ EditorNode::EditorNode() { video_restart_dialog = memnew(ConfirmationDialog); video_restart_dialog->set_text(TTR("Changing the video driver requires restarting the editor.")); video_restart_dialog->get_ok()->set_text(TTR("Save & Restart")); - video_restart_dialog->connect("confirmed", this, "_menu_option", varray(SET_VIDEO_DRIVER_SAVE_AND_RESTART)); + video_restart_dialog->connect_compat("confirmed", this, "_menu_option", varray(SET_VIDEO_DRIVER_SAVE_AND_RESTART)); gui_base->add_child(video_restart_dialog); progress_hb = memnew(BackgroundProgress); @@ -6438,13 +6464,13 @@ EditorNode::EditorNode() { gui_base->add_child(layout_dialog); layout_dialog->set_hide_on_ok(false); layout_dialog->set_size(Size2(225, 270) * EDSCALE); - layout_dialog->connect("name_confirmed", this, "_dialog_action"); + layout_dialog->connect_compat("name_confirmed", this, "_dialog_action"); update_spinner = memnew(MenuButton); update_spinner->set_tooltip(TTR("Spins when the editor window redraws.")); right_menu_hb->add_child(update_spinner); update_spinner->set_icon(gui_base->get_icon("Progress1", "EditorIcons")); - update_spinner->get_popup()->connect("id_pressed", this, "_menu_option"); + update_spinner->get_popup()->connect_compat("id_pressed", this, "_menu_option"); p = update_spinner->get_popup(); p->add_radio_check_item(TTR("Update Continuously"), SETTINGS_UPDATE_CONTINUOUSLY); p->add_radio_check_item(TTR("Update When Changed"), SETTINGS_UPDATE_WHEN_CHANGED); @@ -6460,9 +6486,9 @@ EditorNode::EditorNode() { node_dock = memnew(NodeDock); filesystem_dock = memnew(FileSystemDock(this)); - filesystem_dock->connect("inherit", this, "_inherit_request"); - filesystem_dock->connect("instance", this, "_instance_request"); - filesystem_dock->connect("display_mode_changed", this, "_save_docks"); + filesystem_dock->connect_compat("inherit", this, "_inherit_request"); + filesystem_dock->connect_compat("instance", this, "_instance_request"); + filesystem_dock->connect_compat("display_mode_changed", this, "_save_docks"); // Scene: Top left dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scene_tree_dock); @@ -6548,7 +6574,7 @@ EditorNode::EditorNode() { bottom_panel_hb->add_child(bottom_panel_raise); bottom_panel_raise->hide(); bottom_panel_raise->set_toggle_mode(true); - bottom_panel_raise->connect("toggled", this, "_bottom_panel_raise_toggled"); + bottom_panel_raise->connect_compat("toggled", this, "_bottom_panel_raise_toggled"); log = memnew(EditorLog); ToolButton *output_button = add_bottom_panel_item(TTR("Output"), log); @@ -6556,37 +6582,37 @@ EditorNode::EditorNode() { old_split_ofs = 0; - center_split->connect("resized", this, "_vp_resized"); + center_split->connect_compat("resized", this, "_vp_resized"); orphan_resources = memnew(OrphanResourcesDialog); gui_base->add_child(orphan_resources); confirmation = memnew(ConfirmationDialog); gui_base->add_child(confirmation); - confirmation->connect("confirmed", this, "_menu_confirm_current"); + confirmation->connect_compat("confirmed", this, "_menu_confirm_current"); save_confirmation = memnew(ConfirmationDialog); save_confirmation->add_button(TTR("Don't Save"), OS::get_singleton()->get_swap_ok_cancel(), "discard"); gui_base->add_child(save_confirmation); - save_confirmation->connect("confirmed", this, "_menu_confirm_current"); - save_confirmation->connect("custom_action", this, "_discard_changes"); + save_confirmation->connect_compat("confirmed", this, "_menu_confirm_current"); + save_confirmation->connect_compat("custom_action", this, "_discard_changes"); custom_build_manage_templates = memnew(ConfirmationDialog); custom_build_manage_templates->set_text(TTR("Android build template is missing, please install relevant templates.")); custom_build_manage_templates->get_ok()->set_text(TTR("Manage Templates")); - custom_build_manage_templates->connect("confirmed", this, "_menu_option", varray(SETTINGS_MANAGE_EXPORT_TEMPLATES)); + custom_build_manage_templates->connect_compat("confirmed", this, "_menu_option", varray(SETTINGS_MANAGE_EXPORT_TEMPLATES)); gui_base->add_child(custom_build_manage_templates); install_android_build_template = memnew(ConfirmationDialog); install_android_build_template->set_text(TTR("This will set up your project for custom Android builds by installing the source template to \"res://android/build\".\nYou can then apply modifications and build your own custom APK on export (adding modules, changing the AndroidManifest.xml, etc.).\nNote that in order to make custom builds instead of using pre-built APKs, the \"Use Custom Build\" option should be enabled in the Android export preset.")); install_android_build_template->get_ok()->set_text(TTR("Install")); - install_android_build_template->connect("confirmed", this, "_menu_confirm_current"); + install_android_build_template->connect_compat("confirmed", this, "_menu_confirm_current"); gui_base->add_child(install_android_build_template); remove_android_build_template = memnew(ConfirmationDialog); remove_android_build_template->set_text(TTR("The Android build template is already installed in this project and it won't be overwritten.\nRemove the \"res://android/build\" directory manually before attempting this operation again.")); remove_android_build_template->get_ok()->set_text(TTR("Show in File Manager")); - remove_android_build_template->connect("confirmed", this, "_menu_option", varray(FILE_EXPLORE_ANDROID_BUILD_TEMPLATES)); + remove_android_build_template->connect_compat("confirmed", this, "_menu_option", varray(FILE_EXPLORE_ANDROID_BUILD_TEMPLATES)); gui_base->add_child(remove_android_build_template); file_templates = memnew(EditorFileDialog); @@ -6605,7 +6631,7 @@ EditorNode::EditorNode() { file_export_lib = memnew(EditorFileDialog); file_export_lib->set_title(TTR("Export Library")); file_export_lib->set_mode(EditorFileDialog::MODE_SAVE_FILE); - file_export_lib->connect("file_selected", this, "_dialog_action"); + file_export_lib->connect_compat("file_selected", this, "_dialog_action"); file_export_lib_merge = memnew(CheckBox); file_export_lib_merge->set_text(TTR("Merge With Existing")); file_export_lib_merge->set_pressed(true); @@ -6622,16 +6648,16 @@ EditorNode::EditorNode() { file_script->add_filter("*." + E->get()); } gui_base->add_child(file_script); - file_script->connect("file_selected", this, "_dialog_action"); + file_script->connect_compat("file_selected", this, "_dialog_action"); - file_menu->get_popup()->connect("id_pressed", this, "_menu_option"); - file_menu->connect("about_to_show", this, "_update_file_menu_opened"); - file_menu->get_popup()->connect("popup_hide", this, "_update_file_menu_closed"); + file_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); + file_menu->connect_compat("about_to_show", this, "_update_file_menu_opened"); + file_menu->get_popup()->connect_compat("popup_hide", this, "_update_file_menu_closed"); - settings_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + settings_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); - file->connect("file_selected", this, "_dialog_action"); - file_templates->connect("file_selected", this, "_dialog_action"); + file->connect_compat("file_selected", this, "_dialog_action"); + file_templates->connect_compat("file_selected", this, "_dialog_action"); preview_gen = memnew(AudioStreamPreviewGenerator); add_child(preview_gen); @@ -6639,6 +6665,7 @@ EditorNode::EditorNode() { file_server = memnew(EditorFileServer); + add_editor_plugin(memnew(DebuggerEditorPlugin(this))); add_editor_plugin(memnew(AnimationPlayerEditorPlugin(this))); add_editor_plugin(memnew(CanvasItemEditorPlugin(this))); add_editor_plugin(memnew(SpatialEditorPlugin(this))); @@ -6767,8 +6794,8 @@ EditorNode::EditorNode() { open_imported = memnew(ConfirmationDialog); open_imported->get_ok()->set_text(TTR("Open Anyway")); new_inherited_button = open_imported->add_button(TTR("New Inherited"), !OS::get_singleton()->get_swap_ok_cancel(), "inherit"); - open_imported->connect("confirmed", this, "_open_imported"); - open_imported->connect("custom_action", this, "_inherit_imported"); + open_imported->connect_compat("confirmed", this, "_open_imported"); + open_imported->connect_compat("custom_action", this, "_inherit_imported"); gui_base->add_child(open_imported); saved_version = 1; @@ -6777,11 +6804,11 @@ EditorNode::EditorNode() { quick_open = memnew(EditorQuickOpen); gui_base->add_child(quick_open); - quick_open->connect("quick_open", this, "_quick_opened"); + quick_open->connect_compat("quick_open", this, "_quick_opened"); quick_run = memnew(EditorQuickOpen); gui_base->add_child(quick_run); - quick_run->connect("quick_open", this, "_quick_run"); + quick_run->connect_compat("quick_open", this, "_quick_run"); _update_recent_scenes(); @@ -6803,10 +6830,10 @@ EditorNode::EditorNode() { execute_output_dialog->set_title(""); gui_base->add_child(execute_output_dialog); - EditorFileSystem::get_singleton()->connect("sources_changed", this, "_sources_changed"); - EditorFileSystem::get_singleton()->connect("filesystem_changed", this, "_fs_changed"); - EditorFileSystem::get_singleton()->connect("resources_reimported", this, "_resources_reimported"); - EditorFileSystem::get_singleton()->connect("resources_reload", this, "_resources_changed"); + EditorFileSystem::get_singleton()->connect_compat("sources_changed", this, "_sources_changed"); + EditorFileSystem::get_singleton()->connect_compat("filesystem_changed", this, "_fs_changed"); + EditorFileSystem::get_singleton()->connect_compat("resources_reimported", this, "_resources_reimported"); + EditorFileSystem::get_singleton()->connect_compat("resources_reload", this, "_resources_changed"); _build_icon_type_cache(); @@ -6815,7 +6842,7 @@ EditorNode::EditorNode() { pick_main_scene = memnew(ConfirmationDialog); gui_base->add_child(pick_main_scene); pick_main_scene->get_ok()->set_text(TTR("Select")); - pick_main_scene->connect("confirmed", this, "_menu_option", varray(SETTINGS_PICK_MAIN_SCENE)); + pick_main_scene->connect_compat("confirmed", this, "_menu_option", varray(SETTINGS_PICK_MAIN_SCENE)); for (int i = 0; i < _init_callbacks.size(); i++) _init_callbacks[i](); @@ -6855,7 +6882,7 @@ EditorNode::EditorNode() { screenshot_timer = memnew(Timer); screenshot_timer->set_one_shot(true); screenshot_timer->set_wait_time(settings_menu->get_popup()->get_submenu_popup_delay() + 0.1f); - screenshot_timer->connect("timeout", this, "_request_screenshot"); + screenshot_timer->connect_compat("timeout", this, "_request_screenshot"); add_child(screenshot_timer); screenshot_timer->set_owner(get_owner()); } diff --git a/editor/editor_node.h b/editor/editor_node.h index bd2c3d73ae..a982b9d85f 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -162,6 +162,8 @@ private: RUN_PLAY_NATIVE, RUN_PLAY_CUSTOM_SCENE, RUN_SCENE_SETTINGS, + RUN_DEBUG_ONE, + RUN_DEBUG_TWO, RUN_SETTINGS, RUN_PROJECT_DATA_FOLDER, RUN_PROJECT_MANAGER, @@ -639,7 +641,7 @@ private: static void _resource_saved(RES p_resource, const String &p_path); static void _resource_loaded(RES p_resource, const String &p_path); - void _resources_changed(const PoolVector<String> &p_resources); + void _resources_changed(const Vector<String> &p_resources); void _feature_profile_changed(); bool _is_class_editor_disabled_by_feature_profile(const StringName &p_class); @@ -764,10 +766,10 @@ public: void set_convert_old_scene(bool p_old) { convert_old = p_old; } - void notify_child_process_exited(); + void notify_all_debug_sessions_exited(); - OS::ProcessID get_child_process_id() const { return editor_run.get_pid(); } - void stop_child_process(); + OS::ProcessID has_child_process(OS::ProcessID p_pid) const { return editor_run.has_child_process(p_pid); } + void stop_child_process(OS::ProcessID p_pid); Ref<Theme> get_editor_theme() const { return theme; } Ref<Script> get_object_custom_type_base(const Object *p_object) const; diff --git a/editor/editor_path.cpp b/editor/editor_path.cpp index 6a1d052e02..696474d4b1 100644 --- a/editor/editor_path.cpp +++ b/editor/editor_path.cpp @@ -106,7 +106,7 @@ void EditorPath::update_path() { if (name == "") name = r->get_class(); - } else if (obj->is_class("ScriptEditorDebuggerInspectedObject")) + } else if (obj->is_class("EditorDebuggerRemoteObject")) name = obj->call("get_title"); else if (Object::cast_to<Node>(obj)) name = Object::cast_to<Node>(obj)->get_name(); @@ -152,6 +152,6 @@ EditorPath::EditorPath(EditorHistory *p_history) { history = p_history; set_clip_text(true); set_text_align(ALIGN_LEFT); - get_popup()->connect("about_to_show", this, "_about_to_show"); - get_popup()->connect("id_pressed", this, "_id_pressed"); + get_popup()->connect_compat("about_to_show", this, "_about_to_show"); + get_popup()->connect_compat("id_pressed", this, "_id_pressed"); } diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index ce847d02eb..2135e70de3 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -688,7 +688,7 @@ void EditorPlugin::apply_changes() { void EditorPlugin::get_breakpoints(List<String> *p_breakpoints) { if (get_script_instance() && get_script_instance()->has_method("get_breakpoints")) { - PoolStringArray arr = get_script_instance()->call("get_breakpoints"); + PackedStringArray arr = get_script_instance()->call("get_breakpoints"); for (int i = 0; i < arr.size(); i++) p_breakpoints->push_back(arr[i]); } @@ -743,8 +743,8 @@ void EditorPlugin::remove_scene_import_plugin(const Ref<EditorSceneImporter> &p_ ResourceImporterScene::get_singleton()->remove_importer(p_importer); } -int find(const PoolStringArray &a, const String &v) { - PoolStringArray::Read r = a.read(); +int find(const PackedStringArray &a, const String &v) { + const String *r = a.ptr(); for (int j = 0; j < a.size(); ++j) { if (r[j] == v) { return j; @@ -872,7 +872,7 @@ void EditorPlugin::_bind_methods() { ClassDB::add_virtual_method(get_class_static(), MethodInfo("clear")); ClassDB::add_virtual_method(get_class_static(), MethodInfo("save_external_data")); ClassDB::add_virtual_method(get_class_static(), MethodInfo("apply_changes")); - ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::POOL_STRING_ARRAY, "get_breakpoints")); + ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::PACKED_STRING_ARRAY, "get_breakpoints")); ClassDB::add_virtual_method(get_class_static(), MethodInfo("set_window_layout", PropertyInfo(Variant::OBJECT, "layout", PROPERTY_HINT_RESOURCE_TYPE, "ConfigFile"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo("get_window_layout", PropertyInfo(Variant::OBJECT, "layout", PROPERTY_HINT_RESOURCE_TYPE, "ConfigFile"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "build")); diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp index 16decf5c04..c499e52f79 100644 --- a/editor/editor_plugin_settings.cpp +++ b/editor/editor_plugin_settings.cpp @@ -43,8 +43,8 @@ void EditorPluginSettings::_notification(int p_what) { if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_IN) { update_plugins(); } else if (p_what == Node::NOTIFICATION_READY) { - plugin_config_dialog->connect("plugin_ready", EditorNode::get_singleton(), "_on_plugin_ready"); - plugin_list->connect("button_pressed", this, "_cell_button_pressed"); + plugin_config_dialog->connect_compat("plugin_ready", EditorNode::get_singleton(), "_on_plugin_ready"); + plugin_list->connect_compat("button_pressed", this, "_cell_button_pressed"); } } @@ -219,10 +219,10 @@ EditorPluginSettings::EditorPluginSettings() { title_hb->add_child(memnew(Label(TTR("Installed Plugins:")))); title_hb->add_spacer(); create_plugin = memnew(Button(TTR("Create"))); - create_plugin->connect("pressed", this, "_create_clicked"); + create_plugin->connect_compat("pressed", this, "_create_clicked"); title_hb->add_child(create_plugin); update_list = memnew(Button(TTR("Update"))); - update_list->connect("pressed", this, "update_plugins"); + update_list->connect_compat("pressed", this, "update_plugins"); title_hb->add_child(update_list); add_child(title_hb); @@ -245,7 +245,7 @@ EditorPluginSettings::EditorPluginSettings() { plugin_list->set_column_min_width(3, 80 * EDSCALE); plugin_list->set_column_min_width(4, 40 * EDSCALE); plugin_list->set_hide_root(true); - plugin_list->connect("item_edited", this, "_plugin_activity_changed"); + plugin_list->connect_compat("item_edited", this, "_plugin_activity_changed"); VBoxContainer *mc = memnew(VBoxContainer); mc->add_child(plugin_list); diff --git a/editor/editor_profiler.cpp b/editor/editor_profiler.cpp index 3ac4fcc21b..dd784c0980 100644 --- a/editor/editor_profiler.cpp +++ b/editor/editor_profiler.cpp @@ -175,7 +175,7 @@ void EditorProfiler::_update_plot() { graph_image.resize(desired_len); } - PoolVector<uint8_t>::Write wr = graph_image.write(); + uint8_t *wr = graph_image.ptrw(); const Color background_color = get_color("dark_color_2", "Editor"); // Clear the previous frame and set the background color. @@ -342,8 +342,6 @@ void EditorProfiler::_update_plot() { } } - wr.release(); - Ref<Image> img; img.instance(); img->create(w, h, 0, Image::FORMAT_RGBA8, graph_image); @@ -688,12 +686,12 @@ EditorProfiler::EditorProfiler() { activate = memnew(Button); activate->set_toggle_mode(true); activate->set_text(TTR("Start")); - activate->connect("pressed", this, "_activate_pressed"); + activate->connect_compat("pressed", this, "_activate_pressed"); hb->add_child(activate); clear_button = memnew(Button); clear_button->set_text(TTR("Clear")); - clear_button->connect("pressed", this, "_clear_pressed"); + clear_button->connect_compat("pressed", this, "_clear_pressed"); hb->add_child(clear_button); hb->add_child(memnew(Label(TTR("Measure:")))); @@ -703,7 +701,7 @@ EditorProfiler::EditorProfiler() { display_mode->add_item(TTR("Average Time (sec)")); display_mode->add_item(TTR("Frame %")); display_mode->add_item(TTR("Physics Frame %")); - display_mode->connect("item_selected", this, "_combo_changed"); + display_mode->connect_compat("item_selected", this, "_combo_changed"); hb->add_child(display_mode); @@ -712,7 +710,7 @@ EditorProfiler::EditorProfiler() { display_time = memnew(OptionButton); display_time->add_item(TTR("Inclusive")); display_time->add_item(TTR("Self")); - display_time->connect("item_selected", this, "_combo_changed"); + display_time->connect_compat("item_selected", this, "_combo_changed"); hb->add_child(display_time); @@ -723,7 +721,7 @@ EditorProfiler::EditorProfiler() { cursor_metric_edit = memnew(SpinBox); cursor_metric_edit->set_h_size_flags(SIZE_FILL); hb->add_child(cursor_metric_edit); - cursor_metric_edit->connect("value_changed", this, "_cursor_metric_changed"); + cursor_metric_edit->connect_compat("value_changed", this, "_cursor_metric_changed"); hb->add_constant_override("separation", 8 * EDSCALE); @@ -747,14 +745,14 @@ EditorProfiler::EditorProfiler() { variables->set_column_title(2, TTR("Calls")); variables->set_column_expand(2, false); variables->set_column_min_width(2, 60 * EDSCALE); - variables->connect("item_edited", this, "_item_edited"); + variables->connect_compat("item_edited", this, "_item_edited"); graph = memnew(TextureRect); graph->set_expand(true); graph->set_mouse_filter(MOUSE_FILTER_STOP); - graph->connect("draw", this, "_graph_tex_draw"); - graph->connect("gui_input", this, "_graph_tex_input"); - graph->connect("mouse_exited", this, "_graph_tex_mouse_exit"); + graph->connect_compat("draw", this, "_graph_tex_draw"); + graph->connect_compat("gui_input", this, "_graph_tex_input"); + graph->connect_compat("mouse_exited", this, "_graph_tex_mouse_exit"); h_split->add_child(graph); graph->set_h_size_flags(SIZE_EXPAND_FILL); @@ -770,13 +768,13 @@ EditorProfiler::EditorProfiler() { frame_delay->set_wait_time(0.1); frame_delay->set_one_shot(true); add_child(frame_delay); - frame_delay->connect("timeout", this, "_update_frame"); + frame_delay->connect_compat("timeout", this, "_update_frame"); plot_delay = memnew(Timer); plot_delay->set_wait_time(0.1); plot_delay->set_one_shot(true); add_child(plot_delay); - plot_delay->connect("timeout", this, "_update_plot"); + plot_delay->connect_compat("timeout", this, "_update_plot"); plot_sigs.insert("physics_frame_time"); plot_sigs.insert("category_frame_time"); diff --git a/editor/editor_profiler.h b/editor/editor_profiler.h index f8accdf6d2..0a442ddd5c 100644 --- a/editor/editor_profiler.h +++ b/editor/editor_profiler.h @@ -103,7 +103,7 @@ private: Button *clear_button; TextureRect *graph; Ref<ImageTexture> graph_texture; - PoolVector<uint8_t> graph_image; + Vector<uint8_t> graph_image; Tree *variables; HSplitContainer *h_split; diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 905e928c5a..e154b13eac 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -64,7 +64,11 @@ void EditorPropertyText::_text_changed(const String &p_string) { if (updating) return; - emit_changed(get_edited_property(), p_string, "", true); + if (string_name) { + emit_changed(get_edited_property(), StringName(p_string), "", true); + } else { + emit_changed(get_edited_property(), p_string, "", true); + } } void EditorPropertyText::update_property() { @@ -75,6 +79,9 @@ void EditorPropertyText::update_property() { updating = false; } +void EditorPropertyText::set_string_name(bool p_enabled) { + string_name = p_enabled; +} void EditorPropertyText::set_placeholder(const String &p_string) { text->set_placeholder(p_string); } @@ -89,9 +96,10 @@ EditorPropertyText::EditorPropertyText() { text = memnew(LineEdit); add_child(text); add_focusable(text); - text->connect("text_changed", this, "_text_changed"); - text->connect("text_entered", this, "_text_entered"); + text->connect_compat("text_changed", this, "_text_changed"); + text->connect_compat("text_entered", this, "_text_entered"); + string_name = false; updating = false; } @@ -110,7 +118,7 @@ void EditorPropertyMultilineText::_open_big_text() { if (!big_text_dialog) { big_text = memnew(TextEdit); - big_text->connect("text_changed", this, "_big_text_changed"); + big_text->connect_compat("text_changed", this, "_big_text_changed"); big_text->set_wrap_enabled(true); big_text_dialog = memnew(AcceptDialog); big_text_dialog->add_child(big_text); @@ -156,13 +164,13 @@ EditorPropertyMultilineText::EditorPropertyMultilineText() { add_child(hb); set_bottom_editor(hb); text = memnew(TextEdit); - text->connect("text_changed", this, "_text_changed"); + text->connect_compat("text_changed", this, "_text_changed"); text->set_wrap_enabled(true); add_focusable(text); hb->add_child(text); text->set_h_size_flags(SIZE_EXPAND_FILL); open_big_text = memnew(ToolButton); - open_big_text->connect("pressed", this, "_open_big_text"); + open_big_text->connect_compat("pressed", this, "_open_big_text"); hb->add_child(open_big_text); big_text_dialog = NULL; big_text = NULL; @@ -172,7 +180,12 @@ EditorPropertyMultilineText::EditorPropertyMultilineText() { void EditorPropertyTextEnum::_option_selected(int p_which) { - emit_changed(get_edited_property(), options->get_item_text(p_which)); + if (string_name) { + + emit_changed(get_edited_property(), StringName(options->get_item_text(p_which))); + } else { + emit_changed(get_edited_property(), options->get_item_text(p_which)); + } } void EditorPropertyTextEnum::update_property() { @@ -187,10 +200,11 @@ void EditorPropertyTextEnum::update_property() { } } -void EditorPropertyTextEnum::setup(const Vector<String> &p_options) { +void EditorPropertyTextEnum::setup(const Vector<String> &p_options, bool p_string_name) { for (int i = 0; i < p_options.size(); i++) { options->add_item(p_options[i], i); } + string_name = p_string_name; } void EditorPropertyTextEnum::_bind_methods() { @@ -202,10 +216,11 @@ EditorPropertyTextEnum::EditorPropertyTextEnum() { options = memnew(OptionButton); options->set_clip_text(true); options->set_flat(true); + string_name = false; add_child(options); add_focusable(options); - options->connect("item_selected", this, "_option_selected"); + options->connect_compat("item_selected", this, "_option_selected"); } ///////////////////// PATH ///////////////////////// @@ -218,8 +233,8 @@ void EditorPropertyPath::_path_pressed() { if (!dialog) { dialog = memnew(EditorFileDialog); - dialog->connect("file_selected", this, "_path_selected"); - dialog->connect("dir_selected", this, "_path_selected"); + dialog->connect_compat("file_selected", this, "_path_selected"); + dialog->connect_compat("dir_selected", this, "_path_selected"); add_child(dialog); } @@ -293,8 +308,8 @@ EditorPropertyPath::EditorPropertyPath() { add_child(path_hb); path = memnew(LineEdit); path_hb->add_child(path); - path->connect("text_entered", this, "_path_selected"); - path->connect("focus_exited", this, "_path_focus_exited"); + path->connect_compat("text_entered", this, "_path_selected"); + path->connect_compat("focus_exited", this, "_path_focus_exited"); path->set_h_size_flags(SIZE_EXPAND_FILL); path_edit = memnew(Button); @@ -302,7 +317,7 @@ EditorPropertyPath::EditorPropertyPath() { path_hb->add_child(path_edit); add_focusable(path); dialog = NULL; - path_edit->connect("pressed", this, "_path_pressed"); + path_edit->connect_compat("pressed", this, "_path_pressed"); folder = false; global = false; save_mode = false; @@ -346,10 +361,10 @@ EditorPropertyClassName::EditorPropertyClassName() { add_child(property); add_focusable(property); property->set_text(selected_type); - property->connect("pressed", this, "_property_selected"); + property->connect_compat("pressed", this, "_property_selected"); dialog = memnew(CreateDialog); dialog->set_base_type(base_type); - dialog->connect("create", this, "_dialog_created"); + dialog->connect_compat("create", this, "_dialog_created"); add_child(dialog); } @@ -365,7 +380,7 @@ void EditorPropertyMember::_property_select() { if (!selector) { selector = memnew(PropertySelector); - selector->connect("selected", this, "_property_selected"); + selector->connect_compat("selected", this, "_property_selected"); add_child(selector); } @@ -455,7 +470,7 @@ EditorPropertyMember::EditorPropertyMember() { property->set_clip_text(true); add_child(property); add_focusable(property); - property->connect("pressed", this, "_property_select"); + property->connect_compat("pressed", this, "_property_select"); } ///////////////////// CHECK ///////////////////////// @@ -480,7 +495,7 @@ EditorPropertyCheck::EditorPropertyCheck() { checkbox->set_text(TTR("On")); add_child(checkbox); add_focusable(checkbox); - checkbox->connect("pressed", this, "_checkbox_pressed"); + checkbox->connect_compat("pressed", this, "_checkbox_pressed"); } ///////////////////// ENUM ///////////////////////// @@ -531,7 +546,7 @@ EditorPropertyEnum::EditorPropertyEnum() { options->set_flat(true); add_child(options); add_focusable(options); - options->connect("item_selected", this, "_option_selected"); + options->connect_compat("item_selected", this, "_option_selected"); } ///////////////////// FLAGS ///////////////////////// @@ -576,7 +591,7 @@ void EditorPropertyFlags::setup(const Vector<String> &p_options) { CheckBox *cb = memnew(CheckBox); cb->set_text(option); cb->set_clip_text(true); - cb->connect("pressed", this, "_flag_toggled"); + cb->connect_compat("pressed", this, "_flag_toggled"); add_focusable(cb); vbox->add_child(cb); flags.push_back(cb); @@ -787,20 +802,20 @@ EditorPropertyLayers::EditorPropertyLayers() { HBoxContainer *hb = memnew(HBoxContainer); add_child(hb); grid = memnew(EditorPropertyLayersGrid); - grid->connect("flag_changed", this, "_grid_changed"); + grid->connect_compat("flag_changed", this, "_grid_changed"); grid->set_h_size_flags(SIZE_EXPAND_FILL); hb->add_child(grid); button = memnew(Button); button->set_toggle_mode(true); button->set_text(".."); - button->connect("pressed", this, "_button_pressed"); + button->connect_compat("pressed", this, "_button_pressed"); hb->add_child(button); set_bottom_editor(hb); layers = memnew(PopupMenu); add_child(layers); layers->set_hide_on_checkable_item_selection(false); - layers->connect("id_pressed", this, "_menu_pressed"); - layers->connect("popup_hide", button, "set_pressed", varray(false)); + layers->connect_compat("id_pressed", this, "_menu_pressed"); + layers->connect_compat("popup_hide", button, "set_pressed", varray(false)); } ///////////////////// INT ///////////////////////// @@ -841,7 +856,7 @@ EditorPropertyInteger::EditorPropertyInteger() { spin->set_flat(true); add_child(spin); add_focusable(spin); - spin->connect("value_changed", this, "_value_changed"); + spin->connect_compat("value_changed", this, "_value_changed"); setting = false; } @@ -881,7 +896,7 @@ EditorPropertyObjectID::EditorPropertyObjectID() { edit = memnew(Button); add_child(edit); add_focusable(edit); - edit->connect("pressed", this, "_edit_pressed"); + edit->connect_compat("pressed", this, "_edit_pressed"); } ///////////////////// FLOAT ///////////////////////// @@ -921,7 +936,7 @@ EditorPropertyFloat::EditorPropertyFloat() { spin->set_flat(true); add_child(spin); add_focusable(spin); - spin->connect("value_changed", this, "_value_changed"); + spin->connect_compat("value_changed", this, "_value_changed"); setting = false; } @@ -1100,14 +1115,14 @@ void EditorPropertyEasing::_bind_methods() { EditorPropertyEasing::EditorPropertyEasing() { easing_draw = memnew(Control); - easing_draw->connect("draw", this, "_draw_easing"); - easing_draw->connect("gui_input", this, "_drag_easing"); + easing_draw->connect_compat("draw", this, "_draw_easing"); + easing_draw->connect_compat("gui_input", this, "_drag_easing"); easing_draw->set_default_cursor_shape(Control::CURSOR_MOVE); add_child(easing_draw); preset = memnew(PopupMenu); add_child(preset); - preset->connect("id_pressed", this, "_set_preset"); + preset->connect_compat("id_pressed", this, "_set_preset"); spin = memnew(EditorSpinSlider); spin->set_flat(true); @@ -1117,8 +1132,8 @@ EditorPropertyEasing::EditorPropertyEasing() { spin->set_hide_slider(true); spin->set_allow_lesser(true); spin->set_allow_greater(true); - spin->connect("value_changed", this, "_spin_value_changed"); - spin->get_line_edit()->connect("focus_exited", this, "_spin_focus_exited"); + spin->connect_compat("value_changed", this, "_spin_value_changed"); + spin->get_line_edit()->connect_compat("focus_exited", this, "_spin_focus_exited"); spin->hide(); add_child(spin); @@ -1196,7 +1211,7 @@ EditorPropertyVector2::EditorPropertyVector2() { spin[i]->set_label(desc[i]); bc->add_child(spin[i]); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); if (horizontal) { spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); } @@ -1280,7 +1295,7 @@ EditorPropertyRect2::EditorPropertyRect2() { spin[i]->set_flat(true); bc->add_child(spin[i]); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); if (horizontal) { spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); } @@ -1361,7 +1376,7 @@ EditorPropertyVector3::EditorPropertyVector3() { spin[i]->set_label(desc[i]); bc->add_child(spin[i]); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); if (horizontal) { spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); } @@ -1444,7 +1459,7 @@ EditorPropertyPlane::EditorPropertyPlane() { spin[i]->set_label(desc[i]); bc->add_child(spin[i]); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); if (horizontal) { spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); } @@ -1527,7 +1542,7 @@ EditorPropertyQuat::EditorPropertyQuat() { spin[i]->set_label(desc[i]); bc->add_child(spin[i]); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); if (horizontal) { spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); } @@ -1609,7 +1624,7 @@ EditorPropertyAABB::EditorPropertyAABB() { g->add_child(spin[i]); spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); } set_bottom_editor(g); setting = false; @@ -1684,7 +1699,7 @@ EditorPropertyTransform2D::EditorPropertyTransform2D() { g->add_child(spin[i]); spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); } set_bottom_editor(g); setting = false; @@ -1765,7 +1780,7 @@ EditorPropertyBasis::EditorPropertyBasis() { g->add_child(spin[i]); spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); } set_bottom_editor(g); setting = false; @@ -1852,7 +1867,7 @@ EditorPropertyTransform::EditorPropertyTransform() { g->add_child(spin[i]); spin[i]->set_h_size_flags(SIZE_EXPAND_FILL); add_focusable(spin[i]); - spin[i]->connect("value_changed", this, "_value_changed", varray(desc[i])); + spin[i]->connect_compat("value_changed", this, "_value_changed", varray(desc[i])); } set_bottom_editor(g); setting = false; @@ -1917,9 +1932,9 @@ EditorPropertyColor::EditorPropertyColor() { picker = memnew(ColorPickerButton); add_child(picker); picker->set_flat(true); - picker->connect("color_changed", this, "_color_changed"); - picker->connect("popup_closed", this, "_popup_closed"); - picker->connect("picker_created", this, "_picker_created"); + picker->connect_compat("color_changed", this, "_color_changed"); + picker->connect_compat("popup_closed", this, "_popup_closed"); + picker->connect_compat("picker_created", this, "_picker_created"); } ////////////// NODE PATH ////////////////////// @@ -1966,7 +1981,7 @@ void EditorPropertyNodePath::_node_assign() { scene_tree->get_scene_tree()->set_show_enabled_subscene(true); scene_tree->get_scene_tree()->set_valid_types(valid_types); add_child(scene_tree); - scene_tree->connect("selected", this, "_node_selected"); + scene_tree->connect_compat("selected", this, "_node_selected"); } scene_tree->popup_centered_ratio(); } @@ -2048,12 +2063,12 @@ EditorPropertyNodePath::EditorPropertyNodePath() { assign->set_flat(true); assign->set_h_size_flags(SIZE_EXPAND_FILL); assign->set_clip_text(true); - assign->connect("pressed", this, "_node_assign"); + assign->connect_compat("pressed", this, "_node_assign"); hbc->add_child(assign); clear = memnew(Button); clear->set_flat(true); - clear->connect("pressed", this, "_node_clear"); + clear->connect_compat("pressed", this, "_node_clear"); hbc->add_child(clear); use_path_from_scene_root = false; @@ -2120,7 +2135,7 @@ void EditorPropertyResource::_menu_option(int p_which) { if (!file) { file = memnew(EditorFileDialog); - file->connect("file_selected", this, "_file_selected"); + file->connect_compat("file_selected", this, "_file_selected"); add_child(file); } file->set_mode(EditorFileDialog::MODE_OPEN_FILE); @@ -2289,7 +2304,7 @@ void EditorPropertyResource::_menu_option(int p_which) { scene_tree->get_scene_tree()->set_valid_types(valid_types); scene_tree->get_scene_tree()->set_show_enabled_subscene(true); add_child(scene_tree); - scene_tree->connect("selected", this, "_viewport_selected"); + scene_tree->connect_compat("selected", this, "_viewport_selected"); scene_tree->set_title(TTR("Pick a Viewport")); } scene_tree->popup_centered_ratio(); @@ -2607,9 +2622,9 @@ void EditorPropertyResource::update_property() { sub_inspector->set_sub_inspector(true); sub_inspector->set_enable_capitalize_paths(true); - sub_inspector->connect("property_keyed", this, "_sub_inspector_property_keyed"); - sub_inspector->connect("resource_selected", this, "_sub_inspector_resource_selected"); - sub_inspector->connect("object_id_selected", this, "_sub_inspector_object_id_selected"); + sub_inspector->connect_compat("property_keyed", this, "_sub_inspector_property_keyed"); + sub_inspector->connect_compat("resource_selected", this, "_sub_inspector_resource_selected"); + sub_inspector->connect_compat("object_id_selected", this, "_sub_inspector_object_id_selected"); sub_inspector->set_keying(is_keying()); sub_inspector->set_read_only(is_read_only()); sub_inspector->set_use_folding(is_using_folding()); @@ -2892,9 +2907,9 @@ EditorPropertyResource::EditorPropertyResource() { assign->set_flat(true); assign->set_h_size_flags(SIZE_EXPAND_FILL); assign->set_clip_text(true); - assign->connect("pressed", this, "_resource_selected"); + assign->connect_compat("pressed", this, "_resource_selected"); assign->set_drag_forwarding(this); - assign->connect("draw", this, "_button_draw"); + assign->connect_compat("draw", this, "_button_draw"); hbc->add_child(assign); add_focusable(assign); @@ -2905,18 +2920,18 @@ EditorPropertyResource::EditorPropertyResource() { preview->set_margin(MARGIN_BOTTOM, -1); preview->set_margin(MARGIN_RIGHT, -1); assign->add_child(preview); - assign->connect("gui_input", this, "_button_input"); + assign->connect_compat("gui_input", this, "_button_input"); menu = memnew(PopupMenu); add_child(menu); edit = memnew(Button); edit->set_flat(true); edit->set_toggle_mode(true); - menu->connect("id_pressed", this, "_menu_option"); - menu->connect("popup_hide", edit, "set_pressed", varray(false)); - edit->connect("pressed", this, "_update_menu"); + menu->connect_compat("id_pressed", this, "_menu_option"); + menu->connect_compat("popup_hide", edit, "set_pressed", varray(false)); + edit->connect_compat("pressed", this, "_update_menu"); hbc->add_child(edit); - edit->connect("gui_input", this, "_button_input"); + edit->connect_compat("gui_input", this, "_button_input"); add_focusable(edit); file = NULL; @@ -3024,7 +3039,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ add_property_editor(p_path, editor); } } break; - case Variant::REAL: { + case Variant::FLOAT: { if (p_hint == PROPERTY_HINT_EXP_EASING) { EditorPropertyEasing *editor = memnew(EditorPropertyEasing); @@ -3158,7 +3173,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ editor->setup(min, max, step, hide_slider); add_property_editor(p_path, editor); - } break; // 5 + } break; case Variant::RECT2: { EditorPropertyRect2 *editor = memnew(EditorPropertyRect2); double min = -65535, max = 65535, step = default_float_step; @@ -3245,7 +3260,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ editor->setup(min, max, step, hide_slider); add_property_editor(p_path, editor); - } break; // 10 + } break; case Variant::AABB: { EditorPropertyAABB *editor = memnew(EditorPropertyAABB); double min = -65535, max = 65535, step = default_float_step; @@ -3305,6 +3320,22 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ editor->setup(p_hint != PROPERTY_HINT_COLOR_NO_ALPHA); add_property_editor(p_path, editor); } break; + case Variant::STRING_NAME: { + + if (p_hint == PROPERTY_HINT_ENUM) { + EditorPropertyTextEnum *editor = memnew(EditorPropertyTextEnum); + Vector<String> options = p_hint_text.split(","); + editor->setup(options, true); + add_property_editor(p_path, editor); + } else { + EditorPropertyText *editor = memnew(EditorPropertyText); + if (p_hint == PROPERTY_HINT_PLACEHOLDER_TEXT) { + editor->set_placeholder(p_hint_text); + } + editor->set_string_name(true); + add_property_editor(p_path, editor); + } + } break; case Variant::NODE_PATH: { EditorPropertyNodePath *editor = memnew(EditorPropertyNodePath); @@ -3318,7 +3349,7 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ } add_property_editor(p_path, editor); - } break; // 15 + } break; case Variant::_RID: { EditorPropertyRID *editor = memnew(EditorPropertyRID); add_property_editor(p_path, editor); @@ -3353,39 +3384,49 @@ bool EditorInspectorDefaultPlugin::parse_property(Object *p_object, Variant::Typ editor->setup(Variant::ARRAY, p_hint_text); add_property_editor(p_path, editor); } break; - case Variant::POOL_BYTE_ARRAY: { + case Variant::PACKED_BYTE_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_BYTE_ARRAY); + editor->setup(Variant::PACKED_BYTE_ARRAY); add_property_editor(p_path, editor); - } break; // 20 - case Variant::POOL_INT_ARRAY: { + } break; + case Variant::PACKED_INT32_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_INT_ARRAY); + editor->setup(Variant::PACKED_INT32_ARRAY); add_property_editor(p_path, editor); } break; - case Variant::POOL_REAL_ARRAY: { + case Variant::PACKED_INT64_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_REAL_ARRAY); + editor->setup(Variant::PACKED_INT64_ARRAY); add_property_editor(p_path, editor); } break; - case Variant::POOL_STRING_ARRAY: { + case Variant::PACKED_FLOAT32_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_STRING_ARRAY); + editor->setup(Variant::PACKED_FLOAT32_ARRAY); add_property_editor(p_path, editor); } break; - case Variant::POOL_VECTOR2_ARRAY: { + case Variant::PACKED_FLOAT64_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_VECTOR2_ARRAY); + editor->setup(Variant::PACKED_FLOAT64_ARRAY); add_property_editor(p_path, editor); } break; - case Variant::POOL_VECTOR3_ARRAY: { + case Variant::PACKED_STRING_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_VECTOR3_ARRAY); + editor->setup(Variant::PACKED_STRING_ARRAY); add_property_editor(p_path, editor); - } break; // 25 - case Variant::POOL_COLOR_ARRAY: { + } break; + case Variant::PACKED_VECTOR2_ARRAY: { + EditorPropertyArray *editor = memnew(EditorPropertyArray); + editor->setup(Variant::PACKED_VECTOR2_ARRAY); + add_property_editor(p_path, editor); + } break; + case Variant::PACKED_VECTOR3_ARRAY: { + EditorPropertyArray *editor = memnew(EditorPropertyArray); + editor->setup(Variant::PACKED_VECTOR3_ARRAY); + add_property_editor(p_path, editor); + } break; + case Variant::PACKED_COLOR_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_COLOR_ARRAY); + editor->setup(Variant::PACKED_COLOR_ARRAY); add_property_editor(p_path, editor); } break; default: { diff --git a/editor/editor_properties.h b/editor/editor_properties.h index 7c343f1c67..c5fc8aaf77 100644 --- a/editor/editor_properties.h +++ b/editor/editor_properties.h @@ -53,6 +53,7 @@ class EditorPropertyText : public EditorProperty { LineEdit *text; bool updating; + bool string_name; void _text_changed(const String &p_string); void _text_entered(const String &p_string); @@ -60,6 +61,7 @@ protected: static void _bind_methods(); public: + void set_string_name(bool p_enabled); virtual void update_property(); void set_placeholder(const String &p_string); EditorPropertyText(); @@ -91,12 +93,13 @@ class EditorPropertyTextEnum : public EditorProperty { OptionButton *options; void _option_selected(int p_which); + bool string_name; protected: static void _bind_methods(); public: - void setup(const Vector<String> &p_options); + void setup(const Vector<String> &p_options, bool p_string_name = false); virtual void update_property(); EditorPropertyTextEnum(); }; diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 0dc67b298f..541069338c 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -198,7 +198,7 @@ void EditorPropertyArray::_change_type_menu(int p_index) { } Variant value; - Variant::CallError ce; + Callable::CallError ce; value = Variant::construct(Variant::Type(p_index), NULL, 0, ce); Variant array = object->get_array(); array.set(changing_type_idx, value); @@ -225,36 +225,35 @@ void EditorPropertyArray::update_property() { switch (array_type) { case Variant::ARRAY: { arrtype = "Array"; - } break; // arrays - case Variant::POOL_BYTE_ARRAY: { - arrtype = "PoolByteArray"; - + case Variant::PACKED_BYTE_ARRAY: { + arrtype = "PackedByteArray"; } break; - case Variant::POOL_INT_ARRAY: { - arrtype = "PoolIntArray"; - + case Variant::PACKED_INT32_ARRAY: { + arrtype = "PackedInt32Array"; } break; - case Variant::POOL_REAL_ARRAY: { - - arrtype = "PoolFloatArray"; + case Variant::PACKED_FLOAT32_ARRAY: { + arrtype = "PackedFloat32Array"; } break; - case Variant::POOL_STRING_ARRAY: { - - arrtype = "PoolStringArray"; + case Variant::PACKED_INT64_ARRAY: { + arrtype = "PackedInt64Array"; } break; - case Variant::POOL_VECTOR2_ARRAY: { - - arrtype = "PoolVector2Array"; + case Variant::PACKED_FLOAT64_ARRAY: { + arrtype = "PackedFloat64Array"; } break; - case Variant::POOL_VECTOR3_ARRAY: { - arrtype = "PoolVector3Array"; - + case Variant::PACKED_STRING_ARRAY: { + arrtype = "PackedStringArray"; + } break; + case Variant::PACKED_VECTOR2_ARRAY: { + arrtype = "PackedVector2Array"; } break; - case Variant::POOL_COLOR_ARRAY: { - arrtype = "PoolColorArray"; + case Variant::PACKED_VECTOR3_ARRAY: { + arrtype = "PackedVector3Array"; + } break; + case Variant::PACKED_COLOR_ARRAY: { + arrtype = "PackedColorArray"; } break; default: { } @@ -297,7 +296,7 @@ void EditorPropertyArray::update_property() { length->set_max(1000000); length->set_h_size_flags(SIZE_EXPAND_FILL); hbc->add_child(length); - length->connect("value_changed", this, "_length_changed"); + length->connect_compat("value_changed", this, "_length_changed"); page_hb = memnew(HBoxContainer); vbox->add_child(page_hb); @@ -308,7 +307,7 @@ void EditorPropertyArray::update_property() { page->set_step(1); page_hb->add_child(page); page->set_h_size_flags(SIZE_EXPAND_FILL); - page->connect("value_changed", this, "_page_changed"); + page->connect_compat("value_changed", this, "_page_changed"); } else { //bye bye children of the box while (vbox->get_child_count() > 2) { @@ -360,8 +359,8 @@ void EditorPropertyArray::update_property() { prop->set_object_and_property(object.ptr(), prop_name); prop->set_label(itos(i + offset)); prop->set_selectable(false); - prop->connect("property_changed", this, "_property_changed"); - prop->connect("object_id_selected", this, "_object_id_selected"); + prop->connect_compat("property_changed", this, "_property_changed"); + prop->connect_compat("object_id_selected", this, "_object_id_selected"); prop->set_h_size_flags(SIZE_EXPAND_FILL); HBoxContainer *hb = memnew(HBoxContainer); @@ -376,12 +375,12 @@ void EditorPropertyArray::update_property() { Button *edit = memnew(Button); edit->set_icon(get_icon("Edit", "EditorIcons")); hb->add_child(edit); - edit->connect("pressed", this, "_change_type", varray(edit, i + offset)); + edit->connect_compat("pressed", this, "_change_type", varray(edit, i + offset)); } else { Button *remove = memnew(Button); remove->set_icon(get_icon("Remove", "EditorIcons")); - remove->connect("pressed", this, "_remove_pressed", varray(i + offset)); + remove->connect_compat("pressed", this, "_remove_pressed", varray(i + offset)); hb->add_child(remove); } @@ -419,7 +418,7 @@ void EditorPropertyArray::_edit_pressed() { Variant array = get_edited_object()->get(get_edited_property()); if (!array.is_array()) { - Variant::CallError ce; + Callable::CallError ce; array = Variant::construct(array_type, NULL, 0, ce); get_edited_object()->set(get_edited_property(), array); @@ -450,7 +449,7 @@ void EditorPropertyArray::_length_changed(double p_page) { int size = array.call("size"); for (int i = previous_size; i < size; i++) { if (array.get(i).get_type() == Variant::NIL) { - Variant::CallError ce; + Callable::CallError ce; array.set(i, Variant::construct(subtype, NULL, 0, ce)); } } @@ -460,7 +459,7 @@ void EditorPropertyArray::_length_changed(double p_page) { int size = array.call("size"); // Pool*Array don't initialize their elements, have to do it manually for (int i = previous_size; i < size; i++) { - Variant::CallError ce; + Callable::CallError ce; array.set(i, Variant::construct(array.get(i).get_type(), NULL, 0, ce)); } } @@ -510,7 +509,7 @@ EditorPropertyArray::EditorPropertyArray() { edit->set_flat(true); edit->set_h_size_flags(SIZE_EXPAND_FILL); edit->set_clip_text(true); - edit->connect("pressed", this, "_edit_pressed"); + edit->connect_compat("pressed", this, "_edit_pressed"); edit->set_toggle_mode(true); add_child(edit); add_focusable(edit); @@ -520,7 +519,7 @@ EditorPropertyArray::EditorPropertyArray() { updating = false; change_type = memnew(PopupMenu); add_child(change_type); - change_type->connect("id_pressed", this, "_change_type_menu"); + change_type->connect_compat("id_pressed", this, "_change_type_menu"); for (int i = 0; i < Variant::VARIANT_MAX; i++) { String type = Variant::get_type_name(Variant::Type(i)); @@ -593,7 +592,7 @@ void EditorPropertyDictionary::_change_type_menu(int p_index) { if (changing_type_idx < 0) { Variant value; - Variant::CallError ce; + Callable::CallError ce; value = Variant::construct(Variant::Type(p_index), NULL, 0, ce); if (changing_type_idx == -1) { object->set_new_item_key(value); @@ -609,7 +608,7 @@ void EditorPropertyDictionary::_change_type_menu(int p_index) { if (p_index < Variant::VARIANT_MAX) { Variant value; - Variant::CallError ce; + Callable::CallError ce; value = Variant::construct(Variant::Type(p_index), NULL, 0, ce); Variant key = dict.get_key_at_index(changing_type_idx); dict[key] = value; @@ -668,7 +667,7 @@ void EditorPropertyDictionary::update_property() { page->set_step(1); page_hb->add_child(page); page->set_h_size_flags(SIZE_EXPAND_FILL); - page->connect("value_changed", this, "_page_changed"); + page->connect_compat("value_changed", this, "_page_changed"); } else { // Queue children for deletion, deleting immediately might cause errors. for (int i = 1; i < vbox->get_child_count(); i++) { @@ -731,7 +730,7 @@ void EditorPropertyDictionary::update_property() { prop = editor; } break; - case Variant::REAL: { + case Variant::FLOAT: { EditorPropertyFloat *editor = memnew(EditorPropertyFloat); editor->setup(-100000, 100000, 0.001, true, false, true, true); @@ -811,6 +810,12 @@ void EditorPropertyDictionary::update_property() { prop = memnew(EditorPropertyColor); } break; + case Variant::STRING_NAME: { + EditorPropertyText *ept = memnew(EditorPropertyText); + ept->set_string_name(true); + prop = ept; + + } break; case Variant::NODE_PATH: { prop = memnew(EditorPropertyNodePath); @@ -846,46 +851,58 @@ void EditorPropertyDictionary::update_property() { } break; // arrays - case Variant::POOL_BYTE_ARRAY: { + case Variant::PACKED_BYTE_ARRAY: { + + EditorPropertyArray *editor = memnew(EditorPropertyArray); + editor->setup(Variant::PACKED_BYTE_ARRAY); + prop = editor; + } break; + case Variant::PACKED_INT32_ARRAY: { + + EditorPropertyArray *editor = memnew(EditorPropertyArray); + editor->setup(Variant::PACKED_INT32_ARRAY); + prop = editor; + } break; + case Variant::PACKED_FLOAT32_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_BYTE_ARRAY); + editor->setup(Variant::PACKED_FLOAT32_ARRAY); prop = editor; } break; - case Variant::POOL_INT_ARRAY: { + case Variant::PACKED_INT64_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_INT_ARRAY); + editor->setup(Variant::PACKED_INT64_ARRAY); prop = editor; } break; - case Variant::POOL_REAL_ARRAY: { + case Variant::PACKED_FLOAT64_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_REAL_ARRAY); + editor->setup(Variant::PACKED_FLOAT64_ARRAY); prop = editor; } break; - case Variant::POOL_STRING_ARRAY: { + case Variant::PACKED_STRING_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_STRING_ARRAY); + editor->setup(Variant::PACKED_STRING_ARRAY); prop = editor; } break; - case Variant::POOL_VECTOR2_ARRAY: { + case Variant::PACKED_VECTOR2_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_VECTOR2_ARRAY); + editor->setup(Variant::PACKED_VECTOR2_ARRAY); prop = editor; } break; - case Variant::POOL_VECTOR3_ARRAY: { + case Variant::PACKED_VECTOR3_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_VECTOR3_ARRAY); + editor->setup(Variant::PACKED_VECTOR3_ARRAY); prop = editor; } break; - case Variant::POOL_COLOR_ARRAY: { + case Variant::PACKED_COLOR_ARRAY: { EditorPropertyArray *editor = memnew(EditorPropertyArray); - editor->setup(Variant::POOL_COLOR_ARRAY); + editor->setup(Variant::PACKED_COLOR_ARRAY); prop = editor; } break; default: { @@ -923,8 +940,8 @@ void EditorPropertyDictionary::update_property() { } prop->set_selectable(false); - prop->connect("property_changed", this, "_property_changed"); - prop->connect("object_id_selected", this, "_object_id_selected"); + prop->connect_compat("property_changed", this, "_property_changed"); + prop->connect_compat("object_id_selected", this, "_object_id_selected"); HBoxContainer *hb = memnew(HBoxContainer); if (add_vbox) { @@ -937,14 +954,14 @@ void EditorPropertyDictionary::update_property() { Button *edit = memnew(Button); edit->set_icon(get_icon("Edit", "EditorIcons")); hb->add_child(edit); - edit->connect("pressed", this, "_change_type", varray(edit, change_index)); + edit->connect_compat("pressed", this, "_change_type", varray(edit, change_index)); prop->update_property(); if (i == amount + 1) { Button *butt_add_item = memnew(Button); butt_add_item->set_text(TTR("Add Key/Value Pair")); - butt_add_item->connect("pressed", this, "_add_key_value"); + butt_add_item->connect_compat("pressed", this, "_add_key_value"); add_vbox->add_child(butt_add_item); } } @@ -971,7 +988,7 @@ void EditorPropertyDictionary::_edit_pressed() { Variant prop_val = get_edited_object()->get(get_edited_property()); if (prop_val.get_type() == Variant::NIL) { - Variant::CallError ce; + Callable::CallError ce; prop_val = Variant::construct(Variant::DICTIONARY, NULL, 0, ce); get_edited_object()->set(get_edited_property(), prop_val); } @@ -1006,7 +1023,7 @@ EditorPropertyDictionary::EditorPropertyDictionary() { edit->set_flat(true); edit->set_h_size_flags(SIZE_EXPAND_FILL); edit->set_clip_text(true); - edit->connect("pressed", this, "_edit_pressed"); + edit->connect_compat("pressed", this, "_edit_pressed"); edit->set_toggle_mode(true); add_child(edit); add_focusable(edit); @@ -1015,7 +1032,7 @@ EditorPropertyDictionary::EditorPropertyDictionary() { updating = false; change_type = memnew(PopupMenu); add_child(change_type); - change_type->connect("id_pressed", this, "_change_type_menu"); + change_type->connect_compat("id_pressed", this, "_change_type_menu"); for (int i = 0; i < Variant::VARIANT_MAX; i++) { String type = Variant::get_type_name(Variant::Type(i)); diff --git a/editor/editor_run.cpp b/editor/editor_run.cpp index ff7420e19b..3200a0ac8b 100644 --- a/editor/editor_run.cpp +++ b/editor/editor_run.cpp @@ -38,7 +38,7 @@ EditorRun::Status EditorRun::get_status() const { return status; } -Error EditorRun::run(const String &p_scene, const String &p_custom_args, const List<String> &p_breakpoints, const bool &p_skip_breakpoints) { +Error EditorRun::run(const String &p_scene, const String &p_custom_args, const List<String> &p_breakpoints, const bool &p_skip_breakpoints, const int &p_instances) { List<String> args; @@ -187,20 +187,40 @@ Error EditorRun::run(const String &p_scene, const String &p_custom_args, const L }; printf("\n"); - pid = 0; - Error err = OS::get_singleton()->execute(exec, args, false, &pid); - ERR_FAIL_COND_V(err, err); + for (int i = 0; i < p_instances; i++) { + OS::ProcessID pid = 0; + Error err = OS::get_singleton()->execute(exec, args, false, &pid); + ERR_FAIL_COND_V(err, err); + pids.push_back(pid); + } status = STATUS_PLAY; return OK; } +bool EditorRun::has_child_process(OS::ProcessID p_pid) const { + for (const List<OS::ProcessID>::Element *E = pids.front(); E; E = E->next()) { + if (E->get() == p_pid) + return true; + } + return false; +} + +void EditorRun::stop_child_process(OS::ProcessID p_pid) { + if (has_child_process(p_pid)) { + OS::get_singleton()->kill(p_pid); + pids.erase(p_pid); + } +} + void EditorRun::stop() { - if (status != STATUS_STOP && pid != 0) { + if (status != STATUS_STOP && pids.size() > 0) { - OS::get_singleton()->kill(pid); + for (List<OS::ProcessID>::Element *E = pids.front(); E; E = E->next()) { + OS::get_singleton()->kill(E->get()); + } } status = STATUS_STOP; diff --git a/editor/editor_run.h b/editor/editor_run.h index b50a2c2f0e..389a1e6b20 100644 --- a/editor/editor_run.h +++ b/editor/editor_run.h @@ -42,7 +42,7 @@ public: STATUS_STOP }; - OS::ProcessID pid; + List<OS::ProcessID> pids; private: bool debug_collisions; @@ -51,11 +51,13 @@ private: public: Status get_status() const; - Error run(const String &p_scene, const String &p_custom_args, const List<String> &p_breakpoints, const bool &p_skip_breakpoints = false); + Error run(const String &p_scene, const String &p_custom_args, const List<String> &p_breakpoints, const bool &p_skip_breakpoints = false, const int &p_instances = 1); void run_native_notify() { status = STATUS_PLAY; } void stop(); - OS::ProcessID get_pid() const { return pid; } + void stop_child_process(OS::ProcessID p_pid); + bool has_child_process(OS::ProcessID p_pid) const; + int get_child_process_count() const { return pids.size(); } void set_debug_collisions(bool p_debug); bool get_debug_collisions() const; diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index db88b0cea4..490ae19e17 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -55,8 +55,8 @@ void EditorRunNative::_notification(int p_what) { small_icon.instance(); small_icon->create_from_image(im); MenuButton *mb = memnew(MenuButton); - mb->get_popup()->connect("id_pressed", this, "_run_native", varray(i)); - mb->connect("pressed", this, "_run_native", varray(-1, i)); + mb->get_popup()->connect_compat("id_pressed", this, "_run_native", varray(i)); + mb->connect_compat("pressed", this, "_run_native", varray(-1, i)); mb->set_icon(small_icon); add_child(mb); menus[i] = mb; diff --git a/editor/editor_run_script.cpp b/editor/editor_run_script.cpp index 1f269c246a..628055cac6 100644 --- a/editor/editor_run_script.cpp +++ b/editor/editor_run_script.cpp @@ -71,10 +71,10 @@ void EditorScript::_run() { return; } - Variant::CallError ce; - ce.error = Variant::CallError::CALL_OK; + Callable::CallError ce; + ce.error = Callable::CallError::CALL_OK; get_script_instance()->call("_run", NULL, 0, ce); - if (ce.error != Variant::CallError::CALL_OK) { + if (ce.error != Callable::CallError::CALL_OK) { EditorNode::add_io_error(TTR("Couldn't run script:") + "\n " + s->get_path() + "\n" + TTR("Did you forget the '_run' method?")); } diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp index c4a84bfcdc..e95343afc9 100644 --- a/editor/editor_sectioned_inspector.cpp +++ b/editor/editor_sectioned_inspector.cpp @@ -294,7 +294,7 @@ void SectionedInspector::register_search_box(LineEdit *p_box) { search_box = p_box; inspector->register_text_enter(p_box); - search_box->connect("text_changed", this, "_search_changed"); + search_box->connect_compat("text_changed", this, "_search_changed"); } void SectionedInspector::_search_changed(const String &p_what) { @@ -332,7 +332,7 @@ SectionedInspector::SectionedInspector() : right_vb->add_child(inspector, true); inspector->set_use_doc_hints(true); - sections->connect("cell_selected", this, "_section_selected"); + sections->connect_compat("cell_selected", this, "_section_selected"); } SectionedInspector::~SectionedInspector() { diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index d81b9bbb82..bd2505f146 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -319,7 +319,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("interface/editor/display_scale", 0); hints["interface/editor/display_scale"] = PropertyInfo(Variant::INT, "interface/editor/display_scale", PROPERTY_HINT_ENUM, "Auto,75%,100%,125%,150%,175%,200%,Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/custom_display_scale", 1.0f); - hints["interface/editor/custom_display_scale"] = PropertyInfo(Variant::REAL, "interface/editor/custom_display_scale", PROPERTY_HINT_RANGE, "0.5,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + hints["interface/editor/custom_display_scale"] = PropertyInfo(Variant::FLOAT, "interface/editor/custom_display_scale", PROPERTY_HINT_RANGE, "0.5,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/main_font_size", 14); hints["interface/editor/main_font_size"] = PropertyInfo(Variant::INT, "interface/editor/main_font_size", PROPERTY_HINT_RANGE, "8,48,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/code_font_size", 14); @@ -335,9 +335,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["interface/editor/code_font"] = PropertyInfo(Variant::STRING, "interface/editor/code_font", PROPERTY_HINT_GLOBAL_FILE, "*.ttf,*.otf", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/dim_editor_on_dialog_popup", true); _initial_set("interface/editor/low_processor_mode_sleep_usec", 6900); // ~144 FPS - hints["interface/editor/low_processor_mode_sleep_usec"] = PropertyInfo(Variant::REAL, "interface/editor/low_processor_mode_sleep_usec", PROPERTY_HINT_RANGE, "1,100000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + hints["interface/editor/low_processor_mode_sleep_usec"] = PropertyInfo(Variant::FLOAT, "interface/editor/low_processor_mode_sleep_usec", PROPERTY_HINT_RANGE, "1,100000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/unfocused_low_processor_mode_sleep_usec", 50000); // 20 FPS - hints["interface/editor/unfocused_low_processor_mode_sleep_usec"] = PropertyInfo(Variant::REAL, "interface/editor/unfocused_low_processor_mode_sleep_usec", PROPERTY_HINT_RANGE, "1,100000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + hints["interface/editor/unfocused_low_processor_mode_sleep_usec"] = PropertyInfo(Variant::FLOAT, "interface/editor/unfocused_low_processor_mode_sleep_usec", PROPERTY_HINT_RANGE, "1,100000,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/separate_distraction_mode", false); _initial_set("interface/editor/automatically_open_screenshots", true); _initial_set("interface/editor/hide_console_window", false); @@ -354,15 +354,15 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("interface/theme/accent_color", Color(0.41, 0.61, 0.91)); hints["interface/theme/accent_color"] = PropertyInfo(Variant::COLOR, "interface/theme/accent_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT); _initial_set("interface/theme/contrast", 0.25); - hints["interface/theme/contrast"] = PropertyInfo(Variant::REAL, "interface/theme/contrast", PROPERTY_HINT_RANGE, "0.01, 1, 0.01"); + hints["interface/theme/contrast"] = PropertyInfo(Variant::FLOAT, "interface/theme/contrast", PROPERTY_HINT_RANGE, "0.01, 1, 0.01"); _initial_set("interface/theme/relationship_line_opacity", 0.1); - hints["interface/theme/relationship_line_opacity"] = PropertyInfo(Variant::REAL, "interface/theme/relationship_line_opacity", PROPERTY_HINT_RANGE, "0.00, 1, 0.01"); + hints["interface/theme/relationship_line_opacity"] = PropertyInfo(Variant::FLOAT, "interface/theme/relationship_line_opacity", PROPERTY_HINT_RANGE, "0.00, 1, 0.01"); _initial_set("interface/theme/highlight_tabs", false); _initial_set("interface/theme/border_size", 1); _initial_set("interface/theme/use_graph_node_headers", false); hints["interface/theme/border_size"] = PropertyInfo(Variant::INT, "interface/theme/border_size", PROPERTY_HINT_RANGE, "0,2,1", PROPERTY_USAGE_DEFAULT); _initial_set("interface/theme/additional_spacing", 0); - hints["interface/theme/additional_spacing"] = PropertyInfo(Variant::REAL, "interface/theme/additional_spacing", PROPERTY_HINT_RANGE, "0,5,0.1", PROPERTY_USAGE_DEFAULT); + hints["interface/theme/additional_spacing"] = PropertyInfo(Variant::FLOAT, "interface/theme/additional_spacing", PROPERTY_HINT_RANGE, "0,5,0.1", PROPERTY_USAGE_DEFAULT); _initial_set("interface/theme/custom_theme", ""); hints["interface/theme/custom_theme"] = PropertyInfo(Variant::STRING, "interface/theme/custom_theme", PROPERTY_HINT_GLOBAL_FILE, "*.res,*.tres,*.theme", PROPERTY_USAGE_DEFAULT); @@ -477,15 +477,15 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("text_editor/cursor/block_caret", false); _initial_set("text_editor/cursor/caret_blink", true); _initial_set("text_editor/cursor/caret_blink_speed", 0.5); - hints["text_editor/cursor/caret_blink_speed"] = PropertyInfo(Variant::REAL, "text_editor/cursor/caret_blink_speed", PROPERTY_HINT_RANGE, "0.1, 10, 0.01"); + hints["text_editor/cursor/caret_blink_speed"] = PropertyInfo(Variant::FLOAT, "text_editor/cursor/caret_blink_speed", PROPERTY_HINT_RANGE, "0.1, 10, 0.01"); _initial_set("text_editor/cursor/right_click_moves_caret", true); // Completion _initial_set("text_editor/completion/idle_parse_delay", 2.0); - hints["text_editor/completion/idle_parse_delay"] = PropertyInfo(Variant::REAL, "text_editor/completion/idle_parse_delay", PROPERTY_HINT_RANGE, "0.1, 10, 0.01"); + hints["text_editor/completion/idle_parse_delay"] = PropertyInfo(Variant::FLOAT, "text_editor/completion/idle_parse_delay", PROPERTY_HINT_RANGE, "0.1, 10, 0.01"); _initial_set("text_editor/completion/auto_brace_complete", true); _initial_set("text_editor/completion/code_complete_delay", 0.3); - hints["text_editor/completion/code_complete_delay"] = PropertyInfo(Variant::REAL, "text_editor/completion/code_complete_delay", PROPERTY_HINT_RANGE, "0.01, 5, 0.01"); + hints["text_editor/completion/code_complete_delay"] = PropertyInfo(Variant::FLOAT, "text_editor/completion/code_complete_delay", PROPERTY_HINT_RANGE, "0.01, 5, 0.01"); _initial_set("text_editor/completion/put_callhint_tooltip_below_current_line", true); _initial_set("text_editor/completion/callhint_tooltip_offset", Vector2()); _initial_set("text_editor/completion/complete_file_paths", true); @@ -541,23 +541,23 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // 3D: Navigation feel _initial_set("editors/3d/navigation_feel/orbit_sensitivity", 0.4); - hints["editors/3d/navigation_feel/orbit_sensitivity"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/orbit_sensitivity", PROPERTY_HINT_RANGE, "0.0, 2, 0.01"); + hints["editors/3d/navigation_feel/orbit_sensitivity"] = PropertyInfo(Variant::FLOAT, "editors/3d/navigation_feel/orbit_sensitivity", PROPERTY_HINT_RANGE, "0.0, 2, 0.01"); _initial_set("editors/3d/navigation_feel/orbit_inertia", 0.05); - hints["editors/3d/navigation_feel/orbit_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/orbit_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); + hints["editors/3d/navigation_feel/orbit_inertia"] = PropertyInfo(Variant::FLOAT, "editors/3d/navigation_feel/orbit_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); _initial_set("editors/3d/navigation_feel/translation_inertia", 0.15); - hints["editors/3d/navigation_feel/translation_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/translation_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); + hints["editors/3d/navigation_feel/translation_inertia"] = PropertyInfo(Variant::FLOAT, "editors/3d/navigation_feel/translation_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); _initial_set("editors/3d/navigation_feel/zoom_inertia", 0.075); - hints["editors/3d/navigation_feel/zoom_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/zoom_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); + hints["editors/3d/navigation_feel/zoom_inertia"] = PropertyInfo(Variant::FLOAT, "editors/3d/navigation_feel/zoom_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); _initial_set("editors/3d/navigation_feel/manipulation_orbit_inertia", 0.075); - hints["editors/3d/navigation_feel/manipulation_orbit_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/manipulation_orbit_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); + hints["editors/3d/navigation_feel/manipulation_orbit_inertia"] = PropertyInfo(Variant::FLOAT, "editors/3d/navigation_feel/manipulation_orbit_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); _initial_set("editors/3d/navigation_feel/manipulation_translation_inertia", 0.075); - hints["editors/3d/navigation_feel/manipulation_translation_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/navigation_feel/manipulation_translation_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); + hints["editors/3d/navigation_feel/manipulation_translation_inertia"] = PropertyInfo(Variant::FLOAT, "editors/3d/navigation_feel/manipulation_translation_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); // 3D: Freelook _initial_set("editors/3d/freelook/freelook_inertia", 0.1); - hints["editors/3d/freelook/freelook_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); + hints["editors/3d/freelook/freelook_inertia"] = PropertyInfo(Variant::FLOAT, "editors/3d/freelook/freelook_inertia", PROPERTY_HINT_RANGE, "0.0, 1, 0.01"); _initial_set("editors/3d/freelook/freelook_base_speed", 5.0); - hints["editors/3d/freelook/freelook_base_speed"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_base_speed", PROPERTY_HINT_RANGE, "0.0, 10, 0.01"); + hints["editors/3d/freelook/freelook_base_speed"] = PropertyInfo(Variant::FLOAT, "editors/3d/freelook/freelook_base_speed", PROPERTY_HINT_RANGE, "0.0, 10, 0.01"); _initial_set("editors/3d/freelook/freelook_activation_modifier", 0); hints["editors/3d/freelook/freelook_activation_modifier"] = PropertyInfo(Variant::INT, "editors/3d/freelook/freelook_activation_modifier", PROPERTY_HINT_ENUM, "None,Shift,Alt,Meta,Ctrl"); _initial_set("editors/3d/freelook/freelook_speed_zoom_link", false); diff --git a/editor/editor_spin_slider.cpp b/editor/editor_spin_slider.cpp index bdd5c57b43..9197546772 100644 --- a/editor/editor_spin_slider.cpp +++ b/editor/editor_spin_slider.cpp @@ -490,9 +490,9 @@ EditorSpinSlider::EditorSpinSlider() { grabber->hide(); grabber->set_as_toplevel(true); grabber->set_mouse_filter(MOUSE_FILTER_STOP); - grabber->connect("mouse_entered", this, "_grabber_mouse_entered"); - grabber->connect("mouse_exited", this, "_grabber_mouse_exited"); - grabber->connect("gui_input", this, "_grabber_gui_input"); + grabber->connect_compat("mouse_entered", this, "_grabber_mouse_entered"); + grabber->connect_compat("mouse_exited", this, "_grabber_mouse_exited"); + grabber->connect_compat("gui_input", this, "_grabber_gui_input"); mouse_over_spin = false; mouse_over_grabber = false; mousewheel_over_grabber = false; @@ -502,9 +502,9 @@ EditorSpinSlider::EditorSpinSlider() { add_child(value_input); value_input->set_as_toplevel(true); value_input->hide(); - value_input->connect("modal_closed", this, "_value_input_closed"); - value_input->connect("text_entered", this, "_value_input_entered"); - value_input->connect("focus_exited", this, "_value_focus_exited"); + value_input->connect_compat("modal_closed", this, "_value_input_closed"); + value_input->connect_compat("text_entered", this, "_value_input_entered"); + value_input->connect_compat("focus_exited", this, "_value_focus_exited"); value_input_just_closed = false; hide_slider = false; read_only = false; diff --git a/editor/editor_sub_scene.cpp b/editor/editor_sub_scene.cpp index cd533649e3..1dd3ac5246 100644 --- a/editor/editor_sub_scene.cpp +++ b/editor/editor_sub_scene.cpp @@ -239,24 +239,24 @@ EditorSubScene::EditorSubScene() { HBoxContainer *hb = memnew(HBoxContainer); path = memnew(LineEdit); - path->connect("text_entered", this, "_path_changed"); + path->connect_compat("text_entered", this, "_path_changed"); hb->add_child(path); path->set_h_size_flags(SIZE_EXPAND_FILL); Button *b = memnew(Button); b->set_text(TTR("Browse")); hb->add_child(b); - b->connect("pressed", this, "_path_browse"); + b->connect_compat("pressed", this, "_path_browse"); vb->add_margin_child(TTR("Scene Path:"), hb); tree = memnew(Tree); tree->set_v_size_flags(SIZE_EXPAND_FILL); vb->add_margin_child(TTR("Import From Node:"), tree, true); tree->set_select_mode(Tree::SELECT_MULTI); - tree->connect("multi_selected", this, "_item_multi_selected"); + tree->connect_compat("multi_selected", this, "_item_multi_selected"); //tree->connect("nothing_selected", this, "_deselect_items"); - tree->connect("cell_selected", this, "_selected_changed"); + tree->connect_compat("cell_selected", this, "_selected_changed"); - tree->connect("item_activated", this, "_ok", make_binds(), CONNECT_DEFERRED); + tree->connect_compat("item_activated", this, "_ok", make_binds(), CONNECT_DEFERRED); file_dialog = memnew(EditorFileDialog); List<String> extensions; @@ -269,5 +269,5 @@ EditorSubScene::EditorSubScene() { file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE); add_child(file_dialog); - file_dialog->connect("file_selected", this, "_path_selected"); + file_dialog->connect_compat("file_selected", this, "_path_selected"); } diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 50e3408037..39d4b70a6a 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -852,12 +852,11 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { Ref<StyleBoxFlat> style_panel_debugger = style_content_panel->duplicate(); style_panel_debugger->set_border_width(MARGIN_BOTTOM, 0); theme->set_stylebox("DebuggerPanel", "EditorStyles", style_panel_debugger); - theme->set_stylebox("DebuggerTabFG", "EditorStyles", style_tab_selected); - theme->set_stylebox("DebuggerTabBG", "EditorStyles", style_tab_unselected); Ref<StyleBoxFlat> style_panel_invisible_top = style_content_panel->duplicate(); int stylebox_offset = theme->get_font("tab_fg", "TabContainer")->get_height() + theme->get_stylebox("tab_fg", "TabContainer")->get_minimum_size().height + theme->get_stylebox("panel", "TabContainer")->get_default_margin(MARGIN_TOP); style_panel_invisible_top->set_expand_margin_size(MARGIN_TOP, -stylebox_offset); + style_panel_invisible_top->set_default_margin(MARGIN_TOP, 0); theme->set_stylebox("BottomPanelDebuggerOverride", "EditorStyles", style_panel_invisible_top); // LineEdit diff --git a/editor/editor_visual_profiler.cpp b/editor/editor_visual_profiler.cpp index 1b68a89181..5fb77181bc 100644 --- a/editor/editor_visual_profiler.cpp +++ b/editor/editor_visual_profiler.cpp @@ -161,7 +161,7 @@ void EditorVisualProfiler::_update_plot() { graph_image.resize(desired_len); } - PoolVector<uint8_t>::Write wr = graph_image.write(); + uint8_t *wr = graph_image.ptrw(); //clear for (int i = 0; i < desired_len; i += 4) { @@ -305,8 +305,6 @@ void EditorVisualProfiler::_update_plot() { } } - wr.release(); - Ref<Image> img; img.instance(); img->create(w, h, 0, Image::FORMAT_RGBA8, graph_image); @@ -590,8 +588,7 @@ void EditorVisualProfiler::_graph_tex_input(const Ref<InputEvent> &p_ev) { if (activate->is_pressed()) { if (!seeking) { - //probably not need to break request, can just stop profiling - //emit_signal("break_request"); + // Break request is not required, just stop profiling } } @@ -681,7 +678,6 @@ void EditorVisualProfiler::_bind_methods() { ClassDB::bind_method(D_METHOD("_item_selected"), &EditorVisualProfiler::_item_selected); ADD_SIGNAL(MethodInfo("enable_profiling", PropertyInfo(Variant::BOOL, "enable"))); - ADD_SIGNAL(MethodInfo("break_request")); } void EditorVisualProfiler::set_enabled(bool p_enable) { @@ -757,12 +753,12 @@ EditorVisualProfiler::EditorVisualProfiler() { activate = memnew(Button); activate->set_toggle_mode(true); activate->set_text(TTR("Start")); - activate->connect("pressed", this, "_activate_pressed"); + activate->connect_compat("pressed", this, "_activate_pressed"); hb->add_child(activate); clear_button = memnew(Button); clear_button->set_text(TTR("Clear")); - clear_button->connect("pressed", this, "_clear_pressed"); + clear_button->connect_compat("pressed", this, "_clear_pressed"); hb->add_child(clear_button); hb->add_child(memnew(Label(TTR("Measure:")))); @@ -770,18 +766,18 @@ EditorVisualProfiler::EditorVisualProfiler() { display_mode = memnew(OptionButton); display_mode->add_item(TTR("Frame Time (msec)")); display_mode->add_item(TTR("Frame %")); - display_mode->connect("item_selected", this, "_combo_changed"); + display_mode->connect_compat("item_selected", this, "_combo_changed"); hb->add_child(display_mode); frame_relative = memnew(CheckBox(TTR("Fit to Frame"))); frame_relative->set_pressed(true); hb->add_child(frame_relative); - frame_relative->connect("pressed", this, "_update_plot"); + frame_relative->connect_compat("pressed", this, "_update_plot"); linked = memnew(CheckBox(TTR("Linked"))); linked->set_pressed(true); hb->add_child(linked); - linked->connect("pressed", this, "_update_plot"); + linked->connect_compat("pressed", this, "_update_plot"); hb->add_spacer(); @@ -790,7 +786,7 @@ EditorVisualProfiler::EditorVisualProfiler() { cursor_metric_edit = memnew(SpinBox); cursor_metric_edit->set_h_size_flags(SIZE_FILL); hb->add_child(cursor_metric_edit); - cursor_metric_edit->connect("value_changed", this, "_cursor_metric_changed"); + cursor_metric_edit->connect_compat("value_changed", this, "_cursor_metric_changed"); hb->add_constant_override("separation", 8 * EDSCALE); @@ -814,15 +810,15 @@ EditorVisualProfiler::EditorVisualProfiler() { variables->set_column_title(2, TTR("GPU")); variables->set_column_expand(2, false); variables->set_column_min_width(2, 60 * EDSCALE); - variables->connect("cell_selected", this, "_item_selected"); + variables->connect_compat("cell_selected", this, "_item_selected"); graph = memnew(TextureRect); graph->set_expand(true); graph->set_mouse_filter(MOUSE_FILTER_STOP); //graph->set_ignore_mouse(false); - graph->connect("draw", this, "_graph_tex_draw"); - graph->connect("gui_input", this, "_graph_tex_input"); - graph->connect("mouse_exited", this, "_graph_tex_mouse_exit"); + graph->connect_compat("draw", this, "_graph_tex_draw"); + graph->connect_compat("gui_input", this, "_graph_tex_input"); + graph->connect_compat("mouse_exited", this, "_graph_tex_mouse_exit"); h_split->add_child(graph); graph->set_h_size_flags(SIZE_EXPAND_FILL); @@ -839,13 +835,13 @@ EditorVisualProfiler::EditorVisualProfiler() { frame_delay->set_wait_time(0.1); frame_delay->set_one_shot(true); add_child(frame_delay); - frame_delay->connect("timeout", this, "_update_frame"); + frame_delay->connect_compat("timeout", this, "_update_frame"); plot_delay = memnew(Timer); plot_delay->set_wait_time(0.1); plot_delay->set_one_shot(true); add_child(plot_delay); - plot_delay->connect("timeout", this, "_update_plot"); + plot_delay->connect_compat("timeout", this, "_update_plot"); seeking = false; graph_height_cpu = 1; diff --git a/editor/editor_visual_profiler.h b/editor/editor_visual_profiler.h index b4c03b227e..5194c08b96 100644 --- a/editor/editor_visual_profiler.h +++ b/editor/editor_visual_profiler.h @@ -78,7 +78,7 @@ private: TextureRect *graph; Ref<ImageTexture> graph_texture; - PoolVector<uint8_t> graph_image; + Vector<uint8_t> graph_image; Tree *variables; HSplitContainer *h_split; CheckBox *frame_relative; diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp index 7ed6688154..5ff4cb6246 100644 --- a/editor/export_template_manager.cpp +++ b/editor/export_template_manager.cpp @@ -93,14 +93,14 @@ void ExportTemplateManager::_update_template_list() { Button *redownload = memnew(Button); redownload->set_text(TTR("Redownload")); current_hb->add_child(redownload); - redownload->connect("pressed", this, "_download_template", varray(current_version)); + redownload->connect_compat("pressed", this, "_download_template", varray(current_version)); } Button *uninstall = memnew(Button); uninstall->set_text(TTR("Uninstall")); current_hb->add_child(uninstall); current->set_text(current_version + " " + TTR("(Installed)")); - uninstall->connect("pressed", this, "_uninstall_template", varray(current_version)); + uninstall->connect_compat("pressed", this, "_uninstall_template", varray(current_version)); } else { current->add_color_override("font_color", get_color("error_color", "Editor")); @@ -112,7 +112,7 @@ void ExportTemplateManager::_update_template_list() { redownload->set_tooltip(TTR("Official export templates aren't available for development builds.")); } - redownload->connect("pressed", this, "_download_template", varray(current_version)); + redownload->connect_compat("pressed", this, "_download_template", varray(current_version)); current_hb->add_child(redownload); current->set_text(current_version + " " + TTR("(Missing)")); } @@ -134,7 +134,7 @@ void ExportTemplateManager::_update_template_list() { uninstall->set_text(TTR("Uninstall")); hbc->add_child(uninstall); - uninstall->connect("pressed", this, "_uninstall_template", varray(E->get())); + uninstall->connect_compat("pressed", this, "_uninstall_template", varray(E->get())); installed_vb->add_child(hbc); } @@ -350,7 +350,7 @@ void ExportTemplateManager::ok_pressed() { template_open->popup_centered_ratio(); } -void ExportTemplateManager::_http_download_mirror_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data) { +void ExportTemplateManager::_http_download_mirror_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data) { if (p_status != HTTPRequest::RESULT_SUCCESS || p_code != 200) { EditorNode::get_singleton()->show_warning(TTR("Error getting the list of mirrors.")); @@ -359,8 +359,8 @@ void ExportTemplateManager::_http_download_mirror_completed(int p_status, int p_ String mirror_str; { - PoolByteArray::Read r = p_data.read(); - mirror_str.parse_utf8((const char *)r.ptr(), p_data.size()); + const uint8_t *r = p_data.ptr(); + mirror_str.parse_utf8((const char *)r, p_data.size()); } template_list_state->hide(); @@ -385,7 +385,7 @@ void ExportTemplateManager::_http_download_mirror_completed(int p_status, int p_ ERR_CONTINUE(!m.has("url") || !m.has("name")); LinkButton *lb = memnew(LinkButton); lb->set_text(m["name"]); - lb->connect("pressed", this, "_begin_template_download", varray(m["url"])); + lb->connect_compat("pressed", this, "_begin_template_download", varray(m["url"])); template_list->add_child(lb); mirrors_found = true; } @@ -396,7 +396,7 @@ void ExportTemplateManager::_http_download_mirror_completed(int p_status, int p_ return; } } -void ExportTemplateManager::_http_download_templates_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data) { +void ExportTemplateManager::_http_download_templates_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data) { switch (p_status) { @@ -689,14 +689,14 @@ ExportTemplateManager::ExportTemplateManager() { remove_confirm = memnew(ConfirmationDialog); remove_confirm->set_title(TTR("Remove Template")); add_child(remove_confirm); - remove_confirm->connect("confirmed", this, "_uninstall_template_confirm"); + remove_confirm->connect_compat("confirmed", this, "_uninstall_template_confirm"); template_open = memnew(FileDialog); template_open->set_title(TTR("Select Template File")); template_open->add_filter("*.tpz ; " + TTR("Godot Export Templates")); template_open->set_access(FileDialog::ACCESS_FILESYSTEM); template_open->set_mode(FileDialog::MODE_OPEN_FILE); - template_open->connect("file_selected", this, "_install_from_file", varray(true)); + template_open->connect_compat("file_selected", this, "_install_from_file", varray(true)); add_child(template_open); set_title(TTR("Export Template Manager")); @@ -704,18 +704,18 @@ ExportTemplateManager::ExportTemplateManager() { request_mirror = memnew(HTTPRequest); add_child(request_mirror); - request_mirror->connect("request_completed", this, "_http_download_mirror_completed"); + request_mirror->connect_compat("request_completed", this, "_http_download_mirror_completed"); download_templates = memnew(HTTPRequest); add_child(download_templates); - download_templates->connect("request_completed", this, "_http_download_templates_completed"); + download_templates->connect_compat("request_completed", this, "_http_download_templates_completed"); template_downloader = memnew(AcceptDialog); template_downloader->set_title(TTR("Download Templates")); template_downloader->get_ok()->set_text(TTR("Close")); template_downloader->set_exclusive(true); add_child(template_downloader); - template_downloader->connect("popup_hide", this, "_window_template_downloader_closed"); + template_downloader->connect_compat("popup_hide", this, "_window_template_downloader_closed"); VBoxContainer *vbc = memnew(VBoxContainer); template_downloader->add_child(vbc); diff --git a/editor/export_template_manager.h b/editor/export_template_manager.h index 96e61a6569..6ebc7fd131 100644 --- a/editor/export_template_manager.h +++ b/editor/export_template_manager.h @@ -72,8 +72,8 @@ class ExportTemplateManager : public ConfirmationDialog { virtual void ok_pressed(); bool _install_from_file(const String &p_file, bool p_use_progress = true); - void _http_download_mirror_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data); - void _http_download_templates_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data); + void _http_download_mirror_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data); + void _http_download_templates_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data); void _begin_template_download(const String &p_url); diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index a3def15532..5363d6a1e2 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -300,19 +300,19 @@ void FileSystemDock::_notification(int p_what) { if (initialized) return; initialized = true; - EditorFeatureProfileManager::get_singleton()->connect("current_feature_profile_changed", this, "_feature_profile_changed"); + EditorFeatureProfileManager::get_singleton()->connect_compat("current_feature_profile_changed", this, "_feature_profile_changed"); - EditorFileSystem::get_singleton()->connect("filesystem_changed", this, "_fs_changed"); - EditorResourcePreview::get_singleton()->connect("preview_invalidated", this, "_preview_invalidated"); + EditorFileSystem::get_singleton()->connect_compat("filesystem_changed", this, "_fs_changed"); + EditorResourcePreview::get_singleton()->connect_compat("preview_invalidated", this, "_preview_invalidated"); String ei = "EditorIcons"; button_reload->set_icon(get_icon("Reload", ei)); button_toggle_display_mode->set_icon(get_icon("Panels2", ei)); - button_file_list_display_mode->connect("pressed", this, "_toggle_file_display"); + button_file_list_display_mode->connect_compat("pressed", this, "_toggle_file_display"); - files->connect("item_activated", this, "_file_list_activate_file"); - button_hist_next->connect("pressed", this, "_fw_history"); - button_hist_prev->connect("pressed", this, "_bw_history"); + files->connect_compat("item_activated", this, "_file_list_activate_file"); + button_hist_next->connect_compat("pressed", this, "_fw_history"); + button_hist_prev->connect_compat("pressed", this, "_bw_history"); tree_search_box->set_right_icon(get_icon("Search", ei)); tree_search_box->set_clear_button_enabled(true); file_list_search_box->set_right_icon(get_icon("Search", ei)); @@ -320,10 +320,10 @@ void FileSystemDock::_notification(int p_what) { button_hist_next->set_icon(get_icon("Forward", ei)); button_hist_prev->set_icon(get_icon("Back", ei)); - file_list_popup->connect("id_pressed", this, "_file_list_rmb_option"); - tree_popup->connect("id_pressed", this, "_tree_rmb_option"); + file_list_popup->connect_compat("id_pressed", this, "_file_list_rmb_option"); + tree_popup->connect_compat("id_pressed", this, "_tree_rmb_option"); - current_path->connect("text_entered", this, "_navigate_to_path"); + current_path->connect_compat("text_entered", this, "_navigate_to_path"); always_show_folders = bool(EditorSettings::get_singleton()->get("docks/filesystem/always_show_folders")); @@ -1775,7 +1775,7 @@ void FileSystemDock::_file_option(int p_option, const Vector<String> &p_selected } } -void FileSystemDock::_resource_created() const { +void FileSystemDock::_resource_created() { Object *c = new_resource_dialog->instance_selected(); ERR_FAIL_COND(!c); @@ -2506,7 +2506,7 @@ void FileSystemDock::_bind_methods() { ClassDB::bind_method(D_METHOD("_feature_profile_changed"), &FileSystemDock::_feature_profile_changed); ADD_SIGNAL(MethodInfo("inherit", PropertyInfo(Variant::STRING, "file"))); - ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::POOL_STRING_ARRAY, "files"))); + ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::PACKED_STRING_ARRAY, "files"))); ADD_SIGNAL(MethodInfo("file_removed", PropertyInfo(Variant::STRING, "file"))); ADD_SIGNAL(MethodInfo("folder_removed", PropertyInfo(Variant::STRING, "folder"))); @@ -2552,7 +2552,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { button_reload = memnew(Button); button_reload->set_flat(true); - button_reload->connect("pressed", this, "_rescan"); + button_reload->connect_compat("pressed", this, "_rescan"); button_reload->set_focus_mode(FOCUS_NONE); button_reload->set_tooltip(TTR("Re-Scan Filesystem")); button_reload->hide(); @@ -2561,7 +2561,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { button_toggle_display_mode = memnew(Button); button_toggle_display_mode->set_flat(true); button_toggle_display_mode->set_toggle_mode(true); - button_toggle_display_mode->connect("toggled", this, "_toggle_split_mode"); + button_toggle_display_mode->connect_compat("toggled", this, "_toggle_split_mode"); button_toggle_display_mode->set_focus_mode(FOCUS_NONE); button_toggle_display_mode->set_tooltip(TTR("Toggle Split Mode")); toolbar_hbc->add_child(button_toggle_display_mode); @@ -2573,7 +2573,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { tree_search_box = memnew(LineEdit); tree_search_box->set_h_size_flags(SIZE_EXPAND_FILL); tree_search_box->set_placeholder(TTR("Search files")); - tree_search_box->connect("text_changed", this, "_search_changed", varray(tree_search_box)); + tree_search_box->connect_compat("text_changed", this, "_search_changed", varray(tree_search_box)); toolbar2_hbc->add_child(tree_search_box); file_list_popup = memnew(PopupMenu); @@ -2597,12 +2597,12 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { tree->set_custom_minimum_size(Size2(0, 15 * EDSCALE)); split_box->add_child(tree); - tree->connect("item_activated", this, "_tree_activate_file"); - tree->connect("multi_selected", this, "_tree_multi_selected"); - tree->connect("item_rmb_selected", this, "_tree_rmb_select"); - tree->connect("empty_rmb", this, "_tree_rmb_empty"); - tree->connect("nothing_selected", this, "_tree_empty_selected"); - tree->connect("gui_input", this, "_tree_gui_input"); + tree->connect_compat("item_activated", this, "_tree_activate_file"); + tree->connect_compat("multi_selected", this, "_tree_multi_selected"); + tree->connect_compat("item_rmb_selected", this, "_tree_rmb_select"); + tree->connect_compat("empty_rmb", this, "_tree_rmb_empty"); + tree->connect_compat("nothing_selected", this, "_tree_empty_selected"); + tree->connect_compat("gui_input", this, "_tree_gui_input"); file_list_vb = memnew(VBoxContainer); file_list_vb->set_v_size_flags(SIZE_EXPAND_FILL); @@ -2614,7 +2614,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { file_list_search_box = memnew(LineEdit); file_list_search_box->set_h_size_flags(SIZE_EXPAND_FILL); file_list_search_box->set_placeholder(TTR("Search files")); - file_list_search_box->connect("text_changed", this, "_search_changed", varray(file_list_search_box)); + file_list_search_box->connect_compat("text_changed", this, "_search_changed", varray(file_list_search_box)); path_hb->add_child(file_list_search_box); button_file_list_display_mode = memnew(ToolButton); @@ -2624,10 +2624,10 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { files->set_v_size_flags(SIZE_EXPAND_FILL); files->set_select_mode(ItemList::SELECT_MULTI); files->set_drag_forwarding(this); - files->connect("item_rmb_selected", this, "_file_list_rmb_select"); - files->connect("gui_input", this, "_file_list_gui_input"); - files->connect("multi_selected", this, "_file_multi_selected"); - files->connect("rmb_clicked", this, "_file_list_rmb_pressed"); + files->connect_compat("item_rmb_selected", this, "_file_list_rmb_select"); + files->connect_compat("gui_input", this, "_file_list_gui_input"); + files->connect_compat("multi_selected", this, "_file_multi_selected"); + files->connect_compat("rmb_clicked", this, "_file_list_rmb_pressed"); files->set_custom_minimum_size(Size2(0, 15 * EDSCALE)); files->set_allow_rmb_select(true); file_list_vb->add_child(files); @@ -2651,14 +2651,14 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { add_child(owners_editor); remove_dialog = memnew(DependencyRemoveDialog); - remove_dialog->connect("file_removed", this, "_file_deleted"); - remove_dialog->connect("folder_removed", this, "_folder_deleted"); + remove_dialog->connect_compat("file_removed", this, "_file_deleted"); + remove_dialog->connect_compat("folder_removed", this, "_folder_deleted"); add_child(remove_dialog); move_dialog = memnew(EditorDirDialog); move_dialog->get_ok()->set_text(TTR("Move")); add_child(move_dialog); - move_dialog->connect("dir_selected", this, "_move_operation_confirm"); + move_dialog->connect_compat("dir_selected", this, "_move_operation_confirm"); rename_dialog = memnew(ConfirmationDialog); VBoxContainer *rename_dialog_vb = memnew(VBoxContainer); @@ -2669,13 +2669,13 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { rename_dialog->get_ok()->set_text(TTR("Rename")); add_child(rename_dialog); rename_dialog->register_text_enter(rename_dialog_text); - rename_dialog->connect("confirmed", this, "_rename_operation_confirm"); + rename_dialog->connect_compat("confirmed", this, "_rename_operation_confirm"); overwrite_dialog = memnew(ConfirmationDialog); overwrite_dialog->set_text(TTR("There is already file or folder with the same name in this location.")); overwrite_dialog->get_ok()->set_text(TTR("Overwrite")); add_child(overwrite_dialog); - overwrite_dialog->connect("confirmed", this, "_move_with_overwrite"); + overwrite_dialog->connect_compat("confirmed", this, "_move_with_overwrite"); duplicate_dialog = memnew(ConfirmationDialog); VBoxContainer *duplicate_dialog_vb = memnew(VBoxContainer); @@ -2686,7 +2686,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { duplicate_dialog->get_ok()->set_text(TTR("Duplicate")); add_child(duplicate_dialog); duplicate_dialog->register_text_enter(duplicate_dialog_text); - duplicate_dialog->connect("confirmed", this, "_duplicate_operation_confirm"); + duplicate_dialog->connect_compat("confirmed", this, "_duplicate_operation_confirm"); make_dir_dialog = memnew(ConfirmationDialog); make_dir_dialog->set_title(TTR("Create Folder")); @@ -2697,7 +2697,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { make_folder_dialog_vb->add_margin_child(TTR("Name:"), make_dir_dialog_text); add_child(make_dir_dialog); make_dir_dialog->register_text_enter(make_dir_dialog_text); - make_dir_dialog->connect("confirmed", this, "_make_dir_confirm"); + make_dir_dialog->connect_compat("confirmed", this, "_make_dir_confirm"); make_scene_dialog = memnew(ConfirmationDialog); make_scene_dialog->set_title(TTR("Create Scene")); @@ -2708,7 +2708,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { make_scene_dialog_vb->add_margin_child(TTR("Name:"), make_scene_dialog_text); add_child(make_scene_dialog); make_scene_dialog->register_text_enter(make_scene_dialog_text); - make_scene_dialog->connect("confirmed", this, "_make_scene_confirm"); + make_scene_dialog->connect_compat("confirmed", this, "_make_scene_confirm"); make_script_dialog = memnew(ScriptCreateDialog); make_script_dialog->set_title(TTR("Create Script")); @@ -2717,7 +2717,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { new_resource_dialog = memnew(CreateDialog); add_child(new_resource_dialog); new_resource_dialog->set_base_type("Resource"); - new_resource_dialog->connect("create", this, "_resource_created"); + new_resource_dialog->connect_compat("create", this, "_resource_created"); searched_string = String(); uncollapsed_paths_before_search = Vector<String>(); diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index d20d4add4e..1969f85e72 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -215,7 +215,7 @@ private: void _files_moved(String p_old_file, String p_new_file); void _folder_moved(String p_old_folder, String p_new_folder); - void _resource_created() const; + void _resource_created(); void _make_dir_confirm(); void _make_scene_confirm(); void _rename_operation_confirm(); diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index 095e1b804a..0bc9b0585c 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -47,7 +47,7 @@ const char *FindInFiles::SIGNAL_RESULT_FOUND = "result_found"; const char *FindInFiles::SIGNAL_FINISHED = "finished"; -// TODO Would be nice in Vector and PoolVectors +// TODO Would be nice in Vector and Vectors template <typename T> inline void pop_back(T &container) { container.resize(container.size() - 1); @@ -132,8 +132,8 @@ void FindInFiles::start() { // Init search _current_dir = ""; - PoolStringArray init_folder; - init_folder.append(_root_dir); + PackedStringArray init_folder; + init_folder.push_back(_root_dir); _folders_stack.clear(); _folders_stack.push_back(init_folder); @@ -168,7 +168,7 @@ void FindInFiles::_iterate() { // Scan folders first so we can build a list of files and have progress info later - PoolStringArray &folders_to_scan = _folders_stack.write[_folders_stack.size() - 1]; + PackedStringArray &folders_to_scan = _folders_stack.write[_folders_stack.size() - 1]; if (folders_to_scan.size() != 0) { // Scan one folder below @@ -178,7 +178,7 @@ void FindInFiles::_iterate() { _current_dir = _current_dir.plus_file(folder_name); - PoolStringArray sub_dirs; + PackedStringArray sub_dirs; _scan_dir("res://" + _current_dir, sub_dirs); _folders_stack.push_back(sub_dirs); @@ -219,7 +219,7 @@ float FindInFiles::get_progress() const { return 0; } -void FindInFiles::_scan_dir(String path, PoolStringArray &out_folders) { +void FindInFiles::_scan_dir(String path, PackedStringArray &out_folders) { DirAccessRef dir = DirAccess::open(path); if (!dir) { @@ -242,7 +242,7 @@ void FindInFiles::_scan_dir(String path, PoolStringArray &out_folders) { continue; if (dir->current_is_dir()) - out_folders.append(file); + out_folders.push_back(file); else { String file_ext = file.get_extension(); @@ -319,8 +319,8 @@ FindInFilesDialog::FindInFilesDialog() { _search_text_line_edit = memnew(LineEdit); _search_text_line_edit->set_h_size_flags(SIZE_EXPAND_FILL); - _search_text_line_edit->connect("text_changed", this, "_on_search_text_modified"); - _search_text_line_edit->connect("text_entered", this, "_on_search_text_entered"); + _search_text_line_edit->connect_compat("text_changed", this, "_on_search_text_modified"); + _search_text_line_edit->connect_compat("text_entered", this, "_on_search_text_entered"); gc->add_child(_search_text_line_edit); _replace_label = memnew(Label); @@ -330,7 +330,7 @@ FindInFilesDialog::FindInFilesDialog() { _replace_text_line_edit = memnew(LineEdit); _replace_text_line_edit->set_h_size_flags(SIZE_EXPAND_FILL); - _replace_text_line_edit->connect("text_entered", this, "_on_replace_text_entered"); + _replace_text_line_edit->connect_compat("text_entered", this, "_on_replace_text_entered"); _replace_text_line_edit->hide(); gc->add_child(_replace_text_line_edit); @@ -367,12 +367,12 @@ FindInFilesDialog::FindInFilesDialog() { Button *folder_button = memnew(Button); folder_button->set_text("..."); - folder_button->connect("pressed", this, "_on_folder_button_pressed"); + folder_button->connect_compat("pressed", this, "_on_folder_button_pressed"); hbc->add_child(folder_button); _folder_dialog = memnew(FileDialog); _folder_dialog->set_mode(FileDialog::MODE_OPEN_DIR); - _folder_dialog->connect("dir_selected", this, "_on_folder_selected"); + _folder_dialog->connect_compat("dir_selected", this, "_on_folder_selected"); add_child(_folder_dialog); gc->add_child(hbc); @@ -563,8 +563,8 @@ const char *FindInFilesPanel::SIGNAL_FILES_MODIFIED = "files_modified"; FindInFilesPanel::FindInFilesPanel() { _finder = memnew(FindInFiles); - _finder->connect(FindInFiles::SIGNAL_RESULT_FOUND, this, "_on_result_found"); - _finder->connect(FindInFiles::SIGNAL_FINISHED, this, "_on_finished"); + _finder->connect_compat(FindInFiles::SIGNAL_RESULT_FOUND, this, "_on_result_found"); + _finder->connect_compat(FindInFiles::SIGNAL_FINISHED, this, "_on_finished"); add_child(_finder); VBoxContainer *vbc = memnew(VBoxContainer); @@ -594,9 +594,15 @@ FindInFilesPanel::FindInFilesPanel() { _status_label = memnew(Label); hbc->add_child(_status_label); + _refresh_button = memnew(Button); + _refresh_button->set_text(TTR("Refresh")); + _refresh_button->connect_compat("pressed", this, "_on_refresh_button_clicked"); + _refresh_button->hide(); + hbc->add_child(_refresh_button); + _cancel_button = memnew(Button); _cancel_button->set_text(TTR("Cancel")); - _cancel_button->connect("pressed", this, "_on_cancel_button_clicked"); + _cancel_button->connect_compat("pressed", this, "_on_cancel_button_clicked"); _cancel_button->hide(); hbc->add_child(_cancel_button); @@ -606,8 +612,8 @@ FindInFilesPanel::FindInFilesPanel() { _results_display = memnew(Tree); _results_display->add_font_override("font", EditorNode::get_singleton()->get_gui_base()->get_font("source", "EditorFonts")); _results_display->set_v_size_flags(SIZE_EXPAND_FILL); - _results_display->connect("item_selected", this, "_on_result_selected"); - _results_display->connect("item_edited", this, "_on_item_edited"); + _results_display->connect_compat("item_selected", this, "_on_result_selected"); + _results_display->connect_compat("item_edited", this, "_on_item_edited"); _results_display->set_hide_root(true); _results_display->set_select_mode(Tree::SELECT_ROW); _results_display->set_allow_rmb_select(true); @@ -625,12 +631,12 @@ FindInFilesPanel::FindInFilesPanel() { _replace_line_edit = memnew(LineEdit); _replace_line_edit->set_h_size_flags(SIZE_EXPAND_FILL); - _replace_line_edit->connect("text_changed", this, "_on_replace_text_changed"); + _replace_line_edit->connect_compat("text_changed", this, "_on_replace_text_changed"); _replace_container->add_child(_replace_line_edit); _replace_all_button = memnew(Button); _replace_all_button->set_text(TTR("Replace all (no undo)")); - _replace_all_button->connect("pressed", this, "_on_replace_all_clicked"); + _replace_all_button->connect_compat("pressed", this, "_on_replace_all_clicked"); _replace_container->add_child(_replace_all_button); _replace_container->hide(); @@ -681,6 +687,7 @@ void FindInFilesPanel::start_search() { _finder->start(); update_replace_buttons(); + _refresh_button->hide(); _cancel_button->show(); } @@ -691,6 +698,7 @@ void FindInFilesPanel::stop_search() { _status_label->set_text(""); update_replace_buttons(); set_progress_visible(false); + _refresh_button->show(); _cancel_button->hide(); } @@ -793,9 +801,14 @@ void FindInFilesPanel::_on_finished() { _status_label->set_text(TTR("Search complete")); update_replace_buttons(); set_progress_visible(false); + _refresh_button->show(); _cancel_button->hide(); } +void FindInFilesPanel::_on_refresh_button_clicked() { + start_search(); +} + void FindInFilesPanel::_on_cancel_button_clicked() { stop_search(); } @@ -823,7 +836,7 @@ void FindInFilesPanel::_on_replace_all_clicked() { String replace_text = get_replace_text(); - PoolStringArray modified_files; + PackedStringArray modified_files; for (Map<String, TreeItem *>::Element *E = _file_items.front(); E; E = E->next()) { @@ -844,7 +857,7 @@ void FindInFilesPanel::_on_replace_all_clicked() { if (locations.size() != 0) { // Results are sorted by file, so we can batch replaces apply_replaces_in_file(fpath, locations, replace_text); - modified_files.append(fpath); + modified_files.push_back(fpath); } } @@ -970,6 +983,7 @@ void FindInFilesPanel::_bind_methods() { ClassDB::bind_method("_on_result_found", &FindInFilesPanel::_on_result_found); ClassDB::bind_method("_on_item_edited", &FindInFilesPanel::_on_item_edited); ClassDB::bind_method("_on_finished", &FindInFilesPanel::_on_finished); + ClassDB::bind_method("_on_refresh_button_clicked", &FindInFilesPanel::_on_refresh_button_clicked); ClassDB::bind_method("_on_cancel_button_clicked", &FindInFilesPanel::_on_cancel_button_clicked); ClassDB::bind_method("_on_result_selected", &FindInFilesPanel::_on_result_selected); ClassDB::bind_method("_on_replace_text_changed", &FindInFilesPanel::_on_replace_text_changed); diff --git a/editor/find_in_files.h b/editor/find_in_files.h index 243f59096a..7002f750b7 100644 --- a/editor/find_in_files.h +++ b/editor/find_in_files.h @@ -69,7 +69,7 @@ protected: private: void _process(); void _iterate(); - void _scan_dir(String path, PoolStringArray &out_folders); + void _scan_dir(String path, PackedStringArray &out_folders); void _scan_file(String fpath); // Config @@ -82,7 +82,7 @@ private: // State bool _searching; String _current_dir; - Vector<PoolStringArray> _folders_stack; + Vector<PackedStringArray> _folders_stack; Vector<String> _files_to_scan; int _initial_files_count; }; @@ -179,6 +179,7 @@ protected: private: void _on_result_found(String fpath, int line_number, int begin, int end, String text); void _on_finished(); + void _on_refresh_button_clicked(); void _on_cancel_button_clicked(); void _on_result_selected(); void _on_item_edited(); @@ -206,6 +207,7 @@ private: Label *_search_text_label; Tree *_results_display; Label *_status_label; + Button *_refresh_button; Button *_cancel_button; ProgressBar *_progress_bar; Map<String, TreeItem *> _file_items; diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp index cd185ae12e..444958b0ac 100644 --- a/editor/groups_editor.cpp +++ b/editor/groups_editor.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "groups_editor.h" + #include "editor/scene_tree_editor.h" #include "editor_node.h" #include "editor_scale.h" @@ -435,9 +436,9 @@ GroupDialog::GroupDialog() { groups->set_allow_rmb_select(true); groups->set_v_size_flags(SIZE_EXPAND_FILL); groups->add_constant_override("draw_guides", 1); - groups->connect("item_selected", this, "_group_selected"); - groups->connect("button_pressed", this, "_delete_group_pressed"); - groups->connect("item_edited", this, "_group_renamed"); + groups->connect_compat("item_selected", this, "_group_selected"); + groups->connect_compat("button_pressed", this, "_delete_group_pressed"); + groups->connect_compat("item_edited", this, "_group_renamed"); HBoxContainer *chbc = memnew(HBoxContainer); vbc_left->add_child(chbc); @@ -446,12 +447,12 @@ GroupDialog::GroupDialog() { add_group_text = memnew(LineEdit); chbc->add_child(add_group_text); add_group_text->set_h_size_flags(SIZE_EXPAND_FILL); - add_group_text->connect("text_entered", this, "_add_group_pressed"); + add_group_text->connect_compat("text_entered", this, "_add_group_pressed"); Button *add_group_button = memnew(Button); add_group_button->set_text(TTR("Add")); chbc->add_child(add_group_button); - add_group_button->connect("pressed", this, "_add_group_pressed", varray(String())); + add_group_button->connect_compat("pressed", this, "_add_group_pressed", varray(String())); VBoxContainer *vbc_add = memnew(VBoxContainer); hbc->add_child(vbc_add); @@ -468,7 +469,6 @@ GroupDialog::GroupDialog() { nodes_to_add->set_select_mode(Tree::SELECT_MULTI); nodes_to_add->set_v_size_flags(SIZE_EXPAND_FILL); nodes_to_add->add_constant_override("draw_guides", 1); - nodes_to_add->connect("item_selected", this, "_nodes_to_add_selected"); HBoxContainer *add_filter_hbc = memnew(HBoxContainer); add_filter_hbc->add_constant_override("separate", 0); @@ -478,7 +478,7 @@ GroupDialog::GroupDialog() { add_filter->set_h_size_flags(SIZE_EXPAND_FILL); add_filter->set_placeholder(TTR("Filter nodes")); add_filter_hbc->add_child(add_filter); - add_filter->connect("text_changed", this, "_add_filter_changed"); + add_filter->connect_compat("text_changed", this, "_add_filter_changed"); VBoxContainer *vbc_buttons = memnew(VBoxContainer); hbc->add_child(vbc_buttons); @@ -487,7 +487,7 @@ GroupDialog::GroupDialog() { add_button = memnew(ToolButton); add_button->set_text(TTR("Add")); - add_button->connect("pressed", this, "_add_pressed"); + add_button->connect_compat("pressed", this, "_add_pressed"); vbc_buttons->add_child(add_button); vbc_buttons->add_spacer(); @@ -496,7 +496,7 @@ GroupDialog::GroupDialog() { remove_button = memnew(ToolButton); remove_button->set_text(TTR("Remove")); - remove_button->connect("pressed", this, "_removed_pressed"); + remove_button->connect_compat("pressed", this, "_removed_pressed"); vbc_buttons->add_child(remove_button); @@ -515,7 +515,6 @@ GroupDialog::GroupDialog() { nodes_to_remove->set_hide_folding(true); nodes_to_remove->set_select_mode(Tree::SELECT_MULTI); nodes_to_remove->add_constant_override("draw_guides", 1); - nodes_to_remove->connect("item_selected", this, "_node_to_remove_selected"); HBoxContainer *remove_filter_hbc = memnew(HBoxContainer); remove_filter_hbc->add_constant_override("separate", 0); @@ -525,7 +524,7 @@ GroupDialog::GroupDialog() { remove_filter->set_h_size_flags(SIZE_EXPAND_FILL); remove_filter->set_placeholder(TTR("Filter nodes")); remove_filter_hbc->add_child(remove_filter); - remove_filter->connect("text_changed", this, "_remove_filter_changed"); + remove_filter->connect_compat("text_changed", this, "_remove_filter_changed"); group_empty = memnew(Label()); group_empty->set_text(TTR("Empty groups will be automatically removed.")); @@ -686,12 +685,12 @@ GroupsEditor::GroupsEditor() { group_dialog = memnew(GroupDialog); group_dialog->set_as_toplevel(true); add_child(group_dialog); - group_dialog->connect("group_edited", this, "update_tree"); + group_dialog->connect_compat("group_edited", this, "update_tree"); Button *group_dialog_button = memnew(Button); group_dialog_button->set_text(TTR("Manage Groups")); vbc->add_child(group_dialog_button); - group_dialog_button->connect("pressed", this, "_show_group_dialog"); + group_dialog_button->connect_compat("pressed", this, "_show_group_dialog"); HBoxContainer *hbc = memnew(HBoxContainer); vbc->add_child(hbc); @@ -699,18 +698,18 @@ GroupsEditor::GroupsEditor() { group_name = memnew(LineEdit); group_name->set_h_size_flags(SIZE_EXPAND_FILL); hbc->add_child(group_name); - group_name->connect("text_entered", this, "_add_group"); + group_name->connect_compat("text_entered", this, "_add_group"); add = memnew(Button); add->set_text(TTR("Add")); hbc->add_child(add); - add->connect("pressed", this, "_add_group", varray(String())); + add->connect_compat("pressed", this, "_add_group", varray(String())); tree = memnew(Tree); tree->set_hide_root(true); tree->set_v_size_flags(SIZE_EXPAND_FILL); vbc->add_child(tree); - tree->connect("button_pressed", this, "_remove_group"); + tree->connect_compat("button_pressed", this, "_remove_group"); tree->add_constant_override("draw_guides", 1); add_constant_override("separation", 3 * EDSCALE); } diff --git a/editor/icons/icon_2_d.svg b/editor/icons/2D.svg index e1a96aeab6..e1a96aeab6 100644 --- a/editor/icons/icon_2_d.svg +++ b/editor/icons/2D.svg diff --git a/editor/icons/icon_3_d.svg b/editor/icons/3D.svg index 2a1d5ff36d..2a1d5ff36d 100644 --- a/editor/icons/icon_3_d.svg +++ b/editor/icons/3D.svg diff --git a/editor/icons/icon_a_a_b_b.svg b/editor/icons/AABB.svg index d6fbc52541..d6fbc52541 100644 --- a/editor/icons/icon_a_a_b_b.svg +++ b/editor/icons/AABB.svg diff --git a/editor/icons/icon_a_r_v_r_anchor.svg b/editor/icons/ARVRAnchor.svg index f1571b3fcc..f1571b3fcc 100644 --- a/editor/icons/icon_a_r_v_r_anchor.svg +++ b/editor/icons/ARVRAnchor.svg diff --git a/editor/icons/icon_a_r_v_r_camera.svg b/editor/icons/ARVRCamera.svg index f59a8c8b4a..f59a8c8b4a 100644 --- a/editor/icons/icon_a_r_v_r_camera.svg +++ b/editor/icons/ARVRCamera.svg diff --git a/editor/icons/icon_a_r_v_r_controller.svg b/editor/icons/ARVRController.svg index 40e5b8dce1..40e5b8dce1 100644 --- a/editor/icons/icon_a_r_v_r_controller.svg +++ b/editor/icons/ARVRController.svg diff --git a/editor/icons/icon_a_r_v_r_origin.svg b/editor/icons/ARVROrigin.svg index dbb93ba7a5..dbb93ba7a5 100644 --- a/editor/icons/icon_a_r_v_r_origin.svg +++ b/editor/icons/ARVROrigin.svg diff --git a/editor/icons/icon_accept_dialog.svg b/editor/icons/AcceptDialog.svg index e0bf7b8336..e0bf7b8336 100644 --- a/editor/icons/icon_accept_dialog.svg +++ b/editor/icons/AcceptDialog.svg diff --git a/editor/icons/icon_action_copy.svg b/editor/icons/ActionCopy.svg index d7a1e1097a..d7a1e1097a 100644 --- a/editor/icons/icon_action_copy.svg +++ b/editor/icons/ActionCopy.svg diff --git a/editor/icons/icon_action_cut.svg b/editor/icons/ActionCut.svg index 97df9b2d5a..97df9b2d5a 100644 --- a/editor/icons/icon_action_cut.svg +++ b/editor/icons/ActionCut.svg diff --git a/editor/icons/icon_action_paste.svg b/editor/icons/ActionPaste.svg index 6d46f899f8..6d46f899f8 100644 --- a/editor/icons/icon_action_paste.svg +++ b/editor/icons/ActionPaste.svg diff --git a/editor/icons/icon_add.svg b/editor/icons/Add.svg index a241829603..a241829603 100644 --- a/editor/icons/icon_add.svg +++ b/editor/icons/Add.svg diff --git a/editor/icons/icon_add_atlas_tile.svg b/editor/icons/AddAtlasTile.svg index 97d3590678..97d3590678 100644 --- a/editor/icons/icon_add_atlas_tile.svg +++ b/editor/icons/AddAtlasTile.svg diff --git a/editor/icons/icon_add_autotile.svg b/editor/icons/AddAutotile.svg index c6f1df422d..c6f1df422d 100644 --- a/editor/icons/icon_add_autotile.svg +++ b/editor/icons/AddAutotile.svg diff --git a/editor/icons/icon_add_single_tile.svg b/editor/icons/AddSingleTile.svg index 319fef8078..319fef8078 100644 --- a/editor/icons/icon_add_single_tile.svg +++ b/editor/icons/AddSingleTile.svg diff --git a/editor/icons/icon_add_split.svg b/editor/icons/AddSplit.svg index 1f33e8c72b..1f33e8c72b 100644 --- a/editor/icons/icon_add_split.svg +++ b/editor/icons/AddSplit.svg diff --git a/editor/icons/icon_anchor.svg b/editor/icons/Anchor.svg index 119960d177..119960d177 100644 --- a/editor/icons/icon_anchor.svg +++ b/editor/icons/Anchor.svg diff --git a/editor/icons/icon_animated_sprite.svg b/editor/icons/AnimatedSprite.svg index 411ddda015..411ddda015 100644 --- a/editor/icons/icon_animated_sprite.svg +++ b/editor/icons/AnimatedSprite.svg diff --git a/editor/icons/icon_animated_sprite_3d.svg b/editor/icons/AnimatedSprite3D.svg index 974c4e04eb..974c4e04eb 100644 --- a/editor/icons/icon_animated_sprite_3d.svg +++ b/editor/icons/AnimatedSprite3D.svg diff --git a/editor/icons/icon_animated_texture.svg b/editor/icons/AnimatedTexture.svg index 3719b64747..3719b64747 100644 --- a/editor/icons/icon_animated_texture.svg +++ b/editor/icons/AnimatedTexture.svg diff --git a/editor/icons/icon_animation.svg b/editor/icons/Animation.svg index 2cb738a8a6..2cb738a8a6 100644 --- a/editor/icons/icon_animation.svg +++ b/editor/icons/Animation.svg diff --git a/editor/icons/icon_animation_filter.svg b/editor/icons/AnimationFilter.svg index 45c323543d..45c323543d 100644 --- a/editor/icons/icon_animation_filter.svg +++ b/editor/icons/AnimationFilter.svg diff --git a/editor/icons/icon_animation_player.svg b/editor/icons/AnimationPlayer.svg index a5f7804e0d..a5f7804e0d 100644 --- a/editor/icons/icon_animation_player.svg +++ b/editor/icons/AnimationPlayer.svg diff --git a/editor/icons/icon_animation_track_group.svg b/editor/icons/AnimationTrackGroup.svg index d0d14b7c44..d0d14b7c44 100644 --- a/editor/icons/icon_animation_track_group.svg +++ b/editor/icons/AnimationTrackGroup.svg diff --git a/editor/icons/icon_animation_track_list.svg b/editor/icons/AnimationTrackList.svg index e47c8b18cb..e47c8b18cb 100644 --- a/editor/icons/icon_animation_track_list.svg +++ b/editor/icons/AnimationTrackList.svg diff --git a/editor/icons/icon_animation_tree.svg b/editor/icons/AnimationTree.svg index 718eaac2d2..718eaac2d2 100644 --- a/editor/icons/icon_animation_tree.svg +++ b/editor/icons/AnimationTree.svg diff --git a/editor/icons/icon_area.svg b/editor/icons/Area.svg index 21ebe3c251..21ebe3c251 100644 --- a/editor/icons/icon_area.svg +++ b/editor/icons/Area.svg diff --git a/editor/icons/icon_area_2d.svg b/editor/icons/Area2D.svg index e374205b13..e374205b13 100644 --- a/editor/icons/icon_area_2d.svg +++ b/editor/icons/Area2D.svg diff --git a/editor/icons/icon_array.svg b/editor/icons/Array.svg index d499fcac3a..d499fcac3a 100644 --- a/editor/icons/icon_array.svg +++ b/editor/icons/Array.svg diff --git a/editor/icons/icon_array_mesh.svg b/editor/icons/ArrayMesh.svg index 394a18623d..394a18623d 100644 --- a/editor/icons/icon_array_mesh.svg +++ b/editor/icons/ArrayMesh.svg diff --git a/editor/icons/icon_arrow_down.svg b/editor/icons/ArrowDown.svg index 49a93e6e28..49a93e6e28 100644 --- a/editor/icons/icon_arrow_down.svg +++ b/editor/icons/ArrowDown.svg diff --git a/editor/icons/icon_arrow_left.svg b/editor/icons/ArrowLeft.svg index fbbe5d9075..fbbe5d9075 100644 --- a/editor/icons/icon_arrow_left.svg +++ b/editor/icons/ArrowLeft.svg diff --git a/editor/icons/icon_arrow_right.svg b/editor/icons/ArrowRight.svg index 7895158bb1..7895158bb1 100644 --- a/editor/icons/icon_arrow_right.svg +++ b/editor/icons/ArrowRight.svg diff --git a/editor/icons/icon_arrow_up.svg b/editor/icons/ArrowUp.svg index 9bf19a6a12..9bf19a6a12 100644 --- a/editor/icons/icon_arrow_up.svg +++ b/editor/icons/ArrowUp.svg diff --git a/editor/icons/icon_asset_lib.svg b/editor/icons/AssetLib.svg index 72b20ec047..72b20ec047 100644 --- a/editor/icons/icon_asset_lib.svg +++ b/editor/icons/AssetLib.svg diff --git a/editor/icons/icon_atlas_texture.svg b/editor/icons/AtlasTexture.svg index 28a44e179a..28a44e179a 100644 --- a/editor/icons/icon_atlas_texture.svg +++ b/editor/icons/AtlasTexture.svg diff --git a/editor/icons/icon_audio_bus_bypass.svg b/editor/icons/AudioBusBypass.svg index c251a7c83f..c251a7c83f 100644 --- a/editor/icons/icon_audio_bus_bypass.svg +++ b/editor/icons/AudioBusBypass.svg diff --git a/editor/icons/icon_audio_bus_layout.svg b/editor/icons/AudioBusLayout.svg index f95794a7c7..f95794a7c7 100644 --- a/editor/icons/icon_audio_bus_layout.svg +++ b/editor/icons/AudioBusLayout.svg diff --git a/editor/icons/icon_audio_bus_mute.svg b/editor/icons/AudioBusMute.svg index 4750b0fec0..4750b0fec0 100644 --- a/editor/icons/icon_audio_bus_mute.svg +++ b/editor/icons/AudioBusMute.svg diff --git a/editor/icons/icon_audio_bus_solo.svg b/editor/icons/AudioBusSolo.svg index 5be72a8961..5be72a8961 100644 --- a/editor/icons/icon_audio_bus_solo.svg +++ b/editor/icons/AudioBusSolo.svg diff --git a/editor/icons/icon_audio_stream_o_g_g_vorbis.svg b/editor/icons/AudioStreamOGGVorbis.svg index a8d6fb6bf1..a8d6fb6bf1 100644 --- a/editor/icons/icon_audio_stream_o_g_g_vorbis.svg +++ b/editor/icons/AudioStreamOGGVorbis.svg diff --git a/editor/icons/icon_audio_stream_player.svg b/editor/icons/AudioStreamPlayer.svg index bbe2793407..bbe2793407 100644 --- a/editor/icons/icon_audio_stream_player.svg +++ b/editor/icons/AudioStreamPlayer.svg diff --git a/editor/icons/icon_audio_stream_player_2_d.svg b/editor/icons/AudioStreamPlayer2D.svg index 090b23ff7c..090b23ff7c 100644 --- a/editor/icons/icon_audio_stream_player_2_d.svg +++ b/editor/icons/AudioStreamPlayer2D.svg diff --git a/editor/icons/icon_audio_stream_player_3_d.svg b/editor/icons/AudioStreamPlayer3D.svg index 95da9818aa..95da9818aa 100644 --- a/editor/icons/icon_audio_stream_player_3_d.svg +++ b/editor/icons/AudioStreamPlayer3D.svg diff --git a/editor/icons/icon_audio_stream_sample.svg b/editor/icons/AudioStreamSample.svg index a8d6fb6bf1..a8d6fb6bf1 100644 --- a/editor/icons/icon_audio_stream_sample.svg +++ b/editor/icons/AudioStreamSample.svg diff --git a/editor/icons/icon_auto_end.svg b/editor/icons/AutoEnd.svg index 35f5fb2b1c..35f5fb2b1c 100644 --- a/editor/icons/icon_auto_end.svg +++ b/editor/icons/AutoEnd.svg diff --git a/editor/icons/icon_auto_key.svg b/editor/icons/AutoKey.svg index 3d5569397f..3d5569397f 100644 --- a/editor/icons/icon_auto_key.svg +++ b/editor/icons/AutoKey.svg diff --git a/editor/icons/icon_auto_play.svg b/editor/icons/AutoPlay.svg index dbe41f244f..dbe41f244f 100644 --- a/editor/icons/icon_auto_play.svg +++ b/editor/icons/AutoPlay.svg diff --git a/editor/icons/icon_auto_triangle.svg b/editor/icons/AutoTriangle.svg index 13b8f7c5d2..13b8f7c5d2 100644 --- a/editor/icons/icon_auto_triangle.svg +++ b/editor/icons/AutoTriangle.svg diff --git a/editor/icons/icon_back.svg b/editor/icons/Back.svg index c8ea97fa5c..c8ea97fa5c 100644 --- a/editor/icons/icon_back.svg +++ b/editor/icons/Back.svg diff --git a/editor/icons/icon_back_buffer_copy.svg b/editor/icons/BackBufferCopy.svg index c16cfe9009..c16cfe9009 100644 --- a/editor/icons/icon_back_buffer_copy.svg +++ b/editor/icons/BackBufferCopy.svg diff --git a/editor/icons/icon_bake.svg b/editor/icons/Bake.svg index 9bcfb174dc..9bcfb174dc 100644 --- a/editor/icons/icon_bake.svg +++ b/editor/icons/Bake.svg diff --git a/editor/icons/icon_baked_lightmap.svg b/editor/icons/BakedLightmap.svg index 338a100022..338a100022 100644 --- a/editor/icons/icon_baked_lightmap.svg +++ b/editor/icons/BakedLightmap.svg diff --git a/editor/icons/icon_baked_lightmap_data.svg b/editor/icons/BakedLightmapData.svg index e8d471c2af..e8d471c2af 100644 --- a/editor/icons/icon_baked_lightmap_data.svg +++ b/editor/icons/BakedLightmapData.svg diff --git a/editor/icons/icon_basis.svg b/editor/icons/Basis.svg index ecdb0f4ec0..ecdb0f4ec0 100644 --- a/editor/icons/icon_basis.svg +++ b/editor/icons/Basis.svg diff --git a/editor/icons/icon_bezier_handles_balanced.svg b/editor/icons/BezierHandlesBalanced.svg index 6656d3f5eb..6656d3f5eb 100644 --- a/editor/icons/icon_bezier_handles_balanced.svg +++ b/editor/icons/BezierHandlesBalanced.svg diff --git a/editor/icons/icon_bezier_handles_free.svg b/editor/icons/BezierHandlesFree.svg index 06abfe34ab..06abfe34ab 100644 --- a/editor/icons/icon_bezier_handles_free.svg +++ b/editor/icons/BezierHandlesFree.svg diff --git a/editor/icons/icon_bezier_handles_mirror.svg b/editor/icons/BezierHandlesMirror.svg index be85f170c7..be85f170c7 100644 --- a/editor/icons/icon_bezier_handles_mirror.svg +++ b/editor/icons/BezierHandlesMirror.svg diff --git a/editor/icons/icon_bit_map.svg b/editor/icons/BitMap.svg index b61c1b7dc5..b61c1b7dc5 100644 --- a/editor/icons/icon_bit_map.svg +++ b/editor/icons/BitMap.svg diff --git a/editor/icons/icon_bitmap_font.svg b/editor/icons/BitmapFont.svg index 5e5bd859c9..5e5bd859c9 100644 --- a/editor/icons/icon_bitmap_font.svg +++ b/editor/icons/BitmapFont.svg diff --git a/editor/icons/icon_blend.svg b/editor/icons/Blend.svg index c78b9287fa..c78b9287fa 100644 --- a/editor/icons/icon_blend.svg +++ b/editor/icons/Blend.svg diff --git a/editor/icons/icon_bone.svg b/editor/icons/Bone.svg index fafebb0394..fafebb0394 100644 --- a/editor/icons/icon_bone.svg +++ b/editor/icons/Bone.svg diff --git a/editor/icons/icon_bone_2_d.svg b/editor/icons/Bone2D.svg index 94bfff61e4..94bfff61e4 100644 --- a/editor/icons/icon_bone_2_d.svg +++ b/editor/icons/Bone2D.svg diff --git a/editor/icons/icon_bone_attachment.svg b/editor/icons/BoneAttachment.svg index 0b7dede0b6..0b7dede0b6 100644 --- a/editor/icons/icon_bone_attachment.svg +++ b/editor/icons/BoneAttachment.svg diff --git a/editor/icons/icon_bone_track.svg b/editor/icons/BoneTrack.svg index 0f6f9bb6cd..0f6f9bb6cd 100644 --- a/editor/icons/icon_bone_track.svg +++ b/editor/icons/BoneTrack.svg diff --git a/editor/icons/icon_box_shape.svg b/editor/icons/BoxShape.svg index 171e95f4fa..171e95f4fa 100644 --- a/editor/icons/icon_box_shape.svg +++ b/editor/icons/BoxShape.svg diff --git a/editor/icons/icon_bucket.svg b/editor/icons/Bucket.svg index fc3481290d..fc3481290d 100644 --- a/editor/icons/icon_bucket.svg +++ b/editor/icons/Bucket.svg diff --git a/editor/icons/icon_bus_vu_empty.svg b/editor/icons/BusVuEmpty.svg index 5260b9e252..5260b9e252 100644 --- a/editor/icons/icon_bus_vu_empty.svg +++ b/editor/icons/BusVuEmpty.svg diff --git a/editor/icons/icon_bus_vu_frozen.svg b/editor/icons/BusVuFrozen.svg index c10bb5a1a2..c10bb5a1a2 100644 --- a/editor/icons/icon_bus_vu_frozen.svg +++ b/editor/icons/BusVuFrozen.svg diff --git a/editor/icons/icon_bus_vu_full.svg b/editor/icons/BusVuFull.svg index 377ac60bc1..377ac60bc1 100644 --- a/editor/icons/icon_bus_vu_full.svg +++ b/editor/icons/BusVuFull.svg diff --git a/editor/icons/icon_button.svg b/editor/icons/Button.svg index 6ea5663dda..6ea5663dda 100644 --- a/editor/icons/icon_button.svg +++ b/editor/icons/Button.svg diff --git a/editor/icons/icon_button_group.svg b/editor/icons/ButtonGroup.svg index 683a8c3054..683a8c3054 100644 --- a/editor/icons/icon_button_group.svg +++ b/editor/icons/ButtonGroup.svg diff --git a/editor/icons/icon_c_p_u_particles.svg b/editor/icons/CPUParticles.svg index af4115c93f..af4115c93f 100644 --- a/editor/icons/icon_c_p_u_particles.svg +++ b/editor/icons/CPUParticles.svg diff --git a/editor/icons/icon_c_p_u_particles_2_d.svg b/editor/icons/CPUParticles2D.svg index 25afc35bec..25afc35bec 100644 --- a/editor/icons/icon_c_p_u_particles_2_d.svg +++ b/editor/icons/CPUParticles2D.svg diff --git a/editor/icons/Callable.svg b/editor/icons/Callable.svg new file mode 100644 index 0000000000..8f421f4fed --- /dev/null +++ b/editor/icons/Callable.svg @@ -0,0 +1,5 @@ +<svg width="16" height="16" version="1.1" viewBox="0 0 4.2333 4.2333" xmlns="http://www.w3.org/2000/svg"> +<g transform="translate(0 -292.77)"> +<path transform="matrix(.26458 0 0 .26458 0 292.77)" d="m12 1c-2 2-4 4-7 4h-4v5h4c3 3.8e-5 5 2 7 4v-13zm1 4v5c2.5896-0.015798 2.5896-4.9849 0-5zm-11 6v4h2l1-4h-3z" fill="#e0e0e0"/> +</g> +</svg> diff --git a/editor/icons/icon_camera.svg b/editor/icons/Camera.svg index af1cb8a2e9..af1cb8a2e9 100644 --- a/editor/icons/icon_camera.svg +++ b/editor/icons/Camera.svg diff --git a/editor/icons/icon_camera_2d.svg b/editor/icons/Camera2D.svg index 9a91b3017b..9a91b3017b 100644 --- a/editor/icons/icon_camera_2d.svg +++ b/editor/icons/Camera2D.svg diff --git a/editor/icons/icon_camera_texture.svg b/editor/icons/CameraTexture.svg index e61b5902f0..e61b5902f0 100644 --- a/editor/icons/icon_camera_texture.svg +++ b/editor/icons/CameraTexture.svg diff --git a/editor/icons/icon_canvas_item.svg b/editor/icons/CanvasItem.svg index eefe501ca8..eefe501ca8 100644 --- a/editor/icons/icon_canvas_item.svg +++ b/editor/icons/CanvasItem.svg diff --git a/editor/icons/icon_canvas_item_material.svg b/editor/icons/CanvasItemMaterial.svg index 7df06ed686..7df06ed686 100644 --- a/editor/icons/icon_canvas_item_material.svg +++ b/editor/icons/CanvasItemMaterial.svg diff --git a/editor/icons/icon_canvas_item_shader.svg b/editor/icons/CanvasItemShader.svg index 834fe61472..834fe61472 100644 --- a/editor/icons/icon_canvas_item_shader.svg +++ b/editor/icons/CanvasItemShader.svg diff --git a/editor/icons/icon_canvas_item_shader_graph.svg b/editor/icons/CanvasItemShaderGraph.svg index 3e83751698..3e83751698 100644 --- a/editor/icons/icon_canvas_item_shader_graph.svg +++ b/editor/icons/CanvasItemShaderGraph.svg diff --git a/editor/icons/icon_canvas_layer.svg b/editor/icons/CanvasLayer.svg index a3fcc903d7..a3fcc903d7 100644 --- a/editor/icons/icon_canvas_layer.svg +++ b/editor/icons/CanvasLayer.svg diff --git a/editor/icons/icon_canvas_modulate.svg b/editor/icons/CanvasModulate.svg index a7b788d638..a7b788d638 100644 --- a/editor/icons/icon_canvas_modulate.svg +++ b/editor/icons/CanvasModulate.svg diff --git a/editor/icons/icon_capsule_mesh.svg b/editor/icons/CapsuleMesh.svg index 1c9470105f..1c9470105f 100644 --- a/editor/icons/icon_capsule_mesh.svg +++ b/editor/icons/CapsuleMesh.svg diff --git a/editor/icons/icon_capsule_shape.svg b/editor/icons/CapsuleShape.svg index ba035ca196..ba035ca196 100644 --- a/editor/icons/icon_capsule_shape.svg +++ b/editor/icons/CapsuleShape.svg diff --git a/editor/icons/icon_capsule_shape_2d.svg b/editor/icons/CapsuleShape2D.svg index 81de995cb4..81de995cb4 100644 --- a/editor/icons/icon_capsule_shape_2d.svg +++ b/editor/icons/CapsuleShape2D.svg diff --git a/editor/icons/icon_center_container.svg b/editor/icons/CenterContainer.svg index 5d854a3cc3..5d854a3cc3 100644 --- a/editor/icons/icon_center_container.svg +++ b/editor/icons/CenterContainer.svg diff --git a/editor/icons/icon_check_box.svg b/editor/icons/CheckBox.svg index 6cb1f2aacd..6cb1f2aacd 100644 --- a/editor/icons/icon_check_box.svg +++ b/editor/icons/CheckBox.svg diff --git a/editor/icons/icon_check_button.svg b/editor/icons/CheckButton.svg index f689c5fe47..f689c5fe47 100644 --- a/editor/icons/icon_check_button.svg +++ b/editor/icons/CheckButton.svg diff --git a/editor/icons/icon_checkerboard.svg b/editor/icons/Checkerboard.svg index 7923291017..7923291017 100644 --- a/editor/icons/icon_checkerboard.svg +++ b/editor/icons/Checkerboard.svg diff --git a/editor/icons/icon_circle_shape_2d.svg b/editor/icons/CircleShape2D.svg index e41fc8807c..e41fc8807c 100644 --- a/editor/icons/icon_circle_shape_2d.svg +++ b/editor/icons/CircleShape2D.svg diff --git a/editor/icons/icon_class_list.svg b/editor/icons/ClassList.svg index ae2494724d..ae2494724d 100644 --- a/editor/icons/icon_class_list.svg +++ b/editor/icons/ClassList.svg diff --git a/editor/icons/icon_clear.svg b/editor/icons/Clear.svg index 91343ca6af..91343ca6af 100644 --- a/editor/icons/icon_clear.svg +++ b/editor/icons/Clear.svg diff --git a/editor/icons/icon_clipped_camera.svg b/editor/icons/ClippedCamera.svg index 8c80c04e27..8c80c04e27 100644 --- a/editor/icons/icon_clipped_camera.svg +++ b/editor/icons/ClippedCamera.svg diff --git a/editor/icons/icon_close.svg b/editor/icons/Close.svg index 4147c7bcdd..4147c7bcdd 100644 --- a/editor/icons/icon_close.svg +++ b/editor/icons/Close.svg diff --git a/editor/icons/icon_collapse.svg b/editor/icons/Collapse.svg index 62b5e55d81..62b5e55d81 100644 --- a/editor/icons/icon_collapse.svg +++ b/editor/icons/Collapse.svg diff --git a/editor/icons/icon_collision_polygon.svg b/editor/icons/CollisionPolygon.svg index 5e849ae4e3..5e849ae4e3 100644 --- a/editor/icons/icon_collision_polygon.svg +++ b/editor/icons/CollisionPolygon.svg diff --git a/editor/icons/icon_collision_polygon_2d.svg b/editor/icons/CollisionPolygon2D.svg index 54148f3fd4..54148f3fd4 100644 --- a/editor/icons/icon_collision_polygon_2d.svg +++ b/editor/icons/CollisionPolygon2D.svg diff --git a/editor/icons/icon_collision_shape.svg b/editor/icons/CollisionShape.svg index 8f14996a97..8f14996a97 100644 --- a/editor/icons/icon_collision_shape.svg +++ b/editor/icons/CollisionShape.svg diff --git a/editor/icons/icon_collision_shape_2d.svg b/editor/icons/CollisionShape2D.svg index 8210bf917f..8210bf917f 100644 --- a/editor/icons/icon_collision_shape_2d.svg +++ b/editor/icons/CollisionShape2D.svg diff --git a/editor/icons/icon_color.svg b/editor/icons/Color.svg index de0540763e..de0540763e 100644 --- a/editor/icons/icon_color.svg +++ b/editor/icons/Color.svg diff --git a/editor/icons/icon_color_pick.svg b/editor/icons/ColorPick.svg index d73225bd60..d73225bd60 100644 --- a/editor/icons/icon_color_pick.svg +++ b/editor/icons/ColorPick.svg diff --git a/editor/icons/icon_color_picker.svg b/editor/icons/ColorPicker.svg index 3d03615708..3d03615708 100644 --- a/editor/icons/icon_color_picker.svg +++ b/editor/icons/ColorPicker.svg diff --git a/editor/icons/icon_color_picker_button.svg b/editor/icons/ColorPickerButton.svg index b9fa86db6a..b9fa86db6a 100644 --- a/editor/icons/icon_color_picker_button.svg +++ b/editor/icons/ColorPickerButton.svg diff --git a/editor/icons/icon_color_ramp.svg b/editor/icons/ColorRamp.svg index e0f0a67483..e0f0a67483 100644 --- a/editor/icons/icon_color_ramp.svg +++ b/editor/icons/ColorRamp.svg diff --git a/editor/icons/icon_color_rect.svg b/editor/icons/ColorRect.svg index c2054de9d3..c2054de9d3 100644 --- a/editor/icons/icon_color_rect.svg +++ b/editor/icons/ColorRect.svg diff --git a/editor/icons/icon_color_track_vu.svg b/editor/icons/ColorTrackVu.svg index 5760f81070..5760f81070 100644 --- a/editor/icons/icon_color_track_vu.svg +++ b/editor/icons/ColorTrackVu.svg diff --git a/editor/icons/icon_concave_polygon_shape.svg b/editor/icons/ConcavePolygonShape.svg index 001ab82826..001ab82826 100644 --- a/editor/icons/icon_concave_polygon_shape.svg +++ b/editor/icons/ConcavePolygonShape.svg diff --git a/editor/icons/icon_concave_polygon_shape_2d.svg b/editor/icons/ConcavePolygonShape2D.svg index 38a92095c9..38a92095c9 100644 --- a/editor/icons/icon_concave_polygon_shape_2d.svg +++ b/editor/icons/ConcavePolygonShape2D.svg diff --git a/editor/icons/icon_cone_twist_joint.svg b/editor/icons/ConeTwistJoint.svg index 0e5e98a17b..0e5e98a17b 100644 --- a/editor/icons/icon_cone_twist_joint.svg +++ b/editor/icons/ConeTwistJoint.svg diff --git a/editor/icons/icon_confirmation_dialog.svg b/editor/icons/ConfirmationDialog.svg index d1f13fbb3b..d1f13fbb3b 100644 --- a/editor/icons/icon_confirmation_dialog.svg +++ b/editor/icons/ConfirmationDialog.svg diff --git a/editor/icons/icon_container.svg b/editor/icons/Container.svg index aaea67faa1..aaea67faa1 100644 --- a/editor/icons/icon_container.svg +++ b/editor/icons/Container.svg diff --git a/editor/icons/icon_control.svg b/editor/icons/Control.svg index ff6a52e29a..ff6a52e29a 100644 --- a/editor/icons/icon_control.svg +++ b/editor/icons/Control.svg diff --git a/editor/icons/icon_control_align_bottom_center.svg b/editor/icons/ControlAlignBottomCenter.svg index 7aee8caa79..7aee8caa79 100644 --- a/editor/icons/icon_control_align_bottom_center.svg +++ b/editor/icons/ControlAlignBottomCenter.svg diff --git a/editor/icons/icon_control_align_bottom_left.svg b/editor/icons/ControlAlignBottomLeft.svg index aa26eb570a..aa26eb570a 100644 --- a/editor/icons/icon_control_align_bottom_left.svg +++ b/editor/icons/ControlAlignBottomLeft.svg diff --git a/editor/icons/icon_control_align_bottom_right.svg b/editor/icons/ControlAlignBottomRight.svg index 737328e6f0..737328e6f0 100644 --- a/editor/icons/icon_control_align_bottom_right.svg +++ b/editor/icons/ControlAlignBottomRight.svg diff --git a/editor/icons/icon_control_align_bottom_wide.svg b/editor/icons/ControlAlignBottomWide.svg index ad0d7fac85..ad0d7fac85 100644 --- a/editor/icons/icon_control_align_bottom_wide.svg +++ b/editor/icons/ControlAlignBottomWide.svg diff --git a/editor/icons/icon_control_align_center.svg b/editor/icons/ControlAlignCenter.svg index 14dd500500..14dd500500 100644 --- a/editor/icons/icon_control_align_center.svg +++ b/editor/icons/ControlAlignCenter.svg diff --git a/editor/icons/icon_control_align_center_left.svg b/editor/icons/ControlAlignCenterLeft.svg index 52f1d4d143..52f1d4d143 100644 --- a/editor/icons/icon_control_align_center_left.svg +++ b/editor/icons/ControlAlignCenterLeft.svg diff --git a/editor/icons/icon_control_align_center_right.svg b/editor/icons/ControlAlignCenterRight.svg index 201796f172..201796f172 100644 --- a/editor/icons/icon_control_align_center_right.svg +++ b/editor/icons/ControlAlignCenterRight.svg diff --git a/editor/icons/icon_control_align_left_center.svg b/editor/icons/ControlAlignLeftCenter.svg index 8135c9d851..8135c9d851 100644 --- a/editor/icons/icon_control_align_left_center.svg +++ b/editor/icons/ControlAlignLeftCenter.svg diff --git a/editor/icons/icon_control_align_left_wide.svg b/editor/icons/ControlAlignLeftWide.svg index 56d16bec76..56d16bec76 100644 --- a/editor/icons/icon_control_align_left_wide.svg +++ b/editor/icons/ControlAlignLeftWide.svg diff --git a/editor/icons/icon_control_align_right_center.svg b/editor/icons/ControlAlignRightCenter.svg index 69c4dba40d..69c4dba40d 100644 --- a/editor/icons/icon_control_align_right_center.svg +++ b/editor/icons/ControlAlignRightCenter.svg diff --git a/editor/icons/icon_control_align_right_wide.svg b/editor/icons/ControlAlignRightWide.svg index b0a46cdb82..b0a46cdb82 100644 --- a/editor/icons/icon_control_align_right_wide.svg +++ b/editor/icons/ControlAlignRightWide.svg diff --git a/editor/icons/icon_control_align_top_center.svg b/editor/icons/ControlAlignTopCenter.svg index cafb3ff856..cafb3ff856 100644 --- a/editor/icons/icon_control_align_top_center.svg +++ b/editor/icons/ControlAlignTopCenter.svg diff --git a/editor/icons/icon_control_align_top_left.svg b/editor/icons/ControlAlignTopLeft.svg index ad288647fb..ad288647fb 100644 --- a/editor/icons/icon_control_align_top_left.svg +++ b/editor/icons/ControlAlignTopLeft.svg diff --git a/editor/icons/icon_control_align_top_right.svg b/editor/icons/ControlAlignTopRight.svg index d9955de728..d9955de728 100644 --- a/editor/icons/icon_control_align_top_right.svg +++ b/editor/icons/ControlAlignTopRight.svg diff --git a/editor/icons/icon_control_align_top_wide.svg b/editor/icons/ControlAlignTopWide.svg index 2526b45ad9..2526b45ad9 100644 --- a/editor/icons/icon_control_align_top_wide.svg +++ b/editor/icons/ControlAlignTopWide.svg diff --git a/editor/icons/icon_control_align_wide.svg b/editor/icons/ControlAlignWide.svg index 5d1467cd9b..5d1467cd9b 100644 --- a/editor/icons/icon_control_align_wide.svg +++ b/editor/icons/ControlAlignWide.svg diff --git a/editor/icons/icon_control_hcenter_wide.svg b/editor/icons/ControlHcenterWide.svg index 51c9aeb22d..51c9aeb22d 100644 --- a/editor/icons/icon_control_hcenter_wide.svg +++ b/editor/icons/ControlHcenterWide.svg diff --git a/editor/icons/icon_control_layout.svg b/editor/icons/ControlLayout.svg index e39e6b474c..e39e6b474c 100644 --- a/editor/icons/icon_control_layout.svg +++ b/editor/icons/ControlLayout.svg diff --git a/editor/icons/icon_control_vcenter_wide.svg b/editor/icons/ControlVcenterWide.svg index 93bbc5748b..93bbc5748b 100644 --- a/editor/icons/icon_control_vcenter_wide.svg +++ b/editor/icons/ControlVcenterWide.svg diff --git a/editor/icons/icon_convex_polygon_shape.svg b/editor/icons/ConvexPolygonShape.svg index bfb9230586..bfb9230586 100644 --- a/editor/icons/icon_convex_polygon_shape.svg +++ b/editor/icons/ConvexPolygonShape.svg diff --git a/editor/icons/icon_convex_polygon_shape_2d.svg b/editor/icons/ConvexPolygonShape2D.svg index 8d16523d93..8d16523d93 100644 --- a/editor/icons/icon_convex_polygon_shape_2d.svg +++ b/editor/icons/ConvexPolygonShape2D.svg diff --git a/editor/icons/icon_copy_node_path.svg b/editor/icons/CopyNodePath.svg index 2cabe0a44e..2cabe0a44e 100644 --- a/editor/icons/icon_copy_node_path.svg +++ b/editor/icons/CopyNodePath.svg diff --git a/editor/icons/icon_create_new_scene_from.svg b/editor/icons/CreateNewSceneFrom.svg index ffeaa36bc4..ffeaa36bc4 100644 --- a/editor/icons/icon_create_new_scene_from.svg +++ b/editor/icons/CreateNewSceneFrom.svg diff --git a/editor/icons/icon_crosshair.svg b/editor/icons/Crosshair.svg index b6fa5ec654..b6fa5ec654 100644 --- a/editor/icons/icon_crosshair.svg +++ b/editor/icons/Crosshair.svg diff --git a/editor/icons/icon_crypto_key.svg b/editor/icons/CryptoKey.svg index 45b53c815d..45b53c815d 100644 --- a/editor/icons/icon_crypto_key.svg +++ b/editor/icons/CryptoKey.svg diff --git a/editor/icons/icon_cube_map.svg b/editor/icons/CubeMap.svg index c9e6f1fa7d..c9e6f1fa7d 100644 --- a/editor/icons/icon_cube_map.svg +++ b/editor/icons/CubeMap.svg diff --git a/editor/icons/icon_cube_mesh.svg b/editor/icons/CubeMesh.svg index aeb5324b1b..aeb5324b1b 100644 --- a/editor/icons/icon_cube_mesh.svg +++ b/editor/icons/CubeMesh.svg diff --git a/editor/icons/icon_curve.svg b/editor/icons/Curve.svg index 14895337c6..14895337c6 100644 --- a/editor/icons/icon_curve.svg +++ b/editor/icons/Curve.svg diff --git a/editor/icons/icon_curve_2d.svg b/editor/icons/Curve2D.svg index 23f585c7c5..23f585c7c5 100644 --- a/editor/icons/icon_curve_2d.svg +++ b/editor/icons/Curve2D.svg diff --git a/editor/icons/icon_curve_3d.svg b/editor/icons/Curve3D.svg index f14c581ec3..f14c581ec3 100644 --- a/editor/icons/icon_curve_3d.svg +++ b/editor/icons/Curve3D.svg diff --git a/editor/icons/icon_curve_close.svg b/editor/icons/CurveClose.svg index 7d7bae88c2..7d7bae88c2 100644 --- a/editor/icons/icon_curve_close.svg +++ b/editor/icons/CurveClose.svg diff --git a/editor/icons/icon_curve_constant.svg b/editor/icons/CurveConstant.svg index 713a3a982a..713a3a982a 100644 --- a/editor/icons/icon_curve_constant.svg +++ b/editor/icons/CurveConstant.svg diff --git a/editor/icons/icon_curve_create.svg b/editor/icons/CurveCreate.svg index 43811f93f5..43811f93f5 100644 --- a/editor/icons/icon_curve_create.svg +++ b/editor/icons/CurveCreate.svg diff --git a/editor/icons/icon_curve_curve.svg b/editor/icons/CurveCurve.svg index 60f965abc1..60f965abc1 100644 --- a/editor/icons/icon_curve_curve.svg +++ b/editor/icons/CurveCurve.svg diff --git a/editor/icons/icon_curve_delete.svg b/editor/icons/CurveDelete.svg index afb545840f..afb545840f 100644 --- a/editor/icons/icon_curve_delete.svg +++ b/editor/icons/CurveDelete.svg diff --git a/editor/icons/icon_curve_edit.svg b/editor/icons/CurveEdit.svg index 5d1d6560e1..5d1d6560e1 100644 --- a/editor/icons/icon_curve_edit.svg +++ b/editor/icons/CurveEdit.svg diff --git a/editor/icons/icon_curve_in.svg b/editor/icons/CurveIn.svg index b9e203dea0..b9e203dea0 100644 --- a/editor/icons/icon_curve_in.svg +++ b/editor/icons/CurveIn.svg diff --git a/editor/icons/icon_curve_in_out.svg b/editor/icons/CurveInOut.svg index 6d3c57d4f5..6d3c57d4f5 100644 --- a/editor/icons/icon_curve_in_out.svg +++ b/editor/icons/CurveInOut.svg diff --git a/editor/icons/icon_curve_linear.svg b/editor/icons/CurveLinear.svg index 2256f493ce..2256f493ce 100644 --- a/editor/icons/icon_curve_linear.svg +++ b/editor/icons/CurveLinear.svg diff --git a/editor/icons/icon_curve_out.svg b/editor/icons/CurveOut.svg index 9b04df6b6c..9b04df6b6c 100644 --- a/editor/icons/icon_curve_out.svg +++ b/editor/icons/CurveOut.svg diff --git a/editor/icons/icon_curve_out_in.svg b/editor/icons/CurveOutIn.svg index 4a08d30966..4a08d30966 100644 --- a/editor/icons/icon_curve_out_in.svg +++ b/editor/icons/CurveOutIn.svg diff --git a/editor/icons/icon_curve_texture.svg b/editor/icons/CurveTexture.svg index 05f9d62775..05f9d62775 100644 --- a/editor/icons/icon_curve_texture.svg +++ b/editor/icons/CurveTexture.svg diff --git a/editor/icons/icon_cylinder_mesh.svg b/editor/icons/CylinderMesh.svg index f204edc985..f204edc985 100644 --- a/editor/icons/icon_cylinder_mesh.svg +++ b/editor/icons/CylinderMesh.svg diff --git a/editor/icons/icon_cylinder_shape.svg b/editor/icons/CylinderShape.svg index f0aa5833d2..f0aa5833d2 100644 --- a/editor/icons/icon_cylinder_shape.svg +++ b/editor/icons/CylinderShape.svg diff --git a/editor/icons/icon_damped_spring_joint_2d.svg b/editor/icons/DampedSpringJoint2D.svg index 9bd842bcc8..9bd842bcc8 100644 --- a/editor/icons/icon_damped_spring_joint_2d.svg +++ b/editor/icons/DampedSpringJoint2D.svg diff --git a/editor/icons/icon_debug.svg b/editor/icons/Debug.svg index 7490862c4a..7490862c4a 100644 --- a/editor/icons/icon_debug.svg +++ b/editor/icons/Debug.svg diff --git a/editor/icons/icon_debug_continue.svg b/editor/icons/DebugContinue.svg index 69c64c4fd4..69c64c4fd4 100644 --- a/editor/icons/icon_debug_continue.svg +++ b/editor/icons/DebugContinue.svg diff --git a/editor/icons/icon_debug_next.svg b/editor/icons/DebugNext.svg index 133be255e1..133be255e1 100644 --- a/editor/icons/icon_debug_next.svg +++ b/editor/icons/DebugNext.svg diff --git a/editor/icons/icon_debug_skip_breakpoints_off.svg b/editor/icons/DebugSkipBreakpointsOff.svg index f8923510bb..f8923510bb 100644 --- a/editor/icons/icon_debug_skip_breakpoints_off.svg +++ b/editor/icons/DebugSkipBreakpointsOff.svg diff --git a/editor/icons/icon_debug_skip_breakpoints_on.svg b/editor/icons/DebugSkipBreakpointsOn.svg index d4a4b4c138..d4a4b4c138 100644 --- a/editor/icons/icon_debug_skip_breakpoints_on.svg +++ b/editor/icons/DebugSkipBreakpointsOn.svg diff --git a/editor/icons/icon_debug_step.svg b/editor/icons/DebugStep.svg index c0356463fe..c0356463fe 100644 --- a/editor/icons/icon_debug_step.svg +++ b/editor/icons/DebugStep.svg diff --git a/editor/icons/icon_default_project_icon.svg b/editor/icons/DefaultProjectIcon.svg index 10ecbd019d..10ecbd019d 100644 --- a/editor/icons/icon_default_project_icon.svg +++ b/editor/icons/DefaultProjectIcon.svg diff --git a/editor/icons/icon_delete_split.svg b/editor/icons/DeleteSplit.svg index 7424de3b8a..7424de3b8a 100644 --- a/editor/icons/icon_delete_split.svg +++ b/editor/icons/DeleteSplit.svg diff --git a/editor/icons/icon_dictionary.svg b/editor/icons/Dictionary.svg index 668ef37a86..668ef37a86 100644 --- a/editor/icons/icon_dictionary.svg +++ b/editor/icons/Dictionary.svg diff --git a/editor/icons/icon_directional_light.svg b/editor/icons/DirectionalLight.svg index faac2be134..faac2be134 100644 --- a/editor/icons/icon_directional_light.svg +++ b/editor/icons/DirectionalLight.svg diff --git a/editor/icons/icon_distraction_free.svg b/editor/icons/DistractionFree.svg index 8608b33f58..8608b33f58 100644 --- a/editor/icons/icon_distraction_free.svg +++ b/editor/icons/DistractionFree.svg diff --git a/editor/icons/icon_duplicate.svg b/editor/icons/Duplicate.svg index d506b7a8c7..d506b7a8c7 100644 --- a/editor/icons/icon_duplicate.svg +++ b/editor/icons/Duplicate.svg diff --git a/editor/icons/icon_dynamic_font.svg b/editor/icons/DynamicFont.svg index fe5eca2e35..fe5eca2e35 100644 --- a/editor/icons/icon_dynamic_font.svg +++ b/editor/icons/DynamicFont.svg diff --git a/editor/icons/icon_dynamic_font_data.svg b/editor/icons/DynamicFontData.svg index 56426dd33e..56426dd33e 100644 --- a/editor/icons/icon_dynamic_font_data.svg +++ b/editor/icons/DynamicFontData.svg diff --git a/editor/icons/icon_edit.svg b/editor/icons/Edit.svg index bb7ffa2fce..bb7ffa2fce 100644 --- a/editor/icons/icon_edit.svg +++ b/editor/icons/Edit.svg diff --git a/editor/icons/icon_edit_bezier.svg b/editor/icons/EditBezier.svg index be9e2f22b8..be9e2f22b8 100644 --- a/editor/icons/icon_edit_bezier.svg +++ b/editor/icons/EditBezier.svg diff --git a/editor/icons/icon_edit_internal.svg b/editor/icons/EditInternal.svg index 2a538102ce..2a538102ce 100644 --- a/editor/icons/icon_edit_internal.svg +++ b/editor/icons/EditInternal.svg diff --git a/editor/icons/icon_edit_key.svg b/editor/icons/EditKey.svg index 883ddfda71..883ddfda71 100644 --- a/editor/icons/icon_edit_key.svg +++ b/editor/icons/EditKey.svg diff --git a/editor/icons/icon_edit_pivot.svg b/editor/icons/EditPivot.svg index ae303535b4..ae303535b4 100644 --- a/editor/icons/icon_edit_pivot.svg +++ b/editor/icons/EditPivot.svg diff --git a/editor/icons/icon_edit_resource.svg b/editor/icons/EditResource.svg index e16ca00355..e16ca00355 100644 --- a/editor/icons/icon_edit_resource.svg +++ b/editor/icons/EditResource.svg diff --git a/editor/icons/icon_editor_3d_handle.svg b/editor/icons/Editor3DHandle.svg index 687a5b184d..687a5b184d 100644 --- a/editor/icons/icon_editor_3d_handle.svg +++ b/editor/icons/Editor3DHandle.svg diff --git a/editor/icons/icon_editor_control_anchor.svg b/editor/icons/EditorControlAnchor.svg index 11e2bb5175..11e2bb5175 100644 --- a/editor/icons/icon_editor_control_anchor.svg +++ b/editor/icons/EditorControlAnchor.svg diff --git a/editor/icons/icon_editor_curve_handle.svg b/editor/icons/EditorCurveHandle.svg index c405ceab9d..c405ceab9d 100644 --- a/editor/icons/icon_editor_curve_handle.svg +++ b/editor/icons/EditorCurveHandle.svg diff --git a/editor/icons/icon_editor_handle.svg b/editor/icons/EditorHandle.svg index 8b11e782db..8b11e782db 100644 --- a/editor/icons/icon_editor_handle.svg +++ b/editor/icons/EditorHandle.svg diff --git a/editor/icons/icon_editor_handle_add.svg b/editor/icons/EditorHandleAdd.svg index bf3b604d5c..bf3b604d5c 100644 --- a/editor/icons/icon_editor_handle_add.svg +++ b/editor/icons/EditorHandleAdd.svg diff --git a/editor/icons/icon_editor_internal_handle.svg b/editor/icons/EditorInternalHandle.svg index 244e6b5d6c..244e6b5d6c 100644 --- a/editor/icons/icon_editor_internal_handle.svg +++ b/editor/icons/EditorInternalHandle.svg diff --git a/editor/icons/icon_editor_path_sharp_handle.svg b/editor/icons/EditorPathSharpHandle.svg index db160dfeae..db160dfeae 100644 --- a/editor/icons/icon_editor_path_sharp_handle.svg +++ b/editor/icons/EditorPathSharpHandle.svg diff --git a/editor/icons/icon_editor_path_smooth_handle.svg b/editor/icons/EditorPathSmoothHandle.svg index 34f3d290bd..34f3d290bd 100644 --- a/editor/icons/icon_editor_path_smooth_handle.svg +++ b/editor/icons/EditorPathSmoothHandle.svg diff --git a/editor/icons/icon_editor_pivot.svg b/editor/icons/EditorPivot.svg index 8e00f60530..8e00f60530 100644 --- a/editor/icons/icon_editor_pivot.svg +++ b/editor/icons/EditorPivot.svg diff --git a/editor/icons/icon_editor_plugin.svg b/editor/icons/EditorPlugin.svg index 72f2bd5c28..72f2bd5c28 100644 --- a/editor/icons/icon_editor_plugin.svg +++ b/editor/icons/EditorPlugin.svg diff --git a/editor/icons/icon_editor_position.svg b/editor/icons/EditorPosition.svg index 7b17fb5aa3..7b17fb5aa3 100644 --- a/editor/icons/icon_editor_position.svg +++ b/editor/icons/EditorPosition.svg diff --git a/editor/icons/icon_editor_position_previous.svg b/editor/icons/EditorPositionPrevious.svg index 8c1d2992a5..8c1d2992a5 100644 --- a/editor/icons/icon_editor_position_previous.svg +++ b/editor/icons/EditorPositionPrevious.svg diff --git a/editor/icons/icon_editor_position_unselected.svg b/editor/icons/EditorPositionUnselected.svg index b9a38ca371..b9a38ca371 100644 --- a/editor/icons/icon_editor_position_unselected.svg +++ b/editor/icons/EditorPositionUnselected.svg diff --git a/editor/icons/icon_enum.svg b/editor/icons/Enum.svg index efa3050e95..efa3050e95 100644 --- a/editor/icons/icon_enum.svg +++ b/editor/icons/Enum.svg diff --git a/editor/icons/icon_environment.svg b/editor/icons/Environment.svg index ee29342942..ee29342942 100644 --- a/editor/icons/icon_environment.svg +++ b/editor/icons/Environment.svg diff --git a/editor/icons/icon_error.svg b/editor/icons/Error.svg index 05e548068d..05e548068d 100644 --- a/editor/icons/icon_error.svg +++ b/editor/icons/Error.svg diff --git a/editor/icons/icon_error_sign.svg b/editor/icons/ErrorSign.svg index 96aace5c0c..96aace5c0c 100644 --- a/editor/icons/icon_error_sign.svg +++ b/editor/icons/ErrorSign.svg diff --git a/editor/icons/icon_expand_bottom_dock.svg b/editor/icons/ExpandBottomDock.svg index 09cc3b9b07..09cc3b9b07 100644 --- a/editor/icons/icon_expand_bottom_dock.svg +++ b/editor/icons/ExpandBottomDock.svg diff --git a/editor/icons/icon_favorites.svg b/editor/icons/Favorites.svg index 79e0c8475e..79e0c8475e 100644 --- a/editor/icons/icon_favorites.svg +++ b/editor/icons/Favorites.svg diff --git a/editor/icons/icon_file.svg b/editor/icons/File.svg index 22d330fd56..22d330fd56 100644 --- a/editor/icons/icon_file.svg +++ b/editor/icons/File.svg diff --git a/editor/icons/icon_file_big_thumb.svg b/editor/icons/FileBigThumb.svg index 50900ab684..50900ab684 100644 --- a/editor/icons/icon_file_big_thumb.svg +++ b/editor/icons/FileBigThumb.svg diff --git a/editor/icons/icon_file_broken.svg b/editor/icons/FileBroken.svg index af79f02c12..af79f02c12 100644 --- a/editor/icons/icon_file_broken.svg +++ b/editor/icons/FileBroken.svg diff --git a/editor/icons/icon_file_broken_big_thumb.svg b/editor/icons/FileBrokenBigThumb.svg index 08dee26f1c..08dee26f1c 100644 --- a/editor/icons/icon_file_broken_big_thumb.svg +++ b/editor/icons/FileBrokenBigThumb.svg diff --git a/editor/icons/icon_file_dead.svg b/editor/icons/FileDead.svg index c40aa1b9a4..c40aa1b9a4 100644 --- a/editor/icons/icon_file_dead.svg +++ b/editor/icons/FileDead.svg diff --git a/editor/icons/icon_file_dead_big_thumb.svg b/editor/icons/FileDeadBigThumb.svg index 79369873a6..79369873a6 100644 --- a/editor/icons/icon_file_dead_big_thumb.svg +++ b/editor/icons/FileDeadBigThumb.svg diff --git a/editor/icons/icon_file_dead_medium_thumb.svg b/editor/icons/FileDeadMediumThumb.svg index 62496daaae..62496daaae 100644 --- a/editor/icons/icon_file_dead_medium_thumb.svg +++ b/editor/icons/FileDeadMediumThumb.svg diff --git a/editor/icons/icon_file_dialog.svg b/editor/icons/FileDialog.svg index 7708659c21..7708659c21 100644 --- a/editor/icons/icon_file_dialog.svg +++ b/editor/icons/FileDialog.svg diff --git a/editor/icons/icon_file_list.svg b/editor/icons/FileList.svg index e47c8b18cb..e47c8b18cb 100644 --- a/editor/icons/icon_file_list.svg +++ b/editor/icons/FileList.svg diff --git a/editor/icons/icon_file_medium_thumb.svg b/editor/icons/FileMediumThumb.svg index 4c7d78b58e..4c7d78b58e 100644 --- a/editor/icons/icon_file_medium_thumb.svg +++ b/editor/icons/FileMediumThumb.svg diff --git a/editor/icons/icon_file_thumbnail.svg b/editor/icons/FileThumbnail.svg index 571335a935..571335a935 100644 --- a/editor/icons/icon_file_thumbnail.svg +++ b/editor/icons/FileThumbnail.svg diff --git a/editor/icons/icon_filesystem.svg b/editor/icons/Filesystem.svg index da6fa2ad60..da6fa2ad60 100644 --- a/editor/icons/icon_filesystem.svg +++ b/editor/icons/Filesystem.svg diff --git a/editor/icons/icon_fixed_material.svg b/editor/icons/FixedMaterial.svg index 903691689b..903691689b 100644 --- a/editor/icons/icon_fixed_material.svg +++ b/editor/icons/FixedMaterial.svg diff --git a/editor/icons/icon_fixed_spatial_material.svg b/editor/icons/FixedSpatialMaterial.svg index ba1e251088..ba1e251088 100644 --- a/editor/icons/icon_fixed_spatial_material.svg +++ b/editor/icons/FixedSpatialMaterial.svg diff --git a/editor/icons/icon_folder.svg b/editor/icons/Folder.svg index 00ff7a95e9..00ff7a95e9 100644 --- a/editor/icons/icon_folder.svg +++ b/editor/icons/Folder.svg diff --git a/editor/icons/icon_folder_big_thumb.svg b/editor/icons/FolderBigThumb.svg index a620d17b8f..a620d17b8f 100644 --- a/editor/icons/icon_folder_big_thumb.svg +++ b/editor/icons/FolderBigThumb.svg diff --git a/editor/icons/icon_folder_medium_thumb.svg b/editor/icons/FolderMediumThumb.svg index 431650aff0..431650aff0 100644 --- a/editor/icons/icon_folder_medium_thumb.svg +++ b/editor/icons/FolderMediumThumb.svg diff --git a/editor/icons/icon_font.svg b/editor/icons/Font.svg index 4b71b59d2e..4b71b59d2e 100644 --- a/editor/icons/icon_font.svg +++ b/editor/icons/Font.svg diff --git a/editor/icons/icon_forward.svg b/editor/icons/Forward.svg index aecd4b362c..aecd4b362c 100644 --- a/editor/icons/icon_forward.svg +++ b/editor/icons/Forward.svg diff --git a/editor/icons/icon_g_i_probe.svg b/editor/icons/GIProbe.svg index 5a5bfd3c5a..5a5bfd3c5a 100644 --- a/editor/icons/icon_g_i_probe.svg +++ b/editor/icons/GIProbe.svg diff --git a/editor/icons/icon_g_i_probe_data.svg b/editor/icons/GIProbeData.svg index d4765be30f..d4765be30f 100644 --- a/editor/icons/icon_g_i_probe_data.svg +++ b/editor/icons/GIProbeData.svg diff --git a/editor/icons/icon_generic_6_d_o_f_joint.svg b/editor/icons/Generic6DOFJoint.svg index 30d892e7a1..30d892e7a1 100644 --- a/editor/icons/icon_generic_6_d_o_f_joint.svg +++ b/editor/icons/Generic6DOFJoint.svg diff --git a/editor/icons/icon_gizmo_baked_lightmap.svg b/editor/icons/GizmoBakedLightmap.svg index 9568f7ff25..9568f7ff25 100644 --- a/editor/icons/icon_gizmo_baked_lightmap.svg +++ b/editor/icons/GizmoBakedLightmap.svg diff --git a/editor/icons/icon_gizmo_c_p_u_particles.svg b/editor/icons/GizmoCPUParticles.svg index d4e86d9c42..d4e86d9c42 100644 --- a/editor/icons/icon_gizmo_c_p_u_particles.svg +++ b/editor/icons/GizmoCPUParticles.svg diff --git a/editor/icons/icon_gizmo_camera.svg b/editor/icons/GizmoCamera.svg index f28efb813e..f28efb813e 100644 --- a/editor/icons/icon_gizmo_camera.svg +++ b/editor/icons/GizmoCamera.svg diff --git a/editor/icons/icon_gizmo_directional_light.svg b/editor/icons/GizmoDirectionalLight.svg index dc2d6bf82d..dc2d6bf82d 100644 --- a/editor/icons/icon_gizmo_directional_light.svg +++ b/editor/icons/GizmoDirectionalLight.svg diff --git a/editor/icons/icon_gizmo_g_i_probe.svg b/editor/icons/GizmoGIProbe.svg index c792dc5a28..c792dc5a28 100644 --- a/editor/icons/icon_gizmo_g_i_probe.svg +++ b/editor/icons/GizmoGIProbe.svg diff --git a/editor/icons/icon_gizmo_light.svg b/editor/icons/GizmoLight.svg index 1e47082a0a..1e47082a0a 100644 --- a/editor/icons/icon_gizmo_light.svg +++ b/editor/icons/GizmoLight.svg diff --git a/editor/icons/icon_gizmo_listener.svg b/editor/icons/GizmoListener.svg index 9e28c7730f..9e28c7730f 100644 --- a/editor/icons/icon_gizmo_listener.svg +++ b/editor/icons/GizmoListener.svg diff --git a/editor/icons/icon_gizmo_particles.svg b/editor/icons/GizmoParticles.svg index 1c5d8c5f2d..1c5d8c5f2d 100644 --- a/editor/icons/icon_gizmo_particles.svg +++ b/editor/icons/GizmoParticles.svg diff --git a/editor/icons/icon_gizmo_reflection_probe.svg b/editor/icons/GizmoReflectionProbe.svg index 82136821c7..82136821c7 100644 --- a/editor/icons/icon_gizmo_reflection_probe.svg +++ b/editor/icons/GizmoReflectionProbe.svg diff --git a/editor/icons/icon_gizmo_spatial_sample_player.svg b/editor/icons/GizmoSpatialSamplePlayer.svg index ee471124dc..ee471124dc 100644 --- a/editor/icons/icon_gizmo_spatial_sample_player.svg +++ b/editor/icons/GizmoSpatialSamplePlayer.svg diff --git a/editor/icons/icon_gizmo_spot_light.svg b/editor/icons/GizmoSpotLight.svg index 23a8364679..23a8364679 100644 --- a/editor/icons/icon_gizmo_spot_light.svg +++ b/editor/icons/GizmoSpotLight.svg diff --git a/editor/icons/icon_godot.svg b/editor/icons/Godot.svg index 8ca9fdcabd..8ca9fdcabd 100644 --- a/editor/icons/icon_godot.svg +++ b/editor/icons/Godot.svg diff --git a/editor/icons/icon_gradient.svg b/editor/icons/Gradient.svg index b67a9e6f8a..b67a9e6f8a 100644 --- a/editor/icons/icon_gradient.svg +++ b/editor/icons/Gradient.svg diff --git a/editor/icons/icon_gradient_texture.svg b/editor/icons/GradientTexture.svg index 1388c141bd..1388c141bd 100644 --- a/editor/icons/icon_gradient_texture.svg +++ b/editor/icons/GradientTexture.svg diff --git a/editor/icons/icon_graph_edit.svg b/editor/icons/GraphEdit.svg index 7ab7245260..7ab7245260 100644 --- a/editor/icons/icon_graph_edit.svg +++ b/editor/icons/GraphEdit.svg diff --git a/editor/icons/icon_graph_node.svg b/editor/icons/GraphNode.svg index c8d4fda910..c8d4fda910 100644 --- a/editor/icons/icon_graph_node.svg +++ b/editor/icons/GraphNode.svg diff --git a/editor/icons/icon_grid.svg b/editor/icons/Grid.svg index 869bc649fe..869bc649fe 100644 --- a/editor/icons/icon_grid.svg +++ b/editor/icons/Grid.svg diff --git a/editor/icons/icon_grid_container.svg b/editor/icons/GridContainer.svg index 9fffd8b342..9fffd8b342 100644 --- a/editor/icons/icon_grid_container.svg +++ b/editor/icons/GridContainer.svg diff --git a/editor/icons/icon_groove_joint_2d.svg b/editor/icons/GrooveJoint2D.svg index a2c7b741ad..a2c7b741ad 100644 --- a/editor/icons/icon_groove_joint_2d.svg +++ b/editor/icons/GrooveJoint2D.svg diff --git a/editor/icons/icon_group.svg b/editor/icons/Group.svg index 7e0b2f3675..7e0b2f3675 100644 --- a/editor/icons/icon_group.svg +++ b/editor/icons/Group.svg diff --git a/editor/icons/icon_group_viewport.svg b/editor/icons/GroupViewport.svg index 768c87e18d..768c87e18d 100644 --- a/editor/icons/icon_group_viewport.svg +++ b/editor/icons/GroupViewport.svg diff --git a/editor/icons/icon_groups.svg b/editor/icons/Groups.svg index 5c8bd73f0f..5c8bd73f0f 100644 --- a/editor/icons/icon_groups.svg +++ b/editor/icons/Groups.svg diff --git a/editor/icons/icon_GUI_checked.svg b/editor/icons/GuiChecked.svg index 8d00eca8d3..8d00eca8d3 100644 --- a/editor/icons/icon_GUI_checked.svg +++ b/editor/icons/GuiChecked.svg diff --git a/editor/icons/icon_gui_close.svg b/editor/icons/GuiClose.svg index 3596061877..3596061877 100644 --- a/editor/icons/icon_gui_close.svg +++ b/editor/icons/GuiClose.svg diff --git a/editor/icons/icon_gui_close_customizable.svg b/editor/icons/GuiCloseCustomizable.svg index 3596061877..3596061877 100644 --- a/editor/icons/icon_gui_close_customizable.svg +++ b/editor/icons/GuiCloseCustomizable.svg diff --git a/editor/icons/icon_GUI_dropdown.svg b/editor/icons/GuiDropdown.svg index 3ed9466f4a..3ed9466f4a 100644 --- a/editor/icons/icon_GUI_dropdown.svg +++ b/editor/icons/GuiDropdown.svg diff --git a/editor/icons/icon_GUI_ellipsis.svg b/editor/icons/GuiEllipsis.svg index 4d530d635e..4d530d635e 100644 --- a/editor/icons/icon_GUI_ellipsis.svg +++ b/editor/icons/GuiEllipsis.svg diff --git a/editor/icons/icon_gui_graph_node_port.svg b/editor/icons/GuiGraphNodePort.svg index 2023a30ead..2023a30ead 100644 --- a/editor/icons/icon_gui_graph_node_port.svg +++ b/editor/icons/GuiGraphNodePort.svg diff --git a/editor/icons/icon_GUI_h_tick.svg b/editor/icons/GuiHTick.svg index 01fecf5d12..01fecf5d12 100644 --- a/editor/icons/icon_GUI_h_tick.svg +++ b/editor/icons/GuiHTick.svg diff --git a/editor/icons/icon_GUI_hsplitter.svg b/editor/icons/GuiHsplitter.svg index f94a81cb1e..f94a81cb1e 100644 --- a/editor/icons/icon_GUI_hsplitter.svg +++ b/editor/icons/GuiHsplitter.svg diff --git a/editor/icons/icon_GUI_mini_checkerboard.svg b/editor/icons/GuiMiniCheckerboard.svg index dc6c7e37d1..dc6c7e37d1 100644 --- a/editor/icons/icon_GUI_mini_checkerboard.svg +++ b/editor/icons/GuiMiniCheckerboard.svg diff --git a/editor/icons/icon_GUI_option_arrow.svg b/editor/icons/GuiOptionArrow.svg index 28435e08c3..28435e08c3 100644 --- a/editor/icons/icon_GUI_option_arrow.svg +++ b/editor/icons/GuiOptionArrow.svg diff --git a/editor/icons/icon_GUI_progress_bar.svg b/editor/icons/GuiProgressBar.svg index a7a57adaa7..a7a57adaa7 100644 --- a/editor/icons/icon_GUI_progress_bar.svg +++ b/editor/icons/GuiProgressBar.svg diff --git a/editor/icons/icon_GUI_progress_fill.svg b/editor/icons/GuiProgressFill.svg index a75bf93edd..a75bf93edd 100644 --- a/editor/icons/icon_GUI_progress_fill.svg +++ b/editor/icons/GuiProgressFill.svg diff --git a/editor/icons/icon_GUI_radio_checked.svg b/editor/icons/GuiRadioChecked.svg index 447b57f8ae..447b57f8ae 100644 --- a/editor/icons/icon_GUI_radio_checked.svg +++ b/editor/icons/GuiRadioChecked.svg diff --git a/editor/icons/icon_GUI_radio_unchecked.svg b/editor/icons/GuiRadioUnchecked.svg index 1e8117bd10..1e8117bd10 100644 --- a/editor/icons/icon_GUI_radio_unchecked.svg +++ b/editor/icons/GuiRadioUnchecked.svg diff --git a/editor/icons/icon_gui_resizer.svg b/editor/icons/GuiResizer.svg index 545a1c9612..545a1c9612 100644 --- a/editor/icons/icon_gui_resizer.svg +++ b/editor/icons/GuiResizer.svg diff --git a/editor/icons/icon_GUI_scroll_arrow_left.svg b/editor/icons/GuiScrollArrowLeft.svg index a118f04e17..a118f04e17 100644 --- a/editor/icons/icon_GUI_scroll_arrow_left.svg +++ b/editor/icons/GuiScrollArrowLeft.svg diff --git a/editor/icons/icon_GUI_scroll_arrow_left_hl.svg b/editor/icons/GuiScrollArrowLeftHl.svg index 046356f18b..046356f18b 100644 --- a/editor/icons/icon_GUI_scroll_arrow_left_hl.svg +++ b/editor/icons/GuiScrollArrowLeftHl.svg diff --git a/editor/icons/icon_GUI_scroll_arrow_right.svg b/editor/icons/GuiScrollArrowRight.svg index 4e0a8b5327..4e0a8b5327 100644 --- a/editor/icons/icon_GUI_scroll_arrow_right.svg +++ b/editor/icons/GuiScrollArrowRight.svg diff --git a/editor/icons/icon_GUI_scroll_arrow_right_hl.svg b/editor/icons/GuiScrollArrowRightHl.svg index 4224ca8de4..4224ca8de4 100644 --- a/editor/icons/icon_GUI_scroll_arrow_right_hl.svg +++ b/editor/icons/GuiScrollArrowRightHl.svg diff --git a/editor/icons/icon_GUI_scroll_bg.svg b/editor/icons/GuiScrollBg.svg index 263b42ea61..263b42ea61 100644 --- a/editor/icons/icon_GUI_scroll_bg.svg +++ b/editor/icons/GuiScrollBg.svg diff --git a/editor/icons/icon_GUI_scroll_grabber.svg b/editor/icons/GuiScrollGrabber.svg index 9f6e9f2e25..9f6e9f2e25 100644 --- a/editor/icons/icon_GUI_scroll_grabber.svg +++ b/editor/icons/GuiScrollGrabber.svg diff --git a/editor/icons/icon_GUI_scroll_grabber_hl.svg b/editor/icons/GuiScrollGrabberHl.svg index bf5bce6934..bf5bce6934 100644 --- a/editor/icons/icon_GUI_scroll_grabber_hl.svg +++ b/editor/icons/GuiScrollGrabberHl.svg diff --git a/editor/icons/icon_GUI_scroll_grabber_pressed.svg b/editor/icons/GuiScrollGrabberPressed.svg index da26032474..da26032474 100644 --- a/editor/icons/icon_GUI_scroll_grabber_pressed.svg +++ b/editor/icons/GuiScrollGrabberPressed.svg diff --git a/editor/icons/icon_GUI_slider_grabber.svg b/editor/icons/GuiSliderGrabber.svg index dd751ead80..dd751ead80 100644 --- a/editor/icons/icon_GUI_slider_grabber.svg +++ b/editor/icons/GuiSliderGrabber.svg diff --git a/editor/icons/icon_GUI_slider_grabber_hl.svg b/editor/icons/GuiSliderGrabberHl.svg index 90d62934ec..90d62934ec 100644 --- a/editor/icons/icon_GUI_slider_grabber_hl.svg +++ b/editor/icons/GuiSliderGrabberHl.svg diff --git a/editor/icons/icon_GUI_space.svg b/editor/icons/GuiSpace.svg index b43e97b6e1..b43e97b6e1 100644 --- a/editor/icons/icon_GUI_space.svg +++ b/editor/icons/GuiSpace.svg diff --git a/editor/icons/icon_GUI_spinbox_updown.svg b/editor/icons/GuiSpinboxUpdown.svg index a6776728e3..a6776728e3 100644 --- a/editor/icons/icon_GUI_spinbox_updown.svg +++ b/editor/icons/GuiSpinboxUpdown.svg diff --git a/editor/icons/icon_GUI_tab.svg b/editor/icons/GuiTab.svg index 8451ebe5c0..8451ebe5c0 100644 --- a/editor/icons/icon_GUI_tab.svg +++ b/editor/icons/GuiTab.svg diff --git a/editor/icons/icon_GUI_tab_menu.svg b/editor/icons/GuiTabMenu.svg index 8bf5ef2f7d..8bf5ef2f7d 100644 --- a/editor/icons/icon_GUI_tab_menu.svg +++ b/editor/icons/GuiTabMenu.svg diff --git a/editor/icons/icon_GUI_tab_menu_hl.svg b/editor/icons/GuiTabMenuHl.svg index 42d58a5abf..42d58a5abf 100644 --- a/editor/icons/icon_GUI_tab_menu_hl.svg +++ b/editor/icons/GuiTabMenuHl.svg diff --git a/editor/icons/icon_GUI_toggle_off.svg b/editor/icons/GuiToggleOff.svg index 46f13d198d..46f13d198d 100644 --- a/editor/icons/icon_GUI_toggle_off.svg +++ b/editor/icons/GuiToggleOff.svg diff --git a/editor/icons/icon_GUI_toggle_on.svg b/editor/icons/GuiToggleOn.svg index 0316680daa..0316680daa 100644 --- a/editor/icons/icon_GUI_toggle_on.svg +++ b/editor/icons/GuiToggleOn.svg diff --git a/editor/icons/icon_GUI_tree_arrow_down.svg b/editor/icons/GuiTreeArrowDown.svg index fd2d900711..fd2d900711 100644 --- a/editor/icons/icon_GUI_tree_arrow_down.svg +++ b/editor/icons/GuiTreeArrowDown.svg diff --git a/editor/icons/icon_GUI_tree_arrow_right.svg b/editor/icons/GuiTreeArrowRight.svg index e20c92e2e7..e20c92e2e7 100644 --- a/editor/icons/icon_GUI_tree_arrow_right.svg +++ b/editor/icons/GuiTreeArrowRight.svg diff --git a/editor/icons/icon_GUI_tree_arrow_up.svg b/editor/icons/GuiTreeArrowUp.svg index 464363a8b1..464363a8b1 100644 --- a/editor/icons/icon_GUI_tree_arrow_up.svg +++ b/editor/icons/GuiTreeArrowUp.svg diff --git a/editor/icons/icon_GUI_tree_updown.svg b/editor/icons/GuiTreeUpdown.svg index 66716845df..66716845df 100644 --- a/editor/icons/icon_GUI_tree_updown.svg +++ b/editor/icons/GuiTreeUpdown.svg diff --git a/editor/icons/icon_GUI_unchecked.svg b/editor/icons/GuiUnchecked.svg index 9575422df3..9575422df3 100644 --- a/editor/icons/icon_GUI_unchecked.svg +++ b/editor/icons/GuiUnchecked.svg diff --git a/editor/icons/icon_GUI_v_tick.svg b/editor/icons/GuiVTick.svg index 4205237952..4205237952 100644 --- a/editor/icons/icon_GUI_v_tick.svg +++ b/editor/icons/GuiVTick.svg diff --git a/editor/icons/icon_GUI_viewport_hdiagsplitter.svg b/editor/icons/GuiViewportHdiagsplitter.svg index b1705582dc..b1705582dc 100644 --- a/editor/icons/icon_GUI_viewport_hdiagsplitter.svg +++ b/editor/icons/GuiViewportHdiagsplitter.svg diff --git a/editor/icons/icon_GUI_viewport_vdiagsplitter.svg b/editor/icons/GuiViewportVdiagsplitter.svg index 0817529ff1..0817529ff1 100644 --- a/editor/icons/icon_GUI_viewport_vdiagsplitter.svg +++ b/editor/icons/GuiViewportVdiagsplitter.svg diff --git a/editor/icons/icon_GUI_viewport_vhsplitter.svg b/editor/icons/GuiViewportVhsplitter.svg index a11fbd1b4c..a11fbd1b4c 100644 --- a/editor/icons/icon_GUI_viewport_vhsplitter.svg +++ b/editor/icons/GuiViewportVhsplitter.svg diff --git a/editor/icons/icon_GUI_visibility_hidden.svg b/editor/icons/GuiVisibilityHidden.svg index 1d1e61d1bb..1d1e61d1bb 100644 --- a/editor/icons/icon_GUI_visibility_hidden.svg +++ b/editor/icons/GuiVisibilityHidden.svg diff --git a/editor/icons/icon_GUI_visibility_visible.svg b/editor/icons/GuiVisibilityVisible.svg index 2e56f57ed8..2e56f57ed8 100644 --- a/editor/icons/icon_GUI_visibility_visible.svg +++ b/editor/icons/GuiVisibilityVisible.svg diff --git a/editor/icons/icon_GUI_visibility_xray.svg b/editor/icons/GuiVisibilityXray.svg index 241ff3e7e5..241ff3e7e5 100644 --- a/editor/icons/icon_GUI_visibility_xray.svg +++ b/editor/icons/GuiVisibilityXray.svg diff --git a/editor/icons/icon_GUI_vsplit_bg.svg b/editor/icons/GuiVsplitBg.svg index fa572c797e..fa572c797e 100644 --- a/editor/icons/icon_GUI_vsplit_bg.svg +++ b/editor/icons/GuiVsplitBg.svg diff --git a/editor/icons/icon_GUI_vsplitter.svg b/editor/icons/GuiVsplitter.svg index 8629801713..8629801713 100644 --- a/editor/icons/icon_GUI_vsplitter.svg +++ b/editor/icons/GuiVsplitter.svg diff --git a/editor/icons/icon_h_box_container.svg b/editor/icons/HBoxContainer.svg index 0ddbaf5a2e..0ddbaf5a2e 100644 --- a/editor/icons/icon_h_box_container.svg +++ b/editor/icons/HBoxContainer.svg diff --git a/editor/icons/icon_h_scroll_bar.svg b/editor/icons/HScrollBar.svg index 039ebdf0c1..039ebdf0c1 100644 --- a/editor/icons/icon_h_scroll_bar.svg +++ b/editor/icons/HScrollBar.svg diff --git a/editor/icons/icon_h_separator.svg b/editor/icons/HSeparator.svg index 762992acb8..762992acb8 100644 --- a/editor/icons/icon_h_separator.svg +++ b/editor/icons/HSeparator.svg diff --git a/editor/icons/icon_h_slider.svg b/editor/icons/HSlider.svg index 20fbf0d00b..20fbf0d00b 100644 --- a/editor/icons/icon_h_slider.svg +++ b/editor/icons/HSlider.svg diff --git a/editor/icons/icon_h_split_container.svg b/editor/icons/HSplitContainer.svg index ae7c05ee61..ae7c05ee61 100644 --- a/editor/icons/icon_h_split_container.svg +++ b/editor/icons/HSplitContainer.svg diff --git a/editor/icons/icon_h_t_t_p_request.svg b/editor/icons/HTTPRequest.svg index c79af15a43..c79af15a43 100644 --- a/editor/icons/icon_h_t_t_p_request.svg +++ b/editor/icons/HTTPRequest.svg diff --git a/editor/icons/icon_headphones.svg b/editor/icons/Headphones.svg index 82ef7acb29..82ef7acb29 100644 --- a/editor/icons/icon_headphones.svg +++ b/editor/icons/Headphones.svg diff --git a/editor/icons/icon_height_map_shape.svg b/editor/icons/HeightMapShape.svg index 2e0bf53565..2e0bf53565 100644 --- a/editor/icons/icon_height_map_shape.svg +++ b/editor/icons/HeightMapShape.svg diff --git a/editor/icons/icon_help.svg b/editor/icons/Help.svg index d993c95982..d993c95982 100644 --- a/editor/icons/icon_help.svg +++ b/editor/icons/Help.svg diff --git a/editor/icons/icon_help_search.svg b/editor/icons/HelpSearch.svg index 4a82ba23c7..4a82ba23c7 100644 --- a/editor/icons/icon_help_search.svg +++ b/editor/icons/HelpSearch.svg diff --git a/editor/icons/icon_hinge_joint.svg b/editor/icons/HingeJoint.svg index 21b3e29cb5..21b3e29cb5 100644 --- a/editor/icons/icon_hinge_joint.svg +++ b/editor/icons/HingeJoint.svg diff --git a/editor/icons/icon_history.svg b/editor/icons/History.svg index 48eed7b0c8..48eed7b0c8 100644 --- a/editor/icons/icon_history.svg +++ b/editor/icons/History.svg diff --git a/editor/icons/icon_hsize.svg b/editor/icons/Hsize.svg index 075bab1050..075bab1050 100644 --- a/editor/icons/icon_hsize.svg +++ b/editor/icons/Hsize.svg diff --git a/editor/icons/icon_image.svg b/editor/icons/Image.svg index f3beda898e..f3beda898e 100644 --- a/editor/icons/icon_image.svg +++ b/editor/icons/Image.svg diff --git a/editor/icons/icon_image_texture.svg b/editor/icons/ImageTexture.svg index 6e9905881b..6e9905881b 100644 --- a/editor/icons/icon_image_texture.svg +++ b/editor/icons/ImageTexture.svg diff --git a/editor/icons/icon_immediate_geometry.svg b/editor/icons/ImmediateGeometry.svg index 5679d5906f..5679d5906f 100644 --- a/editor/icons/icon_immediate_geometry.svg +++ b/editor/icons/ImmediateGeometry.svg diff --git a/editor/icons/icon_import_check.svg b/editor/icons/ImportCheck.svg index b2b967f37a..b2b967f37a 100644 --- a/editor/icons/icon_import_check.svg +++ b/editor/icons/ImportCheck.svg diff --git a/editor/icons/icon_import_fail.svg b/editor/icons/ImportFail.svg index 6c81f88d9f..6c81f88d9f 100644 --- a/editor/icons/icon_import_fail.svg +++ b/editor/icons/ImportFail.svg diff --git a/editor/icons/icon_information_sign.svg b/editor/icons/InformationSign.svg index a99be1b042..a99be1b042 100644 --- a/editor/icons/icon_information_sign.svg +++ b/editor/icons/InformationSign.svg diff --git a/editor/icons/icon_insert_after.svg b/editor/icons/InsertAfter.svg index cab00048ac..cab00048ac 100644 --- a/editor/icons/icon_insert_after.svg +++ b/editor/icons/InsertAfter.svg diff --git a/editor/icons/icon_insert_before.svg b/editor/icons/InsertBefore.svg index 366be3a1e6..366be3a1e6 100644 --- a/editor/icons/icon_insert_before.svg +++ b/editor/icons/InsertBefore.svg diff --git a/editor/icons/icon_instance.svg b/editor/icons/Instance.svg index 8fc985bb51..8fc985bb51 100644 --- a/editor/icons/icon_instance.svg +++ b/editor/icons/Instance.svg diff --git a/editor/icons/icon_instance_options.svg b/editor/icons/InstanceOptions.svg index ca9a5bcc87..ca9a5bcc87 100644 --- a/editor/icons/icon_instance_options.svg +++ b/editor/icons/InstanceOptions.svg diff --git a/editor/icons/icon_interp_cubic.svg b/editor/icons/InterpCubic.svg index c2dd7db08c..c2dd7db08c 100644 --- a/editor/icons/icon_interp_cubic.svg +++ b/editor/icons/InterpCubic.svg diff --git a/editor/icons/icon_interp_linear.svg b/editor/icons/InterpLinear.svg index 368be15315..368be15315 100644 --- a/editor/icons/icon_interp_linear.svg +++ b/editor/icons/InterpLinear.svg diff --git a/editor/icons/icon_interp_raw.svg b/editor/icons/InterpRaw.svg index 1c6ae0062a..1c6ae0062a 100644 --- a/editor/icons/icon_interp_raw.svg +++ b/editor/icons/InterpRaw.svg diff --git a/editor/icons/icon_interp_wrap_clamp.svg b/editor/icons/InterpWrapClamp.svg index 9634dc8a07..9634dc8a07 100644 --- a/editor/icons/icon_interp_wrap_clamp.svg +++ b/editor/icons/InterpWrapClamp.svg diff --git a/editor/icons/icon_interp_wrap_loop.svg b/editor/icons/InterpWrapLoop.svg index 6fbb4356c8..6fbb4356c8 100644 --- a/editor/icons/icon_interp_wrap_loop.svg +++ b/editor/icons/InterpWrapLoop.svg diff --git a/editor/icons/icon_interpolated_camera.svg b/editor/icons/InterpolatedCamera.svg index 4bc4ba1ee9..4bc4ba1ee9 100644 --- a/editor/icons/icon_interpolated_camera.svg +++ b/editor/icons/InterpolatedCamera.svg diff --git a/editor/icons/icon_inverse_kinematics.svg b/editor/icons/InverseKinematics.svg index a98c989ccc..a98c989ccc 100644 --- a/editor/icons/icon_inverse_kinematics.svg +++ b/editor/icons/InverseKinematics.svg diff --git a/editor/icons/icon_issue.svg b/editor/icons/Issue.svg index ddaaf41440..ddaaf41440 100644 --- a/editor/icons/icon_issue.svg +++ b/editor/icons/Issue.svg diff --git a/editor/icons/icon_item_list.svg b/editor/icons/ItemList.svg index 311ed08a44..311ed08a44 100644 --- a/editor/icons/icon_item_list.svg +++ b/editor/icons/ItemList.svg diff --git a/editor/icons/icon_joy_axis.svg b/editor/icons/JoyAxis.svg index cb7b5cdf8f..cb7b5cdf8f 100644 --- a/editor/icons/icon_joy_axis.svg +++ b/editor/icons/JoyAxis.svg diff --git a/editor/icons/icon_joy_button.svg b/editor/icons/JoyButton.svg index 9f4fbfdf2d..9f4fbfdf2d 100644 --- a/editor/icons/icon_joy_button.svg +++ b/editor/icons/JoyButton.svg diff --git a/editor/icons/icon_joypad.svg b/editor/icons/Joypad.svg index 8cb5de0c0e..8cb5de0c0e 100644 --- a/editor/icons/icon_joypad.svg +++ b/editor/icons/Joypad.svg diff --git a/editor/icons/icon_key.svg b/editor/icons/Key.svg index d134735c53..d134735c53 100644 --- a/editor/icons/icon_key.svg +++ b/editor/icons/Key.svg diff --git a/editor/icons/icon_key_animation.svg b/editor/icons/KeyAnimation.svg index 6db513ca26..6db513ca26 100644 --- a/editor/icons/icon_key_animation.svg +++ b/editor/icons/KeyAnimation.svg diff --git a/editor/icons/icon_key_audio.svg b/editor/icons/KeyAudio.svg index 75576885ec..75576885ec 100644 --- a/editor/icons/icon_key_audio.svg +++ b/editor/icons/KeyAudio.svg diff --git a/editor/icons/icon_key_bezier.svg b/editor/icons/KeyBezier.svg index dc5800fd5a..dc5800fd5a 100644 --- a/editor/icons/icon_key_bezier.svg +++ b/editor/icons/KeyBezier.svg diff --git a/editor/icons/icon_key_bezier_handle.svg b/editor/icons/KeyBezierHandle.svg index 9f00f61304..9f00f61304 100644 --- a/editor/icons/icon_key_bezier_handle.svg +++ b/editor/icons/KeyBezierHandle.svg diff --git a/editor/icons/icon_key_bezier_point.svg b/editor/icons/KeyBezierPoint.svg index 0edb55cda1..0edb55cda1 100644 --- a/editor/icons/icon_key_bezier_point.svg +++ b/editor/icons/KeyBezierPoint.svg diff --git a/editor/icons/icon_key_bezier_selected.svg b/editor/icons/KeyBezierSelected.svg index 9e50e2bdf1..9e50e2bdf1 100644 --- a/editor/icons/icon_key_bezier_selected.svg +++ b/editor/icons/KeyBezierSelected.svg diff --git a/editor/icons/icon_key_call.svg b/editor/icons/KeyCall.svg index 6cc442c391..6cc442c391 100644 --- a/editor/icons/icon_key_call.svg +++ b/editor/icons/KeyCall.svg diff --git a/editor/icons/icon_key_hover.svg b/editor/icons/KeyHover.svg index 417621716b..417621716b 100644 --- a/editor/icons/icon_key_hover.svg +++ b/editor/icons/KeyHover.svg diff --git a/editor/icons/icon_key_invalid.svg b/editor/icons/KeyInvalid.svg index 8ac9445b31..8ac9445b31 100644 --- a/editor/icons/icon_key_invalid.svg +++ b/editor/icons/KeyInvalid.svg diff --git a/editor/icons/icon_key_next.svg b/editor/icons/KeyNext.svg index 2d064e7e86..2d064e7e86 100644 --- a/editor/icons/icon_key_next.svg +++ b/editor/icons/KeyNext.svg diff --git a/editor/icons/icon_key_position.svg b/editor/icons/KeyPosition.svg index d152b76e8d..d152b76e8d 100644 --- a/editor/icons/icon_key_position.svg +++ b/editor/icons/KeyPosition.svg diff --git a/editor/icons/icon_key_rotation.svg b/editor/icons/KeyRotation.svg index 0d3577eac4..0d3577eac4 100644 --- a/editor/icons/icon_key_rotation.svg +++ b/editor/icons/KeyRotation.svg diff --git a/editor/icons/icon_key_scale.svg b/editor/icons/KeyScale.svg index a1214db62e..a1214db62e 100644 --- a/editor/icons/icon_key_scale.svg +++ b/editor/icons/KeyScale.svg diff --git a/editor/icons/icon_key_selected.svg b/editor/icons/KeySelected.svg index 6594aec6ee..6594aec6ee 100644 --- a/editor/icons/icon_key_selected.svg +++ b/editor/icons/KeySelected.svg diff --git a/editor/icons/icon_key_value.svg b/editor/icons/KeyValue.svg index 8a4787d6ed..8a4787d6ed 100644 --- a/editor/icons/icon_key_value.svg +++ b/editor/icons/KeyValue.svg diff --git a/editor/icons/icon_key_xform.svg b/editor/icons/KeyXform.svg index 4a567075a7..4a567075a7 100644 --- a/editor/icons/icon_key_xform.svg +++ b/editor/icons/KeyXform.svg diff --git a/editor/icons/icon_keyboard.svg b/editor/icons/Keyboard.svg index bd8736278d..bd8736278d 100644 --- a/editor/icons/icon_keyboard.svg +++ b/editor/icons/Keyboard.svg diff --git a/editor/icons/icon_kinematic_body.svg b/editor/icons/KinematicBody.svg index 16078fbdec..16078fbdec 100644 --- a/editor/icons/icon_kinematic_body.svg +++ b/editor/icons/KinematicBody.svg diff --git a/editor/icons/icon_kinematic_body_2d.svg b/editor/icons/KinematicBody2D.svg index be9dfa2d27..be9dfa2d27 100644 --- a/editor/icons/icon_kinematic_body_2d.svg +++ b/editor/icons/KinematicBody2D.svg diff --git a/editor/icons/icon_label.svg b/editor/icons/Label.svg index 24de398501..24de398501 100644 --- a/editor/icons/icon_label.svg +++ b/editor/icons/Label.svg diff --git a/editor/icons/icon_large_texture.svg b/editor/icons/LargeTexture.svg index 15920bf3d3..15920bf3d3 100644 --- a/editor/icons/icon_large_texture.svg +++ b/editor/icons/LargeTexture.svg diff --git a/editor/icons/icon_light_2d.svg b/editor/icons/Light2D.svg index 87cfb29149..87cfb29149 100644 --- a/editor/icons/icon_light_2d.svg +++ b/editor/icons/Light2D.svg diff --git a/editor/icons/icon_light_occluder_2d.svg b/editor/icons/LightOccluder2D.svg index 2905f9badd..2905f9badd 100644 --- a/editor/icons/icon_light_occluder_2d.svg +++ b/editor/icons/LightOccluder2D.svg diff --git a/editor/icons/icon_line_2d.svg b/editor/icons/Line2D.svg index 9728262e50..9728262e50 100644 --- a/editor/icons/icon_line_2d.svg +++ b/editor/icons/Line2D.svg diff --git a/editor/icons/icon_line_edit.svg b/editor/icons/LineEdit.svg index 4df7a3b248..4df7a3b248 100644 --- a/editor/icons/icon_line_edit.svg +++ b/editor/icons/LineEdit.svg diff --git a/editor/icons/icon_line_shape_2d.svg b/editor/icons/LineShape2D.svg index 758c0fbef2..758c0fbef2 100644 --- a/editor/icons/icon_line_shape_2d.svg +++ b/editor/icons/LineShape2D.svg diff --git a/editor/icons/icon_link_button.svg b/editor/icons/LinkButton.svg index bf7f7657eb..bf7f7657eb 100644 --- a/editor/icons/icon_link_button.svg +++ b/editor/icons/LinkButton.svg diff --git a/editor/icons/icon_list_select.svg b/editor/icons/ListSelect.svg index 42feb1922b..42feb1922b 100644 --- a/editor/icons/icon_list_select.svg +++ b/editor/icons/ListSelect.svg diff --git a/editor/icons/icon_listener.svg b/editor/icons/Listener.svg index 96eaeaffa9..96eaeaffa9 100644 --- a/editor/icons/icon_listener.svg +++ b/editor/icons/Listener.svg diff --git a/editor/icons/icon_load.svg b/editor/icons/Load.svg index 7ee6ae2a2d..7ee6ae2a2d 100644 --- a/editor/icons/icon_load.svg +++ b/editor/icons/Load.svg diff --git a/editor/icons/icon_lock.svg b/editor/icons/Lock.svg index 4136dad557..4136dad557 100644 --- a/editor/icons/icon_lock.svg +++ b/editor/icons/Lock.svg diff --git a/editor/icons/icon_lock_viewport.svg b/editor/icons/LockViewport.svg index 99c066055d..99c066055d 100644 --- a/editor/icons/icon_lock_viewport.svg +++ b/editor/icons/LockViewport.svg diff --git a/editor/icons/icon_logo.svg b/editor/icons/Logo.svg index f5379c48d4..f5379c48d4 100644 --- a/editor/icons/icon_logo.svg +++ b/editor/icons/Logo.svg diff --git a/editor/icons/icon_loop.svg b/editor/icons/Loop.svg index bbb8dadc06..bbb8dadc06 100644 --- a/editor/icons/icon_loop.svg +++ b/editor/icons/Loop.svg diff --git a/editor/icons/icon_loop_interpolation.svg b/editor/icons/LoopInterpolation.svg index 052a34ab36..052a34ab36 100644 --- a/editor/icons/icon_loop_interpolation.svg +++ b/editor/icons/LoopInterpolation.svg diff --git a/editor/icons/icon_main_play.svg b/editor/icons/MainPlay.svg index 5fd62b9453..5fd62b9453 100644 --- a/editor/icons/icon_main_play.svg +++ b/editor/icons/MainPlay.svg diff --git a/editor/icons/icon_margin_container.svg b/editor/icons/MarginContainer.svg index f11b415c06..f11b415c06 100644 --- a/editor/icons/icon_margin_container.svg +++ b/editor/icons/MarginContainer.svg diff --git a/editor/icons/icon_match_case.svg b/editor/icons/MatchCase.svg index 1b348f3d46..1b348f3d46 100644 --- a/editor/icons/icon_match_case.svg +++ b/editor/icons/MatchCase.svg diff --git a/editor/icons/icon_material_preview_cube.svg b/editor/icons/MaterialPreviewCube.svg index 7992ce05c1..7992ce05c1 100644 --- a/editor/icons/icon_material_preview_cube.svg +++ b/editor/icons/MaterialPreviewCube.svg diff --git a/editor/icons/icon_material_preview_cube_off.svg b/editor/icons/MaterialPreviewCubeOff.svg index 6dfe169eae..6dfe169eae 100644 --- a/editor/icons/icon_material_preview_cube_off.svg +++ b/editor/icons/MaterialPreviewCubeOff.svg diff --git a/editor/icons/icon_material_preview_light_1.svg b/editor/icons/MaterialPreviewLight1.svg index 3003793013..3003793013 100644 --- a/editor/icons/icon_material_preview_light_1.svg +++ b/editor/icons/MaterialPreviewLight1.svg diff --git a/editor/icons/icon_material_preview_light_1_off.svg b/editor/icons/MaterialPreviewLight1Off.svg index 6948e3d77e..6948e3d77e 100644 --- a/editor/icons/icon_material_preview_light_1_off.svg +++ b/editor/icons/MaterialPreviewLight1Off.svg diff --git a/editor/icons/icon_material_preview_light_2.svg b/editor/icons/MaterialPreviewLight2.svg index 08c05379e4..08c05379e4 100644 --- a/editor/icons/icon_material_preview_light_2.svg +++ b/editor/icons/MaterialPreviewLight2.svg diff --git a/editor/icons/icon_material_preview_light_2_off.svg b/editor/icons/MaterialPreviewLight2Off.svg index cc48927ece..cc48927ece 100644 --- a/editor/icons/icon_material_preview_light_2_off.svg +++ b/editor/icons/MaterialPreviewLight2Off.svg diff --git a/editor/icons/icon_material_preview_sphere.svg b/editor/icons/MaterialPreviewSphere.svg index 4f4ef67e20..4f4ef67e20 100644 --- a/editor/icons/icon_material_preview_sphere.svg +++ b/editor/icons/MaterialPreviewSphere.svg diff --git a/editor/icons/icon_material_preview_sphere_off.svg b/editor/icons/MaterialPreviewSphereOff.svg index f702b4fd27..f702b4fd27 100644 --- a/editor/icons/icon_material_preview_sphere_off.svg +++ b/editor/icons/MaterialPreviewSphereOff.svg diff --git a/editor/icons/icon_member_constant.svg b/editor/icons/MemberConstant.svg index ec82749cf4..ec82749cf4 100644 --- a/editor/icons/icon_member_constant.svg +++ b/editor/icons/MemberConstant.svg diff --git a/editor/icons/icon_member_method.svg b/editor/icons/MemberMethod.svg index ea5c64482c..ea5c64482c 100644 --- a/editor/icons/icon_member_method.svg +++ b/editor/icons/MemberMethod.svg diff --git a/editor/icons/icon_member_property.svg b/editor/icons/MemberProperty.svg index 4b6b7ab5df..4b6b7ab5df 100644 --- a/editor/icons/icon_member_property.svg +++ b/editor/icons/MemberProperty.svg diff --git a/editor/icons/icon_member_signal.svg b/editor/icons/MemberSignal.svg index 5159e4acd7..5159e4acd7 100644 --- a/editor/icons/icon_member_signal.svg +++ b/editor/icons/MemberSignal.svg diff --git a/editor/icons/icon_member_theme.svg b/editor/icons/MemberTheme.svg index 7aaaf2b808..7aaaf2b808 100644 --- a/editor/icons/icon_member_theme.svg +++ b/editor/icons/MemberTheme.svg diff --git a/editor/icons/icon_menu_button.svg b/editor/icons/MenuButton.svg index 8c23927783..8c23927783 100644 --- a/editor/icons/icon_menu_button.svg +++ b/editor/icons/MenuButton.svg diff --git a/editor/icons/icon_mesh.svg b/editor/icons/Mesh.svg index 0fb9e74584..0fb9e74584 100644 --- a/editor/icons/icon_mesh.svg +++ b/editor/icons/Mesh.svg diff --git a/editor/icons/icon_mesh_instance.svg b/editor/icons/MeshInstance.svg index 68344b7dbd..68344b7dbd 100644 --- a/editor/icons/icon_mesh_instance.svg +++ b/editor/icons/MeshInstance.svg diff --git a/editor/icons/icon_mesh_instance_2d.svg b/editor/icons/MeshInstance2D.svg index a173d02771..a173d02771 100644 --- a/editor/icons/icon_mesh_instance_2d.svg +++ b/editor/icons/MeshInstance2D.svg diff --git a/editor/icons/icon_mesh_library.svg b/editor/icons/MeshLibrary.svg index 13ae8fece7..13ae8fece7 100644 --- a/editor/icons/icon_mesh_library.svg +++ b/editor/icons/MeshLibrary.svg diff --git a/editor/icons/icon_mesh_texture.svg b/editor/icons/MeshTexture.svg index b3beff05c0..b3beff05c0 100644 --- a/editor/icons/icon_mesh_texture.svg +++ b/editor/icons/MeshTexture.svg diff --git a/editor/icons/icon_mini_object.svg b/editor/icons/MiniObject.svg index 0b34a9fdbb..0b34a9fdbb 100644 --- a/editor/icons/icon_mini_object.svg +++ b/editor/icons/MiniObject.svg diff --git a/editor/icons/icon_mirror_x.svg b/editor/icons/MirrorX.svg index 445a4e058d..445a4e058d 100644 --- a/editor/icons/icon_mirror_x.svg +++ b/editor/icons/MirrorX.svg diff --git a/editor/icons/icon_mirror_y.svg b/editor/icons/MirrorY.svg index ebfcf8cabd..ebfcf8cabd 100644 --- a/editor/icons/icon_mirror_y.svg +++ b/editor/icons/MirrorY.svg diff --git a/editor/icons/icon_mouse.svg b/editor/icons/Mouse.svg index 571288675a..571288675a 100644 --- a/editor/icons/icon_mouse.svg +++ b/editor/icons/Mouse.svg diff --git a/editor/icons/icon_move_down.svg b/editor/icons/MoveDown.svg index ba0c5d80ba..ba0c5d80ba 100644 --- a/editor/icons/icon_move_down.svg +++ b/editor/icons/MoveDown.svg diff --git a/editor/icons/icon_move_left.svg b/editor/icons/MoveLeft.svg index f4ad280ae1..f4ad280ae1 100644 --- a/editor/icons/icon_move_left.svg +++ b/editor/icons/MoveLeft.svg diff --git a/editor/icons/icon_move_point.svg b/editor/icons/MovePoint.svg index a8c11e7cb3..a8c11e7cb3 100644 --- a/editor/icons/icon_move_point.svg +++ b/editor/icons/MovePoint.svg diff --git a/editor/icons/icon_move_right.svg b/editor/icons/MoveRight.svg index 4d1c3b1145..4d1c3b1145 100644 --- a/editor/icons/icon_move_right.svg +++ b/editor/icons/MoveRight.svg diff --git a/editor/icons/icon_move_up.svg b/editor/icons/MoveUp.svg index 87c7834597..87c7834597 100644 --- a/editor/icons/icon_move_up.svg +++ b/editor/icons/MoveUp.svg diff --git a/editor/icons/icon_multi_edit.svg b/editor/icons/MultiEdit.svg index 9a5b3237b2..9a5b3237b2 100644 --- a/editor/icons/icon_multi_edit.svg +++ b/editor/icons/MultiEdit.svg diff --git a/editor/icons/icon_multi_line.svg b/editor/icons/MultiLine.svg index dd79bb50d8..dd79bb50d8 100644 --- a/editor/icons/icon_multi_line.svg +++ b/editor/icons/MultiLine.svg diff --git a/editor/icons/icon_multi_mesh.svg b/editor/icons/MultiMesh.svg index d317129ef4..d317129ef4 100644 --- a/editor/icons/icon_multi_mesh.svg +++ b/editor/icons/MultiMesh.svg diff --git a/editor/icons/icon_multi_mesh_instance.svg b/editor/icons/MultiMeshInstance.svg index c114a725db..c114a725db 100644 --- a/editor/icons/icon_multi_mesh_instance.svg +++ b/editor/icons/MultiMeshInstance.svg diff --git a/editor/icons/icon_multi_mesh_instance_2d.svg b/editor/icons/MultiMeshInstance2D.svg index 6c54a63ae2..6c54a63ae2 100644 --- a/editor/icons/icon_multi_mesh_instance_2d.svg +++ b/editor/icons/MultiMeshInstance2D.svg diff --git a/editor/icons/icon_navigation.svg b/editor/icons/Navigation.svg index d5a8f8618b..d5a8f8618b 100644 --- a/editor/icons/icon_navigation.svg +++ b/editor/icons/Navigation.svg diff --git a/editor/icons/icon_navigation_2d.svg b/editor/icons/Navigation2D.svg index 79dc532aee..79dc532aee 100644 --- a/editor/icons/icon_navigation_2d.svg +++ b/editor/icons/Navigation2D.svg diff --git a/editor/icons/icon_navigation_mesh.svg b/editor/icons/NavigationMesh.svg index 9bc4a00d53..9bc4a00d53 100644 --- a/editor/icons/icon_navigation_mesh.svg +++ b/editor/icons/NavigationMesh.svg diff --git a/editor/icons/icon_navigation_mesh_instance.svg b/editor/icons/NavigationMeshInstance.svg index 737d9c319d..737d9c319d 100644 --- a/editor/icons/icon_navigation_mesh_instance.svg +++ b/editor/icons/NavigationMeshInstance.svg diff --git a/editor/icons/icon_navigation_polygon.svg b/editor/icons/NavigationPolygon.svg index df2ddb07f6..df2ddb07f6 100644 --- a/editor/icons/icon_navigation_polygon.svg +++ b/editor/icons/NavigationPolygon.svg diff --git a/editor/icons/icon_navigation_polygon_instance.svg b/editor/icons/NavigationPolygonInstance.svg index e16d10614e..e16d10614e 100644 --- a/editor/icons/icon_navigation_polygon_instance.svg +++ b/editor/icons/NavigationPolygonInstance.svg diff --git a/editor/icons/icon_new.svg b/editor/icons/New.svg index a3199e3fba..a3199e3fba 100644 --- a/editor/icons/icon_new.svg +++ b/editor/icons/New.svg diff --git a/editor/icons/icon_new_root.svg b/editor/icons/NewRoot.svg index d32777d507..d32777d507 100644 --- a/editor/icons/icon_new_root.svg +++ b/editor/icons/NewRoot.svg diff --git a/editor/icons/icon_nil.svg b/editor/icons/Nil.svg index 04a29abaaa..04a29abaaa 100644 --- a/editor/icons/icon_nil.svg +++ b/editor/icons/Nil.svg diff --git a/editor/icons/icon_nine_patch_rect.svg b/editor/icons/NinePatchRect.svg index c5b04ec049..c5b04ec049 100644 --- a/editor/icons/icon_nine_patch_rect.svg +++ b/editor/icons/NinePatchRect.svg diff --git a/editor/icons/icon_node.svg b/editor/icons/Node.svg index 93f0ce80b1..93f0ce80b1 100644 --- a/editor/icons/icon_node.svg +++ b/editor/icons/Node.svg diff --git a/editor/icons/icon_node_2d.svg b/editor/icons/Node2D.svg index 5ca5754daa..5ca5754daa 100644 --- a/editor/icons/icon_node_2d.svg +++ b/editor/icons/Node2D.svg diff --git a/editor/icons/icon_node_path.svg b/editor/icons/NodePath.svg index 580283b75a..580283b75a 100644 --- a/editor/icons/icon_node_path.svg +++ b/editor/icons/NodePath.svg diff --git a/editor/icons/icon_node_warning.svg b/editor/icons/NodeWarning.svg index 587a49412e..587a49412e 100644 --- a/editor/icons/icon_node_warning.svg +++ b/editor/icons/NodeWarning.svg diff --git a/editor/icons/icon_non_favorite.svg b/editor/icons/NonFavorite.svg index eb0ebf052c..eb0ebf052c 100644 --- a/editor/icons/icon_non_favorite.svg +++ b/editor/icons/NonFavorite.svg diff --git a/editor/icons/icon_o_r_m_material_3d.svg b/editor/icons/ORMMaterial3D.svg index 3dd6013436..3dd6013436 100644 --- a/editor/icons/icon_o_r_m_material_3d.svg +++ b/editor/icons/ORMMaterial3D.svg diff --git a/editor/icons/icon_object.svg b/editor/icons/Object.svg index c3d1b47538..c3d1b47538 100644 --- a/editor/icons/icon_object.svg +++ b/editor/icons/Object.svg diff --git a/editor/icons/icon_occluder_polygon_2d.svg b/editor/icons/OccluderPolygon2D.svg index 19244f35ca..19244f35ca 100644 --- a/editor/icons/icon_occluder_polygon_2d.svg +++ b/editor/icons/OccluderPolygon2D.svg diff --git a/editor/icons/icon_omni_light.svg b/editor/icons/OmniLight.svg index 6fa0454e8c..6fa0454e8c 100644 --- a/editor/icons/icon_omni_light.svg +++ b/editor/icons/OmniLight.svg diff --git a/editor/icons/icon_onion.svg b/editor/icons/Onion.svg index ff1376c316..ff1376c316 100644 --- a/editor/icons/icon_onion.svg +++ b/editor/icons/Onion.svg diff --git a/editor/icons/icon_option_button.svg b/editor/icons/OptionButton.svg index 6b4402481d..6b4402481d 100644 --- a/editor/icons/icon_option_button.svg +++ b/editor/icons/OptionButton.svg diff --git a/editor/icons/icon_overbright_indicator.svg b/editor/icons/OverbrightIndicator.svg index 9e6f53b727..9e6f53b727 100644 --- a/editor/icons/icon_overbright_indicator.svg +++ b/editor/icons/OverbrightIndicator.svg diff --git a/editor/icons/icon_override.svg b/editor/icons/Override.svg index 2d8a1fb309..2d8a1fb309 100644 --- a/editor/icons/icon_override.svg +++ b/editor/icons/Override.svg diff --git a/editor/icons/icon_pool_byte_array.svg b/editor/icons/PackedByteArray.svg index 5409a47bc4..5409a47bc4 100644 --- a/editor/icons/icon_pool_byte_array.svg +++ b/editor/icons/PackedByteArray.svg diff --git a/editor/icons/icon_pool_color_array.svg b/editor/icons/PackedColorArray.svg index 7a312d0e91..7a312d0e91 100644 --- a/editor/icons/icon_pool_color_array.svg +++ b/editor/icons/PackedColorArray.svg diff --git a/editor/icons/icon_packed_data_container.svg b/editor/icons/PackedDataContainer.svg index 18bad53f66..18bad53f66 100644 --- a/editor/icons/icon_packed_data_container.svg +++ b/editor/icons/PackedDataContainer.svg diff --git a/editor/icons/icon_pool_real_array.svg b/editor/icons/PackedFloat32Array.svg index 734f40cd05..734f40cd05 100644 --- a/editor/icons/icon_pool_real_array.svg +++ b/editor/icons/PackedFloat32Array.svg diff --git a/editor/icons/PackedFloat64Array.svg b/editor/icons/PackedFloat64Array.svg new file mode 100644 index 0000000000..734f40cd05 --- /dev/null +++ b/editor/icons/PackedFloat64Array.svg @@ -0,0 +1 @@ +<svg height="12" viewBox="0 0 16 12" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m0 0v12h4v-2h-2v-8h2v-2zm12 0v2h2v8h-2v2h4v-12z" fill="#e0e0e0"/><path d="m6 2a3 3 0 0 0 -3 3v5h2v-2h1v-2h-1v-1a1 1 0 0 1 1-1zm1 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1-1v-5zm3 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1-1v-1h1v-2h-1v-2z" fill="#61daf4"/><path d="m7 2v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1-1v-5z" fill="#fff" fill-opacity=".39216"/></svg>
\ No newline at end of file diff --git a/editor/icons/icon_pool_int_array.svg b/editor/icons/PackedInt32Array.svg index a664b2d5fd..a664b2d5fd 100644 --- a/editor/icons/icon_pool_int_array.svg +++ b/editor/icons/PackedInt32Array.svg diff --git a/editor/icons/PackedInt64Array.svg b/editor/icons/PackedInt64Array.svg new file mode 100644 index 0000000000..a664b2d5fd --- /dev/null +++ b/editor/icons/PackedInt64Array.svg @@ -0,0 +1 @@ +<svg height="12" viewBox="0 0 16 12" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m0 0v12h4v-2h-2v-8h2v-2zm12 0v2h2v8h-2v2h4v-12z" fill="#e0e0e0"/><path d="m3 2v2h2v-2zm2 2v2h-2v4h4v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3-3zm5 3a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1-1v-1h1v-2h-1v-2h-2z" fill="#7dc6ef"/><path d="m5 4v6h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3-3z" fill="#fff" fill-opacity=".39216"/></svg>
\ No newline at end of file diff --git a/editor/icons/icon_packed_scene.svg b/editor/icons/PackedScene.svg index 9c1d88db1c..9c1d88db1c 100644 --- a/editor/icons/icon_packed_scene.svg +++ b/editor/icons/PackedScene.svg diff --git a/editor/icons/icon_pool_string_array.svg b/editor/icons/PackedStringArray.svg index 7e66f5f5e5..7e66f5f5e5 100644 --- a/editor/icons/icon_pool_string_array.svg +++ b/editor/icons/PackedStringArray.svg diff --git a/editor/icons/icon_pool_vector2_array.svg b/editor/icons/PackedVector2Array.svg index 170512eb39..170512eb39 100644 --- a/editor/icons/icon_pool_vector2_array.svg +++ b/editor/icons/PackedVector2Array.svg diff --git a/editor/icons/icon_pool_vector3_array.svg b/editor/icons/PackedVector3Array.svg index cd3578182f..cd3578182f 100644 --- a/editor/icons/icon_pool_vector3_array.svg +++ b/editor/icons/PackedVector3Array.svg diff --git a/editor/icons/icon_paint_vertex.svg b/editor/icons/PaintVertex.svg index cab3716bf5..cab3716bf5 100644 --- a/editor/icons/icon_paint_vertex.svg +++ b/editor/icons/PaintVertex.svg diff --git a/editor/icons/icon_panel.svg b/editor/icons/Panel.svg index 10a67bae7e..10a67bae7e 100644 --- a/editor/icons/icon_panel.svg +++ b/editor/icons/Panel.svg diff --git a/editor/icons/icon_panel_container.svg b/editor/icons/PanelContainer.svg index 08c5492f7e..08c5492f7e 100644 --- a/editor/icons/icon_panel_container.svg +++ b/editor/icons/PanelContainer.svg diff --git a/editor/icons/icon_panels_1.svg b/editor/icons/Panels1.svg index 850aad2cff..850aad2cff 100644 --- a/editor/icons/icon_panels_1.svg +++ b/editor/icons/Panels1.svg diff --git a/editor/icons/icon_panels_2.svg b/editor/icons/Panels2.svg index 5f3fc6cf48..5f3fc6cf48 100644 --- a/editor/icons/icon_panels_2.svg +++ b/editor/icons/Panels2.svg diff --git a/editor/icons/icon_panels_2_alt.svg b/editor/icons/Panels2Alt.svg index edee3a660f..edee3a660f 100644 --- a/editor/icons/icon_panels_2_alt.svg +++ b/editor/icons/Panels2Alt.svg diff --git a/editor/icons/icon_panels_3.svg b/editor/icons/Panels3.svg index 3ddcb5e2ef..3ddcb5e2ef 100644 --- a/editor/icons/icon_panels_3.svg +++ b/editor/icons/Panels3.svg diff --git a/editor/icons/icon_panels_3_alt.svg b/editor/icons/Panels3Alt.svg index 0f36a24da8..0f36a24da8 100644 --- a/editor/icons/icon_panels_3_alt.svg +++ b/editor/icons/Panels3Alt.svg diff --git a/editor/icons/icon_panels_4.svg b/editor/icons/Panels4.svg index 7b2189087f..7b2189087f 100644 --- a/editor/icons/icon_panels_4.svg +++ b/editor/icons/Panels4.svg diff --git a/editor/icons/icon_panorama_sky.svg b/editor/icons/PanoramaSky.svg index bfff6840bd..bfff6840bd 100644 --- a/editor/icons/icon_panorama_sky.svg +++ b/editor/icons/PanoramaSky.svg diff --git a/editor/icons/icon_parallax_background.svg b/editor/icons/ParallaxBackground.svg index 09e6a7d19d..09e6a7d19d 100644 --- a/editor/icons/icon_parallax_background.svg +++ b/editor/icons/ParallaxBackground.svg diff --git a/editor/icons/icon_parallax_layer.svg b/editor/icons/ParallaxLayer.svg index d8a5ef5e1f..d8a5ef5e1f 100644 --- a/editor/icons/icon_parallax_layer.svg +++ b/editor/icons/ParallaxLayer.svg diff --git a/editor/icons/icon_particles.svg b/editor/icons/Particles.svg index f1378e3f8c..f1378e3f8c 100644 --- a/editor/icons/icon_particles.svg +++ b/editor/icons/Particles.svg diff --git a/editor/icons/icon_particles_2d.svg b/editor/icons/Particles2D.svg index 7151194e36..7151194e36 100644 --- a/editor/icons/icon_particles_2d.svg +++ b/editor/icons/Particles2D.svg diff --git a/editor/icons/icon_particles_material.svg b/editor/icons/ParticlesMaterial.svg index af45f9888a..af45f9888a 100644 --- a/editor/icons/icon_particles_material.svg +++ b/editor/icons/ParticlesMaterial.svg diff --git a/editor/icons/icon_path.svg b/editor/icons/Path.svg index cde9a06903..cde9a06903 100644 --- a/editor/icons/icon_path.svg +++ b/editor/icons/Path.svg diff --git a/editor/icons/icon_path_2d.svg b/editor/icons/Path2D.svg index 8aa0453b88..8aa0453b88 100644 --- a/editor/icons/icon_path_2d.svg +++ b/editor/icons/Path2D.svg diff --git a/editor/icons/icon_path_follow.svg b/editor/icons/PathFollow.svg index 8e904ab5a5..8e904ab5a5 100644 --- a/editor/icons/icon_path_follow.svg +++ b/editor/icons/PathFollow.svg diff --git a/editor/icons/icon_path_follow_2d.svg b/editor/icons/PathFollow2D.svg index 20a32f2d83..20a32f2d83 100644 --- a/editor/icons/icon_path_follow_2d.svg +++ b/editor/icons/PathFollow2D.svg diff --git a/editor/icons/icon_pause.svg b/editor/icons/Pause.svg index 14c9971383..14c9971383 100644 --- a/editor/icons/icon_pause.svg +++ b/editor/icons/Pause.svg diff --git a/editor/icons/icon_physical_bone.svg b/editor/icons/PhysicalBone.svg index 0a34eb6e48..0a34eb6e48 100644 --- a/editor/icons/icon_physical_bone.svg +++ b/editor/icons/PhysicalBone.svg diff --git a/editor/icons/icon_pin.svg b/editor/icons/Pin.svg index 85cd815b64..85cd815b64 100644 --- a/editor/icons/icon_pin.svg +++ b/editor/icons/Pin.svg diff --git a/editor/icons/icon_pin_joint.svg b/editor/icons/PinJoint.svg index 147553d316..147553d316 100644 --- a/editor/icons/icon_pin_joint.svg +++ b/editor/icons/PinJoint.svg diff --git a/editor/icons/icon_pin_joint_2d.svg b/editor/icons/PinJoint2D.svg index f1dcafb923..f1dcafb923 100644 --- a/editor/icons/icon_pin_joint_2d.svg +++ b/editor/icons/PinJoint2D.svg diff --git a/editor/icons/icon_pin_pressed.svg b/editor/icons/PinPressed.svg index 85cd815b64..85cd815b64 100644 --- a/editor/icons/icon_pin_pressed.svg +++ b/editor/icons/PinPressed.svg diff --git a/editor/icons/icon_plane.svg b/editor/icons/Plane.svg index 3a943af0b3..3a943af0b3 100644 --- a/editor/icons/icon_plane.svg +++ b/editor/icons/Plane.svg diff --git a/editor/icons/icon_plane_mesh.svg b/editor/icons/PlaneMesh.svg index ddcc623c67..ddcc623c67 100644 --- a/editor/icons/icon_plane_mesh.svg +++ b/editor/icons/PlaneMesh.svg diff --git a/editor/icons/icon_plane_shape.svg b/editor/icons/PlaneShape.svg index 2c90cf6d53..2c90cf6d53 100644 --- a/editor/icons/icon_plane_shape.svg +++ b/editor/icons/PlaneShape.svg diff --git a/editor/icons/icon_play.svg b/editor/icons/Play.svg index 4c16215a68..4c16215a68 100644 --- a/editor/icons/icon_play.svg +++ b/editor/icons/Play.svg diff --git a/editor/icons/icon_play_backwards.svg b/editor/icons/PlayBackwards.svg index c98f15ea50..c98f15ea50 100644 --- a/editor/icons/icon_play_backwards.svg +++ b/editor/icons/PlayBackwards.svg diff --git a/editor/icons/icon_play_custom.svg b/editor/icons/PlayCustom.svg index e19a8e7028..e19a8e7028 100644 --- a/editor/icons/icon_play_custom.svg +++ b/editor/icons/PlayCustom.svg diff --git a/editor/icons/icon_play_overlay.svg b/editor/icons/PlayOverlay.svg index 1fb2da6596..1fb2da6596 100644 --- a/editor/icons/icon_play_overlay.svg +++ b/editor/icons/PlayOverlay.svg diff --git a/editor/icons/icon_play_scene.svg b/editor/icons/PlayScene.svg index 5e5097fd66..5e5097fd66 100644 --- a/editor/icons/icon_play_scene.svg +++ b/editor/icons/PlayScene.svg diff --git a/editor/icons/icon_play_start.svg b/editor/icons/PlayStart.svg index 2ade7371e0..2ade7371e0 100644 --- a/editor/icons/icon_play_start.svg +++ b/editor/icons/PlayStart.svg diff --git a/editor/icons/icon_play_start_backwards.svg b/editor/icons/PlayStartBackwards.svg index 195f9a646e..195f9a646e 100644 --- a/editor/icons/icon_play_start_backwards.svg +++ b/editor/icons/PlayStartBackwards.svg diff --git a/editor/icons/icon_play_travel.svg b/editor/icons/PlayTravel.svg index d772476e15..d772476e15 100644 --- a/editor/icons/icon_play_travel.svg +++ b/editor/icons/PlayTravel.svg diff --git a/editor/icons/icon_plugin_script.svg b/editor/icons/PluginScript.svg index 0d080c132e..0d080c132e 100644 --- a/editor/icons/icon_plugin_script.svg +++ b/editor/icons/PluginScript.svg diff --git a/editor/icons/icon_point_mesh.svg b/editor/icons/PointMesh.svg index 0504b7ff01..0504b7ff01 100644 --- a/editor/icons/icon_point_mesh.svg +++ b/editor/icons/PointMesh.svg diff --git a/editor/icons/icon_polygon_2_d.svg b/editor/icons/Polygon2D.svg index 485109072e..485109072e 100644 --- a/editor/icons/icon_polygon_2_d.svg +++ b/editor/icons/Polygon2D.svg diff --git a/editor/icons/icon_polygon_path_finder.svg b/editor/icons/PolygonPathFinder.svg index b41067d08a..b41067d08a 100644 --- a/editor/icons/icon_polygon_path_finder.svg +++ b/editor/icons/PolygonPathFinder.svg diff --git a/editor/icons/icon_popup.svg b/editor/icons/Popup.svg index 93f7e5000d..93f7e5000d 100644 --- a/editor/icons/icon_popup.svg +++ b/editor/icons/Popup.svg diff --git a/editor/icons/icon_popup_dialog.svg b/editor/icons/PopupDialog.svg index d871e56a63..d871e56a63 100644 --- a/editor/icons/icon_popup_dialog.svg +++ b/editor/icons/PopupDialog.svg diff --git a/editor/icons/icon_popup_menu.svg b/editor/icons/PopupMenu.svg index dd7b2bb0fd..dd7b2bb0fd 100644 --- a/editor/icons/icon_popup_menu.svg +++ b/editor/icons/PopupMenu.svg diff --git a/editor/icons/icon_popup_panel.svg b/editor/icons/PopupPanel.svg index 47a5448f5b..47a5448f5b 100644 --- a/editor/icons/icon_popup_panel.svg +++ b/editor/icons/PopupPanel.svg diff --git a/editor/icons/icon_portal.svg b/editor/icons/Portal.svg index 99d626e2f4..99d626e2f4 100644 --- a/editor/icons/icon_portal.svg +++ b/editor/icons/Portal.svg diff --git a/editor/icons/icon_position_2d.svg b/editor/icons/Position2D.svg index 22d4ab05ca..22d4ab05ca 100644 --- a/editor/icons/icon_position_2d.svg +++ b/editor/icons/Position2D.svg diff --git a/editor/icons/icon_position_3d.svg b/editor/icons/Position3D.svg index 0401942d69..0401942d69 100644 --- a/editor/icons/icon_position_3d.svg +++ b/editor/icons/Position3D.svg diff --git a/editor/icons/icon_prism_mesh.svg b/editor/icons/PrismMesh.svg index c391652add..c391652add 100644 --- a/editor/icons/icon_prism_mesh.svg +++ b/editor/icons/PrismMesh.svg diff --git a/editor/icons/icon_procedural_sky.svg b/editor/icons/ProceduralSky.svg index 356a966fe9..356a966fe9 100644 --- a/editor/icons/icon_procedural_sky.svg +++ b/editor/icons/ProceduralSky.svg diff --git a/editor/icons/icon_progress_1.svg b/editor/icons/Progress1.svg index 01c2f8f334..01c2f8f334 100644 --- a/editor/icons/icon_progress_1.svg +++ b/editor/icons/Progress1.svg diff --git a/editor/icons/icon_progress_2.svg b/editor/icons/Progress2.svg index a18ceb0381..a18ceb0381 100644 --- a/editor/icons/icon_progress_2.svg +++ b/editor/icons/Progress2.svg diff --git a/editor/icons/icon_progress_3.svg b/editor/icons/Progress3.svg index 55b01dad83..55b01dad83 100644 --- a/editor/icons/icon_progress_3.svg +++ b/editor/icons/Progress3.svg diff --git a/editor/icons/icon_progress_4.svg b/editor/icons/Progress4.svg index a038bbec70..a038bbec70 100644 --- a/editor/icons/icon_progress_4.svg +++ b/editor/icons/Progress4.svg diff --git a/editor/icons/icon_progress_5.svg b/editor/icons/Progress5.svg index 64144978af..64144978af 100644 --- a/editor/icons/icon_progress_5.svg +++ b/editor/icons/Progress5.svg diff --git a/editor/icons/icon_progress_6.svg b/editor/icons/Progress6.svg index 83b1806263..83b1806263 100644 --- a/editor/icons/icon_progress_6.svg +++ b/editor/icons/Progress6.svg diff --git a/editor/icons/icon_progress_7.svg b/editor/icons/Progress7.svg index 77d4321a14..77d4321a14 100644 --- a/editor/icons/icon_progress_7.svg +++ b/editor/icons/Progress7.svg diff --git a/editor/icons/icon_progress_8.svg b/editor/icons/Progress8.svg index ee76ba4499..ee76ba4499 100644 --- a/editor/icons/icon_progress_8.svg +++ b/editor/icons/Progress8.svg diff --git a/editor/icons/icon_progress_bar.svg b/editor/icons/ProgressBar.svg index 70f99e3bbb..70f99e3bbb 100644 --- a/editor/icons/icon_progress_bar.svg +++ b/editor/icons/ProgressBar.svg diff --git a/editor/icons/icon_project_icon_loading.svg b/editor/icons/ProjectIconLoading.svg index 3802b67654..3802b67654 100644 --- a/editor/icons/icon_project_icon_loading.svg +++ b/editor/icons/ProjectIconLoading.svg diff --git a/editor/icons/icon_proximity_group.svg b/editor/icons/ProximityGroup.svg index 7df1cc9093..7df1cc9093 100644 --- a/editor/icons/icon_proximity_group.svg +++ b/editor/icons/ProximityGroup.svg diff --git a/editor/icons/icon_proxy_texture.svg b/editor/icons/ProxyTexture.svg index 0c19363cb4..0c19363cb4 100644 --- a/editor/icons/icon_proxy_texture.svg +++ b/editor/icons/ProxyTexture.svg diff --git a/editor/icons/icon_quad.svg b/editor/icons/Quad.svg index 4657e0b0bd..4657e0b0bd 100644 --- a/editor/icons/icon_quad.svg +++ b/editor/icons/Quad.svg diff --git a/editor/icons/icon_quad_mesh.svg b/editor/icons/QuadMesh.svg index de0bd3e127..de0bd3e127 100644 --- a/editor/icons/icon_quad_mesh.svg +++ b/editor/icons/QuadMesh.svg diff --git a/editor/icons/icon_quat.svg b/editor/icons/Quat.svg index 8702a3041a..8702a3041a 100644 --- a/editor/icons/icon_quat.svg +++ b/editor/icons/Quat.svg diff --git a/editor/icons/icon_r_i_d.svg b/editor/icons/RID.svg index a6ace54d12..a6ace54d12 100644 --- a/editor/icons/icon_r_i_d.svg +++ b/editor/icons/RID.svg diff --git a/editor/icons/icon_ray_cast.svg b/editor/icons/RayCast.svg index e782b27e9f..e782b27e9f 100644 --- a/editor/icons/icon_ray_cast.svg +++ b/editor/icons/RayCast.svg diff --git a/editor/icons/icon_ray_cast_2d.svg b/editor/icons/RayCast2D.svg index 02faaa51c9..02faaa51c9 100644 --- a/editor/icons/icon_ray_cast_2d.svg +++ b/editor/icons/RayCast2D.svg diff --git a/editor/icons/icon_ray_shape.svg b/editor/icons/RayShape.svg index 37c2206740..37c2206740 100644 --- a/editor/icons/icon_ray_shape.svg +++ b/editor/icons/RayShape.svg diff --git a/editor/icons/icon_ray_shape_2d.svg b/editor/icons/RayShape2D.svg index 109c254fc3..109c254fc3 100644 --- a/editor/icons/icon_ray_shape_2d.svg +++ b/editor/icons/RayShape2D.svg diff --git a/editor/icons/icon_rayito.svg b/editor/icons/Rayito.svg index 4fd6a2827b..4fd6a2827b 100644 --- a/editor/icons/icon_rayito.svg +++ b/editor/icons/Rayito.svg diff --git a/editor/icons/icon_rect2.svg b/editor/icons/Rect2.svg index 25feb52cab..25feb52cab 100644 --- a/editor/icons/icon_rect2.svg +++ b/editor/icons/Rect2.svg diff --git a/editor/icons/Rect2i.svg b/editor/icons/Rect2i.svg new file mode 100644 index 0000000000..d28c098ed6 --- /dev/null +++ b/editor/icons/Rect2i.svg @@ -0,0 +1,4 @@ +<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg"> +<path d="m9 2v2h-1c-1.7267 0-3 1.3359-3 3 0 1.6569 1.3431 3 3 3h1v-2h-1c-0.55228 0-1-0.44772-1-1s0.44772-1 1-1h1v1c0 1.6569 1.3431 3 3 3v-2c-0.55228 0-0.93526-0.45152-1-1v-1h1v-2h-1v-2zm-5 2c-1.6569 0-2.9547 1.3438-3 3v3h2v-3c0-0.55228 0.44772-1 1-1h1v-2z" fill="#f191a5"/> +<path d="m13 2v2h2v-2zm0 4v4h2v-4z" fill="#7dc6ef"/> +</svg> diff --git a/editor/icons/icon_rectangle_shape_2d.svg b/editor/icons/RectangleShape2D.svg index 437547ece3..437547ece3 100644 --- a/editor/icons/icon_rectangle_shape_2d.svg +++ b/editor/icons/RectangleShape2D.svg diff --git a/editor/icons/icon_reference_rect.svg b/editor/icons/ReferenceRect.svg index 2fd530d584..2fd530d584 100644 --- a/editor/icons/icon_reference_rect.svg +++ b/editor/icons/ReferenceRect.svg diff --git a/editor/icons/icon_reflection_probe.svg b/editor/icons/ReflectionProbe.svg index 6bf9cc9013..6bf9cc9013 100644 --- a/editor/icons/icon_reflection_probe.svg +++ b/editor/icons/ReflectionProbe.svg diff --git a/editor/icons/icon_region_edit.svg b/editor/icons/RegionEdit.svg index 8443c0e454..8443c0e454 100644 --- a/editor/icons/icon_region_edit.svg +++ b/editor/icons/RegionEdit.svg diff --git a/editor/icons/icon_reload.svg b/editor/icons/Reload.svg index 223a725332..223a725332 100644 --- a/editor/icons/icon_reload.svg +++ b/editor/icons/Reload.svg diff --git a/editor/icons/icon_reload_small.svg b/editor/icons/ReloadSmall.svg index ce707b645a..ce707b645a 100644 --- a/editor/icons/icon_reload_small.svg +++ b/editor/icons/ReloadSmall.svg diff --git a/editor/icons/icon_remote_transform.svg b/editor/icons/RemoteTransform.svg index 2bdf8cd858..2bdf8cd858 100644 --- a/editor/icons/icon_remote_transform.svg +++ b/editor/icons/RemoteTransform.svg diff --git a/editor/icons/icon_remote_transform_2d.svg b/editor/icons/RemoteTransform2D.svg index 51c9e084df..51c9e084df 100644 --- a/editor/icons/icon_remote_transform_2d.svg +++ b/editor/icons/RemoteTransform2D.svg diff --git a/editor/icons/icon_remove.svg b/editor/icons/Remove.svg index 9372eb08b5..9372eb08b5 100644 --- a/editor/icons/icon_remove.svg +++ b/editor/icons/Remove.svg diff --git a/editor/icons/icon_remove_internal.svg b/editor/icons/RemoveInternal.svg index 0a7e06e6cd..0a7e06e6cd 100644 --- a/editor/icons/icon_remove_internal.svg +++ b/editor/icons/RemoveInternal.svg diff --git a/editor/icons/icon_rename.svg b/editor/icons/Rename.svg index 01923e3a0a..01923e3a0a 100644 --- a/editor/icons/icon_rename.svg +++ b/editor/icons/Rename.svg diff --git a/editor/icons/icon_reparent.svg b/editor/icons/Reparent.svg index 39b79cd3a1..39b79cd3a1 100644 --- a/editor/icons/icon_reparent.svg +++ b/editor/icons/Reparent.svg diff --git a/editor/icons/icon_reparent_to_new_node.svg b/editor/icons/ReparentToNewNode.svg index 37fbee848c..37fbee848c 100644 --- a/editor/icons/icon_reparent_to_new_node.svg +++ b/editor/icons/ReparentToNewNode.svg diff --git a/editor/icons/icon_resource_preloader.svg b/editor/icons/ResourcePreloader.svg index 417e63b604..417e63b604 100644 --- a/editor/icons/icon_resource_preloader.svg +++ b/editor/icons/ResourcePreloader.svg diff --git a/editor/icons/icon_rich_text_effect.svg b/editor/icons/RichTextEffect.svg index afe08685bd..afe08685bd 100644 --- a/editor/icons/icon_rich_text_effect.svg +++ b/editor/icons/RichTextEffect.svg diff --git a/editor/icons/icon_rich_text_label.svg b/editor/icons/RichTextLabel.svg index 3f4b33707c..3f4b33707c 100644 --- a/editor/icons/icon_rich_text_label.svg +++ b/editor/icons/RichTextLabel.svg diff --git a/editor/icons/icon_rigid_body.svg b/editor/icons/RigidBody.svg index 5d766f7c3d..5d766f7c3d 100644 --- a/editor/icons/icon_rigid_body.svg +++ b/editor/icons/RigidBody.svg diff --git a/editor/icons/icon_rigid_body_2d.svg b/editor/icons/RigidBody2D.svg index bb97fa650b..bb97fa650b 100644 --- a/editor/icons/icon_rigid_body_2d.svg +++ b/editor/icons/RigidBody2D.svg diff --git a/editor/icons/icon_room.svg b/editor/icons/Room.svg index 799be9f99a..799be9f99a 100644 --- a/editor/icons/icon_room.svg +++ b/editor/icons/Room.svg diff --git a/editor/icons/icon_room_bounds.svg b/editor/icons/RoomBounds.svg index ad90944ac6..ad90944ac6 100644 --- a/editor/icons/icon_room_bounds.svg +++ b/editor/icons/RoomBounds.svg diff --git a/editor/icons/icon_rotate_0.svg b/editor/icons/Rotate0.svg index 96174ca93b..96174ca93b 100644 --- a/editor/icons/icon_rotate_0.svg +++ b/editor/icons/Rotate0.svg diff --git a/editor/icons/icon_rotate_180.svg b/editor/icons/Rotate180.svg index 11415e1e19..11415e1e19 100644 --- a/editor/icons/icon_rotate_180.svg +++ b/editor/icons/Rotate180.svg diff --git a/editor/icons/icon_rotate_270.svg b/editor/icons/Rotate270.svg index be26bc4337..be26bc4337 100644 --- a/editor/icons/icon_rotate_270.svg +++ b/editor/icons/Rotate270.svg diff --git a/editor/icons/icon_rotate_90.svg b/editor/icons/Rotate90.svg index d46c56a1fc..d46c56a1fc 100644 --- a/editor/icons/icon_rotate_90.svg +++ b/editor/icons/Rotate90.svg diff --git a/editor/icons/icon_rotate_left.svg b/editor/icons/RotateLeft.svg index 223a725332..223a725332 100644 --- a/editor/icons/icon_rotate_left.svg +++ b/editor/icons/RotateLeft.svg diff --git a/editor/icons/icon_rotate_right.svg b/editor/icons/RotateRight.svg index 2b66bae998..2b66bae998 100644 --- a/editor/icons/icon_rotate_right.svg +++ b/editor/icons/RotateRight.svg diff --git a/editor/icons/icon_ruler.svg b/editor/icons/Ruler.svg index dbe02102ec..dbe02102ec 100644 --- a/editor/icons/icon_ruler.svg +++ b/editor/icons/Ruler.svg diff --git a/editor/icons/icon_sample_library.svg b/editor/icons/SampleLibrary.svg index e83a1a3778..e83a1a3778 100644 --- a/editor/icons/icon_sample_library.svg +++ b/editor/icons/SampleLibrary.svg diff --git a/editor/icons/icon_save.svg b/editor/icons/Save.svg index be5d3ef6fd..be5d3ef6fd 100644 --- a/editor/icons/icon_save.svg +++ b/editor/icons/Save.svg diff --git a/editor/icons/icon_script.svg b/editor/icons/Script.svg index 1c6ec51a48..1c6ec51a48 100644 --- a/editor/icons/icon_script.svg +++ b/editor/icons/Script.svg diff --git a/editor/icons/icon_script_create.svg b/editor/icons/ScriptCreate.svg index 0a03907a13..0a03907a13 100644 --- a/editor/icons/icon_script_create.svg +++ b/editor/icons/ScriptCreate.svg diff --git a/editor/icons/icon_script_create_dialog.svg b/editor/icons/ScriptCreateDialog.svg index 751b799ba9..751b799ba9 100644 --- a/editor/icons/icon_script_create_dialog.svg +++ b/editor/icons/ScriptCreateDialog.svg diff --git a/editor/icons/icon_script_extend.svg b/editor/icons/ScriptExtend.svg index efa0077ab1..efa0077ab1 100644 --- a/editor/icons/icon_script_extend.svg +++ b/editor/icons/ScriptExtend.svg diff --git a/editor/icons/icon_script_remove.svg b/editor/icons/ScriptRemove.svg index de67d02947..de67d02947 100644 --- a/editor/icons/icon_script_remove.svg +++ b/editor/icons/ScriptRemove.svg diff --git a/editor/icons/icon_scroll_container.svg b/editor/icons/ScrollContainer.svg index 738748ca91..738748ca91 100644 --- a/editor/icons/icon_scroll_container.svg +++ b/editor/icons/ScrollContainer.svg diff --git a/editor/icons/icon_search.svg b/editor/icons/Search.svg index 04dc4f7372..04dc4f7372 100644 --- a/editor/icons/icon_search.svg +++ b/editor/icons/Search.svg diff --git a/editor/icons/icon_segment_shape_2d.svg b/editor/icons/SegmentShape2D.svg index e4c04ae7c6..e4c04ae7c6 100644 --- a/editor/icons/icon_segment_shape_2d.svg +++ b/editor/icons/SegmentShape2D.svg diff --git a/editor/icons/icon_shader.svg b/editor/icons/Shader.svg index 479379d235..479379d235 100644 --- a/editor/icons/icon_shader.svg +++ b/editor/icons/Shader.svg diff --git a/editor/icons/icon_shader_material.svg b/editor/icons/ShaderMaterial.svg index 37c1610f29..37c1610f29 100644 --- a/editor/icons/icon_shader_material.svg +++ b/editor/icons/ShaderMaterial.svg diff --git a/editor/icons/icon_short_cut.svg b/editor/icons/ShortCut.svg index f4e302efdb..f4e302efdb 100644 --- a/editor/icons/icon_short_cut.svg +++ b/editor/icons/ShortCut.svg diff --git a/editor/icons/icon_signal.svg b/editor/icons/Signal.svg index 82fdf2b059..82fdf2b059 100644 --- a/editor/icons/icon_signal.svg +++ b/editor/icons/Signal.svg diff --git a/editor/icons/icon_signals.svg b/editor/icons/Signals.svg index 9c09546f84..9c09546f84 100644 --- a/editor/icons/icon_signals.svg +++ b/editor/icons/Signals.svg diff --git a/editor/icons/icon_signals_and_groups.svg b/editor/icons/SignalsAndGroups.svg index d568296d5f..d568296d5f 100644 --- a/editor/icons/icon_signals_and_groups.svg +++ b/editor/icons/SignalsAndGroups.svg diff --git a/editor/icons/icon_skeleton.svg b/editor/icons/Skeleton.svg index 015c842125..015c842125 100644 --- a/editor/icons/icon_skeleton.svg +++ b/editor/icons/Skeleton.svg diff --git a/editor/icons/icon_skeleton_2d.svg b/editor/icons/Skeleton2D.svg index 8e38b5c971..8e38b5c971 100644 --- a/editor/icons/icon_skeleton_2d.svg +++ b/editor/icons/Skeleton2D.svg diff --git a/editor/icons/icon_skeleton_i_k.svg b/editor/icons/SkeletonIK.svg index e69f6e8bf3..e69f6e8bf3 100644 --- a/editor/icons/icon_skeleton_i_k.svg +++ b/editor/icons/SkeletonIK.svg diff --git a/editor/icons/icon_slider_joint.svg b/editor/icons/SliderJoint.svg index fdd7487bbf..fdd7487bbf 100644 --- a/editor/icons/icon_slider_joint.svg +++ b/editor/icons/SliderJoint.svg diff --git a/editor/icons/icon_slot.svg b/editor/icons/Slot.svg index 24d54297a8..24d54297a8 100644 --- a/editor/icons/icon_slot.svg +++ b/editor/icons/Slot.svg diff --git a/editor/icons/icon_snap.svg b/editor/icons/Snap.svg index 632cf6c27d..632cf6c27d 100644 --- a/editor/icons/icon_snap.svg +++ b/editor/icons/Snap.svg diff --git a/editor/icons/icon_snap_grid.svg b/editor/icons/SnapGrid.svg index a4a1f33053..a4a1f33053 100644 --- a/editor/icons/icon_snap_grid.svg +++ b/editor/icons/SnapGrid.svg diff --git a/editor/icons/icon_soft_body.svg b/editor/icons/SoftBody.svg index 2c907df847..2c907df847 100644 --- a/editor/icons/icon_soft_body.svg +++ b/editor/icons/SoftBody.svg diff --git a/editor/icons/icon_sort.svg b/editor/icons/Sort.svg index 0b2f7f7ea9..0b2f7f7ea9 100644 --- a/editor/icons/icon_sort.svg +++ b/editor/icons/Sort.svg diff --git a/editor/icons/icon_spatial.svg b/editor/icons/Spatial.svg index 6a469dde13..6a469dde13 100644 --- a/editor/icons/icon_spatial.svg +++ b/editor/icons/Spatial.svg diff --git a/editor/icons/icon_spatial_material.svg b/editor/icons/SpatialMaterial.svg index cfd994a0fe..cfd994a0fe 100644 --- a/editor/icons/icon_spatial_material.svg +++ b/editor/icons/SpatialMaterial.svg diff --git a/editor/icons/icon_sphere_mesh.svg b/editor/icons/SphereMesh.svg index b01ba46bcf..b01ba46bcf 100644 --- a/editor/icons/icon_sphere_mesh.svg +++ b/editor/icons/SphereMesh.svg diff --git a/editor/icons/icon_sphere_shape.svg b/editor/icons/SphereShape.svg index 4da18a1a38..4da18a1a38 100644 --- a/editor/icons/icon_sphere_shape.svg +++ b/editor/icons/SphereShape.svg diff --git a/editor/icons/icon_spin_box.svg b/editor/icons/SpinBox.svg index 728710e440..728710e440 100644 --- a/editor/icons/icon_spin_box.svg +++ b/editor/icons/SpinBox.svg diff --git a/editor/icons/icon_spot_light.svg b/editor/icons/SpotLight.svg index 6a35ee3890..6a35ee3890 100644 --- a/editor/icons/icon_spot_light.svg +++ b/editor/icons/SpotLight.svg diff --git a/editor/icons/icon_spring_arm.svg b/editor/icons/SpringArm.svg index eb0c1ebd7d..eb0c1ebd7d 100644 --- a/editor/icons/icon_spring_arm.svg +++ b/editor/icons/SpringArm.svg diff --git a/editor/icons/icon_sprite.svg b/editor/icons/Sprite.svg index 26a10625fc..26a10625fc 100644 --- a/editor/icons/icon_sprite.svg +++ b/editor/icons/Sprite.svg diff --git a/editor/icons/icon_sprite_3d.svg b/editor/icons/Sprite3D.svg index 385bb8f87d..385bb8f87d 100644 --- a/editor/icons/icon_sprite_3d.svg +++ b/editor/icons/Sprite3D.svg diff --git a/editor/icons/icon_sprite_frames.svg b/editor/icons/SpriteFrames.svg index f27adcb78c..f27adcb78c 100644 --- a/editor/icons/icon_sprite_frames.svg +++ b/editor/icons/SpriteFrames.svg diff --git a/editor/icons/icon_sprite_sheet.svg b/editor/icons/SpriteSheet.svg index 9b3eda3287..9b3eda3287 100644 --- a/editor/icons/icon_sprite_sheet.svg +++ b/editor/icons/SpriteSheet.svg diff --git a/editor/icons/icon_standard_material_3d.svg b/editor/icons/StandardMaterial3D.svg index aa8bfc9a5b..aa8bfc9a5b 100644 --- a/editor/icons/icon_standard_material_3d.svg +++ b/editor/icons/StandardMaterial3D.svg diff --git a/editor/icons/icon_static_body.svg b/editor/icons/StaticBody.svg index de819bd76b..de819bd76b 100644 --- a/editor/icons/icon_static_body.svg +++ b/editor/icons/StaticBody.svg diff --git a/editor/icons/icon_static_body_2d.svg b/editor/icons/StaticBody2D.svg index 2d846c5471..2d846c5471 100644 --- a/editor/icons/icon_static_body_2d.svg +++ b/editor/icons/StaticBody2D.svg diff --git a/editor/icons/icon_status_error.svg b/editor/icons/StatusError.svg index ac3060e155..ac3060e155 100644 --- a/editor/icons/icon_status_error.svg +++ b/editor/icons/StatusError.svg diff --git a/editor/icons/icon_status_success.svg b/editor/icons/StatusSuccess.svg index 4a22c6fc7f..4a22c6fc7f 100644 --- a/editor/icons/icon_status_success.svg +++ b/editor/icons/StatusSuccess.svg diff --git a/editor/icons/icon_status_warning.svg b/editor/icons/StatusWarning.svg index 4ec16008d7..4ec16008d7 100644 --- a/editor/icons/icon_status_warning.svg +++ b/editor/icons/StatusWarning.svg diff --git a/editor/icons/icon_stop.svg b/editor/icons/Stop.svg index 2cb013c0df..2cb013c0df 100644 --- a/editor/icons/icon_stop.svg +++ b/editor/icons/Stop.svg diff --git a/editor/icons/icon_stream_texture.svg b/editor/icons/StreamTexture.svg index e7845e10f3..e7845e10f3 100644 --- a/editor/icons/icon_stream_texture.svg +++ b/editor/icons/StreamTexture.svg diff --git a/editor/icons/icon_string.svg b/editor/icons/String.svg index 9f3bb0b011..9f3bb0b011 100644 --- a/editor/icons/icon_string.svg +++ b/editor/icons/String.svg diff --git a/editor/icons/StringName.svg b/editor/icons/StringName.svg new file mode 100644 index 0000000000..bedaa6d634 --- /dev/null +++ b/editor/icons/StringName.svg @@ -0,0 +1,4 @@ +<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg"> +<path d="m5 2c-1.6569 0-3 1.3431-3 3v2c0 0.55228-0.44772 1-1 1h-1v2h1c1.6569 0 3-1.3431 3-3v-2c0-0.55228 0.44772-1 1-1h1v3c0 1.6569 1.3431 3 3 3h3v-4h1c0.55228 0 1 0.44772 1 1v3h2v-3c0-1.6569-1.3431-3-3-3h-5v-2zm3 4h2v2h-1c-0.55228 0-1-0.44772-1-1z" fill="#6ba7ec"/> +<path d="m10 4v6h2v-4h1c0.55228 0 1 0.44772 1 1v3h2v-3c0-1.6569-1.3431-3-3-3h-1z" fill="#fff" fill-opacity=".39216"/> +</svg> diff --git a/editor/icons/icon_style_box_empty.svg b/editor/icons/StyleBoxEmpty.svg index 0268b03ef2..0268b03ef2 100644 --- a/editor/icons/icon_style_box_empty.svg +++ b/editor/icons/StyleBoxEmpty.svg diff --git a/editor/icons/icon_style_box_flat.svg b/editor/icons/StyleBoxFlat.svg index a6f43be4c8..a6f43be4c8 100644 --- a/editor/icons/icon_style_box_flat.svg +++ b/editor/icons/StyleBoxFlat.svg diff --git a/editor/icons/icon_style_box_line.svg b/editor/icons/StyleBoxLine.svg index d7c26aac9d..d7c26aac9d 100644 --- a/editor/icons/icon_style_box_line.svg +++ b/editor/icons/StyleBoxLine.svg diff --git a/editor/icons/icon_style_box_texture.svg b/editor/icons/StyleBoxTexture.svg index 6f067a4db4..6f067a4db4 100644 --- a/editor/icons/icon_style_box_texture.svg +++ b/editor/icons/StyleBoxTexture.svg diff --git a/editor/icons/icon_tab_container.svg b/editor/icons/TabContainer.svg index fe0e426ef9..fe0e426ef9 100644 --- a/editor/icons/icon_tab_container.svg +++ b/editor/icons/TabContainer.svg diff --git a/editor/icons/icon_tabs.svg b/editor/icons/Tabs.svg index ad1e9069d0..ad1e9069d0 100644 --- a/editor/icons/icon_tabs.svg +++ b/editor/icons/Tabs.svg diff --git a/editor/icons/icon_test_cube.svg b/editor/icons/TestCube.svg index 16cf68520f..16cf68520f 100644 --- a/editor/icons/icon_test_cube.svg +++ b/editor/icons/TestCube.svg diff --git a/editor/icons/icon_text_edit.svg b/editor/icons/TextEdit.svg index 66f2fca4ba..66f2fca4ba 100644 --- a/editor/icons/icon_text_edit.svg +++ b/editor/icons/TextEdit.svg diff --git a/editor/icons/icon_text_file.svg b/editor/icons/TextFile.svg index d381048212..d381048212 100644 --- a/editor/icons/icon_text_file.svg +++ b/editor/icons/TextFile.svg diff --git a/editor/icons/icon_texture_3_d.svg b/editor/icons/Texture3D.svg index ed8ce3e4ef..ed8ce3e4ef 100644 --- a/editor/icons/icon_texture_3_d.svg +++ b/editor/icons/Texture3D.svg diff --git a/editor/icons/icon_texture_array.svg b/editor/icons/TextureArray.svg index 4631b1449c..4631b1449c 100644 --- a/editor/icons/icon_texture_array.svg +++ b/editor/icons/TextureArray.svg diff --git a/editor/icons/icon_texture_button.svg b/editor/icons/TextureButton.svg index 6e1d1b6436..6e1d1b6436 100644 --- a/editor/icons/icon_texture_button.svg +++ b/editor/icons/TextureButton.svg diff --git a/editor/icons/icon_texture_progress.svg b/editor/icons/TextureProgress.svg index 5763fde840..5763fde840 100644 --- a/editor/icons/icon_texture_progress.svg +++ b/editor/icons/TextureProgress.svg diff --git a/editor/icons/icon_texture_rect.svg b/editor/icons/TextureRect.svg index 1d1b5ed8f7..1d1b5ed8f7 100644 --- a/editor/icons/icon_texture_rect.svg +++ b/editor/icons/TextureRect.svg diff --git a/editor/icons/icon_theme.svg b/editor/icons/Theme.svg index e16acbfb72..e16acbfb72 100644 --- a/editor/icons/icon_theme.svg +++ b/editor/icons/Theme.svg diff --git a/editor/icons/icon_thumbnail_wait.svg b/editor/icons/ThumbnailWait.svg index fe242e81fb..fe242e81fb 100644 --- a/editor/icons/icon_thumbnail_wait.svg +++ b/editor/icons/ThumbnailWait.svg diff --git a/editor/icons/icon_tile_map.svg b/editor/icons/TileMap.svg index afdaeea7e8..afdaeea7e8 100644 --- a/editor/icons/icon_tile_map.svg +++ b/editor/icons/TileMap.svg diff --git a/editor/icons/icon_tile_set.svg b/editor/icons/TileSet.svg index 0948e6dae1..0948e6dae1 100644 --- a/editor/icons/icon_tile_set.svg +++ b/editor/icons/TileSet.svg diff --git a/editor/icons/icon_time.svg b/editor/icons/Time.svg index eb411c6858..eb411c6858 100644 --- a/editor/icons/icon_time.svg +++ b/editor/icons/Time.svg diff --git a/editor/icons/icon_timeline_indicator.svg b/editor/icons/TimelineIndicator.svg index fd18192705..fd18192705 100644 --- a/editor/icons/icon_timeline_indicator.svg +++ b/editor/icons/TimelineIndicator.svg diff --git a/editor/icons/icon_timer.svg b/editor/icons/Timer.svg index d445eeb1dd..d445eeb1dd 100644 --- a/editor/icons/icon_timer.svg +++ b/editor/icons/Timer.svg diff --git a/editor/icons/icon_tool_add_node.svg b/editor/icons/ToolAddNode.svg index 71599c0b0d..71599c0b0d 100644 --- a/editor/icons/icon_tool_add_node.svg +++ b/editor/icons/ToolAddNode.svg diff --git a/editor/icons/icon_tool_button.svg b/editor/icons/ToolButton.svg index 98a41d2a08..98a41d2a08 100644 --- a/editor/icons/icon_tool_button.svg +++ b/editor/icons/ToolButton.svg diff --git a/editor/icons/icon_tool_connect.svg b/editor/icons/ToolConnect.svg index 321f68654a..321f68654a 100644 --- a/editor/icons/icon_tool_connect.svg +++ b/editor/icons/ToolConnect.svg diff --git a/editor/icons/icon_tool_move.svg b/editor/icons/ToolMove.svg index a02296fed6..a02296fed6 100644 --- a/editor/icons/icon_tool_move.svg +++ b/editor/icons/ToolMove.svg diff --git a/editor/icons/icon_tool_pan.svg b/editor/icons/ToolPan.svg index e195542687..e195542687 100644 --- a/editor/icons/icon_tool_pan.svg +++ b/editor/icons/ToolPan.svg diff --git a/editor/icons/icon_tool_rotate.svg b/editor/icons/ToolRotate.svg index e25b08cd07..e25b08cd07 100644 --- a/editor/icons/icon_tool_rotate.svg +++ b/editor/icons/ToolRotate.svg diff --git a/editor/icons/icon_tool_scale.svg b/editor/icons/ToolScale.svg index 8fc1527296..8fc1527296 100644 --- a/editor/icons/icon_tool_scale.svg +++ b/editor/icons/ToolScale.svg diff --git a/editor/icons/icon_tool_select.svg b/editor/icons/ToolSelect.svg index 4285b3181b..4285b3181b 100644 --- a/editor/icons/icon_tool_select.svg +++ b/editor/icons/ToolSelect.svg diff --git a/editor/icons/icon_tool_triangle.svg b/editor/icons/ToolTriangle.svg index 17ce12265e..17ce12265e 100644 --- a/editor/icons/icon_tool_triangle.svg +++ b/editor/icons/ToolTriangle.svg diff --git a/editor/icons/icon_tools.svg b/editor/icons/Tools.svg index dc002d6a4d..dc002d6a4d 100644 --- a/editor/icons/icon_tools.svg +++ b/editor/icons/Tools.svg diff --git a/editor/icons/icon_touch_screen_button.svg b/editor/icons/TouchScreenButton.svg index d29e411f05..d29e411f05 100644 --- a/editor/icons/icon_touch_screen_button.svg +++ b/editor/icons/TouchScreenButton.svg diff --git a/editor/icons/icon_track_add_key.svg b/editor/icons/TrackAddKey.svg index 582003cd9b..582003cd9b 100644 --- a/editor/icons/icon_track_add_key.svg +++ b/editor/icons/TrackAddKey.svg diff --git a/editor/icons/icon_track_add_key_hl.svg b/editor/icons/TrackAddKeyHl.svg index 7f3c60a562..7f3c60a562 100644 --- a/editor/icons/icon_track_add_key_hl.svg +++ b/editor/icons/TrackAddKeyHl.svg diff --git a/editor/icons/icon_track_capture.svg b/editor/icons/TrackCapture.svg index 51a38ff1fb..51a38ff1fb 100644 --- a/editor/icons/icon_track_capture.svg +++ b/editor/icons/TrackCapture.svg diff --git a/editor/icons/icon_track_color.svg b/editor/icons/TrackColor.svg index 6a736c7a84..6a736c7a84 100644 --- a/editor/icons/icon_track_color.svg +++ b/editor/icons/TrackColor.svg diff --git a/editor/icons/icon_track_continuous.svg b/editor/icons/TrackContinuous.svg index 2e89cdd821..2e89cdd821 100644 --- a/editor/icons/icon_track_continuous.svg +++ b/editor/icons/TrackContinuous.svg diff --git a/editor/icons/icon_track_discrete.svg b/editor/icons/TrackDiscrete.svg index a0550822bf..a0550822bf 100644 --- a/editor/icons/icon_track_discrete.svg +++ b/editor/icons/TrackDiscrete.svg diff --git a/editor/icons/icon_track_trigger.svg b/editor/icons/TrackTrigger.svg index 5572b254a2..5572b254a2 100644 --- a/editor/icons/icon_track_trigger.svg +++ b/editor/icons/TrackTrigger.svg diff --git a/editor/icons/icon_transform.svg b/editor/icons/Transform.svg index 0ed5377ed7..0ed5377ed7 100644 --- a/editor/icons/icon_transform.svg +++ b/editor/icons/Transform.svg diff --git a/editor/icons/icon_transform_2_D.svg b/editor/icons/Transform2D.svg index a57587ba06..a57587ba06 100644 --- a/editor/icons/icon_transform_2_D.svg +++ b/editor/icons/Transform2D.svg diff --git a/editor/icons/icon_transition_end.svg b/editor/icons/TransitionEnd.svg index 8d6857432f..8d6857432f 100644 --- a/editor/icons/icon_transition_end.svg +++ b/editor/icons/TransitionEnd.svg diff --git a/editor/icons/icon_transition_end_auto.svg b/editor/icons/TransitionEndAuto.svg index fbfa7b03db..fbfa7b03db 100644 --- a/editor/icons/icon_transition_end_auto.svg +++ b/editor/icons/TransitionEndAuto.svg diff --git a/editor/icons/icon_transition_end_auto_big.svg b/editor/icons/TransitionEndAutoBig.svg index fcc894a3e6..fcc894a3e6 100644 --- a/editor/icons/icon_transition_end_auto_big.svg +++ b/editor/icons/TransitionEndAutoBig.svg diff --git a/editor/icons/icon_transition_end_big.svg b/editor/icons/TransitionEndBig.svg index cc93dd5808..cc93dd5808 100644 --- a/editor/icons/icon_transition_end_big.svg +++ b/editor/icons/TransitionEndBig.svg diff --git a/editor/icons/icon_transition_immediate.svg b/editor/icons/TransitionImmediate.svg index 56e9b6c0f3..56e9b6c0f3 100644 --- a/editor/icons/icon_transition_immediate.svg +++ b/editor/icons/TransitionImmediate.svg diff --git a/editor/icons/icon_transition_immediate_auto.svg b/editor/icons/TransitionImmediateAuto.svg index 8453bcff08..8453bcff08 100644 --- a/editor/icons/icon_transition_immediate_auto.svg +++ b/editor/icons/TransitionImmediateAuto.svg diff --git a/editor/icons/icon_transition_immediate_auto_big.svg b/editor/icons/TransitionImmediateAutoBig.svg index 77f7ba592e..77f7ba592e 100644 --- a/editor/icons/icon_transition_immediate_auto_big.svg +++ b/editor/icons/TransitionImmediateAutoBig.svg diff --git a/editor/icons/icon_transition_immediate_big.svg b/editor/icons/TransitionImmediateBig.svg index 94584c45f7..94584c45f7 100644 --- a/editor/icons/icon_transition_immediate_big.svg +++ b/editor/icons/TransitionImmediateBig.svg diff --git a/editor/icons/icon_transition_sync.svg b/editor/icons/TransitionSync.svg index affa353100..affa353100 100644 --- a/editor/icons/icon_transition_sync.svg +++ b/editor/icons/TransitionSync.svg diff --git a/editor/icons/icon_transition_sync_auto.svg b/editor/icons/TransitionSyncAuto.svg index 767773a000..767773a000 100644 --- a/editor/icons/icon_transition_sync_auto.svg +++ b/editor/icons/TransitionSyncAuto.svg diff --git a/editor/icons/icon_transition_sync_auto_big.svg b/editor/icons/TransitionSyncAutoBig.svg index c9735a2653..c9735a2653 100644 --- a/editor/icons/icon_transition_sync_auto_big.svg +++ b/editor/icons/TransitionSyncAutoBig.svg diff --git a/editor/icons/icon_transition_sync_big.svg b/editor/icons/TransitionSyncBig.svg index 959f26c6f1..959f26c6f1 100644 --- a/editor/icons/icon_transition_sync_big.svg +++ b/editor/icons/TransitionSyncBig.svg diff --git a/editor/icons/icon_translation.svg b/editor/icons/Translation.svg index 4195ce04a9..4195ce04a9 100644 --- a/editor/icons/icon_translation.svg +++ b/editor/icons/Translation.svg diff --git a/editor/icons/icon_transpose.svg b/editor/icons/Transpose.svg index e63c679323..e63c679323 100644 --- a/editor/icons/icon_transpose.svg +++ b/editor/icons/Transpose.svg diff --git a/editor/icons/icon_tree.svg b/editor/icons/Tree.svg index 8e450948ce..8e450948ce 100644 --- a/editor/icons/icon_tree.svg +++ b/editor/icons/Tree.svg diff --git a/editor/icons/icon_tween.svg b/editor/icons/Tween.svg index c311cbd05e..c311cbd05e 100644 --- a/editor/icons/icon_tween.svg +++ b/editor/icons/Tween.svg diff --git a/editor/icons/icon_unbone.svg b/editor/icons/Unbone.svg index 75df7e6ce9..75df7e6ce9 100644 --- a/editor/icons/icon_unbone.svg +++ b/editor/icons/Unbone.svg diff --git a/editor/icons/icon_ungroup.svg b/editor/icons/Ungroup.svg index c6e235f47d..c6e235f47d 100644 --- a/editor/icons/icon_ungroup.svg +++ b/editor/icons/Ungroup.svg diff --git a/editor/icons/icon_unlock.svg b/editor/icons/Unlock.svg index 52be7e2233..52be7e2233 100644 --- a/editor/icons/icon_unlock.svg +++ b/editor/icons/Unlock.svg diff --git a/editor/icons/icon_unpaint_vertex.svg b/editor/icons/UnpaintVertex.svg index 7bb94f06be..7bb94f06be 100644 --- a/editor/icons/icon_unpaint_vertex.svg +++ b/editor/icons/UnpaintVertex.svg diff --git a/editor/icons/icon_uv.svg b/editor/icons/Uv.svg index f68ea2c984..f68ea2c984 100644 --- a/editor/icons/icon_uv.svg +++ b/editor/icons/Uv.svg diff --git a/editor/icons/icon_v_box_container.svg b/editor/icons/VBoxContainer.svg index 17b83ced0a..17b83ced0a 100644 --- a/editor/icons/icon_v_box_container.svg +++ b/editor/icons/VBoxContainer.svg diff --git a/editor/icons/icon_v_scroll_bar.svg b/editor/icons/VScrollBar.svg index 285e54fbd1..285e54fbd1 100644 --- a/editor/icons/icon_v_scroll_bar.svg +++ b/editor/icons/VScrollBar.svg diff --git a/editor/icons/icon_v_separator.svg b/editor/icons/VSeparator.svg index 6476ea5ad7..6476ea5ad7 100644 --- a/editor/icons/icon_v_separator.svg +++ b/editor/icons/VSeparator.svg diff --git a/editor/icons/icon_v_slider.svg b/editor/icons/VSlider.svg index c6fc1e6e0f..c6fc1e6e0f 100644 --- a/editor/icons/icon_v_slider.svg +++ b/editor/icons/VSlider.svg diff --git a/editor/icons/icon_v_split_container.svg b/editor/icons/VSplitContainer.svg index b9bbb4bfc3..b9bbb4bfc3 100644 --- a/editor/icons/icon_v_split_container.svg +++ b/editor/icons/VSplitContainer.svg diff --git a/editor/icons/icon_variant.svg b/editor/icons/Variant.svg index 7c2e4559d1..7c2e4559d1 100644 --- a/editor/icons/icon_variant.svg +++ b/editor/icons/Variant.svg diff --git a/editor/icons/icon_vector2.svg b/editor/icons/Vector2.svg index b4e9b44c03..b4e9b44c03 100644 --- a/editor/icons/icon_vector2.svg +++ b/editor/icons/Vector2.svg diff --git a/editor/icons/Vector2i.svg b/editor/icons/Vector2i.svg new file mode 100644 index 0000000000..6cf9a896f3 --- /dev/null +++ b/editor/icons/Vector2i.svg @@ -0,0 +1,5 @@ +<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg"> +<path d="m8 2v2h1c0.55228 0 1 0.44772 1 1s-0.44772 1-1 1c-0.71466-1.248e-4 -1.3751 0.38109-1.7324 1-0.17472 0.30426-0.26633 0.64914-0.26562 1h-2e-3v2h5v-2h-3c1.0717-1.344e-4 2.0619-0.57191 2.5977-1.5 0.5359-0.9282 0.5359-2.0718 0-3-0.53578-0.92809-1.526-1.4999-2.5977-1.5zm-7 2v6h2c1.6569 0 3-1.3431 3-3v-3h-2v3c0 0.55228-0.44772 1-1 1v-4z" fill="#bd91f1"/> +<path d="m8 2v2h1c0.55228 0 1 0.44772 1 1s-0.44772 1-1 1c-0.71466-1.248e-4 -1.3751 0.38109-1.7324 1-0.17472 0.30426-0.26633 0.64914-0.26562 1h-0.001953v2h5v-2h-3c1.0717-1.344e-4 2.0619-0.57191 2.5977-1.5 0.5359-0.9282 0.5359-2.0718 0-3-0.53583-0.92809-1.526-1.4999-2.5977-1.5z" fill="#fff" fill-opacity=".39216"/> +<path d="m13 2v2h2v-2zm0 4v4h2v-4z" fill="#7dc6ef"/> +</svg> diff --git a/editor/icons/icon_vector3.svg b/editor/icons/Vector3.svg index 74861160d6..74861160d6 100644 --- a/editor/icons/icon_vector3.svg +++ b/editor/icons/Vector3.svg diff --git a/editor/icons/Vector3i.svg b/editor/icons/Vector3i.svg new file mode 100644 index 0000000000..d0be27886d --- /dev/null +++ b/editor/icons/Vector3i.svg @@ -0,0 +1,5 @@ +<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg"> +<path d="m8 2v2h2c0 0.55228-0.44772 1-1 1v2c0.55228 0 1 0.44772 1 1s-0.45296 0.92408-1 1h-1v2h1c1.0717-1.34e-4 2.0619-0.57191 2.5977-1.5 0.5359-0.9282 0.5359-2.0718 0-3-0.10406-0.1795-0.22646-0.34771-0.36523-0.50195 0.13855-0.15301 0.26094-0.31991 0.36523-0.49805 0.26209-0.45639 0.3995-0.97371 0.39844-1.5h0.0039v-2zm-7 2v6h2c1.6569 0 3-1.3431 3-3v-3h-2v3c0 0.55228-0.44772 1-1 1v-4z" fill="#e286f0"/> +<path d="m8 2v2h2c0 0.55228-0.44772 1-1 1v2c0.55228 0 1 0.44772 1 1s-0.44948 0.95585-1 1h-1v2h1c1.0717-1.34e-4 2.0619-0.57191 2.5977-1.5 0.5359-0.9282 0.5359-2.0718 0-3-0.10406-0.1795-0.22646-0.34771-0.36523-0.50195 0.13855-0.15301 0.26094-0.31991 0.36523-0.49805 0.26209-0.45639 0.3995-0.97371 0.39844-1.5h0.0039v-2z" fill="#fff" fill-opacity=".39216"/> +<path d="m13 2v2h2v-2zm0 4v4h2v-4z" fill="#7dc6ef"/> +</svg> diff --git a/editor/icons/icon_vehicle_body.svg b/editor/icons/VehicleBody.svg index a509730602..a509730602 100644 --- a/editor/icons/icon_vehicle_body.svg +++ b/editor/icons/VehicleBody.svg diff --git a/editor/icons/icon_vehicle_wheel.svg b/editor/icons/VehicleWheel.svg index bd870c0118..bd870c0118 100644 --- a/editor/icons/icon_vehicle_wheel.svg +++ b/editor/icons/VehicleWheel.svg diff --git a/editor/icons/icon_video_player.svg b/editor/icons/VideoPlayer.svg index 4e8dcf0ec2..4e8dcf0ec2 100644 --- a/editor/icons/icon_video_player.svg +++ b/editor/icons/VideoPlayer.svg diff --git a/editor/icons/icon_viewport.svg b/editor/icons/Viewport.svg index 7cd5d73cde..7cd5d73cde 100644 --- a/editor/icons/icon_viewport.svg +++ b/editor/icons/Viewport.svg diff --git a/editor/icons/icon_viewport_container.svg b/editor/icons/ViewportContainer.svg index 18dcddc15f..18dcddc15f 100644 --- a/editor/icons/icon_viewport_container.svg +++ b/editor/icons/ViewportContainer.svg diff --git a/editor/icons/icon_viewport_speed.svg b/editor/icons/ViewportSpeed.svg index 364eb4969b..364eb4969b 100644 --- a/editor/icons/icon_viewport_speed.svg +++ b/editor/icons/ViewportSpeed.svg diff --git a/editor/icons/icon_viewport_texture.svg b/editor/icons/ViewportTexture.svg index 145beff6bc..145beff6bc 100644 --- a/editor/icons/icon_viewport_texture.svg +++ b/editor/icons/ViewportTexture.svg diff --git a/editor/icons/icon_viewport_zoom.svg b/editor/icons/ViewportZoom.svg index 6d64d1b8a4..6d64d1b8a4 100644 --- a/editor/icons/icon_viewport_zoom.svg +++ b/editor/icons/ViewportZoom.svg diff --git a/editor/icons/icon_visibility_enabler.svg b/editor/icons/VisibilityEnabler.svg index 70e4f081c2..70e4f081c2 100644 --- a/editor/icons/icon_visibility_enabler.svg +++ b/editor/icons/VisibilityEnabler.svg diff --git a/editor/icons/icon_visibility_enabler_2d.svg b/editor/icons/VisibilityEnabler2D.svg index 2976e468ed..2976e468ed 100644 --- a/editor/icons/icon_visibility_enabler_2d.svg +++ b/editor/icons/VisibilityEnabler2D.svg diff --git a/editor/icons/icon_visibility_notifier.svg b/editor/icons/VisibilityNotifier.svg index c908d5c99d..c908d5c99d 100644 --- a/editor/icons/icon_visibility_notifier.svg +++ b/editor/icons/VisibilityNotifier.svg diff --git a/editor/icons/icon_visibility_notifier_2d.svg b/editor/icons/VisibilityNotifier2D.svg index e05d7d3887..e05d7d3887 100644 --- a/editor/icons/icon_visibility_notifier_2d.svg +++ b/editor/icons/VisibilityNotifier2D.svg diff --git a/editor/icons/icon_visual_shader.svg b/editor/icons/VisualShader.svg index 15cb60d2e3..15cb60d2e3 100644 --- a/editor/icons/icon_visual_shader.svg +++ b/editor/icons/VisualShader.svg diff --git a/editor/icons/icon_visual_shader_port.svg b/editor/icons/VisualShaderPort.svg index 9df6344fe2..9df6344fe2 100644 --- a/editor/icons/icon_visual_shader_port.svg +++ b/editor/icons/VisualShaderPort.svg diff --git a/editor/icons/icon_warning.svg b/editor/icons/Warning.svg index 698288d5a9..698288d5a9 100644 --- a/editor/icons/icon_warning.svg +++ b/editor/icons/Warning.svg diff --git a/editor/icons/icon_window_dialog.svg b/editor/icons/WindowDialog.svg index 3c7be2a58d..3c7be2a58d 100644 --- a/editor/icons/icon_window_dialog.svg +++ b/editor/icons/WindowDialog.svg diff --git a/editor/icons/icon_world.svg b/editor/icons/World.svg index 3db96a75a6..3db96a75a6 100644 --- a/editor/icons/icon_world.svg +++ b/editor/icons/World.svg diff --git a/editor/icons/icon_world_2d.svg b/editor/icons/World2D.svg index 862242ec44..862242ec44 100644 --- a/editor/icons/icon_world_2d.svg +++ b/editor/icons/World2D.svg diff --git a/editor/icons/icon_world_environment.svg b/editor/icons/WorldEnvironment.svg index e87a4b5b0c..e87a4b5b0c 100644 --- a/editor/icons/icon_world_environment.svg +++ b/editor/icons/WorldEnvironment.svg diff --git a/editor/icons/icon_x509_certificate.svg b/editor/icons/X509Certificate.svg index e175fa3234..e175fa3234 100644 --- a/editor/icons/icon_x509_certificate.svg +++ b/editor/icons/X509Certificate.svg diff --git a/editor/icons/icon_y_sort.svg b/editor/icons/YSort.svg index dbcefef216..dbcefef216 100644 --- a/editor/icons/icon_y_sort.svg +++ b/editor/icons/YSort.svg diff --git a/editor/icons/icon_zoom.svg b/editor/icons/Zoom.svg index aa517b6ae2..aa517b6ae2 100644 --- a/editor/icons/icon_zoom.svg +++ b/editor/icons/Zoom.svg diff --git a/editor/icons/icon_zoom_less.svg b/editor/icons/ZoomLess.svg index cf3b4475c9..cf3b4475c9 100644 --- a/editor/icons/icon_zoom_less.svg +++ b/editor/icons/ZoomLess.svg diff --git a/editor/icons/icon_zoom_more.svg b/editor/icons/ZoomMore.svg index 8847eea53f..8847eea53f 100644 --- a/editor/icons/icon_zoom_more.svg +++ b/editor/icons/ZoomMore.svg diff --git a/editor/icons/icon_zoom_reset.svg b/editor/icons/ZoomReset.svg index 6ecb4111fe..6ecb4111fe 100644 --- a/editor/icons/icon_zoom_reset.svg +++ b/editor/icons/ZoomReset.svg diff --git a/editor/icons/icon_bool.svg b/editor/icons/bool.svg index 5ffd40a815..5ffd40a815 100644 --- a/editor/icons/icon_bool.svg +++ b/editor/icons/bool.svg diff --git a/editor/icons/editor_icons_builders.py b/editor/icons/editor_icons_builders.py index dfd0802ce9..ea2c2e57d1 100644 --- a/editor/icons/editor_icons_builders.py +++ b/editor/icons/editor_icons_builders.py @@ -27,7 +27,6 @@ def make_editor_icons_action(target, source, env): icons_string.write("\\" + str(hex(ord(b)))[1:]) b = svgf.read(1) - icons_string.write('"') if fname != svg_icons[-1]: icons_string.write(",") @@ -44,17 +43,16 @@ def make_editor_icons_action(target, source, env): s.write("static const char *editor_icons_names[] = {\n") # this is used to store the indices of thumbnail icons - thumb_medium_indices = []; - thumb_big_indices = []; + thumb_medium_indices = [] + thumb_big_indices = [] index = 0 for f in svg_icons: fname = str(f) - icon_name = os.path.basename(fname)[5:-4].title().replace("_", "") + # Trim the `.svg` extension from the string. + icon_name = os.path.basename(fname)[:-4] # some special cases - if icon_name in ['Int', 'Bool', 'Float']: - icon_name = icon_name.lower() if icon_name.endswith("MediumThumb"): # don't know a better way to handle this thumb_medium_indices.append(str(index)) if icon_name.endswith("BigThumb"): # don't know a better way to handle this diff --git a/editor/icons/icon_float.svg b/editor/icons/float.svg index 5c09d4c244..5c09d4c244 100644 --- a/editor/icons/icon_float.svg +++ b/editor/icons/float.svg diff --git a/editor/icons/icon_gizmo_spatial_stream_player.svg b/editor/icons/icon_gizmo_spatial_stream_player.svg deleted file mode 100644 index 473fd2c2cd..0000000000 --- a/editor/icons/icon_gizmo_spatial_stream_player.svg +++ /dev/null @@ -1 +0,0 @@ -<svg height="128" viewBox="0 0 128 128" width="128" xmlns="http://www.w3.org/2000/svg"><path d="m99.645 6.0059c-.9956.029687-1.9837.18322-2.9414.45703l-56 16c-5.1336 1.4668-8.7021 6.198-8.7031 11.537v44.203c-11.16 1.0331-20 10.379-20 21.797.000011 12.103 9.8971 22 22 22 12.103-.00001 22-9.8971 22-22v-56.947l32-9.1426v28.293c-11.16 1.0331-20 10.379-20 21.797.000011 12.103 9.8971 22 22 22 12.103-.00001 22-9.8971 22-22v-66c-.00104-6.7137-5.6428-12.192-12.354-11.994z" fill-opacity=".29412"/><path d="m99.764 10.004a8.0008 8.0008 0 0 0 -1.9609.30469l-56 16a8.0008 8.0008 0 0 0 -5.8027 7.6914v48.121a18 18 0 0 0 -2-.12109 18 18 0 0 0 -18 18 18 18 0 0 0 18 18 18 18 0 0 0 18-18v-59.965l40-11.428v37.514a18 18 0 0 0 -2-.12109 18 18 0 0 0 -18 18 18 18 0 0 0 18 18 18 18 0 0 0 18-18v-66a8.0008 8.0008 0 0 0 -8.2363-7.9961z" fill="#f7f5cf"/></svg>
\ No newline at end of file diff --git a/editor/icons/icon_int.svg b/editor/icons/int.svg index 4226c8cb7e..4226c8cb7e 100644 --- a/editor/icons/icon_int.svg +++ b/editor/icons/int.svg diff --git a/editor/import/editor_import_plugin.cpp b/editor/import/editor_import_plugin.cpp index 53a654c971..aad378c94f 100644 --- a/editor/import/editor_import_plugin.cpp +++ b/editor/import/editor_import_plugin.cpp @@ -162,7 +162,7 @@ void EditorImportPlugin::_bind_methods() { ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::ARRAY, "get_import_options", PropertyInfo(Variant::INT, "preset"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::STRING, "get_save_extension")); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::STRING, "get_resource_type")); - ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::REAL, "get_priority")); + ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::FLOAT, "get_priority")); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::INT, "get_import_order")); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "get_option_visibility", PropertyInfo(Variant::STRING, "option"), PropertyInfo(Variant::DICTIONARY, "options"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::INT, "import", PropertyInfo(Variant::STRING, "source_file"), PropertyInfo(Variant::STRING, "save_path"), PropertyInfo(Variant::DICTIONARY, "options"), PropertyInfo(Variant::ARRAY, "platform_variants"), PropertyInfo(Variant::ARRAY, "gen_files"))); diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp index c0d84b61b4..731d094745 100644 --- a/editor/import/editor_scene_importer_gltf.cpp +++ b/editor/import/editor_scene_importer_gltf.cpp @@ -764,10 +764,10 @@ Vector<double> EditorSceneImporterGLTF::_decode_accessor(GLTFState &state, const return dst_buffer; } -PoolVector<int> EditorSceneImporterGLTF::_decode_accessor_as_ints(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { +Vector<int> EditorSceneImporterGLTF::_decode_accessor_as_ints(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { const Vector<double> attribs = _decode_accessor(state, p_accessor, p_for_vertex); - PoolVector<int> ret; + Vector<int> ret; if (attribs.size() == 0) return ret; @@ -776,7 +776,7 @@ PoolVector<int> EditorSceneImporterGLTF::_decode_accessor_as_ints(GLTFState &sta const int ret_size = attribs.size(); ret.resize(ret_size); { - PoolVector<int>::Write w = ret.write(); + int *w = ret.ptrw(); for (int i = 0; i < ret_size; i++) { w[i] = int(attribs_ptr[i]); } @@ -784,10 +784,10 @@ PoolVector<int> EditorSceneImporterGLTF::_decode_accessor_as_ints(GLTFState &sta return ret; } -PoolVector<float> EditorSceneImporterGLTF::_decode_accessor_as_floats(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { +Vector<float> EditorSceneImporterGLTF::_decode_accessor_as_floats(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { const Vector<double> attribs = _decode_accessor(state, p_accessor, p_for_vertex); - PoolVector<float> ret; + Vector<float> ret; if (attribs.size() == 0) return ret; @@ -796,7 +796,7 @@ PoolVector<float> EditorSceneImporterGLTF::_decode_accessor_as_floats(GLTFState const int ret_size = attribs.size(); ret.resize(ret_size); { - PoolVector<float>::Write w = ret.write(); + float *w = ret.ptrw(); for (int i = 0; i < ret_size; i++) { w[i] = float(attribs_ptr[i]); } @@ -804,10 +804,10 @@ PoolVector<float> EditorSceneImporterGLTF::_decode_accessor_as_floats(GLTFState return ret; } -PoolVector<Vector2> EditorSceneImporterGLTF::_decode_accessor_as_vec2(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { +Vector<Vector2> EditorSceneImporterGLTF::_decode_accessor_as_vec2(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { const Vector<double> attribs = _decode_accessor(state, p_accessor, p_for_vertex); - PoolVector<Vector2> ret; + Vector<Vector2> ret; if (attribs.size() == 0) return ret; @@ -817,7 +817,7 @@ PoolVector<Vector2> EditorSceneImporterGLTF::_decode_accessor_as_vec2(GLTFState const int ret_size = attribs.size() / 2; ret.resize(ret_size); { - PoolVector<Vector2>::Write w = ret.write(); + Vector2 *w = ret.ptrw(); for (int i = 0; i < ret_size; i++) { w[i] = Vector2(attribs_ptr[i * 2 + 0], attribs_ptr[i * 2 + 1]); } @@ -825,10 +825,10 @@ PoolVector<Vector2> EditorSceneImporterGLTF::_decode_accessor_as_vec2(GLTFState return ret; } -PoolVector<Vector3> EditorSceneImporterGLTF::_decode_accessor_as_vec3(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { +Vector<Vector3> EditorSceneImporterGLTF::_decode_accessor_as_vec3(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { const Vector<double> attribs = _decode_accessor(state, p_accessor, p_for_vertex); - PoolVector<Vector3> ret; + Vector<Vector3> ret; if (attribs.size() == 0) return ret; @@ -838,7 +838,7 @@ PoolVector<Vector3> EditorSceneImporterGLTF::_decode_accessor_as_vec3(GLTFState const int ret_size = attribs.size() / 3; ret.resize(ret_size); { - PoolVector<Vector3>::Write w = ret.write(); + Vector3 *w = ret.ptrw(); for (int i = 0; i < ret_size; i++) { w[i] = Vector3(attribs_ptr[i * 3 + 0], attribs_ptr[i * 3 + 1], attribs_ptr[i * 3 + 2]); } @@ -846,10 +846,10 @@ PoolVector<Vector3> EditorSceneImporterGLTF::_decode_accessor_as_vec3(GLTFState return ret; } -PoolVector<Color> EditorSceneImporterGLTF::_decode_accessor_as_color(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { +Vector<Color> EditorSceneImporterGLTF::_decode_accessor_as_color(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) { const Vector<double> attribs = _decode_accessor(state, p_accessor, p_for_vertex); - PoolVector<Color> ret; + Vector<Color> ret; if (attribs.size() == 0) return ret; @@ -866,7 +866,7 @@ PoolVector<Color> EditorSceneImporterGLTF::_decode_accessor_as_color(GLTFState & const int ret_size = attribs.size() / vec_len; ret.resize(ret_size); { - PoolVector<Color>::Write w = ret.write(); + Color *w = ret.ptrw(); for (int i = 0; i < ret_size; i++) { w[i] = Color(attribs_ptr[i * vec_len + 0], attribs_ptr[i * vec_len + 1], attribs_ptr[i * vec_len + 2], vec_len == 4 ? attribs_ptr[i * 4 + 3] : 1.0); } @@ -1021,10 +1021,10 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { array[Mesh::ARRAY_BONES] = _decode_accessor_as_ints(state, a["JOINTS_0"], true); } if (a.has("WEIGHTS_0")) { - PoolVector<float> weights = _decode_accessor_as_floats(state, a["WEIGHTS_0"], true); + Vector<float> weights = _decode_accessor_as_floats(state, a["WEIGHTS_0"], true); { //gltf does not seem to normalize the weights for some reason.. int wc = weights.size(); - PoolVector<float>::Write w = weights.write(); + float *w = weights.ptrw(); for (int k = 0; k < wc; k += 4) { float total = 0.0; @@ -1044,13 +1044,13 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { } if (p.has("indices")) { - PoolVector<int> indices = _decode_accessor_as_ints(state, p["indices"], false); + Vector<int> indices = _decode_accessor_as_ints(state, p["indices"], false); if (primitive == Mesh::PRIMITIVE_TRIANGLES) { //swap around indices, convert ccw to cw for front face const int is = indices.size(); - const PoolVector<int>::Write w = indices.write(); + int *w = indices.ptrw(); for (int k = 0; k < is; k += 3) { SWAP(w[k + 1], w[k + 2]); } @@ -1059,13 +1059,13 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { } else if (primitive == Mesh::PRIMITIVE_TRIANGLES) { //generate indices because they need to be swapped for CW/CCW - const PoolVector<Vector3> &vertices = array[Mesh::ARRAY_VERTEX]; + const Vector<Vector3> &vertices = array[Mesh::ARRAY_VERTEX]; ERR_FAIL_COND_V(vertices.size() == 0, ERR_PARSE_ERROR); - PoolVector<int> indices; + Vector<int> indices; const int vs = vertices.size(); indices.resize(vs); { - const PoolVector<int>::Write w = indices.write(); + int *w = indices.ptrw(); for (int k = 0; k < vs; k += 3) { w[k] = k; w[k + 1] = k + 2; @@ -1127,8 +1127,8 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { array_copy[Mesh::ARRAY_INDEX] = Variant(); if (t.has("POSITION")) { - PoolVector<Vector3> varr = _decode_accessor_as_vec3(state, t["POSITION"], true); - const PoolVector<Vector3> src_varr = array[Mesh::ARRAY_VERTEX]; + Vector<Vector3> varr = _decode_accessor_as_vec3(state, t["POSITION"], true); + const Vector<Vector3> src_varr = array[Mesh::ARRAY_VERTEX]; const int size = src_varr.size(); ERR_FAIL_COND_V(size == 0, ERR_PARSE_ERROR); { @@ -1136,9 +1136,9 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { const int max_idx = varr.size(); varr.resize(size); - const PoolVector<Vector3>::Write w_varr = varr.write(); - const PoolVector<Vector3>::Read r_varr = varr.read(); - const PoolVector<Vector3>::Read r_src_varr = src_varr.read(); + Vector3 *w_varr = varr.ptrw(); + const Vector3 *r_varr = varr.ptr(); + const Vector3 *r_src_varr = src_varr.ptr(); for (int l = 0; l < size; l++) { if (l < max_idx) { w_varr[l] = r_varr[l] + r_src_varr[l]; @@ -1150,17 +1150,17 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { array_copy[Mesh::ARRAY_VERTEX] = varr; } if (t.has("NORMAL")) { - PoolVector<Vector3> narr = _decode_accessor_as_vec3(state, t["NORMAL"], true); - const PoolVector<Vector3> src_narr = array[Mesh::ARRAY_NORMAL]; + Vector<Vector3> narr = _decode_accessor_as_vec3(state, t["NORMAL"], true); + const Vector<Vector3> src_narr = array[Mesh::ARRAY_NORMAL]; int size = src_narr.size(); ERR_FAIL_COND_V(size == 0, ERR_PARSE_ERROR); { int max_idx = narr.size(); narr.resize(size); - const PoolVector<Vector3>::Write w_narr = narr.write(); - const PoolVector<Vector3>::Read r_narr = narr.read(); - const PoolVector<Vector3>::Read r_src_narr = src_narr.read(); + Vector3 *w_narr = narr.ptrw(); + const Vector3 *r_narr = narr.ptr(); + const Vector3 *r_src_narr = src_narr.ptr(); for (int l = 0; l < size; l++) { if (l < max_idx) { w_narr[l] = r_narr[l] + r_src_narr[l]; @@ -1172,11 +1172,11 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { array_copy[Mesh::ARRAY_NORMAL] = narr; } if (t.has("TANGENT")) { - const PoolVector<Vector3> tangents_v3 = _decode_accessor_as_vec3(state, t["TANGENT"], true); - const PoolVector<float> src_tangents = array[Mesh::ARRAY_TANGENT]; + const Vector<Vector3> tangents_v3 = _decode_accessor_as_vec3(state, t["TANGENT"], true); + const Vector<float> src_tangents = array[Mesh::ARRAY_TANGENT]; ERR_FAIL_COND_V(src_tangents.size() == 0, ERR_PARSE_ERROR); - PoolVector<float> tangents_v4; + Vector<float> tangents_v4; { @@ -1184,10 +1184,10 @@ Error EditorSceneImporterGLTF::_parse_meshes(GLTFState &state) { int size4 = src_tangents.size(); tangents_v4.resize(size4); - const PoolVector<float>::Write w4 = tangents_v4.write(); + float *w4 = tangents_v4.ptrw(); - const PoolVector<Vector3>::Read r3 = tangents_v3.read(); - const PoolVector<float>::Read r4 = src_tangents.read(); + const Vector3 *r3 = tangents_v3.ptr(); + const float *r4 = src_tangents.ptr(); for (int l = 0; l < size4 / 4; l++) { @@ -2183,6 +2183,8 @@ Error EditorSceneImporterGLTF::_map_skin_joints_indices_to_skeleton_bone_indices const GLTFNodeIndex node_i = skin.joints_original[joint_index]; const GLTFNode *node = state.nodes[node_i]; + skin.joint_i_to_name.insert(joint_index, node->name); + const int bone_index = skeleton.godot_skeleton->find_bone(node->name); ERR_FAIL_COND_V(bone_index < 0, FAILED); @@ -2204,12 +2206,18 @@ Error EditorSceneImporterGLTF::_create_skins(GLTFState &state) { const bool has_ibms = !gltf_skin.inverse_binds.empty(); for (int joint_i = 0; joint_i < gltf_skin.joints_original.size(); ++joint_i) { - int bone_i = gltf_skin.joint_i_to_bone_i[joint_i]; + Transform xform; if (has_ibms) { - skin->add_bind(bone_i, gltf_skin.inverse_binds[joint_i]); + xform = gltf_skin.inverse_binds[joint_i]; + } + + if (state.use_named_skin_binds) { + StringName name = gltf_skin.joint_i_to_name[joint_i]; + skin->add_named_bind(name, xform); } else { - skin->add_bind(bone_i, Transform()); + int bone_i = gltf_skin.joint_i_to_bone_i[joint_i]; + skin->add_bind(bone_i, xform); } } @@ -2397,9 +2405,9 @@ Error EditorSceneImporterGLTF::_parse_animations(GLTFState &state) { } } - const PoolVector<float> times = _decode_accessor_as_floats(state, input, false); + const Vector<float> times = _decode_accessor_as_floats(state, input, false); if (path == "translation") { - const PoolVector<Vector3> translations = _decode_accessor_as_vec3(state, output, false); + const Vector<Vector3> translations = _decode_accessor_as_vec3(state, output, false); track->translation_track.interpolation = interp; track->translation_track.times = Variant(times); //convert via variant track->translation_track.values = Variant(translations); //convert via variant @@ -2409,12 +2417,12 @@ Error EditorSceneImporterGLTF::_parse_animations(GLTFState &state) { track->rotation_track.times = Variant(times); //convert via variant track->rotation_track.values = rotations; //convert via variant } else if (path == "scale") { - const PoolVector<Vector3> scales = _decode_accessor_as_vec3(state, output, false); + const Vector<Vector3> scales = _decode_accessor_as_vec3(state, output, false); track->scale_track.interpolation = interp; track->scale_track.times = Variant(times); //convert via variant track->scale_track.values = Variant(scales); //convert via variant } else if (path == "weights") { - const PoolVector<float> weights = _decode_accessor_as_floats(state, output, false); + const Vector<float> weights = _decode_accessor_as_floats(state, output, false); ERR_FAIL_INDEX_V(state.nodes[node]->mesh, state.meshes.size(), ERR_PARSE_ERROR); const GLTFMesh *mesh = &state.meshes[state.nodes[node]->mesh]; @@ -2427,7 +2435,7 @@ Error EditorSceneImporterGLTF::_parse_animations(GLTFState &state) { ERR_FAIL_COND_V_MSG(weights.size() != expected_value_count, ERR_PARSE_ERROR, "Invalid weight data, expected " + itos(expected_value_count) + " weight values, got " + itos(weights.size()) + " instead."); const int wlen = weights.size() / wc; - PoolVector<float>::Read r = weights.read(); + const float *r = weights.ptr(); for (int k = 0; k < wc; k++) { //separate tracks, having them together is not such a good idea GLTFAnimation::Channel<float> cf; cf.interpolation = interp; @@ -2995,6 +3003,7 @@ Node *EditorSceneImporterGLTF::import_scene(const String &p_path, uint32_t p_fla state.major_version = version.get_slice(".", 0).to_int(); state.minor_version = version.get_slice(".", 1).to_int(); + state.use_named_skin_binds = p_flags & IMPORT_USE_NAMED_SKIN_BINDS; /* STEP 0 PARSE SCENE */ Error err = _parse_scenes(state); diff --git a/editor/import/editor_scene_importer_gltf.h b/editor/import/editor_scene_importer_gltf.h index a4a715d17c..5d2711483b 100644 --- a/editor/import/editor_scene_importer_gltf.h +++ b/editor/import/editor_scene_importer_gltf.h @@ -231,6 +231,7 @@ class EditorSceneImporterGLTF : public EditorSceneImporter { // A mapping from the joint indices (in the order of joints_original) to the // Godot Skeleton's bone_indices Map<int, int> joint_i_to_bone_i; + Map<int, StringName> joint_i_to_name; // The Actual Skin that will be created as a mapping between the IBM's of this skin // to the generated skeleton for the mesh instances. @@ -298,6 +299,8 @@ class EditorSceneImporterGLTF : public EditorSceneImporter { int minor_version; Vector<uint8_t> glb_data; + bool use_named_skin_binds; + Vector<GLTFNode *> nodes; Vector<Vector<uint8_t> > buffers; Vector<GLTFBufferView> buffer_views; @@ -352,11 +355,11 @@ class EditorSceneImporterGLTF : public EditorSceneImporter { Error _decode_buffer_view(GLTFState &state, double *dst, const GLTFBufferViewIndex p_buffer_view, const int skip_every, const int skip_bytes, const int element_size, const int count, const GLTFType type, const int component_count, const int component_type, const int component_size, const bool normalized, const int byte_offset, const bool for_vertex); Vector<double> _decode_accessor(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); - PoolVector<float> _decode_accessor_as_floats(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); - PoolVector<int> _decode_accessor_as_ints(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); - PoolVector<Vector2> _decode_accessor_as_vec2(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); - PoolVector<Vector3> _decode_accessor_as_vec3(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); - PoolVector<Color> _decode_accessor_as_color(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); + Vector<float> _decode_accessor_as_floats(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); + Vector<int> _decode_accessor_as_ints(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); + Vector<Vector2> _decode_accessor_as_vec2(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); + Vector<Vector3> _decode_accessor_as_vec3(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); + Vector<Color> _decode_accessor_as_color(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); Vector<Quat> _decode_accessor_as_quat(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); Vector<Transform2D> _decode_accessor_as_xform2d(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); Vector<Basis> _decode_accessor_as_basis(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex); diff --git a/editor/import/resource_importer_bitmask.cpp b/editor/import/resource_importer_bitmask.cpp index c6fdbd1378..252af9050b 100644 --- a/editor/import/resource_importer_bitmask.cpp +++ b/editor/import/resource_importer_bitmask.cpp @@ -75,7 +75,7 @@ String ResourceImporterBitMap::get_preset_name(int p_idx) const { void ResourceImporterBitMap::get_import_options(List<ImportOption> *r_options, int p_preset) const { r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "create_from", PROPERTY_HINT_ENUM, "Black & White,Alpha"), 0)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "threshold", PROPERTY_HINT_RANGE, "0,1,0.01"), 0.5)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "threshold", PROPERTY_HINT_RANGE, "0,1,0.01"), 0.5)); } Error ResourceImporterBitMap::import(const String &p_source_file, const String &p_save_path, const Map<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files, Variant *r_metadata) { @@ -94,7 +94,6 @@ Error ResourceImporterBitMap::import(const String &p_source_file, const String & Ref<BitMap> bitmap; bitmap.instance(); bitmap->create(Size2(w, h)); - image->lock(); for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { diff --git a/editor/import/resource_importer_layered_texture.cpp b/editor/import/resource_importer_layered_texture.cpp index 9ea2911c63..d472070808 100644 --- a/editor/import/resource_importer_layered_texture.cpp +++ b/editor/import/resource_importer_layered_texture.cpp @@ -187,11 +187,11 @@ void ResourceImporterLayeredTexture::_save_tex(const Vector<Ref<Image> > &p_imag image->shrink_x2(); } - PoolVector<uint8_t> data = Image::lossless_packer(image); + Vector<uint8_t> data = Image::lossless_packer(image); int data_len = data.size(); f->store_32(data_len); - PoolVector<uint8_t>::Read r = data.read(); + const uint8_t* r = data.ptr(); f->store_buffer(r.ptr(), data_len); } @@ -210,10 +210,10 @@ void ResourceImporterLayeredTexture::_save_tex(const Vector<Ref<Image> > &p_imag f->store_32(p_compress_mode); // 0 - lossless (PNG), 1 - vram, 2 - uncompressed } - PoolVector<uint8_t> data = image->get_data(); + Vector<uint8_t> data = image->get_data(); int dl = data.size(); - PoolVector<uint8_t>::Read r = data.read(); + const uint8_t* r = data.ptr(); f->store_buffer(r.ptr(), dl); } break; case COMPRESS_UNCOMPRESSED: { @@ -226,10 +226,10 @@ void ResourceImporterLayeredTexture::_save_tex(const Vector<Ref<Image> > &p_imag image->clear_mipmaps(); } - PoolVector<uint8_t> data = image->get_data(); + Vector<uint8_t> data = image->get_data(); int dl = data.size(); - PoolVector<uint8_t>::Read r = data.read(); + const uint8_t* r = data.ptr(); f->store_buffer(r.ptr(), dl); diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp index 4b0bfa7222..9fb6be50d9 100644 --- a/editor/import/resource_importer_scene.cpp +++ b/editor/import/resource_importer_scene.cpp @@ -1160,7 +1160,7 @@ void ResourceImporterScene::get_import_options(List<ImportOption> *r_options, in bool scenes_out = p_preset == PRESET_MULTIPLE_SCENES || p_preset == PRESET_MULTIPLE_SCENES_AND_MATERIALS; bool animations_out = p_preset == PRESET_SEPARATE_ANIMATIONS || p_preset == PRESET_SEPARATE_MESHES_AND_ANIMATIONS || p_preset == PRESET_SEPARATE_MATERIALS_AND_ANIMATIONS || p_preset == PRESET_SEPARATE_MESHES_MATERIALS_AND_ANIMATIONS; - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "nodes/root_scale", PROPERTY_HINT_RANGE, "0.001,1000,0.001"), 1.0)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "nodes/root_scale", PROPERTY_HINT_RANGE, "0.001,1000,0.001"), 1.0)); r_options->push_back(ImportOption(PropertyInfo(Variant::STRING, "nodes/custom_script", PROPERTY_HINT_FILE, script_ext_hint), "")); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "nodes/storage", PROPERTY_HINT_ENUM, "Single Scene,Instanced Sub-Scenes"), scenes_out ? 1 : 0)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "materials/location", PROPERTY_HINT_ENUM, "Node,Mesh"), (meshes_out || materials_out) ? 1 : 0)); @@ -1170,17 +1170,18 @@ void ResourceImporterScene::get_import_options(List<ImportOption> *r_options, in r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "meshes/ensure_tangents"), true)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "meshes/storage", PROPERTY_HINT_ENUM, "Built-In,Files (.mesh),Files (.tres)"), meshes_out ? 1 : 0)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "meshes/light_baking", PROPERTY_HINT_ENUM, "Disabled,Enable,Gen Lightmaps", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), 0)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "meshes/lightmap_texel_size", PROPERTY_HINT_RANGE, "0.001,100,0.001"), 0.1)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "meshes/lightmap_texel_size", PROPERTY_HINT_RANGE, "0.001,100,0.001"), 0.1)); + r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "skins/use_named_skins"), true)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "external_files/store_in_subdir"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "animation/import", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), true)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "animation/fps", PROPERTY_HINT_RANGE, "1,120,1"), 15)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "animation/fps", PROPERTY_HINT_RANGE, "1,120,1"), 15)); r_options->push_back(ImportOption(PropertyInfo(Variant::STRING, "animation/filter_script", PROPERTY_HINT_MULTILINE_TEXT), "")); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "animation/storage", PROPERTY_HINT_ENUM, "Built-In,Files (.anim),Files (.tres)", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), animations_out)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "animation/keep_custom_tracks"), animations_out)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "animation/optimizer/enabled", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), true)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "animation/optimizer/max_linear_error"), 0.05)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "animation/optimizer/max_angular_error"), 0.01)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "animation/optimizer/max_angle"), 22)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "animation/optimizer/max_linear_error"), 0.05)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "animation/optimizer/max_angular_error"), 0.01)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "animation/optimizer/max_angle"), 22)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "animation/optimizer/remove_unused_tracks"), true)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "animation/clips/amount", PROPERTY_HINT_RANGE, "0,256,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), 0)); for (int i = 0; i < 256; i++) { @@ -1313,6 +1314,9 @@ Error ResourceImporterScene::import(const String &p_source_file, const String &p if (int(p_options["materials/location"]) == 0) import_flags |= EditorSceneImporter::IMPORT_MATERIALS_IN_INSTANCES; + if (bool(p_options["skins/use_named_skins"])) + import_flags |= EditorSceneImporter::IMPORT_USE_NAMED_SKIN_BINDS; + Error err = OK; List<String> missing_deps; // for now, not much will be done with this Node *scene = importer->import_scene(src_path, import_flags, fps, &missing_deps, &err); diff --git a/editor/import/resource_importer_scene.h b/editor/import/resource_importer_scene.h index 2691b224eb..20e7af15b5 100644 --- a/editor/import/resource_importer_scene.h +++ b/editor/import/resource_importer_scene.h @@ -59,7 +59,8 @@ public: IMPORT_GENERATE_TANGENT_ARRAYS = 256, IMPORT_FAIL_ON_MISSING_DEPENDENCIES = 512, IMPORT_MATERIALS_IN_INSTANCES = 1024, - IMPORT_USE_COMPRESSION = 2048 + IMPORT_USE_COMPRESSION = 2048, + IMPORT_USE_NAMED_SKIN_BINDS = 4096, }; diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp index aa7346efe8..3254b32dae 100644 --- a/editor/import/resource_importer_texture.cpp +++ b/editor/import/resource_importer_texture.cpp @@ -210,7 +210,7 @@ String ResourceImporterTexture::get_preset_name(int p_idx) const { void ResourceImporterTexture::get_import_options(List<ImportOption> *r_options, int p_preset) const { r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/mode", PROPERTY_HINT_ENUM, "Lossless,Lossy,VRAM Compressed,VRAM Uncompressed,Basis Universal", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), p_preset == PRESET_3D ? 2 : 0)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "compress/lossy_quality", PROPERTY_HINT_RANGE, "0,1,0.01"), 0.7)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "compress/lossy_quality", PROPERTY_HINT_RANGE, "0,1,0.01"), 0.7)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/hdr_mode", PROPERTY_HINT_ENUM, "Enabled,Force RGBE"), 0)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/bptc_ldr", PROPERTY_HINT_ENUM, "Enabled,RGBA Only"), 0)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "compress/normal_map", PROPERTY_HINT_ENUM, "Detect,Enable,Disabled"), 0)); @@ -226,7 +226,7 @@ void ResourceImporterTexture::get_import_options(List<ImportOption> *r_options, r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "process/HDR_as_SRGB"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "process/size_limit", PROPERTY_HINT_RANGE, "0,4096,1"), 0)); r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "detect_3d/compress_to", PROPERTY_HINT_ENUM, "Disabled,VRAM Compressed,Basis Universal"), (p_preset == PRESET_DETECT) ? 1 : 0)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "svg/scale", PROPERTY_HINT_RANGE, "0.001,100,0.001"), 1.0)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "svg/scale", PROPERTY_HINT_RANGE, "0.001,100,0.001"), 1.0)); } void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image> &p_image, CompressMode p_compress_mode, Image::UsedChannels p_channels, Image::CompressMode p_compress_format, float p_lossy_quality, bool p_force_rgbe) { @@ -242,12 +242,12 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image for (int i = 0; i < p_image->get_mipmap_count() + 1; i++) { - PoolVector<uint8_t> data = Image::lossless_packer(p_image->get_image_from_mipmap(i)); + Vector<uint8_t> data = Image::lossless_packer(p_image->get_image_from_mipmap(i)); int data_len = data.size(); f->store_32(data_len); - PoolVector<uint8_t>::Read r = data.read(); - f->store_buffer(r.ptr(), data_len); + const uint8_t *r = data.ptr(); + f->store_buffer(r, data_len); } } break; @@ -261,12 +261,12 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image for (int i = 0; i < p_image->get_mipmap_count() + 1; i++) { - PoolVector<uint8_t> data = Image::lossy_packer(p_image->get_image_from_mipmap(i), p_lossy_quality); + Vector<uint8_t> data = Image::lossy_packer(p_image->get_image_from_mipmap(i), p_lossy_quality); int data_len = data.size(); f->store_32(data_len); - PoolVector<uint8_t>::Read r = data.read(); - f->store_buffer(r.ptr(), data_len); + const uint8_t *r = data.ptr(); + f->store_buffer(r, data_len); } } break; case COMPRESS_VRAM_COMPRESSED: { @@ -285,10 +285,10 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image f->store_32(image->get_mipmap_count()); f->store_32(image->get_format()); - PoolVector<uint8_t> data = image->get_data(); + Vector<uint8_t> data = image->get_data(); int dl = data.size(); - PoolVector<uint8_t>::Read r = data.read(); - f->store_buffer(r.ptr(), dl); + const uint8_t *r = data.ptr(); + f->store_buffer(r, dl); } break; case COMPRESS_VRAM_UNCOMPRESSED: { @@ -298,11 +298,11 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image f->store_32(p_image->get_mipmap_count()); f->store_32(p_image->get_format()); - PoolVector<uint8_t> data = p_image->get_data(); + Vector<uint8_t> data = p_image->get_data(); int dl = data.size(); - PoolVector<uint8_t>::Read r = data.read(); + const uint8_t *r = data.ptr(); - f->store_buffer(r.ptr(), dl); + f->store_buffer(r, dl); } break; case COMPRESS_BASIS_UNIVERSAL: { @@ -315,12 +315,12 @@ void ResourceImporterTexture::save_to_stex_format(FileAccess *f, const Ref<Image for (int i = 0; i < p_image->get_mipmap_count() + 1; i++) { - PoolVector<uint8_t> data = Image::basis_universal_packer(p_image->get_image_from_mipmap(i), p_channels); + Vector<uint8_t> data = Image::basis_universal_packer(p_image->get_image_from_mipmap(i), p_channels); int data_len = data.size(); f->store_32(data_len); - PoolVector<uint8_t>::Read r = data.read(); - f->store_buffer(r.ptr(), data_len); + const uint8_t *r = data.ptr(); + f->store_buffer(r, data_len); } } break; } @@ -476,13 +476,11 @@ Error ResourceImporterTexture::import(const String &p_source_file, const String int height = image->get_height(); int width = image->get_width(); - image->lock(); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { image->set_pixel(i, j, image->get_pixel(i, j).inverted()); } } - image->unlock(); } if (compress_mode == COMPRESS_BASIS_UNIVERSAL && image->get_format() >= Image::FORMAT_RF) { diff --git a/editor/import/resource_importer_texture_atlas.cpp b/editor/import/resource_importer_texture_atlas.cpp index 00a25ec886..3172cc7279 100644 --- a/editor/import/resource_importer_texture_atlas.cpp +++ b/editor/import/resource_importer_texture_atlas.cpp @@ -143,8 +143,8 @@ static void _plot_triangle(Vector2 *vertices, const Vector2 &p_offset, bool p_tr int px = xi, py = yi; int sx = px, sy = py; - sx = CLAMP(sx, 0, src_width); - sy = CLAMP(sy, 0, src_height); + sx = CLAMP(sx, 0, src_width - 1); + sy = CLAMP(sy, 0, src_height - 1); Color color = p_src_image->get_pixel(sx, sy); if (p_transposed) { SWAP(px, py); @@ -165,8 +165,8 @@ static void _plot_triangle(Vector2 *vertices, const Vector2 &p_offset, bool p_tr for (int xi = (xf < width ? int(xf) : width - 1); xi >= (xt > 0 ? xt : 0); xi--) { int px = xi, py = yi; int sx = px, sy = py; - sx = CLAMP(sx, 0, src_width); - sy = CLAMP(sy, 0, src_height); + sx = CLAMP(sx, 0, src_width - 1); + sy = CLAMP(sy, 0, src_height - 1); Color color = p_src_image->get_pixel(sx, sy); if (p_transposed) { SWAP(px, py); @@ -286,12 +286,10 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file new_atlas.instance(); new_atlas->create(atlas_width, atlas_height, false, Image::FORMAT_RGBA8); - new_atlas->lock(); - for (int i = 0; i < pack_data_files.size(); i++) { PackData &pack_data = pack_data_files.write[i]; - pack_data.image->lock(); + for (int j = 0; j < pack_data.chart_pieces.size(); j++) { const EditorAtlasPacker::Chart &chart = charts[pack_data.chart_pieces[j]]; for (int k = 0; k < chart.faces.size(); k++) { @@ -304,9 +302,7 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file _plot_triangle(positions, chart.final_offset, chart.transposed, new_atlas, pack_data.image); } } - pack_data.image->unlock(); } - new_atlas->unlock(); //save the atlas @@ -350,9 +346,9 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file for (int i = 0; i < pack_data.chart_pieces.size(); i++) { const EditorAtlasPacker::Chart &chart = charts[pack_data.chart_pieces[i]]; - PoolVector<Vector2> vertices; - PoolVector<int> indices; - PoolVector<Vector2> uvs; + Vector<Vector2> vertices; + Vector<int> indices; + Vector<Vector2> uvs; int vc = chart.vertices.size(); int fc = chart.faces.size(); vertices.resize(vc); @@ -360,9 +356,9 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file indices.resize(fc * 3); { - PoolVector<Vector2>::Write vw = vertices.write(); - PoolVector<int>::Write iw = indices.write(); - PoolVector<Vector2>::Write uvw = uvs.write(); + Vector2 *vw = vertices.ptrw(); + int *iw = indices.ptrw(); + Vector2 *uvw = uvs.ptrw(); for (int j = 0; j < vc; j++) { vw[j] = chart.vertices[j]; diff --git a/editor/import/resource_importer_wav.cpp b/editor/import/resource_importer_wav.cpp index 2d43fa089d..71f81051bc 100644 --- a/editor/import/resource_importer_wav.cpp +++ b/editor/import/resource_importer_wav.cpp @@ -82,7 +82,7 @@ void ResourceImporterWAV::get_import_options(List<ImportOption> *r_options, int r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force/8_bit"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force/mono"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "force/max_rate", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), false)); - r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "force/max_rate_hz", PROPERTY_HINT_EXP_RANGE, "11025,192000,1"), 44100)); + r_options->push_back(ImportOption(PropertyInfo(Variant::FLOAT, "force/max_rate_hz", PROPERTY_HINT_EXP_RANGE, "11025,192000,1"), 44100)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "edit/trim"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "edit/normalize"), false)); r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "edit/loop"), false)); @@ -467,7 +467,7 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s is16 = false; } - PoolVector<uint8_t> dst_data; + Vector<uint8_t> dst_data; AudioStreamSample::Format dst_format; if (compression == 1) { @@ -490,8 +490,8 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s right.write[i] = data[i * 2 + 1]; } - PoolVector<uint8_t> bleft; - PoolVector<uint8_t> bright; + Vector<uint8_t> bleft; + Vector<uint8_t> bright; _compress_ima_adpcm(left, bleft); _compress_ima_adpcm(right, bright); @@ -499,9 +499,9 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s int dl = bleft.size(); dst_data.resize(dl * 2); - PoolVector<uint8_t>::Write w = dst_data.write(); - PoolVector<uint8_t>::Read rl = bleft.read(); - PoolVector<uint8_t>::Read rr = bright.read(); + uint8_t *w = dst_data.ptrw(); + const uint8_t *rl = bleft.ptr(); + const uint8_t *rr = bright.ptr(); for (int i = 0; i < dl; i++) { w[i * 2 + 0] = rl[i]; @@ -514,7 +514,7 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s dst_format = is16 ? AudioStreamSample::FORMAT_16_BITS : AudioStreamSample::FORMAT_8_BITS; dst_data.resize(data.size() * (is16 ? 2 : 1)); { - PoolVector<uint8_t>::Write w = dst_data.write(); + uint8_t *w = dst_data.ptrw(); int ds = data.size(); for (int i = 0; i < ds; i++) { diff --git a/editor/import/resource_importer_wav.h b/editor/import/resource_importer_wav.h index 59d33feef0..6df5b88b13 100644 --- a/editor/import/resource_importer_wav.h +++ b/editor/import/resource_importer_wav.h @@ -49,7 +49,7 @@ public: virtual void get_import_options(List<ImportOption> *r_options, int p_preset = 0) const; virtual bool get_option_visibility(const String &p_option, const Map<StringName, Variant> &p_options) const; - static void _compress_ima_adpcm(const Vector<float> &p_data, PoolVector<uint8_t> &dst_data) { + static void _compress_ima_adpcm(const Vector<float> &p_data, Vector<uint8_t> &dst_data) { /*p_sample_data->data = (void*)malloc(len); xm_s8 *dataptr=(xm_s8*)p_sample_data->data;*/ @@ -76,10 +76,10 @@ public: datalen++; dst_data.resize(datalen / 2 + 4); - PoolVector<uint8_t>::Write w = dst_data.write(); + uint8_t *w = dst_data.ptrw(); int i, step_idx = 0, prev = 0; - uint8_t *out = w.ptr(); + uint8_t *out = w; //int16_t xm_prev=0; const float *in = p_data.ptr(); diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp index 1eb453f4d0..06c6f9940c 100644 --- a/editor/import_dock.cpp +++ b/editor/import_dock.cpp @@ -266,7 +266,7 @@ void ImportDock::set_edit_multiple_paths(const Vector<String> &p_paths) { import_as->set_disabled(false); preset->set_disabled(false); - imported->set_text(itos(p_paths.size()) + TTR(" Files")); + imported->set_text(vformat(TTR("%d Files"), p_paths.size())); } void ImportDock::_update_preset_menu() { @@ -537,26 +537,26 @@ ImportDock::ImportDock() { add_margin_child(TTR("Import As:"), hb); import_as = memnew(OptionButton); import_as->set_disabled(true); - import_as->connect("item_selected", this, "_importer_selected"); + import_as->connect_compat("item_selected", this, "_importer_selected"); hb->add_child(import_as); import_as->set_h_size_flags(SIZE_EXPAND_FILL); preset = memnew(MenuButton); preset->set_text(TTR("Preset")); preset->set_disabled(true); - preset->get_popup()->connect("index_pressed", this, "_preset_selected"); + preset->get_popup()->connect_compat("index_pressed", this, "_preset_selected"); hb->add_child(preset); import_opts = memnew(EditorInspector); add_child(import_opts); import_opts->set_v_size_flags(SIZE_EXPAND_FILL); - import_opts->connect("property_toggled", this, "_property_toggled"); + import_opts->connect_compat("property_toggled", this, "_property_toggled"); hb = memnew(HBoxContainer); add_child(hb); import = memnew(Button); import->set_text(TTR("Reimport")); import->set_disabled(true); - import->connect("pressed", this, "_reimport_attempt"); + import->connect_compat("pressed", this, "_reimport_attempt"); hb->add_spacer(); hb->add_child(import); hb->add_spacer(); @@ -564,7 +564,7 @@ ImportDock::ImportDock() { reimport_confirm = memnew(ConfirmationDialog); reimport_confirm->get_ok()->set_text(TTR("Save scenes, re-import and restart")); add_child(reimport_confirm); - reimport_confirm->connect("confirmed", this, "_reimport_and_restart"); + reimport_confirm->connect_compat("confirmed", this, "_reimport_and_restart"); VBoxContainer *vbc_confirm = memnew(VBoxContainer()); vbc_confirm->add_child(memnew(Label(TTR("Changing the type of an imported file requires editor restart.")))); diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp index 954a941a96..1f96092bba 100644 --- a/editor/inspector_dock.cpp +++ b/editor/inspector_dock.cpp @@ -247,7 +247,7 @@ void InspectorDock::_prepare_history() { } } else if (Object::cast_to<Node>(obj)) { text = Object::cast_to<Node>(obj)->get_name(); - } else if (obj->is_class("ScriptEditorDebuggerInspectedObject")) { + } else if (obj->is_class("EditorDebuggerRemoteObject")) { text = obj->call("get_title"); } else { text = obj->get_class(); @@ -260,7 +260,7 @@ void InspectorDock::_prepare_history() { } } -void InspectorDock::_select_history(int p_idx) const { +void InspectorDock::_select_history(int p_idx) { //push it to the top, it is not correct, but it's more useful ObjectID id = EditorNode::get_singleton()->get_editor_history()->get_history_obj(p_idx); Object *obj = ObjectDB::get_instance(id); @@ -269,7 +269,7 @@ void InspectorDock::_select_history(int p_idx) const { editor->push_item(obj); } -void InspectorDock::_resource_created() const { +void InspectorDock::_resource_created() { Object *c = new_resource_dialog->instance_selected(); ERR_FAIL_COND(!c); @@ -280,7 +280,7 @@ void InspectorDock::_resource_created() const { editor->push_item(c); } -void InspectorDock::_resource_selected(const RES &p_res, const String &p_property) const { +void InspectorDock::_resource_selected(const RES &p_res, const String &p_property) { if (p_res.is_null()) return; @@ -349,7 +349,6 @@ void InspectorDock::_bind_methods() { ClassDB::bind_method("_property_keyed", &InspectorDock::_property_keyed); ClassDB::bind_method("_transform_keyed", &InspectorDock::_transform_keyed); - ClassDB::bind_method("_new_resource", &InspectorDock::_new_resource); ClassDB::bind_method("_resource_file_selected", &InspectorDock::_resource_file_selected); ClassDB::bind_method("_open_resource_selector", &InspectorDock::_open_resource_selector); ClassDB::bind_method("_unref_resource", &InspectorDock::_unref_resource); @@ -511,14 +510,14 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { resource_new_button->set_tooltip(TTR("Create a new resource in memory and edit it.")); resource_new_button->set_icon(get_icon("New", "EditorIcons")); general_options_hb->add_child(resource_new_button); - resource_new_button->connect("pressed", this, "_new_resource"); + resource_new_button->connect("pressed", callable_mp(this, &InspectorDock::_new_resource)); resource_new_button->set_focus_mode(Control::FOCUS_NONE); resource_load_button = memnew(ToolButton); resource_load_button->set_tooltip(TTR("Load an existing resource from disk and edit it.")); resource_load_button->set_icon(get_icon("Load", "EditorIcons")); general_options_hb->add_child(resource_load_button); - resource_load_button->connect("pressed", this, "_open_resource_selector"); + resource_load_button->connect_compat("pressed", this, "_open_resource_selector"); resource_load_button->set_focus_mode(Control::FOCUS_NONE); resource_save_button = memnew(MenuButton); @@ -527,7 +526,7 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { general_options_hb->add_child(resource_save_button); resource_save_button->get_popup()->add_item(TTR("Save"), RESOURCE_SAVE); resource_save_button->get_popup()->add_item(TTR("Save As..."), RESOURCE_SAVE_AS); - resource_save_button->get_popup()->connect("id_pressed", this, "_menu_option"); + resource_save_button->get_popup()->connect_compat("id_pressed", this, "_menu_option"); resource_save_button->set_focus_mode(Control::FOCUS_NONE); resource_save_button->set_disabled(true); @@ -539,7 +538,7 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { backward_button->set_flat(true); backward_button->set_tooltip(TTR("Go to the previous edited object in history.")); backward_button->set_disabled(true); - backward_button->connect("pressed", this, "_edit_back"); + backward_button->connect_compat("pressed", this, "_edit_back"); forward_button = memnew(ToolButton); general_options_hb->add_child(forward_button); @@ -547,14 +546,14 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { forward_button->set_flat(true); forward_button->set_tooltip(TTR("Go to the next edited object in history.")); forward_button->set_disabled(true); - forward_button->connect("pressed", this, "_edit_forward"); + forward_button->connect_compat("pressed", this, "_edit_forward"); history_menu = memnew(MenuButton); history_menu->set_tooltip(TTR("History of recently edited objects.")); history_menu->set_icon(get_icon("History", "EditorIcons")); general_options_hb->add_child(history_menu); - history_menu->connect("about_to_show", this, "_prepare_history"); - history_menu->get_popup()->connect("id_pressed", this, "_select_history"); + history_menu->connect_compat("about_to_show", this, "_prepare_history"); + history_menu->get_popup()->connect_compat("id_pressed", this, "_select_history"); HBoxContainer *node_info_hb = memnew(HBoxContainer); add_child(node_info_hb); @@ -567,12 +566,12 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { object_menu->set_icon(get_icon("Tools", "EditorIcons")); node_info_hb->add_child(object_menu); object_menu->set_tooltip(TTR("Object properties.")); - object_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + object_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); new_resource_dialog = memnew(CreateDialog); editor->get_gui_base()->add_child(new_resource_dialog); new_resource_dialog->set_base_type("Resource"); - new_resource_dialog->connect("create", this, "_resource_created"); + new_resource_dialog->connect_compat("create", this, "_resource_created"); search = memnew(LineEdit); search->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -588,7 +587,7 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { warning->add_color_override("font_color", get_color("warning_color", "Editor")); warning->set_clip_text(true); warning->hide(); - warning->connect("pressed", this, "_warning_pressed"); + warning->connect_compat("pressed", this, "_warning_pressed"); warning_dialog = memnew(AcceptDialog); editor->get_gui_base()->add_child(warning_dialog); @@ -596,7 +595,7 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { load_resource_dialog = memnew(EditorFileDialog); add_child(load_resource_dialog); load_resource_dialog->set_current_dir("res://"); - load_resource_dialog->connect("file_selected", this, "_resource_file_selected"); + load_resource_dialog->connect_compat("file_selected", this, "_resource_file_selected"); inspector = memnew(EditorInspector); add_child(inspector); @@ -612,8 +611,8 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) { inspector->set_use_filter(true); // TODO: check me - inspector->connect("resource_selected", this, "_resource_selected"); - inspector->connect("property_keyed", this, "_property_keyed"); + inspector->connect_compat("resource_selected", this, "_resource_selected"); + inspector->connect_compat("property_keyed", this, "_property_keyed"); } InspectorDock::~InspectorDock() { diff --git a/editor/inspector_dock.h b/editor/inspector_dock.h index a7da4bef4c..016aee12cf 100644 --- a/editor/inspector_dock.h +++ b/editor/inspector_dock.h @@ -104,13 +104,13 @@ class InspectorDock : public VBoxContainer { void _paste_resource() const; void _warning_pressed(); - void _resource_created() const; - void _resource_selected(const RES &p_res, const String &p_property = "") const; + void _resource_created(); + void _resource_selected(const RES &p_res, const String &p_property = ""); void _edit_forward(); void _edit_back(); void _menu_collapseall(); void _menu_expandall(); - void _select_history(int p_idx) const; + void _select_history(int p_idx); void _prepare_history(); void _property_keyed(const String &p_keyed, const Variant &p_value, bool p_advance); diff --git a/editor/node_dock.cpp b/editor/node_dock.cpp index c53c5f330b..f04afcd04d 100644 --- a/editor/node_dock.cpp +++ b/editor/node_dock.cpp @@ -107,7 +107,7 @@ NodeDock::NodeDock() { connections_button->set_h_size_flags(SIZE_EXPAND_FILL); connections_button->set_clip_text(true); mode_hb->add_child(connections_button); - connections_button->connect("pressed", this, "show_connections"); + connections_button->connect_compat("pressed", this, "show_connections"); groups_button = memnew(ToolButton); groups_button->set_text(TTR("Groups")); @@ -116,7 +116,7 @@ NodeDock::NodeDock() { groups_button->set_h_size_flags(SIZE_EXPAND_FILL); groups_button->set_clip_text(true); mode_hb->add_child(groups_button); - groups_button->connect("pressed", this, "show_groups"); + groups_button->connect_compat("pressed", this, "show_groups"); connections = memnew(ConnectionsDock(EditorNode::get_singleton())); connections->set_undoredo(EditorNode::get_undo_redo()); diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp index 1506ba319c..4e3333f528 100644 --- a/editor/plugin_config_dialog.cpp +++ b/editor/plugin_config_dialog.cpp @@ -132,8 +132,8 @@ void PluginConfigDialog::_on_required_text_changed(const String &) { void PluginConfigDialog::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { - connect("confirmed", this, "_on_confirmed"); - get_cancel()->connect("pressed", this, "_on_cancelled"); + connect_compat("confirmed", this, "_on_confirmed"); + get_cancel()->connect_compat("pressed", this, "_on_cancelled"); } break; case NOTIFICATION_POST_POPUP: { @@ -194,7 +194,7 @@ PluginConfigDialog::PluginConfigDialog() { grid->add_child(name_lb); name_edit = memnew(LineEdit); - name_edit->connect("text_changed", this, "_on_required_text_changed"); + name_edit->connect_compat("text_changed", this, "_on_required_text_changed"); name_edit->set_placeholder("MyPlugin"); grid->add_child(name_edit); @@ -253,7 +253,7 @@ PluginConfigDialog::PluginConfigDialog() { grid->add_child(script_lb); script_edit = memnew(LineEdit); - script_edit->connect("text_changed", this, "_on_required_text_changed"); + script_edit->connect_compat("text_changed", this, "_on_required_text_changed"); script_edit->set_placeholder("\"plugin.gd\" -> res://addons/my_plugin/plugin.gd"); grid->add_child(script_edit); diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp index b2d132b3da..6f29b6c76a 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -150,7 +150,7 @@ void AbstractPolygon2DEditor::_action_add_polygon(const Variant &p_polygon) { void AbstractPolygon2DEditor::_action_remove_polygon(int p_idx) { - _action_set_polygon(p_idx, _get_polygon(p_idx), PoolVector<Vector2>()); + _action_set_polygon(p_idx, _get_polygon(p_idx), Vector<Vector2>()); } void AbstractPolygon2DEditor::_action_set_polygon(int p_idx, const Variant &p_polygon) { @@ -209,8 +209,8 @@ void AbstractPolygon2DEditor::_notification(int p_what) { button_delete->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("CurveDelete", "EditorIcons")); button_edit->set_pressed(true); - get_tree()->connect("node_removed", this, "_node_removed"); - create_resource->connect("confirmed", this, "_create_resource"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); + create_resource->connect_compat("confirmed", this, "_create_resource"); } break; } } @@ -256,7 +256,7 @@ void AbstractPolygon2DEditor::_wip_close() { undo_redo->create_action(TTR("Create Polygon")); _action_add_polygon(wip); if (_has_uv()) { - undo_redo->add_do_method(_get_node(), "set_uv", PoolVector<Vector2>()); + undo_redo->add_do_method(_get_node(), "set_uv", Vector<Vector2>()); undo_redo->add_undo_method(_get_node(), "set_uv", _get_node()->get("uv")); } _commit_action(); @@ -584,7 +584,7 @@ void AbstractPolygon2DEditor::forward_canvas_draw_over_viewport(Control *p_overl if (wip_active && wip_destructive && j != -1) continue; - PoolVector<Vector2> points; + Vector<Vector2> points; Vector2 offset; if (wip_active && j == edited_point.polygon) { @@ -703,7 +703,7 @@ void AbstractPolygon2DEditor::_bind_methods() { void AbstractPolygon2DEditor::remove_point(const Vertex &p_vertex) { - PoolVector<Vector2> vertices = _get_polygon(p_vertex.polygon); + Vector<Vector2> vertices = _get_polygon(p_vertex.polygon); if (vertices.size() > (_is_line() ? 2 : 3)) { @@ -744,7 +744,7 @@ AbstractPolygon2DEditor::PosVertex AbstractPolygon2DEditor::closest_point(const for (int j = 0; j < n_polygons; j++) { - PoolVector<Vector2> points = _get_polygon(j); + Vector<Vector2> points = _get_polygon(j); const Vector2 offset = _get_offset(j); const int n_points = points.size(); @@ -777,7 +777,7 @@ AbstractPolygon2DEditor::PosVertex AbstractPolygon2DEditor::closest_edge_point(c for (int j = 0; j < n_polygons; j++) { - PoolVector<Vector2> points = _get_polygon(j); + Vector<Vector2> points = _get_polygon(j); const Vector2 offset = _get_offset(j); const int n_points = points.size(); const int n_segments = n_points - (_is_line() ? 1 : 0); @@ -820,17 +820,17 @@ AbstractPolygon2DEditor::AbstractPolygon2DEditor(EditorNode *p_editor, bool p_wi add_child(memnew(VSeparator)); button_create = memnew(ToolButton); add_child(button_create); - button_create->connect("pressed", this, "_menu_option", varray(MODE_CREATE)); + button_create->connect_compat("pressed", this, "_menu_option", varray(MODE_CREATE)); button_create->set_toggle_mode(true); button_edit = memnew(ToolButton); add_child(button_edit); - button_edit->connect("pressed", this, "_menu_option", varray(MODE_EDIT)); + button_edit->connect_compat("pressed", this, "_menu_option", varray(MODE_EDIT)); button_edit->set_toggle_mode(true); button_delete = memnew(ToolButton); add_child(button_delete); - button_delete->connect("pressed", this, "_menu_option", varray(MODE_DELETE)); + button_delete->connect_compat("pressed", this, "_menu_option", varray(MODE_DELETE)); button_delete->set_toggle_mode(true); create_resource = memnew(ConfirmationDialog); diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp index 9261613ddd..c955f2b806 100644 --- a/editor/plugins/animation_blend_space_1d_editor.cpp +++ b/editor/plugins/animation_blend_space_1d_editor.cpp @@ -622,28 +622,28 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() { top_hb->add_child(tool_blend); tool_blend->set_pressed(true); tool_blend->set_tooltip(TTR("Set the blending position within the space")); - tool_blend->connect("pressed", this, "_tool_switch", varray(3)); + tool_blend->connect_compat("pressed", this, "_tool_switch", varray(3)); tool_select = memnew(ToolButton); tool_select->set_toggle_mode(true); tool_select->set_button_group(bg); top_hb->add_child(tool_select); tool_select->set_tooltip(TTR("Select and move points, create points with RMB.")); - tool_select->connect("pressed", this, "_tool_switch", varray(0)); + tool_select->connect_compat("pressed", this, "_tool_switch", varray(0)); tool_create = memnew(ToolButton); tool_create->set_toggle_mode(true); tool_create->set_button_group(bg); top_hb->add_child(tool_create); tool_create->set_tooltip(TTR("Create points.")); - tool_create->connect("pressed", this, "_tool_switch", varray(1)); + tool_create->connect_compat("pressed", this, "_tool_switch", varray(1)); tool_erase_sep = memnew(VSeparator); top_hb->add_child(tool_erase_sep); tool_erase = memnew(ToolButton); top_hb->add_child(tool_erase); tool_erase->set_tooltip(TTR("Erase points.")); - tool_erase->connect("pressed", this, "_erase_selected"); + tool_erase->connect_compat("pressed", this, "_erase_selected"); top_hb->add_child(memnew(VSeparator)); @@ -652,7 +652,7 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() { top_hb->add_child(snap); snap->set_pressed(true); snap->set_tooltip(TTR("Enable snap and show grid.")); - snap->connect("pressed", this, "_snap_toggled"); + snap->connect_compat("pressed", this, "_snap_toggled"); snap_value = memnew(SpinBox); top_hb->add_child(snap_value); @@ -670,12 +670,12 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() { edit_value->set_min(-1000); edit_value->set_max(1000); edit_value->set_step(0.01); - edit_value->connect("value_changed", this, "_edit_point_pos"); + edit_value->connect_compat("value_changed", this, "_edit_point_pos"); open_editor = memnew(Button); edit_hb->add_child(open_editor); open_editor->set_text(TTR("Open Editor")); - open_editor->connect("pressed", this, "_open_editor", varray(), CONNECT_DEFERRED); + open_editor->connect_compat("pressed", this, "_open_editor", varray(), CONNECT_DEFERRED); edit_hb->hide(); open_editor->hide(); @@ -691,8 +691,8 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() { panel->set_v_size_flags(SIZE_EXPAND_FILL); blend_space_draw = memnew(Control); - blend_space_draw->connect("gui_input", this, "_blend_space_gui_input"); - blend_space_draw->connect("draw", this, "_blend_space_draw"); + blend_space_draw->connect_compat("gui_input", this, "_blend_space_gui_input"); + blend_space_draw->connect_compat("draw", this, "_blend_space_draw"); blend_space_draw->set_focus_mode(FOCUS_ALL); panel->add_child(blend_space_draw); @@ -724,10 +724,10 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() { bottom_hb->add_child(max_value); } - snap_value->connect("value_changed", this, "_config_changed"); - min_value->connect("value_changed", this, "_config_changed"); - max_value->connect("value_changed", this, "_config_changed"); - label_value->connect("text_changed", this, "_labels_changed"); + snap_value->connect_compat("value_changed", this, "_config_changed"); + min_value->connect_compat("value_changed", this, "_config_changed"); + max_value->connect_compat("value_changed", this, "_config_changed"); + label_value->connect_compat("text_changed", this, "_labels_changed"); error_panel = memnew(PanelContainer); add_child(error_panel); @@ -740,18 +740,18 @@ AnimationNodeBlendSpace1DEditor::AnimationNodeBlendSpace1DEditor() { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_add_menu_type"); + menu->connect_compat("id_pressed", this, "_add_menu_type"); animations_menu = memnew(PopupMenu); menu->add_child(animations_menu); animations_menu->set_name("animations"); - animations_menu->connect("index_pressed", this, "_add_animation_type"); + animations_menu->connect_compat("index_pressed", this, "_add_animation_type"); open_file = memnew(EditorFileDialog); add_child(open_file); open_file->set_title(TTR("Open Animation Node")); open_file->set_mode(EditorFileDialog::MODE_OPEN_FILE); - open_file->connect("file_selected", this, "_file_opened"); + open_file->connect_compat("file_selected", this, "_file_opened"); undo_redo = EditorNode::get_undo_redo(); selected_point = -1; diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp index fdd8ffd58f..d2306a5d6b 100644 --- a/editor/plugins/animation_blend_space_2d_editor.cpp +++ b/editor/plugins/animation_blend_space_2d_editor.cpp @@ -55,12 +55,12 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_changed() { void AnimationNodeBlendSpace2DEditor::edit(const Ref<AnimationNode> &p_node) { if (blend_space.is_valid()) { - blend_space->disconnect("triangles_updated", this, "_blend_space_changed"); + blend_space->disconnect_compat("triangles_updated", this, "_blend_space_changed"); } blend_space = p_node; if (!blend_space.is_null()) { - blend_space->connect("triangles_updated", this, "_blend_space_changed"); + blend_space->connect_compat("triangles_updated", this, "_blend_space_changed"); _update_space(); } } @@ -870,42 +870,42 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { top_hb->add_child(tool_blend); tool_blend->set_pressed(true); tool_blend->set_tooltip(TTR("Set the blending position within the space")); - tool_blend->connect("pressed", this, "_tool_switch", varray(3)); + tool_blend->connect_compat("pressed", this, "_tool_switch", varray(3)); tool_select = memnew(ToolButton); tool_select->set_toggle_mode(true); tool_select->set_button_group(bg); top_hb->add_child(tool_select); tool_select->set_tooltip(TTR("Select and move points, create points with RMB.")); - tool_select->connect("pressed", this, "_tool_switch", varray(0)); + tool_select->connect_compat("pressed", this, "_tool_switch", varray(0)); tool_create = memnew(ToolButton); tool_create->set_toggle_mode(true); tool_create->set_button_group(bg); top_hb->add_child(tool_create); tool_create->set_tooltip(TTR("Create points.")); - tool_create->connect("pressed", this, "_tool_switch", varray(1)); + tool_create->connect_compat("pressed", this, "_tool_switch", varray(1)); tool_triangle = memnew(ToolButton); tool_triangle->set_toggle_mode(true); tool_triangle->set_button_group(bg); top_hb->add_child(tool_triangle); tool_triangle->set_tooltip(TTR("Create triangles by connecting points.")); - tool_triangle->connect("pressed", this, "_tool_switch", varray(2)); + tool_triangle->connect_compat("pressed", this, "_tool_switch", varray(2)); tool_erase_sep = memnew(VSeparator); top_hb->add_child(tool_erase_sep); tool_erase = memnew(ToolButton); top_hb->add_child(tool_erase); tool_erase->set_tooltip(TTR("Erase points and triangles.")); - tool_erase->connect("pressed", this, "_erase_selected"); + tool_erase->connect_compat("pressed", this, "_erase_selected"); tool_erase->set_disabled(true); top_hb->add_child(memnew(VSeparator)); auto_triangles = memnew(ToolButton); top_hb->add_child(auto_triangles); - auto_triangles->connect("pressed", this, "_auto_triangles_toggled"); + auto_triangles->connect_compat("pressed", this, "_auto_triangles_toggled"); auto_triangles->set_toggle_mode(true); auto_triangles->set_tooltip(TTR("Generate blend triangles automatically (instead of manually)")); @@ -916,7 +916,7 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { top_hb->add_child(snap); snap->set_pressed(true); snap->set_tooltip(TTR("Enable snap and show grid.")); - snap->connect("pressed", this, "_snap_toggled"); + snap->connect_compat("pressed", this, "_snap_toggled"); snap_x = memnew(SpinBox); top_hb->add_child(snap_x); @@ -937,7 +937,7 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { top_hb->add_child(memnew(Label(TTR("Blend:")))); interpolation = memnew(OptionButton); top_hb->add_child(interpolation); - interpolation->connect("item_selected", this, "_config_changed"); + interpolation->connect_compat("item_selected", this, "_config_changed"); edit_hb = memnew(HBoxContainer); top_hb->add_child(edit_hb); @@ -948,17 +948,17 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { edit_x->set_min(-1000); edit_x->set_step(0.01); edit_x->set_max(1000); - edit_x->connect("value_changed", this, "_edit_point_pos"); + edit_x->connect_compat("value_changed", this, "_edit_point_pos"); edit_y = memnew(SpinBox); edit_hb->add_child(edit_y); edit_y->set_min(-1000); edit_y->set_step(0.01); edit_y->set_max(1000); - edit_y->connect("value_changed", this, "_edit_point_pos"); + edit_y->connect_compat("value_changed", this, "_edit_point_pos"); open_editor = memnew(Button); edit_hb->add_child(open_editor); open_editor->set_text(TTR("Open Editor")); - open_editor->connect("pressed", this, "_open_editor", varray(), CONNECT_DEFERRED); + open_editor->connect_compat("pressed", this, "_open_editor", varray(), CONNECT_DEFERRED); edit_hb->hide(); open_editor->hide(); @@ -999,8 +999,8 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { panel->set_h_size_flags(SIZE_EXPAND_FILL); blend_space_draw = memnew(Control); - blend_space_draw->connect("gui_input", this, "_blend_space_gui_input"); - blend_space_draw->connect("draw", this, "_blend_space_draw"); + blend_space_draw->connect_compat("gui_input", this, "_blend_space_gui_input"); + blend_space_draw->connect_compat("draw", this, "_blend_space_draw"); blend_space_draw->set_focus_mode(FOCUS_ALL); panel->add_child(blend_space_draw); @@ -1029,14 +1029,14 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { min_x_value->set_step(0.01); } - snap_x->connect("value_changed", this, "_config_changed"); - snap_y->connect("value_changed", this, "_config_changed"); - max_x_value->connect("value_changed", this, "_config_changed"); - min_x_value->connect("value_changed", this, "_config_changed"); - max_y_value->connect("value_changed", this, "_config_changed"); - min_y_value->connect("value_changed", this, "_config_changed"); - label_x->connect("text_changed", this, "_labels_changed"); - label_y->connect("text_changed", this, "_labels_changed"); + snap_x->connect_compat("value_changed", this, "_config_changed"); + snap_y->connect_compat("value_changed", this, "_config_changed"); + max_x_value->connect_compat("value_changed", this, "_config_changed"); + min_x_value->connect_compat("value_changed", this, "_config_changed"); + max_y_value->connect_compat("value_changed", this, "_config_changed"); + min_y_value->connect_compat("value_changed", this, "_config_changed"); + label_x->connect_compat("text_changed", this, "_labels_changed"); + label_y->connect_compat("text_changed", this, "_labels_changed"); error_panel = memnew(PanelContainer); add_child(error_panel); @@ -1050,18 +1050,18 @@ AnimationNodeBlendSpace2DEditor::AnimationNodeBlendSpace2DEditor() { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_add_menu_type"); + menu->connect_compat("id_pressed", this, "_add_menu_type"); animations_menu = memnew(PopupMenu); menu->add_child(animations_menu); animations_menu->set_name("animations"); - animations_menu->connect("index_pressed", this, "_add_animation_type"); + animations_menu->connect_compat("index_pressed", this, "_add_animation_type"); open_file = memnew(EditorFileDialog); add_child(open_file); open_file->set_title(TTR("Open Animation Node")); open_file->set_mode(EditorFileDialog::MODE_OPEN_FILE); - open_file->connect("file_selected", this, "_file_opened"); + open_file->connect_compat("file_selected", this, "_file_opened"); undo_redo = EditorNode::get_undo_redo(); selected_point = -1; diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp index a100525d10..f2daa809b4 100644 --- a/editor/plugins/animation_blend_tree_editor_plugin.cpp +++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp @@ -146,11 +146,11 @@ void AnimationNodeBlendTreeEditor::_update_graph() { name->set_expand_to_text_length(true); node->add_child(name); node->set_slot(0, false, 0, Color(), true, 0, get_color("font_color", "Label")); - name->connect("text_entered", this, "_node_renamed", varray(agnode)); - name->connect("focus_exited", this, "_node_renamed_focus_out", varray(name, agnode), CONNECT_DEFERRED); + name->connect_compat("text_entered", this, "_node_renamed", varray(agnode)); + name->connect_compat("focus_exited", this, "_node_renamed_focus_out", varray(name, agnode), CONNECT_DEFERRED); base = 1; node->set_show_close_button(true); - node->connect("close_request", this, "_delete_request", varray(E->get()), CONNECT_DEFERRED); + node->connect_compat("close_request", this, "_delete_request", varray(E->get()), CONNECT_DEFERRED); } for (int i = 0; i < agnode->get_input_count(); i++) { @@ -173,13 +173,13 @@ void AnimationNodeBlendTreeEditor::_update_graph() { prop->set_object_and_property(AnimationTreeEditor::get_singleton()->get_tree(), base_path); prop->update_property(); prop->set_name_split_ratio(0); - prop->connect("property_changed", this, "_property_changed"); + prop->connect_compat("property_changed", this, "_property_changed"); node->add_child(prop); visible_properties.push_back(prop); } } - node->connect("dragged", this, "_node_dragged", varray(E->get())); + node->connect_compat("dragged", this, "_node_dragged", varray(E->get())); if (AnimationTreeEditor::get_singleton()->can_edit(agnode)) { node->add_child(memnew(HSeparator)); @@ -187,7 +187,7 @@ void AnimationNodeBlendTreeEditor::_update_graph() { open_in_editor->set_text(TTR("Open Editor")); open_in_editor->set_icon(get_icon("Edit", "EditorIcons")); node->add_child(open_in_editor); - open_in_editor->connect("pressed", this, "_open_in_editor", varray(E->get()), CONNECT_DEFERRED); + open_in_editor->connect_compat("pressed", this, "_open_in_editor", varray(E->get()), CONNECT_DEFERRED); open_in_editor->set_h_size_flags(SIZE_SHRINK_CENTER); } @@ -198,7 +198,7 @@ void AnimationNodeBlendTreeEditor::_update_graph() { edit_filters->set_text(TTR("Edit Filters")); edit_filters->set_icon(get_icon("AnimationFilter", "EditorIcons")); node->add_child(edit_filters); - edit_filters->connect("pressed", this, "_edit_filters", varray(E->get()), CONNECT_DEFERRED); + edit_filters->connect_compat("pressed", this, "_edit_filters", varray(E->get()), CONNECT_DEFERRED); edit_filters->set_h_size_flags(SIZE_SHRINK_CENTER); } @@ -238,7 +238,7 @@ void AnimationNodeBlendTreeEditor::_update_graph() { animations[E->get()] = pb; node->add_child(pb); - mb->get_popup()->connect("index_pressed", this, "_anim_selected", varray(options, E->get()), CONNECT_DEFERRED); + mb->get_popup()->connect_compat("index_pressed", this, "_anim_selected", varray(options, E->get()), CONNECT_DEFERRED); } if (EditorSettings::get_singleton()->get("interface/theme/use_graph_node_headers")) { @@ -911,7 +911,7 @@ bool AnimationNodeBlendTreeEditor::can_edit(const Ref<AnimationNode> &p_node) { void AnimationNodeBlendTreeEditor::edit(const Ref<AnimationNode> &p_node) { if (blend_tree.is_valid()) { - blend_tree->disconnect("removed_from_graph", this, "_removed_from_graph"); + blend_tree->disconnect_compat("removed_from_graph", this, "_removed_from_graph"); } blend_tree = p_node; @@ -919,7 +919,7 @@ void AnimationNodeBlendTreeEditor::edit(const Ref<AnimationNode> &p_node) { if (blend_tree.is_null()) { hide(); } else { - blend_tree->connect("removed_from_graph", this, "_removed_from_graph"); + blend_tree->connect_compat("removed_from_graph", this, "_removed_from_graph"); _update_graph(); } @@ -936,12 +936,12 @@ AnimationNodeBlendTreeEditor::AnimationNodeBlendTreeEditor() { graph->add_valid_right_disconnect_type(0); graph->add_valid_left_disconnect_type(0); graph->set_v_size_flags(SIZE_EXPAND_FILL); - graph->connect("connection_request", this, "_connection_request", varray(), CONNECT_DEFERRED); - graph->connect("disconnection_request", this, "_disconnection_request", varray(), CONNECT_DEFERRED); - graph->connect("node_selected", this, "_node_selected"); - graph->connect("scroll_offset_changed", this, "_scroll_changed"); - graph->connect("delete_nodes_request", this, "_delete_nodes_request"); - graph->connect("popup_request", this, "_popup_request"); + graph->connect_compat("connection_request", this, "_connection_request", varray(), CONNECT_DEFERRED); + graph->connect_compat("disconnection_request", this, "_disconnection_request", varray(), CONNECT_DEFERRED); + graph->connect_compat("node_selected", this, "_node_selected"); + graph->connect_compat("scroll_offset_changed", this, "_scroll_changed"); + graph->connect_compat("delete_nodes_request", this, "_delete_nodes_request"); + graph->connect_compat("popup_request", this, "_popup_request"); VSeparator *vs = memnew(VSeparator); graph->get_zoom_hbox()->add_child(vs); @@ -951,8 +951,8 @@ AnimationNodeBlendTreeEditor::AnimationNodeBlendTreeEditor() { graph->get_zoom_hbox()->add_child(add_node); add_node->set_text(TTR("Add Node...")); graph->get_zoom_hbox()->move_child(add_node, 0); - add_node->get_popup()->connect("id_pressed", this, "_add_node"); - add_node->connect("about_to_show", this, "_update_options_menu"); + add_node->get_popup()->connect_compat("id_pressed", this, "_add_node"); + add_node->connect_compat("about_to_show", this, "_update_options_menu"); add_options.push_back(AddOption("Animation", "AnimationNodeAnimation")); add_options.push_back(AddOption("OneShot", "AnimationNodeOneShot")); @@ -984,19 +984,19 @@ AnimationNodeBlendTreeEditor::AnimationNodeBlendTreeEditor() { filter_enabled = memnew(CheckBox); filter_enabled->set_text(TTR("Enable Filtering")); - filter_enabled->connect("pressed", this, "_filter_toggled"); + filter_enabled->connect_compat("pressed", this, "_filter_toggled"); filter_vbox->add_child(filter_enabled); filters = memnew(Tree); filter_vbox->add_child(filters); filters->set_v_size_flags(SIZE_EXPAND_FILL); filters->set_hide_root(true); - filters->connect("item_edited", this, "_filter_edited"); + filters->connect_compat("item_edited", this, "_filter_edited"); open_file = memnew(EditorFileDialog); add_child(open_file); open_file->set_title(TTR("Open Animation Node")); open_file->set_mode(EditorFileDialog::MODE_OPEN_FILE); - open_file->connect("file_selected", this, "_file_opened"); + open_file->connect_compat("file_selected", this, "_file_opened"); undo_redo = EditorNode::get_undo_redo(); } diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index d8bbac9c49..0f2a7376f5 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -38,10 +38,8 @@ #include "editor/animation_track_editor.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" - -// For onion skinning. -#include "editor/plugins/canvas_item_editor_plugin.h" -#include "editor/plugins/spatial_editor_plugin.h" +#include "editor/plugins/canvas_item_editor_plugin.h" // For onion skinning. +#include "editor/plugins/spatial_editor_plugin.h" // For onion skinning. #include "scene/main/viewport.h" #include "servers/visual_server.h" @@ -99,13 +97,13 @@ void AnimationPlayerEditor::_notification(int p_what) { } break; case NOTIFICATION_ENTER_TREE: { - tool_anim->get_popup()->connect("id_pressed", this, "_animation_tool_menu"); + tool_anim->get_popup()->connect_compat("id_pressed", this, "_animation_tool_menu"); - onion_skinning->get_popup()->connect("id_pressed", this, "_onion_skinning_menu"); + onion_skinning->get_popup()->connect_compat("id_pressed", this, "_onion_skinning_menu"); - blend_editor.next->connect("item_selected", this, "_blend_editor_next_changed"); + blend_editor.next->connect_compat("item_selected", this, "_blend_editor_next_changed"); - get_tree()->connect("node_removed", this, "_node_removed"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); add_style_override("panel", editor->get_gui_base()->get_stylebox("panel", "Panel")); } break; @@ -375,8 +373,7 @@ void AnimationPlayerEditor::_animation_save_in_path(const Ref<Resource> &p_resou Error err = ResourceSaver::save(path, p_resource, flg | ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS); if (err != OK) { - accept->set_text(TTR("Error saving resource!")); - accept->popup_centered_minsize(); + EditorNode::get_singleton()->show_warning(TTR("Error saving resource!")); return; } @@ -1504,16 +1501,16 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() { void AnimationPlayerEditor::_start_onion_skinning() { // FIXME: Using "idle_frame" makes onion layers update one frame behind the current. - if (!get_tree()->is_connected("idle_frame", this, "call_deferred")) { - get_tree()->connect("idle_frame", this, "call_deferred", varray("_prepare_onion_layers_1")); + if (!get_tree()->is_connected_compat("idle_frame", this, "call_deferred")) { + get_tree()->connect_compat("idle_frame", this, "call_deferred", varray("_prepare_onion_layers_1")); } } void AnimationPlayerEditor::_stop_onion_skinning() { - if (get_tree()->is_connected("idle_frame", this, "call_deferred")) { + if (get_tree()->is_connected_compat("idle_frame", this, "call_deferred")) { - get_tree()->disconnect("idle_frame", this, "call_deferred"); + get_tree()->disconnect_compat("idle_frame", this, "call_deferred"); _free_onion_layers(); @@ -1628,13 +1625,9 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay scale->set_tooltip(TTR("Scale animation playback globally for the node.")); scale->hide(); - accept = memnew(AcceptDialog); - add_child(accept); - accept->connect("confirmed", this, "_menu_confirm_current"); - delete_dialog = memnew(ConfirmationDialog); add_child(delete_dialog); - delete_dialog->connect("confirmed", this, "_animation_remove_confirmed"); + delete_dialog->connect_compat("confirmed", this, "_animation_remove_confirmed"); tool_anim = memnew(MenuButton); tool_anim->set_flat(false); @@ -1679,7 +1672,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay onion_toggle = memnew(ToolButton); onion_toggle->set_toggle_mode(true); onion_toggle->set_tooltip(TTR("Enable Onion Skinning")); - onion_toggle->connect("pressed", this, "_onion_skinning_menu", varray(ONION_SKINNING_ENABLE)); + onion_toggle->connect_compat("pressed", this, "_onion_skinning_menu", varray(ONION_SKINNING_ENABLE)); hb->add_child(onion_toggle); onion_skinning = memnew(MenuButton); @@ -1705,7 +1698,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay pin->set_toggle_mode(true); pin->set_tooltip(TTR("Pin AnimationPlayer")); hb->add_child(pin); - pin->connect("pressed", this, "_pin_pressed"); + pin->connect_compat("pressed", this, "_pin_pressed"); file = memnew(EditorFileDialog); add_child(file); @@ -1729,7 +1722,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay error_dialog->set_title(TTR("Error!")); add_child(error_dialog); - name_dialog->connect("confirmed", this, "_animation_name_edited"); + name_dialog->connect_compat("confirmed", this, "_animation_name_edited"); blend_editor.dialog = memnew(AcceptDialog); add_child(blend_editor.dialog); @@ -1745,21 +1738,21 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay blend_editor.dialog->set_title(TTR("Cross-Animation Blend Times")); updating_blends = false; - blend_editor.tree->connect("item_edited", this, "_blend_edited"); + blend_editor.tree->connect_compat("item_edited", this, "_blend_edited"); - autoplay->connect("pressed", this, "_autoplay_pressed"); + autoplay->connect_compat("pressed", this, "_autoplay_pressed"); autoplay->set_toggle_mode(true); - play->connect("pressed", this, "_play_pressed"); - play_from->connect("pressed", this, "_play_from_pressed"); - play_bw->connect("pressed", this, "_play_bw_pressed"); - play_bw_from->connect("pressed", this, "_play_bw_from_pressed"); - stop->connect("pressed", this, "_stop_pressed"); + play->connect_compat("pressed", this, "_play_pressed"); + play_from->connect_compat("pressed", this, "_play_from_pressed"); + play_bw->connect_compat("pressed", this, "_play_bw_pressed"); + play_bw_from->connect_compat("pressed", this, "_play_bw_from_pressed"); + stop->connect_compat("pressed", this, "_stop_pressed"); - animation->connect("item_selected", this, "_animation_selected", Vector<Variant>(), true); + animation->connect_compat("item_selected", this, "_animation_selected", Vector<Variant>(), true); - file->connect("file_selected", this, "_dialog_action"); - frame->connect("value_changed", this, "_seek_value_changed", Vector<Variant>(), true); - scale->connect("text_entered", this, "_scale_changed", Vector<Variant>(), true); + file->connect_compat("file_selected", this, "_dialog_action"); + frame->connect_compat("value_changed", this, "_seek_value_changed", Vector<Variant>(), true); + scale->connect_compat("text_entered", this, "_scale_changed", Vector<Variant>(), true); renaming = false; last_active = false; @@ -1769,14 +1762,14 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay add_child(track_editor); track_editor->set_v_size_flags(SIZE_EXPAND_FILL); - track_editor->connect("timeline_changed", this, "_animation_key_editor_seek"); - track_editor->connect("animation_len_changed", this, "_animation_key_editor_anim_len_changed"); + track_editor->connect_compat("timeline_changed", this, "_animation_key_editor_seek"); + track_editor->connect_compat("animation_len_changed", this, "_animation_key_editor_anim_len_changed"); _update_player(); // Onion skinning. - track_editor->connect("visibility_changed", this, "_editor_visibility_changed"); + track_editor->connect_compat("visibility_changed", this, "_editor_visibility_changed"); onion.enabled = false; onion.past = true; diff --git a/editor/plugins/animation_player_editor_plugin.h b/editor/plugins/animation_player_editor_plugin.h index ab9db279d5..40815151a3 100644 --- a/editor/plugins/animation_player_editor_plugin.h +++ b/editor/plugins/animation_player_editor_plugin.h @@ -110,7 +110,6 @@ class AnimationPlayerEditor : public VBoxContainer { float timeline_position; EditorFileDialog *file; - AcceptDialog *accept; ConfirmationDialog *delete_dialog; int current_option; diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index 035a67b821..6f29aba356 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -1276,21 +1276,21 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { tool_select->set_button_group(bg); tool_select->set_pressed(true); tool_select->set_tooltip(TTR("Select and move nodes.\nRMB to add new nodes.\nShift+LMB to create connections.")); - tool_select->connect("pressed", this, "_update_mode", varray(), CONNECT_DEFERRED); + tool_select->connect_compat("pressed", this, "_update_mode", varray(), CONNECT_DEFERRED); tool_create = memnew(ToolButton); top_hb->add_child(tool_create); tool_create->set_toggle_mode(true); tool_create->set_button_group(bg); tool_create->set_tooltip(TTR("Create new nodes.")); - tool_create->connect("pressed", this, "_update_mode", varray(), CONNECT_DEFERRED); + tool_create->connect_compat("pressed", this, "_update_mode", varray(), CONNECT_DEFERRED); tool_connect = memnew(ToolButton); top_hb->add_child(tool_connect); tool_connect->set_toggle_mode(true); tool_connect->set_button_group(bg); tool_connect->set_tooltip(TTR("Connect nodes.")); - tool_connect->connect("pressed", this, "_update_mode", varray(), CONNECT_DEFERRED); + tool_connect->connect_compat("pressed", this, "_update_mode", varray(), CONNECT_DEFERRED); tool_erase_hb = memnew(HBoxContainer); top_hb->add_child(tool_erase_hb); @@ -1298,7 +1298,7 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { tool_erase = memnew(ToolButton); tool_erase->set_tooltip(TTR("Remove selected node or transition.")); tool_erase_hb->add_child(tool_erase); - tool_erase->connect("pressed", this, "_erase_selected"); + tool_erase->connect_compat("pressed", this, "_erase_selected"); tool_erase->set_disabled(true); tool_erase_hb->add_child(memnew(VSeparator)); @@ -1306,13 +1306,13 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { tool_autoplay = memnew(ToolButton); tool_autoplay->set_tooltip(TTR("Toggle autoplay this animation on start, restart or seek to zero.")); tool_erase_hb->add_child(tool_autoplay); - tool_autoplay->connect("pressed", this, "_autoplay_selected"); + tool_autoplay->connect_compat("pressed", this, "_autoplay_selected"); tool_autoplay->set_disabled(true); tool_end = memnew(ToolButton); tool_end->set_tooltip(TTR("Set the end animation. This is useful for sub-transitions.")); tool_erase_hb->add_child(tool_end); - tool_end->connect("pressed", this, "_end_selected"); + tool_end->connect_compat("pressed", this, "_end_selected"); tool_end->set_disabled(true); top_hb->add_child(memnew(VSeparator)); @@ -1333,26 +1333,26 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { state_machine_draw = memnew(Control); panel->add_child(state_machine_draw); - state_machine_draw->connect("gui_input", this, "_state_machine_gui_input"); - state_machine_draw->connect("draw", this, "_state_machine_draw"); + state_machine_draw->connect_compat("gui_input", this, "_state_machine_gui_input"); + state_machine_draw->connect_compat("draw", this, "_state_machine_draw"); state_machine_draw->set_focus_mode(FOCUS_ALL); state_machine_play_pos = memnew(Control); state_machine_draw->add_child(state_machine_play_pos); state_machine_play_pos->set_mouse_filter(MOUSE_FILTER_PASS); //pass all to parent state_machine_play_pos->set_anchors_and_margins_preset(PRESET_WIDE); - state_machine_play_pos->connect("draw", this, "_state_machine_pos_draw"); + state_machine_play_pos->connect_compat("draw", this, "_state_machine_pos_draw"); v_scroll = memnew(VScrollBar); state_machine_draw->add_child(v_scroll); v_scroll->set_anchors_and_margins_preset(PRESET_RIGHT_WIDE); - v_scroll->connect("value_changed", this, "_scroll_changed"); + v_scroll->connect_compat("value_changed", this, "_scroll_changed"); h_scroll = memnew(HScrollBar); state_machine_draw->add_child(h_scroll); h_scroll->set_anchors_and_margins_preset(PRESET_BOTTOM_WIDE); h_scroll->set_margin(MARGIN_RIGHT, -v_scroll->get_size().x * EDSCALE); - h_scroll->connect("value_changed", this, "_scroll_changed"); + h_scroll->connect_compat("value_changed", this, "_scroll_changed"); error_panel = memnew(PanelContainer); add_child(error_panel); @@ -1366,25 +1366,25 @@ AnimationNodeStateMachineEditor::AnimationNodeStateMachineEditor() { menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_add_menu_type"); + menu->connect_compat("id_pressed", this, "_add_menu_type"); animations_menu = memnew(PopupMenu); menu->add_child(animations_menu); animations_menu->set_name("animations"); - animations_menu->connect("index_pressed", this, "_add_animation_type"); + animations_menu->connect_compat("index_pressed", this, "_add_animation_type"); name_edit = memnew(LineEdit); state_machine_draw->add_child(name_edit); name_edit->hide(); - name_edit->connect("text_entered", this, "_name_edited"); - name_edit->connect("focus_exited", this, "_name_edited_focus_out"); + name_edit->connect_compat("text_entered", this, "_name_edited"); + name_edit->connect_compat("focus_exited", this, "_name_edited_focus_out"); name_edit->set_as_toplevel(true); open_file = memnew(EditorFileDialog); add_child(open_file); open_file->set_title(TTR("Open Animation Node")); open_file->set_mode(EditorFileDialog::MODE_OPEN_FILE); - open_file->connect("file_selected", this, "_file_opened"); + open_file->connect_compat("file_selected", this, "_file_opened"); undo_redo = EditorNode::get_undo_redo(); over_text = false; diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp index a729c90160..8900882725 100644 --- a/editor/plugins/animation_tree_editor_plugin.cpp +++ b/editor/plugins/animation_tree_editor_plugin.cpp @@ -85,7 +85,7 @@ void AnimationTreeEditor::_update_path() { b->set_button_group(group); b->set_pressed(true); b->set_focus_mode(FOCUS_NONE); - b->connect("pressed", this, "_path_button_pressed", varray(-1)); + b->connect_compat("pressed", this, "_path_button_pressed", varray(-1)); path_hb->add_child(b); for (int i = 0; i < button_path.size(); i++) { b = memnew(Button); @@ -95,7 +95,7 @@ void AnimationTreeEditor::_update_path() { path_hb->add_child(b); b->set_pressed(true); b->set_focus_mode(FOCUS_NONE); - b->connect("pressed", this, "_path_button_pressed", varray(i)); + b->connect_compat("pressed", this, "_path_button_pressed", varray(i)); } } diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index a479703527..c8cbc59e45 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -112,7 +112,7 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() { icon = memnew(TextureButton); icon->set_custom_minimum_size(Size2(64, 64) * EDSCALE); icon->set_default_cursor_shape(CURSOR_POINTING_HAND); - icon->connect("pressed", this, "_asset_clicked"); + icon->connect_compat("pressed", this, "_asset_clicked"); hb->add_child(icon); @@ -123,17 +123,17 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() { title = memnew(LinkButton); title->set_underline_mode(LinkButton::UNDERLINE_MODE_ON_HOVER); - title->connect("pressed", this, "_asset_clicked"); + title->connect_compat("pressed", this, "_asset_clicked"); vb->add_child(title); category = memnew(LinkButton); category->set_underline_mode(LinkButton::UNDERLINE_MODE_ON_HOVER); - category->connect("pressed", this, "_category_clicked"); + category->connect_compat("pressed", this, "_category_clicked"); vb->add_child(category); author = memnew(LinkButton); author->set_underline_mode(LinkButton::UNDERLINE_MODE_ON_HOVER); - author->connect("pressed", this, "_author_clicked"); + author->connect_compat("pressed", this, "_author_clicked"); vb->add_child(author); price = memnew(Label); @@ -166,9 +166,8 @@ void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const // Overlay and thumbnail need the same format for `blend_rect` to work. thumbnail->convert(Image::FORMAT_RGBA8); - thumbnail->lock(); + thumbnail->blend_rect(overlay, overlay->get_used_rect(), overlay_pos); - thumbnail->unlock(); Ref<ImageTexture> tex; tex.instance(); @@ -264,7 +263,7 @@ void EditorAssetLibraryItemDescription::add_preview(int p_id, bool p_video, cons preview.button->set_flat(true); preview.button->set_icon(get_icon("ThumbnailWait", "EditorIcons")); preview.button->set_toggle_mode(true); - preview.button->connect("pressed", this, "_preview_click", varray(p_id)); + preview.button->connect_compat("pressed", this, "_preview_click", varray(p_id)); preview_hb->add_child(preview.button); if (!p_video) { preview.image = get_icon("ThumbnailWait", "EditorIcons"); @@ -291,7 +290,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() { description = memnew(RichTextLabel); desc_vbox->add_child(description); description->set_v_size_flags(SIZE_EXPAND_FILL); - description->connect("meta_clicked", this, "_link_click"); + description->connect_compat("meta_clicked", this, "_link_click"); description->add_constant_override("line_separation", Math::round(5 * EDSCALE)); VBoxContainer *previews_vbox = memnew(VBoxContainer); @@ -322,7 +321,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() { } /////////////////////////////////////////////////////////////////////////////////// -void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data) { +void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data) { String error_text; @@ -527,7 +526,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { title->set_h_size_flags(SIZE_EXPAND_FILL); dismiss = memnew(TextureButton); - dismiss->connect("pressed", this, "_close"); + dismiss->connect_compat("pressed", this, "_close"); title_hb->add_child(dismiss); title->set_clip_text(true); @@ -547,11 +546,11 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { install = memnew(Button); install->set_text(TTR("Install...")); install->set_disabled(true); - install->connect("pressed", this, "_install"); + install->connect_compat("pressed", this, "_install"); retry = memnew(Button); retry->set_text(TTR("Retry")); - retry->connect("pressed", this, "_make_request"); + retry->connect_compat("pressed", this, "_make_request"); hb2->add_child(retry); hb2->add_child(install); @@ -559,7 +558,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { download = memnew(HTTPRequest); add_child(download); - download->connect("request_completed", this, "_http_download_completed"); + download->connect_compat("request_completed", this, "_http_download_completed"); download->set_use_threads(EDITOR_DEF("asset_library/use_threads", true)); download_error = memnew(AcceptDialog); @@ -568,7 +567,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { asset_installer = memnew(EditorAssetInstaller); add_child(asset_installer); - asset_installer->connect("confirmed", this, "_close"); + asset_installer->connect_compat("confirmed", this, "_close"); prev_status = -1; @@ -658,7 +657,7 @@ void EditorAssetLibrary::_install_asset() { if (templates_only) { download->set_external_install(true); - download->connect("install_asset", this, "_install_external_asset"); + download->connect_compat("install_asset", this, "_install_external_asset"); } } @@ -710,12 +709,12 @@ void EditorAssetLibrary::_select_asset(int p_id) { _api_request("asset/" + itos(p_id), REQUESTING_ASSET); } -void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByteArray &p_data, int p_queue_id) { +void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PackedByteArray &p_data, int p_queue_id) { Object *obj = ObjectDB::get_instance(image_queue[p_queue_id].target); if (obj) { bool image_set = false; - PoolByteArray image_data = p_data; + PackedByteArray image_data = p_data; if (use_cache) { String cache_filename_base = EditorSettings::get_singleton()->get_cache_dir().plus_file("assetimage_" + image_queue[p_queue_id].image_url.md5_text()); @@ -723,12 +722,12 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByt FileAccess *file = FileAccess::open(cache_filename_base + ".data", FileAccess::READ); if (file) { - PoolByteArray cached_data; + PackedByteArray cached_data; int len = file->get_32(); cached_data.resize(len); - PoolByteArray::Write w = cached_data.write(); - file->get_buffer(w.ptr(), len); + uint8_t *w = cached_data.ptrw(); + file->get_buffer(w, len); image_data = cached_data; file->close(); @@ -737,17 +736,17 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByt } int len = image_data.size(); - PoolByteArray::Read r = image_data.read(); + const uint8_t *r = image_data.ptr(); Ref<Image> image = Ref<Image>(memnew(Image)); uint8_t png_signature[8] = { 137, 80, 78, 71, 13, 10, 26, 10 }; uint8_t jpg_signature[3] = { 255, 216, 255 }; - if (r.ptr()) { + if (r) { if ((memcmp(&r[0], &png_signature[0], 8) == 0) && Image::_png_mem_loader_func) { - image->copy_internals_from(Image::_png_mem_loader_func(r.ptr(), len)); + image->copy_internals_from(Image::_png_mem_loader_func(r, len)); } else if ((memcmp(&r[0], &jpg_signature[0], 3) == 0) && Image::_jpg_mem_loader_func) { - image->copy_internals_from(Image::_jpg_mem_loader_func(r.ptr(), len)); + image->copy_internals_from(Image::_jpg_mem_loader_func(r, len)); } } @@ -790,7 +789,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByt } } -void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data, int p_queue_id) { +void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data, int p_queue_id) { ERR_FAIL_COND(!image_queue.has(p_queue_id)); @@ -811,11 +810,11 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons } int len = p_data.size(); - PoolByteArray::Read r = p_data.read(); + const uint8_t *r = p_data.ptr(); file = FileAccess::open(cache_filename_base + ".data", FileAccess::WRITE); if (file) { file->store_32(len); - file->store_buffer(r.ptr(), len); + file->store_buffer(r, len); file->close(); memdelete(file); } @@ -893,13 +892,13 @@ void EditorAssetLibrary::_request_image(ObjectID p_for, String p_image_url, Imag iq.queue_id = ++last_queue_id; iq.active = false; - iq.request->connect("request_completed", this, "_image_request_completed", varray(iq.queue_id)); + iq.request->connect_compat("request_completed", this, "_image_request_completed", varray(iq.queue_id)); image_queue[iq.queue_id] = iq; add_child(iq.request); - _image_update(true, false, PoolByteArray(), iq.queue_id); + _image_update(true, false, PackedByteArray(), iq.queue_id); _update_image_queue(); } @@ -992,7 +991,7 @@ HBoxContainer *EditorAssetLibrary::_make_pages(int p_page, int p_page_count, int Button *first = memnew(Button); first->set_text(TTR("First")); if (p_page != 0) { - first->connect("pressed", this, "_search", varray(0)); + first->connect_compat("pressed", this, "_search", varray(0)); } else { first->set_disabled(true); first->set_focus_mode(Control::FOCUS_NONE); @@ -1002,7 +1001,7 @@ HBoxContainer *EditorAssetLibrary::_make_pages(int p_page, int p_page_count, int Button *prev = memnew(Button); prev->set_text(TTR("Previous")); if (p_page > 0) { - prev->connect("pressed", this, "_search", varray(p_page - 1)); + prev->connect_compat("pressed", this, "_search", varray(p_page - 1)); } else { prev->set_disabled(true); prev->set_focus_mode(Control::FOCUS_NONE); @@ -1024,7 +1023,7 @@ HBoxContainer *EditorAssetLibrary::_make_pages(int p_page, int p_page_count, int Button *current = memnew(Button); current->set_text(itos(i + 1)); - current->connect("pressed", this, "_search", varray(i)); + current->connect_compat("pressed", this, "_search", varray(i)); hbc->add_child(current); } @@ -1033,7 +1032,7 @@ HBoxContainer *EditorAssetLibrary::_make_pages(int p_page, int p_page_count, int Button *next = memnew(Button); next->set_text(TTR("Next")); if (p_page < p_page_count - 1) { - next->connect("pressed", this, "_search", varray(p_page + 1)); + next->connect_compat("pressed", this, "_search", varray(p_page + 1)); } else { next->set_disabled(true); next->set_focus_mode(Control::FOCUS_NONE); @@ -1044,7 +1043,7 @@ HBoxContainer *EditorAssetLibrary::_make_pages(int p_page, int p_page_count, int Button *last = memnew(Button); last->set_text(TTR("Last")); if (p_page != p_page_count - 1) { - last->connect("pressed", this, "_search", varray(p_page_count - 1)); + last->connect_compat("pressed", this, "_search", varray(p_page_count - 1)); } else { last->set_disabled(true); last->set_focus_mode(Control::FOCUS_NONE); @@ -1068,14 +1067,14 @@ void EditorAssetLibrary::_api_request(const String &p_request, RequestType p_req request->request(host + "/" + p_request + p_arguments); } -void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data) { +void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data) { String str; { int datalen = p_data.size(); - PoolByteArray::Read r = p_data.read(); - str.parse_utf8((const char *)r.ptr(), datalen); + const uint8_t *r = p_data.ptr(); + str.parse_utf8((const char *)r, datalen); } bool error_abort = true; @@ -1211,7 +1210,16 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const library_vb->add_child(asset_bottom_page); if (result.empty()) { - library_error->set_text(vformat(TTR("No results for \"%s\"."), filter->get_text())); + if (filter->get_text() != String()) { + library_error->set_text( + vformat(TTR("No results for \"%s\"."), filter->get_text())); + } else { + // No results, even though the user didn't search for anything specific. + // This is typically because the version number changed recently + // and no assets compatible with the new version have been published yet. + library_error->set_text( + vformat(TTR("No results compatible with %s %s."), String(VERSION_SHORT_NAME).capitalize(), String(VERSION_BRANCH))); + } library_error->show(); } @@ -1230,9 +1238,9 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const EditorAssetLibraryItem *item = memnew(EditorAssetLibraryItem); asset_items->add_child(item); item->configure(r["title"], r["asset_id"], category_map[r["category_id"]], r["category_id"], r["author"], r["author_id"], r["cost"]); - item->connect("asset_selected", this, "_select_asset"); - item->connect("author_selected", this, "_select_author"); - item->connect("category_selected", this, "_select_category"); + item->connect_compat("asset_selected", this, "_select_asset"); + item->connect_compat("author_selected", this, "_select_author"); + item->connect_compat("category_selected", this, "_select_category"); if (r.has("icon_url") && r["icon_url"] != "") { _request_image(item->get_instance_id(), r["icon_url"], IMAGE_QUEUE_ICON, 0); @@ -1263,7 +1271,7 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const description = memnew(EditorAssetLibraryItemDescription); add_child(description); description->popup_centered_minsize(); - description->connect("confirmed", this, "_install_asset"); + description->connect_compat("confirmed", this, "_install_asset"); description->configure(r["title"], r["asset_id"], category_map[r["category_id"]], r["category_id"], r["author"], r["author_id"], r["cost"], r["version"], r["version_string"], r["description"], r["download_url"], r["browse_url"], r["download_hash"]); @@ -1375,9 +1383,9 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { filter = memnew(LineEdit); search_hb->add_child(filter); filter->set_h_size_flags(SIZE_EXPAND_FILL); - filter->connect("text_entered", this, "_search_text_entered"); + filter->connect_compat("text_entered", this, "_search_text_entered"); search = memnew(Button(TTR("Search"))); - search->connect("pressed", this, "_search"); + search->connect_compat("pressed", this, "_search"); search_hb->add_child(search); if (!p_templates_only) @@ -1386,12 +1394,12 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { Button *open_asset = memnew(Button); open_asset->set_text(TTR("Import...")); search_hb->add_child(open_asset); - open_asset->connect("pressed", this, "_asset_open"); + open_asset->connect_compat("pressed", this, "_asset_open"); Button *plugins = memnew(Button); plugins->set_text(TTR("Plugins...")); search_hb->add_child(plugins); - plugins->connect("pressed", this, "_manage_plugins"); + plugins->connect_compat("pressed", this, "_manage_plugins"); if (p_templates_only) { open_asset->hide(); @@ -1410,7 +1418,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { search_hb2->add_child(sort); sort->set_h_size_flags(SIZE_EXPAND_FILL); - sort->connect("item_selected", this, "_rerun_search"); + sort->connect_compat("item_selected", this, "_rerun_search"); search_hb2->add_child(memnew(VSeparator)); @@ -1419,7 +1427,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { categories->add_item(TTR("All")); search_hb2->add_child(categories); categories->set_h_size_flags(SIZE_EXPAND_FILL); - categories->connect("item_selected", this, "_rerun_search"); + categories->connect_compat("item_selected", this, "_rerun_search"); search_hb2->add_child(memnew(VSeparator)); @@ -1431,7 +1439,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { repository->add_item("localhost"); repository->set_item_metadata(1, "http://127.0.0.1/asset-library/api"); - repository->connect("item_selected", this, "_repository_changed"); + repository->connect_compat("item_selected", this, "_repository_changed"); search_hb2->add_child(repository); repository->set_h_size_flags(SIZE_EXPAND_FILL); @@ -1446,7 +1454,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { support->get_popup()->add_check_item(TTR("Testing"), SUPPORT_TESTING); support->get_popup()->set_item_checked(SUPPORT_OFFICIAL, true); support->get_popup()->set_item_checked(SUPPORT_COMMUNITY, true); - support->get_popup()->connect("id_pressed", this, "_support_toggled"); + support->get_popup()->connect_compat("id_pressed", this, "_support_toggled"); ///////// @@ -1502,7 +1510,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { request = memnew(HTTPRequest); add_child(request); request->set_use_threads(EDITOR_DEF("asset_library/use_threads", true)); - request->connect("request_completed", this, "_http_request_completed"); + request->connect_compat("request_completed", this, "_http_request_completed"); last_queue_id = 0; @@ -1535,7 +1543,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { asset_open->add_filter("*.zip ; " + TTR("Assets ZIP File")); asset_open->set_mode(EditorFileDialog::MODE_OPEN_FILE); add_child(asset_open); - asset_open->connect("file_selected", this, "_asset_file_selected"); + asset_open->connect_compat("file_selected", this, "_asset_file_selected"); asset_installer = NULL; } diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h index e13d8a6149..536a855d03 100644 --- a/editor/plugins/asset_library_editor_plugin.h +++ b/editor/plugins/asset_library_editor_plugin.h @@ -156,7 +156,7 @@ class EditorAssetLibraryItemDownload : public PanelContainer { void _close(); void _install(); void _make_request(); - void _http_download_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data); + void _http_download_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data); protected: void _notification(int p_what); @@ -250,8 +250,8 @@ class EditorAssetLibrary : public PanelContainer { int last_queue_id; Map<int, ImageQueue> image_queue; - void _image_update(bool use_cache, bool final, const PoolByteArray &p_data, int p_queue_id); - void _image_request_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data, int p_queue_id); + void _image_update(bool use_cache, bool final, const PackedByteArray &p_data, int p_queue_id); + void _image_request_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data, int p_queue_id); void _request_image(ObjectID p_for, String p_image_url, ImageType p_type, int p_image_index); void _update_image_queue(); @@ -286,8 +286,8 @@ class EditorAssetLibrary : public PanelContainer { void _rerun_search(int p_ignore); void _search_text_entered(const String &p_text = ""); void _api_request(const String &p_request, RequestType p_request_type, const String &p_arguments = ""); - void _http_request_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data); - void _http_download_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data); + void _http_request_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data); + void _http_download_completed(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data); void _repository_changed(int p_repository_id); void _support_toggled(int p_support); diff --git a/editor/plugins/audio_stream_editor_plugin.cpp b/editor/plugins/audio_stream_editor_plugin.cpp index 60cb2ff54d..e4a9c38a99 100644 --- a/editor/plugins/audio_stream_editor_plugin.cpp +++ b/editor/plugins/audio_stream_editor_plugin.cpp @@ -39,7 +39,7 @@ void AudioStreamEditor::_notification(int p_what) { if (p_what == NOTIFICATION_READY) { - AudioStreamPreviewGenerator::get_singleton()->connect("preview_updated", this, "_preview_changed"); + AudioStreamPreviewGenerator::get_singleton()->connect_compat("preview_updated", this, "_preview_changed"); } if (p_what == NOTIFICATION_THEME_CHANGED || p_what == NOTIFICATION_ENTER_TREE) { @@ -214,7 +214,7 @@ AudioStreamEditor::AudioStreamEditor() { _dragging = false; _player = memnew(AudioStreamPlayer); - _player->connect("finished", this, "_on_finished"); + _player->connect_compat("finished", this, "_on_finished"); add_child(_player); VBoxContainer *vbox = memnew(VBoxContainer); @@ -223,13 +223,13 @@ AudioStreamEditor::AudioStreamEditor() { _preview = memnew(ColorRect); _preview->set_v_size_flags(SIZE_EXPAND_FILL); - _preview->connect("draw", this, "_draw_preview"); + _preview->connect_compat("draw", this, "_draw_preview"); vbox->add_child(_preview); _indicator = memnew(Control); _indicator->set_anchors_and_margins_preset(PRESET_WIDE); - _indicator->connect("draw", this, "_draw_indicator"); - _indicator->connect("gui_input", this, "_on_input_indicator"); + _indicator->connect_compat("draw", this, "_draw_indicator"); + _indicator->connect_compat("gui_input", this, "_on_input_indicator"); _preview->add_child(_indicator); HBoxContainer *hbox = memnew(HBoxContainer); @@ -239,12 +239,12 @@ AudioStreamEditor::AudioStreamEditor() { _play_button = memnew(ToolButton); hbox->add_child(_play_button); _play_button->set_focus_mode(Control::FOCUS_NONE); - _play_button->connect("pressed", this, "_play"); + _play_button->connect_compat("pressed", this, "_play"); _stop_button = memnew(ToolButton); hbox->add_child(_stop_button); _stop_button->set_focus_mode(Control::FOCUS_NONE); - _stop_button->connect("pressed", this, "_stop"); + _stop_button->connect_compat("pressed", this, "_stop"); _current_label = memnew(Label); _current_label->set_align(Label::ALIGN_RIGHT); diff --git a/editor/plugins/camera_editor_plugin.cpp b/editor/plugins/camera_editor_plugin.cpp index 6f5bc69bd1..0440785eaf 100644 --- a/editor/plugins/camera_editor_plugin.cpp +++ b/editor/plugins/camera_editor_plugin.cpp @@ -81,7 +81,7 @@ CameraEditor::CameraEditor() { preview->set_margin(MARGIN_RIGHT, 0); preview->set_margin(MARGIN_TOP, 0); preview->set_margin(MARGIN_BOTTOM, 10); - preview->connect("pressed", this, "_pressed"); + preview->connect_compat("pressed", this, "_pressed"); } void CameraEditorPlugin::edit(Object *p_object) { diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index f7a3b50052..f5cc0ccf2a 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -34,12 +34,12 @@ #include "core/os/keyboard.h" #include "core/print_string.h" #include "core/project_settings.h" +#include "editor/debugger/editor_debugger_node.h" #include "editor/editor_node.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "editor/plugins/animation_player_editor_plugin.h" #include "editor/plugins/script_editor_plugin.h" -#include "editor/script_editor_debugger.h" #include "scene/2d/light_2d.h" #include "scene/2d/particles_2d.h" #include "scene/2d/polygon_2d.h" @@ -3100,7 +3100,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) { case DRAG_TOP_LEFT: case DRAG_BOTTOM_LEFT: _draw_margin_at_position(control->get_size().width, parent_transform.xform(Vector2((node_pos_in_parent[0] + node_pos_in_parent[2]) / 2, node_pos_in_parent[3])) + Vector2(0, 5), MARGIN_BOTTOM); - FALLTHROUGH; + [[fallthrough]]; case DRAG_MOVE: start = Vector2(node_pos_in_parent[0], Math::lerp(node_pos_in_parent[1], node_pos_in_parent[3], ratio)); end = start - Vector2(control->get_margin(MARGIN_LEFT), 0); @@ -3115,7 +3115,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) { case DRAG_TOP_RIGHT: case DRAG_BOTTOM_RIGHT: _draw_margin_at_position(control->get_size().width, parent_transform.xform(Vector2((node_pos_in_parent[0] + node_pos_in_parent[2]) / 2, node_pos_in_parent[3])) + Vector2(0, 5), MARGIN_BOTTOM); - FALLTHROUGH; + [[fallthrough]]; case DRAG_MOVE: start = Vector2(node_pos_in_parent[2], Math::lerp(node_pos_in_parent[3], node_pos_in_parent[1], ratio)); end = start - Vector2(control->get_margin(MARGIN_RIGHT), 0); @@ -3130,7 +3130,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) { case DRAG_TOP_LEFT: case DRAG_TOP_RIGHT: _draw_margin_at_position(control->get_size().height, parent_transform.xform(Vector2(node_pos_in_parent[2], (node_pos_in_parent[1] + node_pos_in_parent[3]) / 2)) + Vector2(5, 0), MARGIN_RIGHT); - FALLTHROUGH; + [[fallthrough]]; case DRAG_MOVE: start = Vector2(Math::lerp(node_pos_in_parent[0], node_pos_in_parent[2], ratio), node_pos_in_parent[1]); end = start - Vector2(0, control->get_margin(MARGIN_TOP)); @@ -3145,7 +3145,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) { case DRAG_BOTTOM_LEFT: case DRAG_BOTTOM_RIGHT: _draw_margin_at_position(control->get_size().height, parent_transform.xform(Vector2(node_pos_in_parent[2], (node_pos_in_parent[1] + node_pos_in_parent[3]) / 2) + Vector2(5, 0)), MARGIN_RIGHT); - FALLTHROUGH; + [[fallthrough]]; case DRAG_MOVE: start = Vector2(Math::lerp(node_pos_in_parent[2], node_pos_in_parent[0], ratio), node_pos_in_parent[3]); end = start - Vector2(0, control->get_margin(MARGIN_BOTTOM)); @@ -3891,10 +3891,10 @@ void CanvasItemEditor::_notification(int p_what) { select_sb->set_default_margin(Margin(i), 4); } - AnimationPlayerEditor::singleton->get_track_editor()->connect("visibility_changed", this, "_keying_changed"); + AnimationPlayerEditor::singleton->get_track_editor()->connect_compat("visibility_changed", this, "_keying_changed"); _keying_changed(); - get_tree()->connect("node_added", this, "_tree_changed", varray()); - get_tree()->connect("node_removed", this, "_tree_changed", varray()); + get_tree()->connect_compat("node_added", this, "_tree_changed", varray()); + get_tree()->connect_compat("node_removed", this, "_tree_changed", varray()); } else if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { @@ -3902,8 +3902,8 @@ void CanvasItemEditor::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - get_tree()->disconnect("node_added", this, "_tree_changed"); - get_tree()->disconnect("node_removed", this, "_tree_changed"); + get_tree()->disconnect_compat("node_added", this, "_tree_changed"); + get_tree()->disconnect_compat("node_removed", this, "_tree_changed"); } if (p_what == NOTIFICATION_ENTER_TREE || p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { @@ -3990,7 +3990,7 @@ void CanvasItemEditor::_notification(int p_what) { if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { if (!is_visible() && override_camera_button->is_pressed()) { - ScriptEditorDebugger *debugger = ScriptEditor::get_singleton()->get_debugger(); + EditorDebuggerNode *debugger = EditorDebuggerNode::get_singleton(); debugger->set_camera_override(ScriptEditorDebugger::OVERRIDE_NONE); override_camera_button->set_pressed(false); @@ -4181,7 +4181,7 @@ void CanvasItemEditor::_popup_warning_temporarily(Control *p_control, const floa Timer *timer; if (!popup_temporarily_timers.has(p_control)) { timer = memnew(Timer); - timer->connect("timeout", this, "_popup_warning_depop", varray(p_control)); + timer->connect_compat("timeout", this, "_popup_warning_depop", varray(p_control)); timer->set_one_shot(true); add_child(timer); @@ -4345,7 +4345,7 @@ void CanvasItemEditor::_button_toggle_grid_snap(bool p_status) { viewport->update(); } void CanvasItemEditor::_button_override_camera(bool p_pressed) { - ScriptEditorDebugger *debugger = ScriptEditor::get_singleton()->get_debugger(); + EditorDebuggerNode *debugger = EditorDebuggerNode::get_singleton(); if (p_pressed) { debugger->set_camera_override(ScriptEditorDebugger::OVERRIDE_2D); @@ -5410,11 +5410,11 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { editor = p_editor; editor_selection = p_editor->get_editor_selection(); editor_selection->add_editor_plugin(this); - editor_selection->connect("selection_changed", this, "update"); - editor_selection->connect("selection_changed", this, "_selection_changed"); + editor_selection->connect_compat("selection_changed", this, "update"); + editor_selection->connect_compat("selection_changed", this, "_selection_changed"); - editor->call_deferred("connect", "play_pressed", this, "_update_override_camera_button", make_binds(true)); - editor->call_deferred("connect", "stop_pressed", this, "_update_override_camera_button", make_binds(false)); + editor->call_deferred("connect", make_binds("play_pressed", Callable(this, "_update_override_camera_button"), true)); + editor->call_deferred("connect", make_binds("stop_pressed", Callable(this, "_update_override_camera_button"), false)); hb = memnew(HBoxContainer); add_child(hb); @@ -5434,7 +5434,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { viewport_scrollable->set_clip_contents(true); viewport_scrollable->set_v_size_flags(SIZE_EXPAND_FILL); viewport_scrollable->set_h_size_flags(SIZE_EXPAND_FILL); - viewport_scrollable->connect("draw", this, "_update_scrollbars"); + viewport_scrollable->connect_compat("draw", this, "_update_scrollbars"); ViewportContainer *scene_tree = memnew(ViewportContainer); viewport_scrollable->add_child(scene_tree); @@ -5456,8 +5456,8 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { viewport->set_anchors_and_margins_preset(Control::PRESET_WIDE); viewport->set_clip_contents(true); viewport->set_focus_mode(FOCUS_ALL); - viewport->connect("draw", this, "_draw_viewport"); - viewport->connect("gui_input", this, "_gui_input_viewport"); + viewport->connect_compat("draw", this, "_draw_viewport"); + viewport->connect_compat("gui_input", this, "_gui_input_viewport"); info_overlay = memnew(VBoxContainer); info_overlay->set_anchors_and_margins_preset(Control::PRESET_BOTTOM_LEFT); @@ -5485,25 +5485,25 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { h_scroll = memnew(HScrollBar); viewport->add_child(h_scroll); - h_scroll->connect("value_changed", this, "_update_scroll"); + h_scroll->connect_compat("value_changed", this, "_update_scroll"); h_scroll->hide(); v_scroll = memnew(VScrollBar); viewport->add_child(v_scroll); - v_scroll->connect("value_changed", this, "_update_scroll"); + v_scroll->connect_compat("value_changed", this, "_update_scroll"); v_scroll->hide(); viewport->add_child(controls_vb); zoom_minus = memnew(ToolButton); zoom_hb->add_child(zoom_minus); - zoom_minus->connect("pressed", this, "_button_zoom_minus"); + zoom_minus->connect_compat("pressed", this, "_button_zoom_minus"); zoom_minus->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_minus", TTR("Zoom Out"), KEY_MASK_CMD | KEY_MINUS)); zoom_minus->set_focus_mode(FOCUS_NONE); zoom_reset = memnew(ToolButton); zoom_hb->add_child(zoom_reset); - zoom_reset->connect("pressed", this, "_button_zoom_reset"); + zoom_reset->connect_compat("pressed", this, "_button_zoom_reset"); zoom_reset->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_reset", TTR("Zoom Reset"), KEY_MASK_CMD | KEY_0)); zoom_reset->set_focus_mode(FOCUS_NONE); zoom_reset->set_text_align(Button::TextAlign::ALIGN_CENTER); @@ -5512,7 +5512,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { zoom_plus = memnew(ToolButton); zoom_hb->add_child(zoom_plus); - zoom_plus->connect("pressed", this, "_button_zoom_plus"); + zoom_plus->connect_compat("pressed", this, "_button_zoom_plus"); zoom_plus->set_shortcut(ED_SHORTCUT("canvas_item_editor/zoom_plus", TTR("Zoom In"), KEY_MASK_CMD | KEY_EQUAL)); // Usually direct access key for PLUS zoom_plus->set_focus_mode(FOCUS_NONE); @@ -5521,7 +5521,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { select_button = memnew(ToolButton); hb->add_child(select_button); select_button->set_toggle_mode(true); - select_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_SELECT)); + select_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_SELECT)); select_button->set_pressed(true); select_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/select_mode", TTR("Select Mode"), KEY_Q)); select_button->set_tooltip(keycode_get_string(KEY_MASK_CMD) + TTR("Drag: Rotate") + "\n" + TTR("Alt+Drag: Move") + "\n" + TTR("Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).") + "\n" + TTR("Alt+RMB: Depth list selection")); @@ -5531,21 +5531,21 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { move_button = memnew(ToolButton); hb->add_child(move_button); move_button->set_toggle_mode(true); - move_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_MOVE)); + move_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_MOVE)); move_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/move_mode", TTR("Move Mode"), KEY_W)); move_button->set_tooltip(TTR("Move Mode")); rotate_button = memnew(ToolButton); hb->add_child(rotate_button); rotate_button->set_toggle_mode(true); - rotate_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_ROTATE)); + rotate_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_ROTATE)); rotate_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/rotate_mode", TTR("Rotate Mode"), KEY_E)); rotate_button->set_tooltip(TTR("Rotate Mode")); scale_button = memnew(ToolButton); hb->add_child(scale_button); scale_button->set_toggle_mode(true); - scale_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_SCALE)); + scale_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_SCALE)); scale_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/scale_mode", TTR("Scale Mode"), KEY_S)); scale_button->set_tooltip(TTR("Scale Mode")); @@ -5554,25 +5554,25 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { list_select_button = memnew(ToolButton); hb->add_child(list_select_button); list_select_button->set_toggle_mode(true); - list_select_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_LIST_SELECT)); + list_select_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_LIST_SELECT)); list_select_button->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode).")); pivot_button = memnew(ToolButton); hb->add_child(pivot_button); pivot_button->set_toggle_mode(true); - pivot_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_EDIT_PIVOT)); + pivot_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_EDIT_PIVOT)); pivot_button->set_tooltip(TTR("Click to change object's rotation pivot.")); pan_button = memnew(ToolButton); hb->add_child(pan_button); pan_button->set_toggle_mode(true); - pan_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_PAN)); + pan_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_PAN)); pan_button->set_tooltip(TTR("Pan Mode")); ruler_button = memnew(ToolButton); hb->add_child(ruler_button); ruler_button->set_toggle_mode(true); - ruler_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_RULER)); + ruler_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_RULER)); ruler_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/ruler_mode", TTR("Ruler Mode"), KEY_R)); ruler_button->set_tooltip(TTR("Ruler Mode")); @@ -5581,14 +5581,14 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { smart_snap_button = memnew(ToolButton); hb->add_child(smart_snap_button); smart_snap_button->set_toggle_mode(true); - smart_snap_button->connect("toggled", this, "_button_toggle_smart_snap"); + smart_snap_button->connect_compat("toggled", this, "_button_toggle_smart_snap"); smart_snap_button->set_tooltip(TTR("Toggle smart snapping.")); smart_snap_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/use_smart_snap", TTR("Use Smart Snap"), KEY_MASK_SHIFT | KEY_S)); grid_snap_button = memnew(ToolButton); hb->add_child(grid_snap_button); grid_snap_button->set_toggle_mode(true); - grid_snap_button->connect("toggled", this, "_button_toggle_grid_snap"); + grid_snap_button->connect_compat("toggled", this, "_button_toggle_grid_snap"); grid_snap_button->set_tooltip(TTR("Toggle grid snapping.")); grid_snap_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/use_grid_snap", TTR("Use Grid Snap"), KEY_MASK_SHIFT | KEY_G)); @@ -5599,7 +5599,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { snap_config_menu->set_switch_on_hover(true); PopupMenu *p = snap_config_menu->get_popup(); - p->connect("id_pressed", this, "_popup_callback"); + p->connect_compat("id_pressed", this, "_popup_callback"); p->set_hide_on_checkable_item_selection(false); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/use_rotation_snap", TTR("Use Rotation Snap")), SNAP_USE_ROTATION); p->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/use_scale_snap", TTR("Use Scale Snap")), SNAP_USE_SCALE); @@ -5613,7 +5613,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { smartsnap_config_popup = memnew(PopupMenu); p->add_child(smartsnap_config_popup); smartsnap_config_popup->set_name("SmartSnapping"); - smartsnap_config_popup->connect("id_pressed", this, "_popup_callback"); + smartsnap_config_popup->connect_compat("id_pressed", this, "_popup_callback"); smartsnap_config_popup->set_hide_on_checkable_item_selection(false); smartsnap_config_popup->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/snap_node_parent", TTR("Snap to Parent")), SNAP_USE_NODE_PARENT); smartsnap_config_popup->add_check_shortcut(ED_SHORTCUT("canvas_item_editor/snap_node_anchors", TTR("Snap to Node Anchor")), SNAP_USE_NODE_ANCHORS); @@ -5627,22 +5627,22 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { lock_button = memnew(ToolButton); hb->add_child(lock_button); - lock_button->connect("pressed", this, "_popup_callback", varray(LOCK_SELECTED)); + lock_button->connect_compat("pressed", this, "_popup_callback", varray(LOCK_SELECTED)); lock_button->set_tooltip(TTR("Lock the selected object in place (can't be moved).")); unlock_button = memnew(ToolButton); hb->add_child(unlock_button); - unlock_button->connect("pressed", this, "_popup_callback", varray(UNLOCK_SELECTED)); + unlock_button->connect_compat("pressed", this, "_popup_callback", varray(UNLOCK_SELECTED)); unlock_button->set_tooltip(TTR("Unlock the selected object (can be moved).")); group_button = memnew(ToolButton); hb->add_child(group_button); - group_button->connect("pressed", this, "_popup_callback", varray(GROUP_SELECTED)); + group_button->connect_compat("pressed", this, "_popup_callback", varray(GROUP_SELECTED)); group_button->set_tooltip(TTR("Makes sure the object's children are not selectable.")); ungroup_button = memnew(ToolButton); hb->add_child(ungroup_button); - ungroup_button->connect("pressed", this, "_popup_callback", varray(UNGROUP_SELECTED)); + ungroup_button->connect_compat("pressed", this, "_popup_callback", varray(UNGROUP_SELECTED)); ungroup_button->set_tooltip(TTR("Restores the object's children's ability to be selected.")); hb->add_child(memnew(VSeparator)); @@ -5661,13 +5661,13 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { p->add_separator(); p->add_shortcut(ED_SHORTCUT("canvas_item_editor/skeleton_make_bones", TTR("Make Custom Bone(s) from Node(s)"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_B), SKELETON_MAKE_BONES); p->add_shortcut(ED_SHORTCUT("canvas_item_editor/skeleton_clear_bones", TTR("Clear Custom Bones")), SKELETON_CLEAR_BONES); - p->connect("id_pressed", this, "_popup_callback"); + p->connect_compat("id_pressed", this, "_popup_callback"); hb->add_child(memnew(VSeparator)); override_camera_button = memnew(ToolButton); hb->add_child(override_camera_button); - override_camera_button->connect("toggled", this, "_button_override_camera"); + override_camera_button->connect_compat("toggled", this, "_button_override_camera"); override_camera_button->set_toggle_mode(true); override_camera_button->set_disabled(true); _update_override_camera_button(false); @@ -5677,7 +5677,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { view_menu = memnew(MenuButton); view_menu->set_text(TTR("View")); hb->add_child(view_menu); - view_menu->get_popup()->connect("id_pressed", this, "_popup_callback"); + view_menu->get_popup()->connect_compat("id_pressed", this, "_popup_callback"); view_menu->set_switch_on_hover(true); p = view_menu->get_popup(); @@ -5705,18 +5705,18 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { presets_menu->set_switch_on_hover(true); p = presets_menu->get_popup(); - p->connect("id_pressed", this, "_popup_callback"); + p->connect_compat("id_pressed", this, "_popup_callback"); anchors_popup = memnew(PopupMenu); p->add_child(anchors_popup); anchors_popup->set_name("Anchors"); - anchors_popup->connect("id_pressed", this, "_popup_callback"); + anchors_popup->connect_compat("id_pressed", this, "_popup_callback"); anchor_mode_button = memnew(ToolButton); hb->add_child(anchor_mode_button); anchor_mode_button->set_toggle_mode(true); anchor_mode_button->hide(); - anchor_mode_button->connect("toggled", this, "_button_toggle_anchor_mode"); + anchor_mode_button->connect_compat("toggled", this, "_button_toggle_anchor_mode"); animation_hb = memnew(HBoxContainer); hb->add_child(animation_hb); @@ -5728,7 +5728,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { key_loc_button->set_flat(true); key_loc_button->set_pressed(true); key_loc_button->set_focus_mode(FOCUS_NONE); - key_loc_button->connect("pressed", this, "_popup_callback", varray(ANIM_INSERT_POS)); + key_loc_button->connect_compat("pressed", this, "_popup_callback", varray(ANIM_INSERT_POS)); key_loc_button->set_tooltip(TTR("Translation mask for inserting keys.")); animation_hb->add_child(key_loc_button); key_rot_button = memnew(Button); @@ -5736,20 +5736,20 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { key_rot_button->set_flat(true); key_rot_button->set_pressed(true); key_rot_button->set_focus_mode(FOCUS_NONE); - key_rot_button->connect("pressed", this, "_popup_callback", varray(ANIM_INSERT_ROT)); + key_rot_button->connect_compat("pressed", this, "_popup_callback", varray(ANIM_INSERT_ROT)); key_rot_button->set_tooltip(TTR("Rotation mask for inserting keys.")); animation_hb->add_child(key_rot_button); key_scale_button = memnew(Button); key_scale_button->set_toggle_mode(true); key_scale_button->set_flat(true); key_scale_button->set_focus_mode(FOCUS_NONE); - key_scale_button->connect("pressed", this, "_popup_callback", varray(ANIM_INSERT_SCALE)); + key_scale_button->connect_compat("pressed", this, "_popup_callback", varray(ANIM_INSERT_SCALE)); key_scale_button->set_tooltip(TTR("Scale mask for inserting keys.")); animation_hb->add_child(key_scale_button); key_insert_button = memnew(Button); key_insert_button->set_flat(true); key_insert_button->set_focus_mode(FOCUS_NONE); - key_insert_button->connect("pressed", this, "_popup_callback", varray(ANIM_INSERT_KEY)); + key_insert_button->connect_compat("pressed", this, "_popup_callback", varray(ANIM_INSERT_KEY)); key_insert_button->set_tooltip(TTR("Insert keys (based on mask).")); key_insert_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/anim_insert_key", TTR("Insert Key"), KEY_INSERT)); animation_hb->add_child(key_insert_button); @@ -5765,7 +5765,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { animation_menu = memnew(MenuButton); animation_menu->set_tooltip(TTR("Animation Key and Pose Options")); animation_hb->add_child(animation_menu); - animation_menu->get_popup()->connect("id_pressed", this, "_popup_callback"); + animation_menu->get_popup()->connect_compat("id_pressed", this, "_popup_callback"); animation_menu->set_switch_on_hover(true); p = animation_menu->get_popup(); @@ -5778,7 +5778,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { p->add_shortcut(ED_SHORTCUT("canvas_item_editor/anim_clear_pose", TTR("Clear Pose"), KEY_MASK_SHIFT | KEY_K), ANIM_CLEAR_POSE); snap_dialog = memnew(SnapDialog); - snap_dialog->connect("confirmed", this, "_snap_changed"); + snap_dialog->connect_compat("confirmed", this, "_snap_changed"); add_child(snap_dialog); select_sb = Ref<StyleBoxTexture>(memnew(StyleBoxTexture)); @@ -5786,8 +5786,8 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { selection_menu = memnew(PopupMenu); add_child(selection_menu); selection_menu->set_custom_minimum_size(Vector2(100, 0)); - selection_menu->connect("id_pressed", this, "_selection_result_pressed"); - selection_menu->connect("popup_hide", this, "_selection_menu_hide"); + selection_menu->connect_compat("id_pressed", this, "_selection_result_pressed"); + selection_menu->connect_compat("popup_hide", this, "_selection_menu_hide"); multiply_grid_step_shortcut = ED_SHORTCUT("canvas_item_editor/multiply_grid_step", TTR("Multiply grid step by 2"), KEY_KP_MULTIPLY); divide_grid_step_shortcut = ED_SHORTCUT("canvas_item_editor/divide_grid_step", TTR("Divide grid step by 2"), KEY_KP_DIVIDE); @@ -5960,9 +5960,9 @@ void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String & if (parent) { String new_name = parent->validate_child_name(child); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed, "live_debug_create_node", editor->get_edited_scene()->get_path_to(parent), child->get_class(), new_name); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name)); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_create_node", editor->get_edited_scene()->get_path_to(parent), child->get_class(), new_name); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name)); } // handle with different property for texture @@ -5987,7 +5987,7 @@ void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String & if (default_type == "NinePatchRect") { editor_data->get_undo_redo().add_do_property(child, "rect/size", texture_size); } else if (default_type == "Polygon2D") { - PoolVector<Vector2> list; + Vector<Vector2> list; list.push_back(Vector2(0, 0)); list.push_back(Vector2(texture_size.width, 0)); list.push_back(Vector2(texture_size.width, texture_size.height)); @@ -6030,9 +6030,9 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons editor_data->get_undo_redo().add_undo_method(parent, "remove_child", instanced_scene); String new_name = parent->validate_child_name(instanced_scene); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed, "live_debug_instance_node", editor->get_edited_scene()->get_path_to(parent), path, new_name); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name)); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_instance_node", editor->get_edited_scene()->get_path_to(parent), path, new_name); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name)); CanvasItem *parent_ci = Object::cast_to<CanvasItem>(parent); if (parent_ci) { @@ -6234,11 +6234,11 @@ void CanvasItemEditorViewport::drop_data(const Point2 &p_point, const Variant &p void CanvasItemEditorViewport::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - connect("mouse_exited", this, "_on_mouse_exit"); + connect_compat("mouse_exited", this, "_on_mouse_exit"); label->add_color_override("font_color", get_color("warning_color", "Editor")); } break; case NOTIFICATION_EXIT_TREE: { - disconnect("mouse_exited", this, "_on_mouse_exit"); + disconnect_compat("mouse_exited", this, "_on_mouse_exit"); } break; default: break; @@ -6276,8 +6276,8 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte selector = memnew(AcceptDialog); editor->get_gui_base()->add_child(selector); selector->set_title(TTR("Change Default Type")); - selector->connect("confirmed", this, "_on_change_type_confirmed"); - selector->connect("popup_hide", this, "_on_change_type_closed"); + selector->connect_compat("confirmed", this, "_on_change_type_confirmed"); + selector->connect_compat("popup_hide", this, "_on_change_type_closed"); VBoxContainer *vbc = memnew(VBoxContainer); selector->add_child(vbc); @@ -6294,7 +6294,7 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte CheckBox *check = memnew(CheckBox); btn_group->add_child(check); check->set_text(types[i]); - check->connect("button_down", this, "_on_select_type", varray(check)); + check->connect_compat("button_down", this, "_on_select_type", varray(check)); check->set_button_group(button_group); } diff --git a/editor/plugins/collision_polygon_editor_plugin.cpp b/editor/plugins/collision_polygon_editor_plugin.cpp index 3de67589ee..59bbe031ed 100644 --- a/editor/plugins/collision_polygon_editor_plugin.cpp +++ b/editor/plugins/collision_polygon_editor_plugin.cpp @@ -47,7 +47,7 @@ void Polygon3DEditor::_notification(int p_what) { button_create->set_icon(get_icon("Edit", "EditorIcons")); button_edit->set_icon(get_icon("MovePoint", "EditorIcons")); button_edit->set_pressed(true); - get_tree()->connect("node_removed", this, "_node_removed"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); } break; case NOTIFICATION_PROCESS: { @@ -470,11 +470,11 @@ void Polygon3DEditor::_polygon_draw() { Array a; a.resize(Mesh::ARRAY_MAX); - PoolVector<Vector3> va; + Vector<Vector3> va; { va.resize(poly.size()); - PoolVector<Vector3>::Write w = va.write(); + Vector3 *w = va.ptrw(); for (int i = 0; i < poly.size(); i++) { Vector2 p, p2; @@ -532,12 +532,12 @@ Polygon3DEditor::Polygon3DEditor(EditorNode *p_editor) { add_child(memnew(VSeparator)); button_create = memnew(ToolButton); add_child(button_create); - button_create->connect("pressed", this, "_menu_option", varray(MODE_CREATE)); + button_create->connect_compat("pressed", this, "_menu_option", varray(MODE_CREATE)); button_create->set_toggle_mode(true); button_edit = memnew(ToolButton); add_child(button_edit); - button_edit->connect("pressed", this, "_menu_option", varray(MODE_EDIT)); + button_edit->connect_compat("pressed", this, "_menu_option", varray(MODE_EDIT)); button_edit->set_toggle_mode(true); mode = MODE_EDIT; diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.cpp b/editor/plugins/cpu_particles_2d_editor_plugin.cpp index 655048c271..ad3f01ec37 100644 --- a/editor/plugins/cpu_particles_2d_editor_plugin.cpp +++ b/editor/plugins/cpu_particles_2d_editor_plugin.cpp @@ -118,8 +118,8 @@ void CPUParticles2DEditorPlugin::_generate_emission_mask() { int vpc = 0; { - PoolVector<uint8_t> data = img->get_data(); - PoolVector<uint8_t>::Read r = data.read(); + Vector<uint8_t> data = img->get_data(); + const uint8_t *r = data.ptr(); for (int i = 0; i < s.width; i++) { for (int j = 0; j < s.height; j++) { @@ -198,9 +198,9 @@ void CPUParticles2DEditorPlugin::_generate_emission_mask() { ERR_FAIL_COND_MSG(valid_positions.size() == 0, "No pixels with transparency > 128 in image..."); if (capture_colors) { - PoolColorArray pca; + PackedColorArray pca; pca.resize(vpc); - PoolColorArray::Write pcaw = pca.write(); + Color *pcaw = pca.ptrw(); for (int i = 0; i < vpc; i += 1) { Color color; color.r = valid_colors[i * 4 + 0] / 255.0f; @@ -214,9 +214,9 @@ void CPUParticles2DEditorPlugin::_generate_emission_mask() { if (valid_normals.size()) { particles->set_emission_shape(CPUParticles2D::EMISSION_SHAPE_DIRECTED_POINTS); - PoolVector2Array norms; + PackedVector2Array norms; norms.resize(valid_normals.size()); - PoolVector2Array::Write normsw = norms.write(); + Vector2 *normsw = norms.ptrw(); for (int i = 0; i < valid_normals.size(); i += 1) { normsw[i] = valid_normals[i]; } @@ -226,9 +226,9 @@ void CPUParticles2DEditorPlugin::_generate_emission_mask() { } { - PoolVector2Array points; + PackedVector2Array points; points.resize(valid_positions.size()); - PoolVector2Array::Write pointsw = points.write(); + Vector2 *pointsw = points.ptrw(); for (int i = 0; i < valid_positions.size(); i += 1) { pointsw[i] = valid_positions[i]; } @@ -240,9 +240,9 @@ void CPUParticles2DEditorPlugin::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - menu->get_popup()->connect("id_pressed", this, "_menu_callback"); + menu->get_popup()->connect_compat("id_pressed", this, "_menu_callback"); menu->set_icon(menu->get_popup()->get_icon("Particles2D", "EditorIcons")); - file->connect("file_selected", this, "_file_selected"); + file->connect_compat("file_selected", this, "_file_selected"); } } @@ -305,7 +305,7 @@ CPUParticles2DEditorPlugin::CPUParticles2DEditorPlugin(EditorNode *p_node) { toolbar->add_child(emission_mask); - emission_mask->connect("confirmed", this, "_generate_emission_mask"); + emission_mask->connect_compat("confirmed", this, "_generate_emission_mask"); } CPUParticles2DEditorPlugin::~CPUParticles2DEditorPlugin() { diff --git a/editor/plugins/cpu_particles_editor_plugin.cpp b/editor/plugins/cpu_particles_editor_plugin.cpp index 2074ba6b99..3d438226d2 100644 --- a/editor/plugins/cpu_particles_editor_plugin.cpp +++ b/editor/plugins/cpu_particles_editor_plugin.cpp @@ -51,12 +51,6 @@ void CPUParticlesEditor::_menu_option(int p_option) { switch (p_option) { - case MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_MESH: { - - emission_file_dialog->popup_centered_ratio(); - - } break; - case MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE: { emission_tree_dialog->popup_centered_ratio(); @@ -80,8 +74,8 @@ void CPUParticlesEditor::edit(CPUParticles *p_particles) { void CPUParticlesEditor::_generate_emission_points() { /// hacer codigo aca - PoolVector<Vector3> points; - PoolVector<Vector3> normals; + Vector<Vector3> points; + Vector<Vector3> normals; if (!_generate(points, normals)) { return; @@ -112,11 +106,10 @@ CPUParticlesEditor::CPUParticlesEditor() { particles_editor_hb->hide(); options->set_text(TTR("CPUParticles")); - options->get_popup()->add_item(TTR("Create Emission Points From Mesh"), MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_MESH); options->get_popup()->add_item(TTR("Create Emission Points From Node"), MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE); options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Restart"), MENU_OPTION_RESTART); - options->get_popup()->connect("id_pressed", this, "_menu_option"); + options->get_popup()->connect_compat("id_pressed", this, "_menu_option"); } void CPUParticlesEditorPlugin::edit(Object *p_object) { diff --git a/editor/plugins/cpu_particles_editor_plugin.h b/editor/plugins/cpu_particles_editor_plugin.h index deaced9ad9..4cf143fc0c 100644 --- a/editor/plugins/cpu_particles_editor_plugin.h +++ b/editor/plugins/cpu_particles_editor_plugin.h @@ -41,7 +41,6 @@ class CPUParticlesEditor : public ParticlesEditorBase { enum Menu { MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE, - MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_MESH, MENU_OPTION_CLEAR_EMISSION_VOLUME, MENU_OPTION_RESTART diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp index 0af983f780..5f4fb19d9e 100644 --- a/editor/plugins/curve_editor_plugin.cpp +++ b/editor/plugins/curve_editor_plugin.cpp @@ -49,7 +49,7 @@ CurveEditor::CurveEditor() { set_clip_contents(true); _context_menu = memnew(PopupMenu); - _context_menu->connect("id_pressed", this, "_on_context_menu_item_selected"); + _context_menu->connect_compat("id_pressed", this, "_on_context_menu_item_selected"); add_child(_context_menu); _presets_menu = memnew(PopupMenu); @@ -60,7 +60,7 @@ CurveEditor::CurveEditor() { _presets_menu->add_item(TTR("Ease In"), PRESET_EASE_IN); _presets_menu->add_item(TTR("Ease Out"), PRESET_EASE_OUT); _presets_menu->add_item(TTR("Smoothstep"), PRESET_SMOOTHSTEP); - _presets_menu->connect("id_pressed", this, "_on_preset_item_selected"); + _presets_menu->connect_compat("id_pressed", this, "_on_preset_item_selected"); _context_menu->add_child(_presets_menu); } @@ -70,15 +70,15 @@ void CurveEditor::set_curve(Ref<Curve> curve) { return; if (_curve_ref.is_valid()) { - _curve_ref->disconnect(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); - _curve_ref->disconnect(Curve::SIGNAL_RANGE_CHANGED, this, "_curve_changed"); + _curve_ref->disconnect_compat(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); + _curve_ref->disconnect_compat(Curve::SIGNAL_RANGE_CHANGED, this, "_curve_changed"); } _curve_ref = curve; if (_curve_ref.is_valid()) { - _curve_ref->connect(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); - _curve_ref->connect(Curve::SIGNAL_RANGE_CHANGED, this, "_curve_changed"); + _curve_ref->connect_compat(CoreStringNames::get_singleton()->changed, this, "_curve_changed"); + _curve_ref->connect_compat(Curve::SIGNAL_RANGE_CHANGED, this, "_curve_changed"); } _selected_point = -1; @@ -802,8 +802,6 @@ Ref<Texture2D> CurvePreviewGenerator::generate(const Ref<Resource> &p_from, cons im.create(thumbnail_size, thumbnail_size / 2, 0, Image::FORMAT_RGBA8); - im.lock(); - Color bg_color(0.1, 0.1, 0.1, 1.0); for (int i = 0; i < thumbnail_size; i++) { for (int j = 0; j < thumbnail_size / 2; j++) { @@ -844,8 +842,6 @@ Ref<Texture2D> CurvePreviewGenerator::generate(const Ref<Resource> &p_from, cons prev_y = y; } - im.unlock(); - Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); ptex->create_from_image(img_ref); diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp new file mode 100644 index 0000000000..2534a2cc17 --- /dev/null +++ b/editor/plugins/debugger_editor_plugin.cpp @@ -0,0 +1,51 @@ +/*************************************************************************/ +/* debugger_editor_plugin.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#include "debugger_editor_plugin.h" + +#include "core/os/keyboard.h" +#include "editor/debugger/editor_debugger_node.h" + +DebuggerEditorPlugin::DebuggerEditorPlugin(EditorNode *p_editor) { + ED_SHORTCUT("debugger/step_into", TTR("Step Into"), KEY_F11); + ED_SHORTCUT("debugger/step_over", TTR("Step Over"), KEY_F10); + ED_SHORTCUT("debugger/break", TTR("Break")); + ED_SHORTCUT("debugger/continue", TTR("Continue"), KEY_F12); + ED_SHORTCUT("debugger/keep_debugger_open", TTR("Keep Debugger Open")); + ED_SHORTCUT("debugger/debug_with_external_editor", TTR("Debug with External Editor")); + + EditorDebuggerNode *debugger = memnew(EditorDebuggerNode); + Button *db = EditorNode::get_singleton()->add_bottom_panel_item(TTR("Debugger"), debugger); + debugger->set_tool_button(db); +} + +DebuggerEditorPlugin::~DebuggerEditorPlugin() { + // Should delete debugger? +} diff --git a/editor/plugins/debugger_editor_plugin.h b/editor/plugins/debugger_editor_plugin.h new file mode 100644 index 0000000000..05d6ece72d --- /dev/null +++ b/editor/plugins/debugger_editor_plugin.h @@ -0,0 +1,50 @@ +/*************************************************************************/ +/* debugger_editor_plugin.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#ifndef DEBUGGER_EDITOR_PLUGIN_H +#define DEBUGGER_EDITOR_PLUGIN_H + +#include "editor/debugger/editor_debugger_node.h" +#include "editor/editor_node.h" +#include "editor/editor_plugin.h" + +class DebuggerEditorPlugin : public EditorPlugin { + + GDCLASS(DebuggerEditorPlugin, EditorPlugin); + +public: + virtual String get_name() const { return "Debugger"; } + bool has_main_screen() const { return false; } + + DebuggerEditorPlugin(EditorNode *p_node); + ~DebuggerEditorPlugin(); +}; + +#endif // DEBUGGER_EDITOR_PLUGIN_H diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp index 6e8aef0aea..3c173ab783 100644 --- a/editor/plugins/editor_preview_plugins.cpp +++ b/editor/plugins/editor_preview_plugins.cpp @@ -47,8 +47,6 @@ void post_process_preview(Ref<Image> p_image) { if (p_image->get_format() != Image::FORMAT_RGBA8) p_image->convert(Image::FORMAT_RGBA8); - p_image->lock(); - const int w = p_image->get_width(); const int h = p_image->get_height(); @@ -70,8 +68,6 @@ void post_process_preview(Ref<Image> p_image) { } } } - - p_image->unlock(); } bool EditorTexturePreviewPlugin::handles(const String &p_type) const { @@ -207,19 +203,19 @@ Ref<Texture2D> EditorBitmapPreviewPlugin::generate(const RES &p_from, const Size return Ref<Texture2D>(); } - PoolVector<uint8_t> data; + Vector<uint8_t> data; data.resize(bm->get_size().width * bm->get_size().height); { - PoolVector<uint8_t>::Write w = data.write(); + uint8_t *w = data.ptrw(); for (int i = 0; i < bm->get_size().width; i++) { for (int j = 0; j < bm->get_size().height; j++) { if (bm->get_bit(Point2i(i, j))) { - w[j * bm->get_size().width + i] = 255; + w[j * (int)bm->get_size().width + i] = 255; } else { - w[j * bm->get_size().width + i] = 0; + w[j * (int)bm->get_size().width + i] = 0; } } } @@ -396,10 +392,10 @@ EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() { int lons = 32; float radius = 1.0; - PoolVector<Vector3> vertices; - PoolVector<Vector3> normals; - PoolVector<Vector2> uvs; - PoolVector<float> tangents; + Vector<Vector3> vertices; + Vector<Vector3> normals; + Vector<Vector2> uvs; + Vector<float> tangents; Basis tt = Basis(Vector3(0, 1, 0), Math_PI * 0.5); for (int i = 1; i <= lats; i++) { @@ -522,8 +518,6 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size Color text_color = EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"); Color symbol_color = EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"); - img->lock(); - if (bg_color.a == 0) bg_color = Color(0, 0, 0, 0); bg_color.a = MAX(bg_color.a, 0.2); // some background @@ -593,8 +587,6 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size col++; } - img->unlock(); - post_process_preview(img); Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); @@ -617,14 +609,14 @@ Ref<Texture2D> EditorAudioStreamPreviewPlugin::generate(const RES &p_from, const Ref<AudioStream> stream = p_from; ERR_FAIL_COND_V(stream.is_null(), Ref<Texture2D>()); - PoolVector<uint8_t> img; + Vector<uint8_t> img; int w = p_size.x; int h = p_size.y; img.resize(w * h * 3); - PoolVector<uint8_t>::Write imgdata = img.write(); - uint8_t *imgw = imgdata.ptr(); + uint8_t *imgdata = img.ptrw(); + uint8_t *imgw = imgdata; Ref<AudioStreamPlayback> playback = stream->instance_playback(); ERR_FAIL_COND_V(playback.is_null(), Ref<Texture2D>()); @@ -680,7 +672,6 @@ Ref<Texture2D> EditorAudioStreamPreviewPlugin::generate(const RES &p_from, const } } - imgdata.release(); //post_process_preview(img); Ref<ImageTexture> ptex = Ref<ImageTexture>(memnew(ImageTexture)); diff --git a/editor/plugins/gi_probe_editor_plugin.cpp b/editor/plugins/gi_probe_editor_plugin.cpp index fe2c0d33b7..9231d38a02 100644 --- a/editor/plugins/gi_probe_editor_plugin.cpp +++ b/editor/plugins/gi_probe_editor_plugin.cpp @@ -147,7 +147,7 @@ GIProbeEditorPlugin::GIProbeEditorPlugin(EditorNode *p_node) { bake = memnew(ToolButton); bake->set_icon(editor->get_gui_base()->get_icon("Bake", "EditorIcons")); bake->set_text(TTR("Bake GI Probe")); - bake->connect("pressed", this, "_bake"); + bake->connect_compat("pressed", this, "_bake"); bake_hb->add_child(bake); bake_info = memnew(Label); bake_info->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -159,7 +159,7 @@ GIProbeEditorPlugin::GIProbeEditorPlugin(EditorNode *p_node) { probe_file = memnew(EditorFileDialog); probe_file->set_mode(EditorFileDialog::MODE_SAVE_FILE); probe_file->add_filter("*.res"); - probe_file->connect("file_selected", this, "_giprobe_save_path_and_bake"); + probe_file->connect_compat("file_selected", this, "_giprobe_save_path_and_bake"); get_editor_interface()->get_base_control()->add_child(probe_file); probe_file->set_title(TTR("Select path for GIProbe Data File")); diff --git a/editor/plugins/gradient_editor_plugin.cpp b/editor/plugins/gradient_editor_plugin.cpp index 0a3a994eb7..b36782ee14 100644 --- a/editor/plugins/gradient_editor_plugin.cpp +++ b/editor/plugins/gradient_editor_plugin.cpp @@ -69,8 +69,8 @@ void GradientEditor::_bind_methods() { void GradientEditor::set_gradient(const Ref<Gradient> &p_gradient) { gradient = p_gradient; - connect("ramp_changed", this, "_ramp_changed"); - gradient->connect("changed", this, "_gradient_changed"); + connect_compat("ramp_changed", this, "_ramp_changed"); + gradient->connect_compat("changed", this, "_gradient_changed"); set_points(gradient->get_points()); } diff --git a/editor/plugins/item_list_editor_plugin.cpp b/editor/plugins/item_list_editor_plugin.cpp index b7dfe97081..b872a2d932 100644 --- a/editor/plugins/item_list_editor_plugin.cpp +++ b/editor/plugins/item_list_editor_plugin.cpp @@ -268,7 +268,7 @@ void ItemListEditor::_notification(int p_notification) { del_button->set_icon(get_icon("Remove", "EditorIcons")); } else if (p_notification == NOTIFICATION_READY) { - get_tree()->connect("node_removed", this, "_node_removed"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); } } @@ -359,7 +359,7 @@ ItemListEditor::ItemListEditor() { toolbar_button = memnew(ToolButton); toolbar_button->set_text(TTR("Items")); add_child(toolbar_button); - toolbar_button->connect("pressed", this, "_edit_items"); + toolbar_button->connect_compat("pressed", this, "_edit_items"); dialog = memnew(AcceptDialog); dialog->set_title(TTR("Item List Editor")); @@ -376,14 +376,14 @@ ItemListEditor::ItemListEditor() { add_button = memnew(Button); add_button->set_text(TTR("Add")); hbc->add_child(add_button); - add_button->connect("pressed", this, "_add_button"); + add_button->connect_compat("pressed", this, "_add_button"); hbc->add_spacer(); del_button = memnew(Button); del_button->set_text(TTR("Delete")); hbc->add_child(del_button); - del_button->connect("pressed", this, "_delete_button"); + del_button->connect_compat("pressed", this, "_delete_button"); property_editor = memnew(EditorInspector); vbc->add_child(property_editor); diff --git a/editor/plugins/material_editor_plugin.cpp b/editor/plugins/material_editor_plugin.cpp index 4e44082853..bca0bde441 100644 --- a/editor/plugins/material_editor_plugin.cpp +++ b/editor/plugins/material_editor_plugin.cpp @@ -171,13 +171,13 @@ MaterialEditor::MaterialEditor() { sphere_switch->set_toggle_mode(true); sphere_switch->set_pressed(true); vb_shape->add_child(sphere_switch); - sphere_switch->connect("pressed", this, "_button_pressed", varray(sphere_switch)); + sphere_switch->connect_compat("pressed", this, "_button_pressed", varray(sphere_switch)); box_switch = memnew(TextureButton); box_switch->set_toggle_mode(true); box_switch->set_pressed(false); vb_shape->add_child(box_switch); - box_switch->connect("pressed", this, "_button_pressed", varray(box_switch)); + box_switch->connect_compat("pressed", this, "_button_pressed", varray(box_switch)); hb->add_spacer(); @@ -187,12 +187,12 @@ MaterialEditor::MaterialEditor() { light_1_switch = memnew(TextureButton); light_1_switch->set_toggle_mode(true); vb_light->add_child(light_1_switch); - light_1_switch->connect("pressed", this, "_button_pressed", varray(light_1_switch)); + light_1_switch->connect_compat("pressed", this, "_button_pressed", varray(light_1_switch)); light_2_switch = memnew(TextureButton); light_2_switch->set_toggle_mode(true); vb_light->add_child(light_2_switch); - light_2_switch->connect("pressed", this, "_button_pressed", varray(light_2_switch)); + light_2_switch->connect_compat("pressed", this, "_button_pressed", varray(light_2_switch)); first_enter = true; } diff --git a/editor/plugins/mesh_editor_plugin.cpp b/editor/plugins/mesh_editor_plugin.cpp index d06e5b6349..2b25a2328c 100644 --- a/editor/plugins/mesh_editor_plugin.cpp +++ b/editor/plugins/mesh_editor_plugin.cpp @@ -157,12 +157,12 @@ MeshEditor::MeshEditor() { light_1_switch = memnew(TextureButton); light_1_switch->set_toggle_mode(true); vb_light->add_child(light_1_switch); - light_1_switch->connect("pressed", this, "_button_pressed", varray(light_1_switch)); + light_1_switch->connect_compat("pressed", this, "_button_pressed", varray(light_1_switch)); light_2_switch = memnew(TextureButton); light_2_switch->set_toggle_mode(true); vb_light->add_child(light_2_switch); - light_2_switch->connect("pressed", this, "_button_pressed", varray(light_2_switch)); + light_2_switch->connect_compat("pressed", this, "_button_pressed", varray(light_2_switch)); first_enter = true; diff --git a/editor/plugins/mesh_instance_editor_plugin.cpp b/editor/plugins/mesh_instance_editor_plugin.cpp index aaba6406c7..37cf16de58 100644 --- a/editor/plugins/mesh_instance_editor_plugin.cpp +++ b/editor/plugins/mesh_instance_editor_plugin.cpp @@ -327,24 +327,24 @@ void MeshInstanceEditor::_create_uv_lines(int p_layer) { continue; Array a = mesh->surface_get_arrays(i); - PoolVector<Vector2> uv = a[p_layer == 0 ? Mesh::ARRAY_TEX_UV : Mesh::ARRAY_TEX_UV2]; + Vector<Vector2> uv = a[p_layer == 0 ? Mesh::ARRAY_TEX_UV : Mesh::ARRAY_TEX_UV2]; if (uv.size() == 0) { err_dialog->set_text(TTR("Model has no UV in this layer")); err_dialog->popup_centered_minsize(); return; } - PoolVector<Vector2>::Read r = uv.read(); + const Vector2 *r = uv.ptr(); - PoolVector<int> indices = a[Mesh::ARRAY_INDEX]; - PoolVector<int>::Read ri; + Vector<int> indices = a[Mesh::ARRAY_INDEX]; + const int *ri; int ic; bool use_indices; if (indices.size()) { ic = indices.size(); - ri = indices.read(); + ri = indices.ptr(); use_indices = true; } else { ic = uv.size(); @@ -455,7 +455,7 @@ MeshInstanceEditor::MeshInstanceEditor() { options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Create Trimesh Collision Sibling"), MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE); options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a polygon-based collision shape.\nThis is the most accurate (but slowest) option for collision detection.")); - options->get_popup()->add_item(TTR("Create Single Convex Collision Siblings"), MENU_OPTION_CREATE_SINGLE_CONVEX_COLLISION_SHAPE); + options->get_popup()->add_item(TTR("Create Single Convex Collision Sibling"), MENU_OPTION_CREATE_SINGLE_CONVEX_COLLISION_SHAPE); options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a single convex collision shape.\nThis is the fastest (but least accurate) option for collision detection.")); options->get_popup()->add_item(TTR("Create Multiple Convex Collision Siblings"), MENU_OPTION_CREATE_MULTIPLE_CONVEX_COLLISION_SHAPES); options->get_popup()->set_item_tooltip(options->get_popup()->get_item_count() - 1, TTR("Creates a polygon-based collision shape.\nThis is a performance middle-ground between the two above options.")); @@ -469,7 +469,7 @@ MeshInstanceEditor::MeshInstanceEditor() { options->get_popup()->add_item(TTR("View UV2"), MENU_OPTION_DEBUG_UV2); options->get_popup()->add_item(TTR("Unwrap UV2 for Lightmap/AO"), MENU_OPTION_CREATE_UV2); - options->get_popup()->connect("id_pressed", this, "_menu_option"); + options->get_popup()->connect_compat("id_pressed", this, "_menu_option"); outline_dialog = memnew(ConfirmationDialog); outline_dialog->set_title(TTR("Create Outline Mesh")); @@ -487,7 +487,7 @@ MeshInstanceEditor::MeshInstanceEditor() { outline_dialog_vbc->add_margin_child(TTR("Outline Size:"), outline_size); add_child(outline_dialog); - outline_dialog->connect("confirmed", this, "_create_outline_mesh"); + outline_dialog->connect_compat("confirmed", this, "_create_outline_mesh"); err_dialog = memnew(AcceptDialog); add_child(err_dialog); @@ -497,7 +497,7 @@ MeshInstanceEditor::MeshInstanceEditor() { add_child(debug_uv_dialog); debug_uv = memnew(Control); debug_uv->set_custom_minimum_size(Size2(600, 600) * EDSCALE); - debug_uv->connect("draw", this, "_debug_uv_draw"); + debug_uv->connect_compat("draw", this, "_debug_uv_draw"); debug_uv_dialog->add_child(debug_uv); } diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp index b77cb6453f..ea8842a56f 100644 --- a/editor/plugins/mesh_library_editor_plugin.cpp +++ b/editor/plugins/mesh_library_editor_plugin.cpp @@ -268,7 +268,7 @@ MeshLibraryEditor::MeshLibraryEditor(EditorNode *p_editor) { file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); } add_child(file); - file->connect("file_selected", this, "_import_scene_cbk"); + file->connect_compat("file_selected", this, "_import_scene_cbk"); menu = memnew(MenuButton); SpatialEditor::get_singleton()->add_control_to_menu_panel(menu); @@ -281,13 +281,13 @@ MeshLibraryEditor::MeshLibraryEditor(EditorNode *p_editor) { menu->get_popup()->add_item(TTR("Import from Scene"), MENU_OPTION_IMPORT_FROM_SCENE); menu->get_popup()->add_item(TTR("Update from Scene"), MENU_OPTION_UPDATE_FROM_SCENE); menu->get_popup()->set_item_disabled(menu->get_popup()->get_item_index(MENU_OPTION_UPDATE_FROM_SCENE), true); - menu->get_popup()->connect("id_pressed", this, "_menu_cbk"); + menu->get_popup()->connect_compat("id_pressed", this, "_menu_cbk"); menu->hide(); editor = p_editor; cd = memnew(ConfirmationDialog); add_child(cd); - cd->get_ok()->connect("pressed", this, "_menu_confirm"); + cd->get_ok()->connect_compat("pressed", this, "_menu_confirm"); } void MeshLibraryEditorPlugin::edit(Object *p_node) { diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp index ddd27b5e97..b2ce01b8d8 100644 --- a/editor/plugins/multimesh_editor_plugin.cpp +++ b/editor/plugins/multimesh_editor_plugin.cpp @@ -124,7 +124,7 @@ void MultiMeshEditor::_populate() { Transform geom_xform = node->get_global_transform().affine_inverse() * ss_instance->get_global_transform(); - PoolVector<Face3> geometry = ss_instance->get_faces(VisualInstance::FACES_SOLID); + Vector<Face3> geometry = ss_instance->get_faces(VisualInstance::FACES_SOLID); if (geometry.size() == 0) { @@ -136,7 +136,7 @@ void MultiMeshEditor::_populate() { //make all faces local int gc = geometry.size(); - PoolVector<Face3>::Write w = geometry.write(); + Face3 *w = geometry.ptrw(); for (int i = 0; i < gc; i++) { for (int j = 0; j < 3; j++) { @@ -144,13 +144,11 @@ void MultiMeshEditor::_populate() { } } - w.release(); - - PoolVector<Face3> faces = geometry; + Vector<Face3> faces = geometry; int facecount = faces.size(); ERR_FAIL_COND_MSG(!facecount, "Parent has no solid faces to populate."); - PoolVector<Face3>::Read r = faces.read(); + const Face3 *r = faces.ptr(); float area_accum = 0; Map<float, int> triangle_area_map; @@ -297,7 +295,7 @@ MultiMeshEditor::MultiMeshEditor() { options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("MultiMeshInstance", "EditorIcons")); options->get_popup()->add_item(TTR("Populate Surface")); - options->get_popup()->connect("id_pressed", this, "_menu_option"); + options->get_popup()->connect_compat("id_pressed", this, "_menu_option"); populate_dialog = memnew(ConfirmationDialog); populate_dialog->set_title(TTR("Populate MultiMesh")); @@ -315,7 +313,7 @@ MultiMeshEditor::MultiMeshEditor() { Button *b = memnew(Button); hbc->add_child(b); b->set_text(".."); - b->connect("pressed", this, "_browse", make_binds(false)); + b->connect_compat("pressed", this, "_browse", make_binds(false)); vbc->add_margin_child(TTR("Target Surface:"), hbc); @@ -327,7 +325,7 @@ MultiMeshEditor::MultiMeshEditor() { hbc->add_child(b); b->set_text(".."); vbc->add_margin_child(TTR("Source Mesh:"), hbc); - b->connect("pressed", this, "_browse", make_binds(true)); + b->connect_compat("pressed", this, "_browse", make_binds(true)); populate_axis = memnew(OptionButton); populate_axis->add_item(TTR("X-Axis")); @@ -373,10 +371,10 @@ MultiMeshEditor::MultiMeshEditor() { populate_dialog->get_ok()->set_text(TTR("Populate")); - populate_dialog->get_ok()->connect("pressed", this, "_populate"); + populate_dialog->get_ok()->connect_compat("pressed", this, "_populate"); std = memnew(SceneTreeDialog); populate_dialog->add_child(std); - std->connect("selected", this, "_browsed"); + std->connect_compat("selected", this, "_browsed"); _last_pp_node = NULL; diff --git a/editor/plugins/particles_2d_editor_plugin.cpp b/editor/plugins/particles_2d_editor_plugin.cpp index 3a48673d8e..ab23cb9054 100644 --- a/editor/plugins/particles_2d_editor_plugin.cpp +++ b/editor/plugins/particles_2d_editor_plugin.cpp @@ -191,8 +191,8 @@ void Particles2DEditorPlugin::_generate_emission_mask() { int vpc = 0; { - PoolVector<uint8_t> data = img->get_data(); - PoolVector<uint8_t>::Read r = data.read(); + Vector<uint8_t> data = img->get_data(); + const uint8_t *r = data.ptr(); for (int i = 0; i < s.width; i++) { for (int j = 0; j < s.height; j++) { @@ -270,7 +270,7 @@ void Particles2DEditorPlugin::_generate_emission_mask() { ERR_FAIL_COND_MSG(valid_positions.size() == 0, "No pixels with transparency > 128 in image..."); - PoolVector<uint8_t> texdata; + Vector<uint8_t> texdata; int w = 2048; int h = (vpc / 2048) + 1; @@ -278,8 +278,8 @@ void Particles2DEditorPlugin::_generate_emission_mask() { texdata.resize(w * h * 2 * sizeof(float)); { - PoolVector<uint8_t>::Write tw = texdata.write(); - float *twf = (float *)tw.ptr(); + uint8_t *tw = texdata.ptrw(); + float *twf = (float *)tw; for (int i = 0; i < vpc; i++) { twf[i * 2 + 0] = valid_positions[i].x; @@ -299,11 +299,11 @@ void Particles2DEditorPlugin::_generate_emission_mask() { if (capture_colors) { - PoolVector<uint8_t> colordata; + Vector<uint8_t> colordata; colordata.resize(w * h * 4); //use RG texture { - PoolVector<uint8_t>::Write tw = colordata.write(); + uint8_t *tw = colordata.ptrw(); for (int i = 0; i < vpc * 4; i++) { tw[i] = valid_colors[i]; @@ -321,12 +321,12 @@ void Particles2DEditorPlugin::_generate_emission_mask() { if (valid_normals.size()) { pm->set_emission_shape(ParticlesMaterial::EMISSION_SHAPE_DIRECTED_POINTS); - PoolVector<uint8_t> normdata; + Vector<uint8_t> normdata; normdata.resize(w * h * 2 * sizeof(float)); //use RG texture { - PoolVector<uint8_t>::Write tw = normdata.write(); - float *twf = (float *)tw.ptr(); + uint8_t *tw = normdata.ptrw(); + float *twf = (float *)tw; for (int i = 0; i < vpc; i++) { twf[i * 2 + 0] = valid_normals[i].x; twf[i * 2 + 1] = valid_normals[i].y; @@ -349,9 +349,9 @@ void Particles2DEditorPlugin::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - menu->get_popup()->connect("id_pressed", this, "_menu_callback"); + menu->get_popup()->connect_compat("id_pressed", this, "_menu_callback"); menu->set_icon(menu->get_popup()->get_icon("Particles2D", "EditorIcons")); - file->connect("file_selected", this, "_file_selected"); + file->connect_compat("file_selected", this, "_file_selected"); } } @@ -416,7 +416,7 @@ Particles2DEditorPlugin::Particles2DEditorPlugin(EditorNode *p_node) { toolbar->add_child(generate_visibility_rect); - generate_visibility_rect->connect("confirmed", this, "_generate_visibility_rect"); + generate_visibility_rect->connect_compat("confirmed", this, "_generate_visibility_rect"); emission_mask = memnew(ConfirmationDialog); emission_mask->set_title(TTR("Load Emission Mask")); @@ -433,7 +433,7 @@ Particles2DEditorPlugin::Particles2DEditorPlugin(EditorNode *p_node) { toolbar->add_child(emission_mask); - emission_mask->connect("confirmed", this, "_generate_emission_mask"); + emission_mask->connect_compat("confirmed", this, "_generate_emission_mask"); } Particles2DEditorPlugin::~Particles2DEditorPlugin() { diff --git a/editor/plugins/particles_editor_plugin.cpp b/editor/plugins/particles_editor_plugin.cpp index cb29e11b9d..7020abc301 100644 --- a/editor/plugins/particles_editor_plugin.cpp +++ b/editor/plugins/particles_editor_plugin.cpp @@ -35,7 +35,7 @@ #include "scene/3d/cpu_particles.h" #include "scene/resources/particles_material.h" -bool ParticlesEditorBase::_generate(PoolVector<Vector3> &points, PoolVector<Vector3> &normals) { +bool ParticlesEditorBase::_generate(Vector<Vector3> &points, Vector<Vector3> &normals) { bool use_normals = emission_fill->get_selected() == 1; @@ -93,7 +93,7 @@ bool ParticlesEditorBase::_generate(PoolVector<Vector3> &points, PoolVector<Vect return false; } - PoolVector<Face3>::Read r = geometry.read(); + const Face3 *r = geometry.ptr(); AABB aabb; @@ -191,7 +191,7 @@ void ParticlesEditorBase::_node_selected(const NodePath &p_path) { Transform geom_xform = base_node->get_global_transform().affine_inverse() * vi->get_global_transform(); int gc = geometry.size(); - PoolVector<Face3>::Write w = geometry.write(); + Face3 *w = geometry.ptrw(); for (int i = 0; i < gc; i++) { for (int j = 0; j < 3; j++) { @@ -199,8 +199,6 @@ void ParticlesEditorBase::_node_selected(const NodePath &p_path) { } } - w.release(); - emission_dialog->popup_centered(Size2(300, 130)); } @@ -231,25 +229,11 @@ ParticlesEditorBase::ParticlesEditorBase() { emd_vb->add_margin_child(TTR("Emission Source: "), emission_fill); emission_dialog->get_ok()->set_text(TTR("Create")); - emission_dialog->connect("confirmed", this, "_generate_emission_points"); + emission_dialog->connect_compat("confirmed", this, "_generate_emission_points"); - emission_file_dialog = memnew(EditorFileDialog); - add_child(emission_file_dialog); - emission_file_dialog->connect("file_selected", this, "_resource_seleted"); emission_tree_dialog = memnew(SceneTreeDialog); add_child(emission_tree_dialog); - emission_tree_dialog->connect("selected", this, "_node_selected"); - - List<String> extensions; - ResourceLoader::get_recognized_extensions_for_type("Mesh", &extensions); - - emission_file_dialog->clear_filters(); - for (int i = 0; i < extensions.size(); i++) { - - emission_file_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper()); - } - - emission_file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE); + emission_tree_dialog->connect_compat("selected", this, "_node_selected"); } void ParticlesEditor::_node_removed(Node *p_node) { @@ -264,7 +248,7 @@ void ParticlesEditor::_notification(int p_notification) { if (p_notification == NOTIFICATION_ENTER_TREE) { options->set_icon(options->get_popup()->get_icon("Particles", "EditorIcons")); - get_tree()->connect("node_removed", this, "_node_removed"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); } } @@ -281,17 +265,6 @@ void ParticlesEditor::_menu_option(int p_option) { generate_seconds->set_value(trunc(gen_time) + 1.0); generate_aabb->popup_centered_minsize(); } break; - case MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_MESH: { - - Ref<ParticlesMaterial> material = node->get_process_material(); - if (material.is_null()) { - EditorNode::get_singleton()->show_warning(TTR("A processor material of type 'ParticlesMaterial' is required.")); - return; - } - emission_file_dialog->popup_centered_ratio(); - - } break; - case MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE: { Ref<ParticlesMaterial> material = node->get_process_material(); if (material.is_null()) { @@ -379,8 +352,8 @@ void ParticlesEditor::edit(Particles *p_particles) { void ParticlesEditor::_generate_emission_points() { /// hacer codigo aca - PoolVector<Vector3> points; - PoolVector<Vector3> normals; + Vector<Vector3> points; + Vector<Vector3> normals; if (!_generate(points, normals)) { return; @@ -391,14 +364,14 @@ void ParticlesEditor::_generate_emission_points() { int w = 2048; int h = (point_count / 2048) + 1; - PoolVector<uint8_t> point_img; + Vector<uint8_t> point_img; point_img.resize(w * h * 3 * sizeof(float)); { - PoolVector<uint8_t>::Write iw = point_img.write(); - zeromem(iw.ptr(), w * h * 3 * sizeof(float)); - PoolVector<Vector3>::Read r = points.read(); - float *wf = (float *)iw.ptr(); + uint8_t *iw = point_img.ptrw(); + zeromem(iw, w * h * 3 * sizeof(float)); + const Vector3 *r = points.ptr(); + float *wf = (float *)iw; for (int i = 0; i < point_count; i++) { wf[i * 3 + 0] = r[i].x; wf[i * 3 + 1] = r[i].y; @@ -420,14 +393,14 @@ void ParticlesEditor::_generate_emission_points() { material->set_emission_point_count(point_count); material->set_emission_point_texture(tex); - PoolVector<uint8_t> point_img2; + Vector<uint8_t> point_img2; point_img2.resize(w * h * 3 * sizeof(float)); { - PoolVector<uint8_t>::Write iw = point_img2.write(); - zeromem(iw.ptr(), w * h * 3 * sizeof(float)); - PoolVector<Vector3>::Read r = normals.read(); - float *wf = (float *)iw.ptr(); + uint8_t *iw = point_img2.ptrw(); + zeromem(iw, w * h * 3 * sizeof(float)); + const Vector3 *r = normals.ptr(); + float *wf = (float *)iw; for (int i = 0; i < point_count; i++) { wf[i * 3 + 0] = r[i].x; wf[i * 3 + 1] = r[i].y; @@ -469,14 +442,13 @@ ParticlesEditor::ParticlesEditor() { options->set_text(TTR("Particles")); options->get_popup()->add_item(TTR("Generate AABB"), MENU_OPTION_GENERATE_AABB); options->get_popup()->add_separator(); - options->get_popup()->add_item(TTR("Create Emission Points From Mesh"), MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_MESH); options->get_popup()->add_item(TTR("Create Emission Points From Node"), MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE); options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Convert to CPUParticles"), MENU_OPTION_CONVERT_TO_CPU_PARTICLES); options->get_popup()->add_separator(); options->get_popup()->add_item(TTR("Restart"), MENU_OPTION_RESTART); - options->get_popup()->connect("id_pressed", this, "_menu_option"); + options->get_popup()->connect_compat("id_pressed", this, "_menu_option"); generate_aabb = memnew(ConfirmationDialog); generate_aabb->set_title(TTR("Generate Visibility AABB")); @@ -490,7 +462,7 @@ ParticlesEditor::ParticlesEditor() { add_child(generate_aabb); - generate_aabb->connect("confirmed", this, "_generate_aabb"); + generate_aabb->connect_compat("confirmed", this, "_generate_aabb"); } void ParticlesEditorPlugin::edit(Object *p_object) { diff --git a/editor/plugins/particles_editor_plugin.h b/editor/plugins/particles_editor_plugin.h index 4b20d00670..fb5ce17560 100644 --- a/editor/plugins/particles_editor_plugin.h +++ b/editor/plugins/particles_editor_plugin.h @@ -46,16 +46,15 @@ protected: MenuButton *options; HBoxContainer *particles_editor_hb; - EditorFileDialog *emission_file_dialog; SceneTreeDialog *emission_tree_dialog; ConfirmationDialog *emission_dialog; SpinBox *emission_amount; OptionButton *emission_fill; - PoolVector<Face3> geometry; + Vector<Face3> geometry; - bool _generate(PoolVector<Vector3> &points, PoolVector<Vector3> &normals); + bool _generate(Vector<Vector3> &points, Vector<Vector3> &normals); virtual void _generate_emission_points() = 0; void _node_selected(const NodePath &p_path); @@ -77,7 +76,6 @@ class ParticlesEditor : public ParticlesEditorBase { MENU_OPTION_GENERATE_AABB, MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE, - MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_MESH, MENU_OPTION_CLEAR_EMISSION_VOLUME, MENU_OPTION_CONVERT_TO_CPU_PARTICLES, MENU_OPTION_RESTART, diff --git a/editor/plugins/path_2d_editor_plugin.cpp b/editor/plugins/path_2d_editor_plugin.cpp index 383dada590..e642233c64 100644 --- a/editor/plugins/path_2d_editor_plugin.cpp +++ b/editor/plugins/path_2d_editor_plugin.cpp @@ -441,14 +441,14 @@ void Path2DEditor::edit(Node *p_path2d) { if (p_path2d) { node = Object::cast_to<Path2D>(p_path2d); - if (!node->is_connected("visibility_changed", this, "_node_visibility_changed")) - node->connect("visibility_changed", this, "_node_visibility_changed"); + if (!node->is_connected_compat("visibility_changed", this, "_node_visibility_changed")) + node->connect_compat("visibility_changed", this, "_node_visibility_changed"); } else { // node may have been deleted at this point - if (node && node->is_connected("visibility_changed", this, "_node_visibility_changed")) - node->disconnect("visibility_changed", this, "_node_visibility_changed"); + if (node && node->is_connected_compat("visibility_changed", this, "_node_visibility_changed")) + node->disconnect_compat("visibility_changed", this, "_node_visibility_changed"); node = NULL; } } @@ -555,34 +555,34 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) { curve_edit->set_toggle_mode(true); curve_edit->set_focus_mode(Control::FOCUS_NONE); curve_edit->set_tooltip(TTR("Select Points") + "\n" + TTR("Shift+Drag: Select Control Points") + "\n" + keycode_get_string(KEY_MASK_CMD) + TTR("Click: Add Point") + "\n" + TTR("Left Click: Split Segment (in curve)") + "\n" + TTR("Right Click: Delete Point")); - curve_edit->connect("pressed", this, "_mode_selected", varray(MODE_EDIT)); + curve_edit->connect_compat("pressed", this, "_mode_selected", varray(MODE_EDIT)); base_hb->add_child(curve_edit); curve_edit_curve = memnew(ToolButton); curve_edit_curve->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("CurveCurve", "EditorIcons")); curve_edit_curve->set_toggle_mode(true); curve_edit_curve->set_focus_mode(Control::FOCUS_NONE); curve_edit_curve->set_tooltip(TTR("Select Control Points (Shift+Drag)")); - curve_edit_curve->connect("pressed", this, "_mode_selected", varray(MODE_EDIT_CURVE)); + curve_edit_curve->connect_compat("pressed", this, "_mode_selected", varray(MODE_EDIT_CURVE)); base_hb->add_child(curve_edit_curve); curve_create = memnew(ToolButton); curve_create->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("CurveCreate", "EditorIcons")); curve_create->set_toggle_mode(true); curve_create->set_focus_mode(Control::FOCUS_NONE); curve_create->set_tooltip(TTR("Add Point (in empty space)")); - curve_create->connect("pressed", this, "_mode_selected", varray(MODE_CREATE)); + curve_create->connect_compat("pressed", this, "_mode_selected", varray(MODE_CREATE)); base_hb->add_child(curve_create); curve_del = memnew(ToolButton); curve_del->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("CurveDelete", "EditorIcons")); curve_del->set_toggle_mode(true); curve_del->set_focus_mode(Control::FOCUS_NONE); curve_del->set_tooltip(TTR("Delete Point")); - curve_del->connect("pressed", this, "_mode_selected", varray(MODE_DELETE)); + curve_del->connect_compat("pressed", this, "_mode_selected", varray(MODE_DELETE)); base_hb->add_child(curve_del); curve_close = memnew(ToolButton); curve_close->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("CurveClose", "EditorIcons")); curve_close->set_focus_mode(Control::FOCUS_NONE); curve_close->set_tooltip(TTR("Close Curve")); - curve_close->connect("pressed", this, "_mode_selected", varray(ACTION_CLOSE)); + curve_close->connect_compat("pressed", this, "_mode_selected", varray(ACTION_CLOSE)); base_hb->add_child(curve_close); PopupMenu *menu; @@ -596,7 +596,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) { menu->set_item_checked(HANDLE_OPTION_ANGLE, mirror_handle_angle); menu->add_check_item(TTR("Mirror Handle Lengths")); menu->set_item_checked(HANDLE_OPTION_LENGTH, mirror_handle_length); - menu->connect("id_pressed", this, "_handle_option_pressed"); + menu->connect_compat("id_pressed", this, "_handle_option_pressed"); base_hb->hide(); diff --git a/editor/plugins/path_editor_plugin.cpp b/editor/plugins/path_editor_plugin.cpp index 92f21d8428..b955bf7f41 100644 --- a/editor/plugins/path_editor_plugin.cpp +++ b/editor/plugins/path_editor_plugin.cpp @@ -229,14 +229,14 @@ void PathSpatialGizmo::redraw() { if (c.is_null()) return; - PoolVector<Vector3> v3a = c->tessellate(); - //PoolVector<Vector3> v3a=c->get_baked_points(); + Vector<Vector3> v3a = c->tessellate(); + //Vector<Vector3> v3a=c->get_baked_points(); int v3s = v3a.size(); if (v3s == 0) return; Vector<Vector3> v3p; - PoolVector<Vector3>::Read r = v3a.read(); + const Vector3 *r = v3a.ptr(); // BUG: the following won't work when v3s, avoid drawing as a temporary workaround. for (int i = 0; i < v3s - 1; i++) { @@ -315,7 +315,7 @@ bool PathEditorPlugin::forward_spatial_gui_input(Camera *p_camera, const Ref<Inp if (mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT && (curve_create->is_pressed() || (curve_edit->is_pressed() && mb->get_control()))) { //click into curve, break it down - PoolVector<Vector3> v3a = c->tessellate(); + Vector<Vector3> v3a = c->tessellate(); int idx = 0; int rc = v3a.size(); int closest_seg = -1; @@ -323,7 +323,7 @@ bool PathEditorPlugin::forward_spatial_gui_input(Camera *p_camera, const Ref<Inp float closest_d = 1e20; if (rc >= 2) { - PoolVector<Vector3>::Read r = v3a.read(); + const Vector3 *r = v3a.ptr(); if (p_camera->unproject_position(gt.xform(c->get_point_position(0))).distance_to(mbpos) < click_dist) return false; //nope, existing @@ -543,10 +543,10 @@ void PathEditorPlugin::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - curve_create->connect("pressed", this, "_mode_changed", make_binds(0)); - curve_edit->connect("pressed", this, "_mode_changed", make_binds(1)); - curve_del->connect("pressed", this, "_mode_changed", make_binds(2)); - curve_close->connect("pressed", this, "_close_curve"); + curve_create->connect_compat("pressed", this, "_mode_changed", make_binds(0)); + curve_edit->connect_compat("pressed", this, "_mode_changed", make_binds(1)); + curve_del->connect_compat("pressed", this, "_mode_changed", make_binds(2)); + curve_close->connect_compat("pressed", this, "_close_curve"); } } @@ -614,7 +614,7 @@ PathEditorPlugin::PathEditorPlugin(EditorNode *p_node) { menu->set_item_checked(HANDLE_OPTION_ANGLE, mirror_handle_angle); menu->add_check_item(TTR("Mirror Handle Lengths")); menu->set_item_checked(HANDLE_OPTION_LENGTH, mirror_handle_length); - menu->connect("id_pressed", this, "_handle_option_pressed"); + menu->connect_compat("id_pressed", this, "_handle_option_pressed"); curve_edit->set_pressed(true); /* diff --git a/editor/plugins/physical_bone_plugin.cpp b/editor/plugins/physical_bone_plugin.cpp index 28099a927b..4b63d82961 100644 --- a/editor/plugins/physical_bone_plugin.cpp +++ b/editor/plugins/physical_bone_plugin.cpp @@ -64,7 +64,7 @@ PhysicalBoneEditor::PhysicalBoneEditor(EditorNode *p_editor) : button_transform_joint->set_text(TTR("Move Joint")); button_transform_joint->set_icon(SpatialEditor::get_singleton()->get_icon("PhysicalBone", "EditorIcons")); button_transform_joint->set_toggle_mode(true); - button_transform_joint->connect("toggled", this, "_on_toggle_button_transform_joint"); + button_transform_joint->connect_compat("toggled", this, "_on_toggle_button_transform_joint"); hide(); } diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp index 14e22625d9..91c0222f6d 100644 --- a/editor/plugins/polygon_2d_editor_plugin.cpp +++ b/editor/plugins/polygon_2d_editor_plugin.cpp @@ -125,12 +125,12 @@ void Polygon2DEditor::_sync_bones() { } else { for (int i = 0; i < skeleton->get_bone_count(); i++) { NodePath path = skeleton->get_path_to(skeleton->get_bone(i)); - PoolVector<float> weights; + Vector<float> weights; int wc = node->get_polygon().size(); for (int j = 0; j < prev_bones.size(); j += 2) { NodePath pvp = prev_bones[j]; - PoolVector<float> pv = prev_bones[j + 1]; + Vector<float> pv = prev_bones[j + 1]; if (pvp == path && pv.size() == wc) { weights = pv; } @@ -138,7 +138,7 @@ void Polygon2DEditor::_sync_bones() { if (weights.size() == 0) { //create them weights.resize(node->get_polygon().size()); - PoolVector<float>::Write w = weights.write(); + float *w = weights.ptrw(); for (int j = 0; j < wc; j++) { w[j] = 0.0; } @@ -192,7 +192,7 @@ void Polygon2DEditor::_update_bone_list() { if (np == selected || bone_scroll_vb->get_child_count() < 2) cb->set_pressed(true); - cb->connect("pressed", this, "_bone_paint_selected", varray(i)); + cb->connect_compat("pressed", this, "_bone_paint_selected", varray(i)); } uv_edit_draw->update(); @@ -293,8 +293,8 @@ void Polygon2DEditor::_menu_option(int p_option) { return; } - PoolVector<Vector2> points = node->get_polygon(); - PoolVector<Vector2> uvs = node->get_uv(); + Vector<Vector2> points = node->get_polygon(); + Vector<Vector2> uvs = node->get_uv(); if (uvs.size() != points.size()) { undo_redo->create_action(TTR("Create UV Map")); undo_redo->add_do_method(node, "set_uv", points); @@ -312,10 +312,10 @@ void Polygon2DEditor::_menu_option(int p_option) { } break; case UVEDIT_POLYGON_TO_UV: { - PoolVector<Vector2> points = node->get_polygon(); + Vector<Vector2> points = node->get_polygon(); if (points.size() == 0) break; - PoolVector<Vector2> uvs = node->get_uv(); + Vector<Vector2> uvs = node->get_uv(); undo_redo->create_action(TTR("Create UV Map")); undo_redo->add_do_method(node, "set_uv", points); undo_redo->add_undo_method(node, "set_uv", uvs); @@ -325,8 +325,8 @@ void Polygon2DEditor::_menu_option(int p_option) { } break; case UVEDIT_UV_TO_POLYGON: { - PoolVector<Vector2> points = node->get_polygon(); - PoolVector<Vector2> uvs = node->get_uv(); + Vector<Vector2> points = node->get_polygon(); + Vector<Vector2> uvs = node->get_uv(); if (uvs.size() == 0) break; @@ -339,11 +339,11 @@ void Polygon2DEditor::_menu_option(int p_option) { } break; case UVEDIT_UV_CLEAR: { - PoolVector<Vector2> uvs = node->get_uv(); + Vector<Vector2> uvs = node->get_uv(); if (uvs.size() == 0) break; undo_redo->create_action(TTR("Create UV Map")); - undo_redo->add_do_method(node, "set_uv", PoolVector<Vector2>()); + undo_redo->add_do_method(node, "set_uv", Vector<Vector2>()); undo_redo->add_undo_method(node, "set_uv", uvs); undo_redo->add_do_method(uv_edit_draw, "update"); undo_redo->add_undo_method(uv_edit_draw, "update"); @@ -567,7 +567,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { undo_redo->add_do_method(node, "set_vertex_colors", uv_create_colors_prev); undo_redo->add_undo_method(node, "set_vertex_colors", node->get_vertex_colors()); for (int i = 0; i < node->get_bone_count(); i++) { - PoolVector<float> bonew = node->get_bone_weights(i); + Vector<float> bonew = node->get_bone_weights(i); bonew.push_back(0); undo_redo->add_do_method(node, "set_bone_weights", i, bonew); undo_redo->add_undo_method(node, "set_bone_weights", i, node->get_bone_weights(i)); @@ -622,7 +622,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { undo_redo->add_do_method(node, "set_vertex_colors", uv_create_colors_prev); undo_redo->add_undo_method(node, "set_vertex_colors", node->get_vertex_colors()); for (int i = 0; i < node->get_bone_count(); i++) { - PoolVector<float> bonew = node->get_bone_weights(i); + Vector<float> bonew = node->get_bone_weights(i); bonew.remove(closest); undo_redo->add_do_method(node, "set_bone_weights", i, bonew); undo_redo->add_undo_method(node, "set_bone_weights", i, node->get_bone_weights(i)); @@ -712,7 +712,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { int erase_index = -1; for (int i = polygons.size() - 1; i >= 0; i--) { - PoolVector<int> points = polygons[i]; + Vector<int> points = polygons[i]; Vector<Vector2> polys; polys.resize(points.size()); for (int j = 0; j < polys.size(); j++) { @@ -832,7 +832,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } break; case UV_MODE_EDIT_POINT: { - PoolVector<Vector2> uv_new = points_prev; + Vector<Vector2> uv_new = points_prev; uv_new.set(point_drag_index, uv_new[point_drag_index] + drag); if (uv_edit_mode[0]->is_pressed()) { //edit uv @@ -843,7 +843,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } break; case UV_MODE_MOVE: { - PoolVector<Vector2> uv_new = points_prev; + Vector<Vector2> uv_new = points_prev; for (int i = 0; i < uv_new.size(); i++) uv_new.set(i, uv_new[i] + drag); @@ -856,7 +856,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { case UV_MODE_ROTATE: { Vector2 center; - PoolVector<Vector2> uv_new = points_prev; + Vector<Vector2> uv_new = points_prev; for (int i = 0; i < uv_new.size(); i++) center += points_prev[i]; @@ -879,7 +879,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { case UV_MODE_SCALE: { Vector2 center; - PoolVector<Vector2> uv_new = points_prev; + Vector<Vector2> uv_new = points_prev; for (int i = 0; i < uv_new.size(); i++) center += points_prev[i]; @@ -914,7 +914,7 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { } if (bone_painting) { - PoolVector<float> painted_weights = node->get_bone_weights(bone_painting_bone); + Vector<float> painted_weights = node->get_bone_weights(bone_painting_bone); { int pc = painted_weights.size(); @@ -925,9 +925,9 @@ void Polygon2DEditor::_uv_input(const Ref<InputEvent> &p_input) { amount = -amount; } - PoolVector<float>::Write w = painted_weights.write(); - PoolVector<float>::Read r = prev_weights.read(); - PoolVector<Vector2>::Read rv = points_prev.read(); + float *w = painted_weights.ptrw(); + const float *r = prev_weights.ptr(); + const Vector2 *rv = points_prev.ptr(); for (int i = 0; i < pc; i++) { if (mtx.xform(rv[i]).distance_to(bone_paint_pos) < radius) { @@ -1024,14 +1024,14 @@ void Polygon2DEditor::_uv_draw() { Array polygons = node->get_polygons(); - PoolVector<Vector2> uvs; + Vector<Vector2> uvs; if (uv_edit_mode[0]->is_pressed()) { //edit uv uvs = node->get_uv(); } else { //edit polygon uvs = node->get_polygon(); } - PoolVector<float>::Read weight_r; + const float *weight_r; if (uv_edit_mode[3]->is_pressed()) { int bone_selected = -1; @@ -1045,7 +1045,7 @@ void Polygon2DEditor::_uv_draw() { if (bone_selected != -1 && node->get_bone_weights(bone_selected).size() == uvs.size()) { - weight_r = node->get_bone_weights(bone_selected).read(); + weight_r = node->get_bone_weights(bone_selected).ptr(); } } @@ -1094,7 +1094,7 @@ void Polygon2DEditor::_uv_draw() { for (int i = 0; i < polygons.size(); i++) { - PoolVector<int> points = polygons[i]; + Vector<int> points = polygons[i]; Vector<Vector2> polypoints; for (int j = 0; j < points.size(); j++) { int next = (j + 1) % points.size(); @@ -1116,7 +1116,7 @@ void Polygon2DEditor::_uv_draw() { for (int i = 0; i < uvs.size(); i++) { - if (weight_r.ptr()) { + if (weight_r) { Vector2 draw_pos = mtx.xform(uvs[i]); float weight = weight_r[i]; uv_edit_draw->draw_rect(Rect2(draw_pos - Vector2(2, 2) * EDSCALE, Vector2(5, 5) * EDSCALE), Color(weight, weight, weight, 1.0), Math::round(EDSCALE)); @@ -1273,14 +1273,14 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : button_uv = memnew(ToolButton); add_child(button_uv); button_uv->set_tooltip(TTR("Open Polygon 2D UV editor.")); - button_uv->connect("pressed", this, "_menu_option", varray(MODE_EDIT_UV)); + button_uv->connect_compat("pressed", this, "_menu_option", varray(MODE_EDIT_UV)); uv_mode = UV_MODE_EDIT_POINT; uv_edit = memnew(AcceptDialog); add_child(uv_edit); uv_edit->set_title(TTR("Polygon 2D UV Editor")); uv_edit->set_resizable(true); - uv_edit->connect("popup_hide", this, "_uv_edit_popup_hide"); + uv_edit->connect_compat("popup_hide", this, "_uv_edit_popup_hide"); VBoxContainer *uv_main_vb = memnew(VBoxContainer); uv_edit->add_child(uv_main_vb); @@ -1312,10 +1312,10 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : uv_edit_mode[2]->set_button_group(uv_edit_group); uv_edit_mode[3]->set_button_group(uv_edit_group); - uv_edit_mode[0]->connect("pressed", this, "_uv_edit_mode_select", varray(0)); - uv_edit_mode[1]->connect("pressed", this, "_uv_edit_mode_select", varray(1)); - uv_edit_mode[2]->connect("pressed", this, "_uv_edit_mode_select", varray(2)); - uv_edit_mode[3]->connect("pressed", this, "_uv_edit_mode_select", varray(3)); + uv_edit_mode[0]->connect_compat("pressed", this, "_uv_edit_mode_select", varray(0)); + uv_edit_mode[1]->connect_compat("pressed", this, "_uv_edit_mode_select", varray(1)); + uv_edit_mode[2]->connect_compat("pressed", this, "_uv_edit_mode_select", varray(2)); + uv_edit_mode[3]->connect_compat("pressed", this, "_uv_edit_mode_select", varray(3)); uv_mode_hb->add_child(memnew(VSeparator)); @@ -1325,7 +1325,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : uv_button[i] = memnew(ToolButton); uv_button[i]->set_toggle_mode(true); uv_mode_hb->add_child(uv_button[i]); - uv_button[i]->connect("pressed", this, "_uv_mode", varray(i)); + uv_button[i]->connect_compat("pressed", this, "_uv_mode", varray(i)); uv_button[i]->set_focus_mode(FOCUS_NONE); } @@ -1388,7 +1388,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : uv_menu->get_popup()->add_item(TTR("Clear UV"), UVEDIT_UV_CLEAR); uv_menu->get_popup()->add_separator(); uv_menu->get_popup()->add_item(TTR("Grid Settings"), UVEDIT_GRID_SETTINGS); - uv_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + uv_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); uv_mode_hb->add_child(memnew(VSeparator)); @@ -1399,7 +1399,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : b_snap_enable->set_toggle_mode(true); b_snap_enable->set_pressed(use_snap); b_snap_enable->set_tooltip(TTR("Enable Snap")); - b_snap_enable->connect("toggled", this, "_set_use_snap"); + b_snap_enable->connect_compat("toggled", this, "_set_use_snap"); b_snap_grid = memnew(ToolButton); uv_mode_hb->add_child(b_snap_grid); @@ -1408,7 +1408,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : b_snap_grid->set_toggle_mode(true); b_snap_grid->set_pressed(snap_show_grid); b_snap_grid->set_tooltip(TTR("Show Grid")); - b_snap_grid->connect("toggled", this, "_set_show_grid"); + b_snap_grid->connect_compat("toggled", this, "_set_show_grid"); grid_settings = memnew(AcceptDialog); grid_settings->set_title(TTR("Configure Grid:")); @@ -1422,7 +1422,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : sb_off_x->set_step(1); sb_off_x->set_value(snap_offset.x); sb_off_x->set_suffix("px"); - sb_off_x->connect("value_changed", this, "_set_snap_off_x"); + sb_off_x->connect_compat("value_changed", this, "_set_snap_off_x"); grid_settings_vb->add_margin_child(TTR("Grid Offset X:"), sb_off_x); SpinBox *sb_off_y = memnew(SpinBox); @@ -1431,7 +1431,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : sb_off_y->set_step(1); sb_off_y->set_value(snap_offset.y); sb_off_y->set_suffix("px"); - sb_off_y->connect("value_changed", this, "_set_snap_off_y"); + sb_off_y->connect_compat("value_changed", this, "_set_snap_off_y"); grid_settings_vb->add_margin_child(TTR("Grid Offset Y:"), sb_off_y); SpinBox *sb_step_x = memnew(SpinBox); @@ -1440,7 +1440,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : sb_step_x->set_step(1); sb_step_x->set_value(snap_step.x); sb_step_x->set_suffix("px"); - sb_step_x->connect("value_changed", this, "_set_snap_step_x"); + sb_step_x->connect_compat("value_changed", this, "_set_snap_step_x"); grid_settings_vb->add_margin_child(TTR("Grid Step X:"), sb_step_x); SpinBox *sb_step_y = memnew(SpinBox); @@ -1449,7 +1449,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : sb_step_y->set_step(1); sb_step_y->set_value(snap_step.y); sb_step_y->set_suffix("px"); - sb_step_y->connect("value_changed", this, "_set_snap_step_y"); + sb_step_y->connect_compat("value_changed", this, "_set_snap_step_y"); grid_settings_vb->add_margin_child(TTR("Grid Step Y:"), sb_step_y); uv_mode_hb->add_child(memnew(VSeparator)); @@ -1469,16 +1469,16 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : uv_zoom->share(uv_zoom_value); uv_zoom_value->set_custom_minimum_size(Size2(50, 0)); uv_mode_hb->add_child(uv_zoom_value); - uv_zoom->connect("value_changed", this, "_uv_scroll_changed"); + uv_zoom->connect_compat("value_changed", this, "_uv_scroll_changed"); uv_vscroll = memnew(VScrollBar); uv_vscroll->set_step(0.001); uv_edit_draw->add_child(uv_vscroll); - uv_vscroll->connect("value_changed", this, "_uv_scroll_changed"); + uv_vscroll->connect_compat("value_changed", this, "_uv_scroll_changed"); uv_hscroll = memnew(HScrollBar); uv_hscroll->set_step(0.001); uv_edit_draw->add_child(uv_hscroll); - uv_hscroll->connect("value_changed", this, "_uv_scroll_changed"); + uv_hscroll->connect_compat("value_changed", this, "_uv_scroll_changed"); bone_scroll_main_vb = memnew(VBoxContainer); bone_scroll_main_vb->hide(); @@ -1486,7 +1486,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : sync_bones = memnew(Button(TTR("Sync Bones to Polygon"))); bone_scroll_main_vb->add_child(sync_bones); sync_bones->set_h_size_flags(0); - sync_bones->connect("pressed", this, "_sync_bones"); + sync_bones->connect_compat("pressed", this, "_sync_bones"); uv_main_hsc->add_child(bone_scroll_main_vb); bone_scroll = memnew(ScrollContainer); bone_scroll->set_v_scroll(true); @@ -1496,8 +1496,8 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) : bone_scroll_vb = memnew(VBoxContainer); bone_scroll->add_child(bone_scroll_vb); - uv_edit_draw->connect("draw", this, "_uv_draw"); - uv_edit_draw->connect("gui_input", this, "_uv_input"); + uv_edit_draw->connect_compat("draw", this, "_uv_draw"); + uv_edit_draw->connect_compat("gui_input", this, "_uv_input"); uv_draw_zoom = 1.0; point_drag_index = -1; uv_drag = false; diff --git a/editor/plugins/polygon_2d_editor_plugin.h b/editor/plugins/polygon_2d_editor_plugin.h index 1454a03325..2b00b50e5c 100644 --- a/editor/plugins/polygon_2d_editor_plugin.h +++ b/editor/plugins/polygon_2d_editor_plugin.h @@ -88,7 +88,7 @@ class Polygon2DEditor : public AbstractPolygon2DEditor { Label *bone_paint_radius_label; bool bone_painting; int bone_painting_bone; - PoolVector<float> prev_weights; + Vector<float> prev_weights; Vector2 bone_paint_pos; AcceptDialog *grid_settings; @@ -97,10 +97,10 @@ class Polygon2DEditor : public AbstractPolygon2DEditor { Vector2 uv_draw_ofs; float uv_draw_zoom; - PoolVector<Vector2> points_prev; - PoolVector<Vector2> uv_create_uv_prev; - PoolVector<Vector2> uv_create_poly_prev; - PoolVector<Color> uv_create_colors_prev; + Vector<Vector2> points_prev; + Vector<Vector2> uv_create_uv_prev; + Vector<Vector2> uv_create_poly_prev; + Vector<Color> uv_create_colors_prev; int uv_create_prev_internal_vertices; Array uv_create_bones_prev; Array polygons_prev; diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp index fb04f50827..12b8ac9008 100644 --- a/editor/plugins/resource_preloader_editor_plugin.cpp +++ b/editor/plugins/resource_preloader_editor_plugin.cpp @@ -382,7 +382,7 @@ ResourcePreloaderEditor::ResourcePreloaderEditor() { add_child(file); tree = memnew(Tree); - tree->connect("button_pressed", this, "_cell_button_pressed"); + tree->connect_compat("button_pressed", this, "_cell_button_pressed"); tree->set_columns(2); tree->set_column_min_width(0, 2); tree->set_column_min_width(1, 3); @@ -396,10 +396,10 @@ ResourcePreloaderEditor::ResourcePreloaderEditor() { dialog = memnew(AcceptDialog); add_child(dialog); - load->connect("pressed", this, "_load_pressed"); - paste->connect("pressed", this, "_paste_pressed"); - file->connect("files_selected", this, "_files_load_request"); - tree->connect("item_edited", this, "_item_edited"); + load->connect_compat("pressed", this, "_load_pressed"); + paste->connect_compat("pressed", this, "_paste_pressed"); + file->connect_compat("files_selected", this, "_files_load_request"); + tree->connect_compat("item_edited", this, "_item_edited"); loading_scene = false; } diff --git a/editor/plugins/root_motion_editor_plugin.cpp b/editor/plugins/root_motion_editor_plugin.cpp index 1349de5d8e..132ec40dd2 100644 --- a/editor/plugins/root_motion_editor_plugin.cpp +++ b/editor/plugins/root_motion_editor_plugin.cpp @@ -262,24 +262,24 @@ EditorPropertyRootMotion::EditorPropertyRootMotion() { assign->set_flat(true); assign->set_h_size_flags(SIZE_EXPAND_FILL); assign->set_clip_text(true); - assign->connect("pressed", this, "_node_assign"); + assign->connect_compat("pressed", this, "_node_assign"); hbc->add_child(assign); clear = memnew(Button); clear->set_flat(true); - clear->connect("pressed", this, "_node_clear"); + clear->connect_compat("pressed", this, "_node_clear"); hbc->add_child(clear); filter_dialog = memnew(ConfirmationDialog); add_child(filter_dialog); filter_dialog->set_title(TTR("Edit Filtered Tracks:")); - filter_dialog->connect("confirmed", this, "_confirmed"); + filter_dialog->connect_compat("confirmed", this, "_confirmed"); filters = memnew(Tree); filter_dialog->add_child(filters); filters->set_v_size_flags(SIZE_EXPAND_FILL); filters->set_hide_root(true); - filters->connect("item_activated", this, "_confirmed"); + filters->connect_compat("item_activated", this, "_confirmed"); //filters->connect("item_edited", this, "_filter_edited"); } ////////////////////////// diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 76312df20a..127b98c15b 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -36,6 +36,8 @@ #include "core/os/keyboard.h" #include "core/os/os.h" #include "core/project_settings.h" +#include "editor/debugger/editor_debugger_node.h" +#include "editor/debugger/script_editor_debugger.h" #include "editor/editor_node.h" #include "editor/editor_run_script.h" #include "editor/editor_scale.h" @@ -44,7 +46,6 @@ #include "editor/find_in_files.h" #include "editor/node_dock.h" #include "editor/plugins/shader_editor_plugin.h" -#include "editor/script_editor_debugger.h" #include "scene/main/viewport.h" #include "scene/scene_string_names.h" #include "script_text_editor.h" @@ -210,16 +211,16 @@ void ScriptEditorQuickOpen::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - connect("confirmed", this, "_confirmed"); + connect_compat("confirmed", this, "_confirmed"); search_box->set_clear_button_enabled(true); - FALLTHROUGH; + [[fallthrough]]; } case NOTIFICATION_THEME_CHANGED: { search_box->set_right_icon(get_icon("Search", "EditorIcons")); } break; case NOTIFICATION_EXIT_TREE: { - disconnect("confirmed", this, "_confirmed"); + disconnect_compat("confirmed", this, "_confirmed"); } break; } } @@ -239,15 +240,15 @@ ScriptEditorQuickOpen::ScriptEditorQuickOpen() { add_child(vbc); search_box = memnew(LineEdit); vbc->add_margin_child(TTR("Search:"), search_box); - search_box->connect("text_changed", this, "_text_changed"); - search_box->connect("gui_input", this, "_sbox_input"); + search_box->connect_compat("text_changed", this, "_text_changed"); + search_box->connect_compat("gui_input", this, "_sbox_input"); search_options = memnew(Tree); vbc->add_margin_child(TTR("Matches:"), search_options, true); get_ok()->set_text(TTR("Open")); get_ok()->set_disabled(true); register_text_enter(search_box); set_hide_on_ok(false); - search_options->connect("item_activated", this, "_confirmed"); + search_options->connect_compat("item_activated", this, "_confirmed"); search_options->set_hide_root(true); search_options->set_hide_folding(true); search_options->add_constant_override("draw_guides", 1); @@ -261,7 +262,7 @@ ScriptEditor *ScriptEditor::script_editor = NULL; String ScriptEditor::_get_debug_tooltip(const String &p_text, Node *_se) { - String val = debugger->get_var_value(p_text); + String val = EditorDebuggerNode::get_singleton()->get_var_value(p_text); if (val != String()) { return p_text + ": " + val; } else { @@ -276,11 +277,6 @@ void ScriptEditor::_breaked(bool p_breaked, bool p_can_debug) { return; } - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_NEXT), !(p_breaked && p_can_debug)); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_STEP), !(p_breaked && p_can_debug)); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_BREAK), p_breaked); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_CONTINUE), !p_breaked); - for (int i = 0; i < tab_container->get_child_count(); i++) { ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); @@ -292,11 +288,6 @@ void ScriptEditor::_breaked(bool p_breaked, bool p_can_debug) { } } -void ScriptEditor::_show_debugger(bool p_show) { - - //debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), p_show); -} - void ScriptEditor::_script_created(Ref<Script> p_script) { editor->push_item(p_script.operator->()); } @@ -843,7 +834,7 @@ void ScriptEditor::_res_saved_callback(const Ref<Resource> &p_res) { void ScriptEditor::_live_auto_reload_running_scripts() { pending_auto_reload = false; - debugger->reload_scripts(); + EditorDebuggerNode::get_singleton()->reload_scripts(); } bool ScriptEditor::_test_script_times_on_disk(RES p_for_script) { @@ -909,7 +900,7 @@ void ScriptEditor::_file_dialog_action(String p_file) { } file->close(); memdelete(file); - FALLTHROUGH; + [[fallthrough]]; } case FILE_OPEN: { @@ -1123,27 +1114,6 @@ void ScriptEditor::_menu_option(int p_option) { _sort_list_on_update = true; _update_script_names(); } break; - case DEBUG_SHOW: { - if (debugger) { - bool visible = debug_menu->get_popup()->is_item_checked(debug_menu->get_popup()->get_item_index(DEBUG_SHOW)); - debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(DEBUG_SHOW), !visible); - if (visible) - debugger->hide(); - else - debugger->show(); - } - } break; - case DEBUG_SHOW_KEEP_OPEN: { - bool visible = debug_menu->get_popup()->is_item_checked(debug_menu->get_popup()->get_item_index(DEBUG_SHOW_KEEP_OPEN)); - if (debugger) - debugger->set_hide_on_stop(visible); - debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(DEBUG_SHOW_KEEP_OPEN), !visible); - } break; - case DEBUG_WITH_EXTERNAL_EDITOR: { - bool debug_with_external_editor = !debug_menu->get_popup()->is_item_checked(debug_menu->get_popup()->get_item_index(DEBUG_WITH_EXTERNAL_EDITOR)); - debugger->set_debug_with_external_editor(debug_with_external_editor); - debug_menu->get_popup()->set_item_checked(debug_menu->get_popup()->get_item_index(DEBUG_WITH_EXTERNAL_EDITOR), debug_with_external_editor); - } break; case TOGGLE_SCRIPTS_PANEL: { if (current) { ScriptTextEditor *editor = Object::cast_to<ScriptTextEditor>(current); @@ -1294,29 +1264,6 @@ void ScriptEditor::_menu_option(int p_option) { case CLOSE_ALL: { _close_all_tabs(); } break; - case DEBUG_NEXT: { - - if (debugger) - debugger->debug_next(); - } break; - case DEBUG_STEP: { - - if (debugger) - debugger->debug_step(); - - } break; - case DEBUG_BREAK: { - - if (debugger) - debugger->debug_break(); - - } break; - case DEBUG_CONTINUE: { - - if (debugger) - debugger->debug_continue(); - - } break; case WINDOW_MOVE_UP: { if (tab_container->get_current_tab() > 0) { @@ -1439,19 +1386,17 @@ void ScriptEditor::_notification(int p_what) { case NOTIFICATION_ENTER_TREE: { - editor->connect("play_pressed", this, "_editor_play"); - editor->connect("pause_pressed", this, "_editor_pause"); - editor->connect("stop_pressed", this, "_editor_stop"); - editor->connect("script_add_function_request", this, "_add_callback"); - editor->connect("resource_saved", this, "_res_saved_callback"); - script_list->connect("item_selected", this, "_script_selected"); + editor->connect_compat("stop_pressed", this, "_editor_stop"); + editor->connect_compat("script_add_function_request", this, "_add_callback"); + editor->connect_compat("resource_saved", this, "_res_saved_callback"); + script_list->connect_compat("item_selected", this, "_script_selected"); - members_overview->connect("item_selected", this, "_members_overview_selected"); - help_overview->connect("item_selected", this, "_help_overview_selected"); - script_split->connect("dragged", this, "_script_split_dragged"); + members_overview->connect_compat("item_selected", this, "_members_overview_selected"); + help_overview->connect_compat("item_selected", this, "_help_overview_selected"); + script_split->connect_compat("dragged", this, "_script_split_dragged"); - EditorSettings::get_singleton()->connect("settings_changed", this, "_editor_settings_changed"); - FALLTHROUGH; + EditorSettings::get_singleton()->connect_compat("settings_changed", this, "_editor_settings_changed"); + [[fallthrough]]; } case NOTIFICATION_THEME_CHANGED: { @@ -1474,16 +1419,14 @@ void ScriptEditor::_notification(int p_what) { case NOTIFICATION_READY: { - get_tree()->connect("tree_changed", this, "_tree_changed"); - editor->get_inspector_dock()->connect("request_help", this, "_request_help"); - editor->connect("request_help_search", this, "_help_search"); + get_tree()->connect_compat("tree_changed", this, "_tree_changed"); + editor->get_inspector_dock()->connect_compat("request_help", this, "_request_help"); + editor->connect_compat("request_help_search", this, "_help_search"); } break; case NOTIFICATION_EXIT_TREE: { - editor->disconnect("play_pressed", this, "_editor_play"); - editor->disconnect("pause_pressed", this, "_editor_pause"); - editor->disconnect("stop_pressed", this, "_editor_stop"); + editor->disconnect_compat("stop_pressed", this, "_editor_stop"); } break; case MainLoop::NOTIFICATION_WM_FOCUS_IN: { @@ -2062,7 +2005,7 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra return false; } - if ((debugger->get_dump_stack_script() != p_resource || debugger->get_debug_with_external_editor()) && + if ((EditorDebuggerNode::get_singleton()->get_dump_stack_script() != p_resource || EditorDebuggerNode::get_singleton()->get_debug_with_external_editor()) && p_resource->get_path().is_resource_file() && p_resource->get_class_name() != StringName("VisualScript") && bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))) { @@ -2194,14 +2137,14 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra _sort_list_on_update = true; _update_script_names(); _save_layout(); - se->connect("name_changed", this, "_update_script_names"); - se->connect("edited_script_changed", this, "_script_changed"); - se->connect("request_help", this, "_help_search"); - se->connect("request_open_script_at_line", this, "_goto_script_line"); - se->connect("go_to_help", this, "_help_class_goto"); - se->connect("request_save_history", this, "_save_history"); - se->connect("search_in_files_requested", this, "_on_find_in_files_requested"); - se->connect("replace_in_files_requested", this, "_on_replace_in_files_requested"); + se->connect_compat("name_changed", this, "_update_script_names"); + se->connect_compat("edited_script_changed", this, "_script_changed"); + se->connect_compat("request_help", this, "_help_search"); + se->connect_compat("request_open_script_at_line", this, "_goto_script_line"); + se->connect_compat("go_to_help", this, "_help_class_goto"); + se->connect_compat("request_save_history", this, "_save_history"); + se->connect_compat("search_in_files_requested", this, "_on_find_in_files_requested"); + se->connect_compat("replace_in_files_requested", this, "_on_replace_in_files_requested"); //test for modification, maybe the script was not edited but was loaded @@ -2277,26 +2220,7 @@ void ScriptEditor::open_script_create_dialog(const String &p_base_name, const St script_create_dialog->config(p_base_name, p_base_path); } -void ScriptEditor::_editor_play() { - - debugger->start(); - debug_menu->get_popup()->grab_focus(); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_NEXT), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_STEP), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_BREAK), false); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_CONTINUE), true); -} - -void ScriptEditor::_editor_pause() { -} void ScriptEditor::_editor_stop() { - - debugger->stop(); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_NEXT), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_STEP), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_BREAK), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_CONTINUE), true); - for (int i = 0; i < tab_container->get_child_count(); i++) { ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i)); @@ -2309,7 +2233,7 @@ void ScriptEditor::_editor_stop() { } } -void ScriptEditor::_add_callback(Object *p_obj, const String &p_function, const PoolStringArray &p_args) { +void ScriptEditor::_add_callback(Object *p_obj, const String &p_function, const PackedStringArray &p_args) { ERR_FAIL_COND(!p_obj); Ref<Script> script = p_obj->get_script(); @@ -2813,7 +2737,7 @@ void ScriptEditor::_help_class_open(const String &p_class) { tab_container->add_child(eh); _go_to_tab(tab_container->get_tab_count() - 1); eh->go_to_class(p_class, 0); - eh->connect("go_to_help", this, "_help_class_goto"); + eh->connect_compat("go_to_help", this, "_help_class_goto"); _add_recent_script(p_class); _sort_list_on_update = true; _update_script_names(); @@ -2843,7 +2767,7 @@ void ScriptEditor::_help_class_goto(const String &p_desc) { tab_container->add_child(eh); _go_to_tab(tab_container->get_tab_count() - 1); eh->go_to_help(p_desc); - eh->connect("go_to_help", this, "_help_class_goto"); + eh->connect_compat("go_to_help", this, "_help_class_goto"); _add_recent_script(eh->get_class()); _sort_list_on_update = true; _update_script_names(); @@ -3099,7 +3023,7 @@ void ScriptEditor::_start_find_in_files(bool with_replace) { editor->make_bottom_panel_item_visible(find_in_files); } -void ScriptEditor::_on_find_in_files_modified_files(PoolStringArray paths) { +void ScriptEditor::_on_find_in_files_modified_files(PackedStringArray paths) { _test_script_times_on_disk(); _update_modified_scripts_for_external_editor(); @@ -3125,8 +3049,6 @@ void ScriptEditor::_bind_methods() { ClassDB::bind_method("_close_other_tabs", &ScriptEditor::_close_other_tabs); ClassDB::bind_method("_open_recent_script", &ScriptEditor::_open_recent_script); ClassDB::bind_method("_theme_option", &ScriptEditor::_theme_option); - ClassDB::bind_method("_editor_play", &ScriptEditor::_editor_play); - ClassDB::bind_method("_editor_pause", &ScriptEditor::_editor_pause); ClassDB::bind_method("_editor_stop", &ScriptEditor::_editor_stop); ClassDB::bind_method("_add_callback", &ScriptEditor::_add_callback); ClassDB::bind_method("_reload_scripts", &ScriptEditor::_reload_scripts); @@ -3141,7 +3063,6 @@ void ScriptEditor::_bind_methods() { ClassDB::bind_method("_copy_script_path", &ScriptEditor::_copy_script_path); ClassDB::bind_method("_breaked", &ScriptEditor::_breaked); - ClassDB::bind_method("_show_debugger", &ScriptEditor::_show_debugger); ClassDB::bind_method("_get_debug_tooltip", &ScriptEditor::_get_debug_tooltip); ClassDB::bind_method("_autosave_scripts", &ScriptEditor::_autosave_scripts); ClassDB::bind_method("_update_autosave_timer", &ScriptEditor::_update_autosave_timer); @@ -3221,22 +3142,22 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { filter_scripts = memnew(LineEdit); filter_scripts->set_placeholder(TTR("Filter scripts")); filter_scripts->set_clear_button_enabled(true); - filter_scripts->connect("text_changed", this, "_filter_scripts_text_changed"); + filter_scripts->connect_compat("text_changed", this, "_filter_scripts_text_changed"); scripts_vbox->add_child(filter_scripts); script_list = memnew(ItemList); scripts_vbox->add_child(script_list); script_list->set_custom_minimum_size(Size2(150, 60) * EDSCALE); //need to give a bit of limit to avoid it from disappearing script_list->set_v_size_flags(SIZE_EXPAND_FILL); - script_split->set_split_offset(140); + script_split->set_split_offset(70 * EDSCALE); _sort_list_on_update = true; - script_list->connect("gui_input", this, "_script_list_gui_input", varray(), CONNECT_DEFERRED); + script_list->connect_compat("gui_input", this, "_script_list_gui_input", varray(), CONNECT_DEFERRED); script_list->set_allow_rmb_select(true); script_list->set_drag_forwarding(this); context_menu = memnew(PopupMenu); add_child(context_menu); - context_menu->connect("id_pressed", this, "_menu_option"); + context_menu->connect_compat("id_pressed", this, "_menu_option"); context_menu->set_hide_on_window_lose_focus(true); overview_vbox = memnew(VBoxContainer); @@ -3257,14 +3178,14 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { members_overview_alphabeta_sort_button->set_tooltip(TTR("Toggle alphabetical sorting of the method list.")); members_overview_alphabeta_sort_button->set_toggle_mode(true); members_overview_alphabeta_sort_button->set_pressed(EditorSettings::get_singleton()->get("text_editor/tools/sort_members_outline_alphabetically")); - members_overview_alphabeta_sort_button->connect("toggled", this, "_toggle_members_overview_alpha_sort"); + members_overview_alphabeta_sort_button->connect_compat("toggled", this, "_toggle_members_overview_alpha_sort"); buttons_hbox->add_child(members_overview_alphabeta_sort_button); filter_methods = memnew(LineEdit); filter_methods->set_placeholder(TTR("Filter methods")); filter_methods->set_clear_button_enabled(true); - filter_methods->connect("text_changed", this, "_filter_methods_text_changed"); + filter_methods->connect_compat("text_changed", this, "_filter_methods_text_changed"); overview_vbox->add_child(filter_methods); members_overview = memnew(ItemList); @@ -3308,7 +3229,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { recent_scripts = memnew(PopupMenu); recent_scripts->set_name("RecentScripts"); file_menu->get_popup()->add_child(recent_scripts); - recent_scripts->connect("id_pressed", this, "_open_recent_script"); + recent_scripts->connect_compat("id_pressed", this, "_open_recent_script"); _update_recent_scripts(); file_menu->get_popup()->add_separator(); @@ -3330,7 +3251,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { theme_submenu = memnew(PopupMenu); theme_submenu->set_name("Theme"); file_menu->get_popup()->add_child(theme_submenu); - theme_submenu->connect("id_pressed", this, "_theme_option"); + theme_submenu->connect_compat("id_pressed", this, "_theme_option"); theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/import_theme", TTR("Import Theme...")), THEME_IMPORT); theme_submenu->add_shortcut(ED_SHORTCUT("script_editor/reload_theme", TTR("Reload Theme")), THEME_RELOAD); @@ -3349,35 +3270,25 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { file_menu->get_popup()->add_separator(); file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/toggle_scripts_panel", TTR("Toggle Scripts Panel"), KEY_MASK_CMD | KEY_BACKSLASH), TOGGLE_SCRIPTS_PANEL); - file_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + file_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); script_search_menu = memnew(MenuButton); menu_hb->add_child(script_search_menu); script_search_menu->set_text(TTR("Search")); script_search_menu->set_switch_on_hover(true); script_search_menu->get_popup()->set_hide_on_window_lose_focus(true); - script_search_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + script_search_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); - debug_menu = memnew(MenuButton); + MenuButton *debug_menu = memnew(MenuButton); menu_hb->add_child(debug_menu); - debug_menu->set_text(TTR("Debug")); - debug_menu->set_switch_on_hover(true); - debug_menu->get_popup()->set_hide_on_window_lose_focus(true); - debug_menu->get_popup()->add_shortcut(ED_SHORTCUT("debugger/step_into", TTR("Step Into"), KEY_F11), DEBUG_STEP); - debug_menu->get_popup()->add_shortcut(ED_SHORTCUT("debugger/step_over", TTR("Step Over"), KEY_F10), DEBUG_NEXT); - debug_menu->get_popup()->add_separator(); - debug_menu->get_popup()->add_shortcut(ED_SHORTCUT("debugger/break", TTR("Break")), DEBUG_BREAK); - debug_menu->get_popup()->add_shortcut(ED_SHORTCUT("debugger/continue", TTR("Continue"), KEY_F12), DEBUG_CONTINUE); - debug_menu->get_popup()->add_separator(); - //debug_menu->get_popup()->add_check_item("Show Debugger",DEBUG_SHOW); - debug_menu->get_popup()->add_check_shortcut(ED_SHORTCUT("debugger/keep_debugger_open", TTR("Keep Debugger Open")), DEBUG_SHOW_KEEP_OPEN); - debug_menu->get_popup()->add_check_shortcut(ED_SHORTCUT("debugger/debug_with_external_editor", TTR("Debug with External Editor")), DEBUG_WITH_EXTERNAL_EDITOR); - debug_menu->get_popup()->connect("id_pressed", this, "_menu_option"); - - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_NEXT), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_STEP), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_BREAK), true); - debug_menu->get_popup()->set_item_disabled(debug_menu->get_popup()->get_item_index(DEBUG_CONTINUE), true); + debug_menu->hide(); // Handled by EditorDebuggerNode below. + + EditorDebuggerNode *debugger = EditorDebuggerNode::get_singleton(); + debugger->set_script_debug_button(debug_menu); + debugger->connect_compat("goto_script_line", this, "_goto_script_line"); + debugger->connect_compat("set_execution", this, "_set_execution"); + debugger->connect_compat("clear_execution", this, "_clear_execution"); + debugger->connect_compat("breaked", this, "_breaked"); menu_hb->add_spacer(); @@ -3393,64 +3304,58 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { site_search = memnew(ToolButton); site_search->set_text(TTR("Online Docs")); - site_search->connect("pressed", this, "_menu_option", varray(SEARCH_WEBSITE)); + site_search->connect_compat("pressed", this, "_menu_option", varray(SEARCH_WEBSITE)); menu_hb->add_child(site_search); site_search->set_tooltip(TTR("Open Godot online documentation.")); request_docs = memnew(ToolButton); request_docs->set_text(TTR("Request Docs")); - request_docs->connect("pressed", this, "_menu_option", varray(REQUEST_DOCS)); + request_docs->connect_compat("pressed", this, "_menu_option", varray(REQUEST_DOCS)); menu_hb->add_child(request_docs); request_docs->set_tooltip(TTR("Help improve the Godot documentation by giving feedback.")); help_search = memnew(ToolButton); help_search->set_text(TTR("Search Help")); - help_search->connect("pressed", this, "_menu_option", varray(SEARCH_HELP)); + help_search->connect_compat("pressed", this, "_menu_option", varray(SEARCH_HELP)); menu_hb->add_child(help_search); help_search->set_tooltip(TTR("Search the reference documentation.")); menu_hb->add_child(memnew(VSeparator)); script_back = memnew(ToolButton); - script_back->connect("pressed", this, "_history_back"); + script_back->connect_compat("pressed", this, "_history_back"); menu_hb->add_child(script_back); script_back->set_disabled(true); script_back->set_tooltip(TTR("Go to previous edited document.")); script_forward = memnew(ToolButton); - script_forward->connect("pressed", this, "_history_forward"); + script_forward->connect_compat("pressed", this, "_history_forward"); menu_hb->add_child(script_forward); script_forward->set_disabled(true); script_forward->set_tooltip(TTR("Go to next edited document.")); - tab_container->connect("tab_changed", this, "_tab_changed"); + tab_container->connect_compat("tab_changed", this, "_tab_changed"); erase_tab_confirm = memnew(ConfirmationDialog); erase_tab_confirm->get_ok()->set_text(TTR("Save")); erase_tab_confirm->add_button(TTR("Discard"), OS::get_singleton()->get_swap_ok_cancel(), "discard"); - erase_tab_confirm->connect("confirmed", this, "_close_current_tab"); - erase_tab_confirm->connect("custom_action", this, "_close_discard_current_tab"); + erase_tab_confirm->connect_compat("confirmed", this, "_close_current_tab"); + erase_tab_confirm->connect_compat("custom_action", this, "_close_discard_current_tab"); add_child(erase_tab_confirm); script_create_dialog = memnew(ScriptCreateDialog); script_create_dialog->set_title(TTR("Create Script")); add_child(script_create_dialog); - script_create_dialog->connect("script_created", this, "_script_created"); + script_create_dialog->connect_compat("script_created", this, "_script_created"); file_dialog_option = -1; file_dialog = memnew(EditorFileDialog); add_child(file_dialog); - file_dialog->connect("file_selected", this, "_file_dialog_action"); + file_dialog->connect_compat("file_selected", this, "_file_dialog_action"); error_dialog = memnew(AcceptDialog); add_child(error_dialog); - debugger = memnew(ScriptEditorDebugger(editor)); - debugger->connect("goto_script_line", this, "_goto_script_line"); - debugger->connect("set_execution", this, "_set_execution"); - debugger->connect("clear_execution", this, "_clear_execution"); - debugger->connect("show_debugger", this, "_show_debugger"); - disk_changed = memnew(ConfirmationDialog); { VBoxContainer *vbc = memnew(VBoxContainer); @@ -3464,48 +3369,42 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { vbc->add_child(disk_changed_list); disk_changed_list->set_v_size_flags(SIZE_EXPAND_FILL); - disk_changed->connect("confirmed", this, "_reload_scripts"); + disk_changed->connect_compat("confirmed", this, "_reload_scripts"); disk_changed->get_ok()->set_text(TTR("Reload")); disk_changed->add_button(TTR("Resave"), !OS::get_singleton()->get_swap_ok_cancel(), "resave"); - disk_changed->connect("custom_action", this, "_resave_scripts"); + disk_changed->connect_compat("custom_action", this, "_resave_scripts"); } add_child(disk_changed); script_editor = this; - Button *db = EditorNode::get_singleton()->add_bottom_panel_item(TTR("Debugger"), debugger); - debugger->set_tool_button(db); - - debugger->connect("breaked", this, "_breaked"); - autosave_timer = memnew(Timer); autosave_timer->set_one_shot(false); - autosave_timer->connect(SceneStringNames::get_singleton()->tree_entered, this, "_update_autosave_timer"); - autosave_timer->connect("timeout", this, "_autosave_scripts"); + autosave_timer->connect_compat(SceneStringNames::get_singleton()->tree_entered, this, "_update_autosave_timer"); + autosave_timer->connect_compat("timeout", this, "_autosave_scripts"); add_child(autosave_timer); grab_focus_block = false; help_search_dialog = memnew(EditorHelpSearch); add_child(help_search_dialog); - help_search_dialog->connect("go_to_help", this, "_help_class_goto"); + help_search_dialog->connect_compat("go_to_help", this, "_help_class_goto"); find_in_files_dialog = memnew(FindInFilesDialog); - find_in_files_dialog->connect(FindInFilesDialog::SIGNAL_FIND_REQUESTED, this, "_start_find_in_files", varray(false)); - find_in_files_dialog->connect(FindInFilesDialog::SIGNAL_REPLACE_REQUESTED, this, "_start_find_in_files", varray(true)); + find_in_files_dialog->connect_compat(FindInFilesDialog::SIGNAL_FIND_REQUESTED, this, "_start_find_in_files", varray(false)); + find_in_files_dialog->connect_compat(FindInFilesDialog::SIGNAL_REPLACE_REQUESTED, this, "_start_find_in_files", varray(true)); add_child(find_in_files_dialog); find_in_files = memnew(FindInFilesPanel); find_in_files_button = editor->add_bottom_panel_item(TTR("Search Results"), find_in_files); find_in_files->set_custom_minimum_size(Size2(0, 200) * EDSCALE); - find_in_files->connect(FindInFilesPanel::SIGNAL_RESULT_SELECTED, this, "_on_find_in_files_result_selected"); - find_in_files->connect(FindInFilesPanel::SIGNAL_FILES_MODIFIED, this, "_on_find_in_files_modified_files"); + find_in_files->connect_compat(FindInFilesPanel::SIGNAL_RESULT_SELECTED, this, "_on_find_in_files_result_selected"); + find_in_files->connect_compat(FindInFilesPanel::SIGNAL_FILES_MODIFIED, this, "_on_find_in_files_modified_files"); find_in_files->hide(); find_in_files_button->hide(); history_pos = -1; - //debugger_gui->hide(); edit_pass = 0; trim_trailing_whitespace_on_save = EditorSettings::get_singleton()->get("text_editor/files/trim_trailing_whitespace_on_save"); diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index 4087b7cd55..b4b4f33fc5 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -73,7 +73,7 @@ public: ScriptEditorQuickOpen(); }; -class ScriptEditorDebugger; +class EditorDebuggerNode; class ScriptEditorBase : public VBoxContainer { @@ -107,7 +107,7 @@ public: virtual void tag_saved_version() = 0; virtual void reload(bool p_soft) {} virtual void get_breakpoints(List<int> *p_breakpoints) = 0; - virtual void add_callback(const String &p_function, PoolStringArray p_args) = 0; + virtual void add_callback(const String &p_function, PackedStringArray p_args) = 0; virtual void update_settings() = 0; virtual void set_debugger_active(bool p_active) = 0; virtual bool can_lose_focus_on_node_selection() { return true; } @@ -155,13 +155,6 @@ class ScriptEditor : public PanelContainer { FILE_COPY_PATH, FILE_TOOL_RELOAD, FILE_TOOL_RELOAD_SOFT, - DEBUG_NEXT, - DEBUG_STEP, - DEBUG_BREAK, - DEBUG_CONTINUE, - DEBUG_SHOW, - DEBUG_SHOW_KEEP_OPEN, - DEBUG_WITH_EXTERNAL_EDITOR, SEARCH_IN_FILES, REPLACE_IN_FILES, SEARCH_HELP, @@ -233,7 +226,6 @@ class ScriptEditor : public PanelContainer { AcceptDialog *error_dialog; ConfirmationDialog *erase_tab_confirm; ScriptCreateDialog *script_create_dialog; - ScriptEditorDebugger *debugger; ToolButton *scripts_visible; String current_theme; @@ -315,13 +307,11 @@ class ScriptEditor : public PanelContainer { EditorScriptCodeCompletionCache *completion_cache; - void _editor_play(); - void _editor_pause(); void _editor_stop(); int edit_pass; - void _add_callback(Object *p_obj, const String &p_function, const PoolStringArray &p_args); + void _add_callback(Object *p_obj, const String &p_function, const PackedStringArray &p_args); void _res_saved_callback(const Ref<Resource> &p_res); bool trim_trailing_whitespace_on_save; @@ -335,7 +325,6 @@ class ScriptEditor : public PanelContainer { void _set_execution(REF p_script, int p_line); void _clear_execution(REF p_script); void _breaked(bool p_breaked, bool p_can_debug); - void _show_debugger(bool p_show); void _update_window_menu(); void _script_created(Ref<Script> p_script); @@ -408,7 +397,7 @@ class ScriptEditor : public PanelContainer { void _on_replace_in_files_requested(String text); void _on_find_in_files_result_selected(String fpath, int line_number, int begin, int end); void _start_find_in_files(bool with_replace); - void _on_find_in_files_modified_files(PoolStringArray paths); + void _on_find_in_files_modified_files(PackedStringArray paths); static void _open_script_request(const String &p_path); @@ -457,7 +446,6 @@ public: VSplitContainer *get_left_list_split() { return list_split; } - ScriptEditorDebugger *get_debugger() { return debugger; } void set_live_auto_reload_running_scripts(bool p_enabled); static void register_create_syntax_highlighter_function(CreateSyntaxHighlighterFunc p_func); diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index 1ec425d09d..f4ebd7c3cc 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -32,10 +32,10 @@ #include "core/math/expression.h" #include "core/os/keyboard.h" +#include "editor/debugger/editor_debugger_node.h" #include "editor/editor_node.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" -#include "editor/script_editor_debugger.h" void ConnectionInfoDialog::ok_pressed() { } @@ -53,30 +53,30 @@ void ConnectionInfoDialog::popup_connections(String p_method, Vector<Node *> p_n for (List<Connection>::Element *E = all_connections.front(); E; E = E->next()) { Connection connection = E->get(); - if (connection.method != p_method) { + if (connection.callable.get_method() != p_method) { continue; } TreeItem *node_item = tree->create_item(root); - node_item->set_text(0, Object::cast_to<Node>(connection.source)->get_name()); - node_item->set_icon(0, EditorNode::get_singleton()->get_object_icon(connection.source, "Node")); + node_item->set_text(0, Object::cast_to<Node>(connection.signal.get_object())->get_name()); + node_item->set_icon(0, EditorNode::get_singleton()->get_object_icon(connection.signal.get_object(), "Node")); node_item->set_selectable(0, false); node_item->set_editable(0, false); - node_item->set_text(1, connection.signal); + node_item->set_text(1, connection.signal.get_name()); node_item->set_icon(1, get_parent_control()->get_icon("Slot", "EditorIcons")); node_item->set_selectable(1, false); node_item->set_editable(1, false); - node_item->set_text(2, Object::cast_to<Node>(connection.target)->get_name()); - node_item->set_icon(2, EditorNode::get_singleton()->get_object_icon(connection.target, "Node")); + node_item->set_text(2, Object::cast_to<Node>(connection.callable.get_object())->get_name()); + node_item->set_icon(2, EditorNode::get_singleton()->get_object_icon(connection.callable.get_object(), "Node")); node_item->set_selectable(2, false); node_item->set_editable(2, false); } } - popup_centered(Size2(400, 300) * EDSCALE); + popup_centered(Size2(600, 300) * EDSCALE); } ConnectionInfoDialog::ConnectionInfoDialog() { @@ -292,27 +292,34 @@ void ScriptTextEditor::_set_theme_for_script() { const Color basetype_color = colors_cache.basetype_color; text_edit->add_keyword_color("String", basetype_color); text_edit->add_keyword_color("Vector2", basetype_color); + text_edit->add_keyword_color("Vector2i", basetype_color); text_edit->add_keyword_color("Rect2", basetype_color); - text_edit->add_keyword_color("Transform2D", basetype_color); + text_edit->add_keyword_color("Rect2i", basetype_color); text_edit->add_keyword_color("Vector3", basetype_color); + text_edit->add_keyword_color("Vector3i", basetype_color); + text_edit->add_keyword_color("Transform2D", basetype_color); + text_edit->add_keyword_color("Plane", basetype_color); + text_edit->add_keyword_color("Quat", basetype_color); text_edit->add_keyword_color("AABB", basetype_color); text_edit->add_keyword_color("Basis", basetype_color); - text_edit->add_keyword_color("Plane", basetype_color); text_edit->add_keyword_color("Transform", basetype_color); - text_edit->add_keyword_color("Quat", basetype_color); text_edit->add_keyword_color("Color", basetype_color); - text_edit->add_keyword_color("Object", basetype_color); + text_edit->add_keyword_color("StringName", basetype_color); text_edit->add_keyword_color("NodePath", basetype_color); text_edit->add_keyword_color("RID", basetype_color); + text_edit->add_keyword_color("Object", basetype_color); + text_edit->add_keyword_color("Callable", basetype_color); text_edit->add_keyword_color("Dictionary", basetype_color); text_edit->add_keyword_color("Array", basetype_color); - text_edit->add_keyword_color("PoolByteArray", basetype_color); - text_edit->add_keyword_color("PoolIntArray", basetype_color); - text_edit->add_keyword_color("PoolRealArray", basetype_color); - text_edit->add_keyword_color("PoolStringArray", basetype_color); - text_edit->add_keyword_color("PoolVector2Array", basetype_color); - text_edit->add_keyword_color("PoolVector3Array", basetype_color); - text_edit->add_keyword_color("PoolColorArray", basetype_color); + text_edit->add_keyword_color("PackedByteArray", basetype_color); + text_edit->add_keyword_color("PackedInt32Array", basetype_color); + text_edit->add_keyword_color("PackedInt64Array", basetype_color); + text_edit->add_keyword_color("PackedFloat32Array", basetype_color); + text_edit->add_keyword_color("PackedFloat64Array", basetype_color); + text_edit->add_keyword_color("PackedStringArray", basetype_color); + text_edit->add_keyword_color("PackedVector2Array", basetype_color); + text_edit->add_keyword_color("PackedVector3Array", basetype_color); + text_edit->add_keyword_color("PackedColorArray", basetype_color); //colorize engine types List<StringName> types; @@ -424,7 +431,7 @@ void ScriptTextEditor::_notification(int p_what) { } } -void ScriptTextEditor::add_callback(const String &p_function, PoolStringArray p_args) { +void ScriptTextEditor::add_callback(const String &p_function, PackedStringArray p_args) { String code = code_editor->get_text_edit()->get_text(); int pos = script->get_language()->find_function(p_function, code); @@ -603,12 +610,12 @@ void ScriptTextEditor::_validate_script() { Connection connection = E->get(); String base_path = base->get_name(); - String source_path = base == connection.source ? base_path : base_path + "/" + base->get_path_to(Object::cast_to<Node>(connection.source)); - String target_path = base == connection.target ? base_path : base_path + "/" + base->get_path_to(Object::cast_to<Node>(connection.target)); + String source_path = base == connection.signal.get_object() ? base_path : base_path + "/" + base->get_path_to(Object::cast_to<Node>(connection.signal.get_object())); + String target_path = base == connection.callable.get_object() ? base_path : base_path + "/" + base->get_path_to(Object::cast_to<Node>(connection.callable.get_object())); warnings_panel->push_cell(); warnings_panel->push_color(warnings_panel->get_color("warning_color", "Editor")); - warnings_panel->add_text(vformat(TTR("Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."), connection.method, connection.signal, source_path, target_path)); + warnings_panel->add_text(vformat(TTR("Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."), connection.callable.get_method(), connection.signal.get_name(), source_path, target_path)); warnings_panel->pop(); // Color. warnings_panel->pop(); // Cell. } @@ -870,7 +877,7 @@ void ScriptTextEditor::_breakpoint_item_pressed(int p_idx) { void ScriptTextEditor::_breakpoint_toggled(int p_row) { - ScriptEditor::get_singleton()->get_debugger()->set_breakpoint(script->get_path(), p_row + 1, code_editor->get_text_edit()->is_line_set_as_breakpoint(p_row)); + EditorDebuggerNode::get_singleton()->set_breakpoint(script->get_path(), p_row + 1, code_editor->get_text_edit()->is_line_set_as_breakpoint(p_row)); } void ScriptTextEditor::_lookup_symbol(const String &p_symbol, int p_row, int p_column) { @@ -1006,24 +1013,24 @@ void ScriptTextEditor::_update_connected_methods() { } // As deleted nodes are still accessible via the undo/redo system, check if they're still on the tree. - Node *source = Object::cast_to<Node>(connection.source); + Node *source = Object::cast_to<Node>(connection.signal.get_object()); if (source && !source->is_inside_tree()) { continue; } - if (methods_found.has(connection.method)) { + if (methods_found.has(connection.callable.get_method())) { continue; } - if (!ClassDB::has_method(script->get_instance_base_type(), connection.method)) { + if (!ClassDB::has_method(script->get_instance_base_type(), connection.callable.get_method())) { int line = -1; for (int j = 0; j < functions.size(); j++) { String name = functions[j].get_slice(":", 0); - if (name == connection.method) { + if (name == connection.callable.get_method()) { line = functions[j].get_slice(":", 1).to_int(); - text_edit->set_line_info_icon(line - 1, get_parent_control()->get_icon("Slot", "EditorIcons"), connection.method); - methods_found.insert(connection.method); + text_edit->set_line_info_icon(line - 1, get_parent_control()->get_icon("Slot", "EditorIcons"), connection.callable.get_method()); + methods_found.insert(connection.callable.get_method()); break; } } @@ -1036,7 +1043,7 @@ void ScriptTextEditor::_update_connected_methods() { bool found_inherited_function = false; Ref<Script> inherited_script = script->get_base_script(); while (!inherited_script.is_null()) { - if (inherited_script->has_method(connection.method)) { + if (inherited_script->has_method(connection.callable.get_method())) { found_inherited_function = true; break; } @@ -1212,7 +1219,7 @@ void ScriptTextEditor::_edit_option(int p_op) { Expression expression; Vector<String> lines = code_editor->get_text_edit()->get_selection_text().split("\n"); - PoolStringArray results; + PackedStringArray results; for (int i = 0; i < lines.size(); i++) { String line = lines[i]; @@ -1221,17 +1228,17 @@ void ScriptTextEditor::_edit_option(int p_op) { if (expression.parse(line) == OK) { Variant result = expression.execute(Array(), Variant(), false); if (expression.get_error_text() == "") { - results.append(whitespace + result.get_construct_string()); + results.push_back(whitespace + result.get_construct_string()); } else { - results.append(line); + results.push_back(line); } } else { - results.append(line); + results.push_back(line); } } code_editor->get_text_edit()->begin_complex_operation(); //prevents creating a two-step undo - code_editor->get_text_edit()->insert_text_at_cursor(results.join("\n")); + code_editor->get_text_edit()->insert_text_at_cursor(String("\n").join(results)); code_editor->get_text_edit()->end_complex_operation(); } break; case SEARCH_FIND: { @@ -1294,7 +1301,7 @@ void ScriptTextEditor::_edit_option(int p_op) { int line = tx->cursor_get_line(); bool dobreak = !tx->is_line_set_as_breakpoint(line); tx->set_line_as_breakpoint(line, dobreak); - ScriptEditor::get_singleton()->get_debugger()->set_breakpoint(script->get_path(), line + 1, dobreak); + EditorDebuggerNode::get_singleton()->set_breakpoint(script->get_path(), line + 1, dobreak); } break; case DEBUG_REMOVE_ALL_BREAKPOINTS: { @@ -1305,7 +1312,7 @@ void ScriptTextEditor::_edit_option(int p_op) { int line = E->get(); bool dobreak = !tx->is_line_set_as_breakpoint(line); tx->set_line_as_breakpoint(line, dobreak); - ScriptEditor::get_singleton()->get_debugger()->set_breakpoint(script->get_path(), line + 1, dobreak); + EditorDebuggerNode::get_singleton()->set_breakpoint(script->get_path(), line + 1, dobreak); } } break; case DEBUG_GOTO_NEXT_BREAKPOINT: { @@ -1774,12 +1781,12 @@ ScriptTextEditor::ScriptTextEditor() { editor_box->add_child(code_editor); code_editor->add_constant_override("separation", 2); code_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE); - code_editor->connect("validate_script", this, "_validate_script"); - code_editor->connect("load_theme_settings", this, "_load_theme_settings"); + code_editor->connect_compat("validate_script", this, "_validate_script"); + code_editor->connect_compat("load_theme_settings", this, "_load_theme_settings"); code_editor->set_code_complete_func(_code_complete_scripts, this); - code_editor->get_text_edit()->connect("breakpoint_toggled", this, "_breakpoint_toggled"); - code_editor->get_text_edit()->connect("symbol_lookup", this, "_lookup_symbol"); - code_editor->get_text_edit()->connect("info_clicked", this, "_lookup_connections"); + code_editor->get_text_edit()->connect_compat("breakpoint_toggled", this, "_breakpoint_toggled"); + code_editor->get_text_edit()->connect_compat("symbol_lookup", this, "_lookup_symbol"); + code_editor->get_text_edit()->connect_compat("info_clicked", this, "_lookup_connections"); code_editor->set_v_size_flags(SIZE_EXPAND_FILL); code_editor->show_toggle_scripts_button(); @@ -1792,9 +1799,9 @@ ScriptTextEditor::ScriptTextEditor() { warnings_panel->set_focus_mode(FOCUS_CLICK); warnings_panel->hide(); - code_editor->connect("error_pressed", this, "_error_pressed"); - code_editor->connect("show_warnings_panel", this, "_show_warnings_panel"); - warnings_panel->connect("meta_clicked", this, "_warning_clicked"); + code_editor->connect_compat("error_pressed", this, "_error_pressed"); + code_editor->connect_compat("show_warnings_panel", this, "_show_warnings_panel"); + warnings_panel->connect_compat("meta_clicked", this, "_warning_clicked"); update_settings(); @@ -1804,11 +1811,11 @@ ScriptTextEditor::ScriptTextEditor() { code_editor->get_text_edit()->set_select_identifiers_on_hover(true); code_editor->get_text_edit()->set_context_menu_enabled(false); - code_editor->get_text_edit()->connect("gui_input", this, "_text_edit_gui_input"); + code_editor->get_text_edit()->connect_compat("gui_input", this, "_text_edit_gui_input"); context_menu = memnew(PopupMenu); add_child(context_menu); - context_menu->connect("id_pressed", this, "_edit_option"); + context_menu->connect_compat("id_pressed", this, "_edit_option"); context_menu->set_hide_on_window_lose_focus(true); color_panel = memnew(PopupPanel); @@ -1816,7 +1823,7 @@ ScriptTextEditor::ScriptTextEditor() { color_picker = memnew(ColorPicker); color_picker->set_deferred_mode(true); color_panel->add_child(color_picker); - color_picker->connect("color_changed", this, "_color_changed"); + color_picker->connect_compat("color_changed", this, "_color_changed"); // get default color picker mode from editor settings int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode"); @@ -1857,7 +1864,7 @@ ScriptTextEditor::ScriptTextEditor() { edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/convert_indent_to_spaces"), EDIT_CONVERT_INDENT_TO_SPACES); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/convert_indent_to_tabs"), EDIT_CONVERT_INDENT_TO_TABS); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/auto_indent"), EDIT_AUTO_INDENT); - edit_menu->get_popup()->connect("id_pressed", this, "_edit_option"); + edit_menu->get_popup()->connect_compat("id_pressed", this, "_edit_option"); edit_menu->get_popup()->add_separator(); PopupMenu *convert_case = memnew(PopupMenu); @@ -1867,7 +1874,7 @@ ScriptTextEditor::ScriptTextEditor() { convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/convert_to_uppercase", TTR("Uppercase"), KEY_MASK_SHIFT | KEY_F4), EDIT_TO_UPPERCASE); convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/convert_to_lowercase", TTR("Lowercase"), KEY_MASK_SHIFT | KEY_F5), EDIT_TO_LOWERCASE); convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/capitalize", TTR("Capitalize"), KEY_MASK_SHIFT | KEY_F6), EDIT_CAPITALIZE); - convert_case->connect("id_pressed", this, "_edit_option"); + convert_case->connect_compat("id_pressed", this, "_edit_option"); highlighters[TTR("Standard")] = NULL; highlighter_menu = memnew(PopupMenu); @@ -1875,7 +1882,7 @@ ScriptTextEditor::ScriptTextEditor() { edit_menu->get_popup()->add_child(highlighter_menu); edit_menu->get_popup()->add_submenu_item(TTR("Syntax Highlighter"), "highlighter_menu"); highlighter_menu->add_radio_check_item(TTR("Standard")); - highlighter_menu->connect("id_pressed", this, "_change_syntax_highlighter"); + highlighter_menu->connect_compat("id_pressed", this, "_change_syntax_highlighter"); search_menu = memnew(MenuButton); edit_hb->add_child(search_menu); @@ -1891,7 +1898,7 @@ ScriptTextEditor::ScriptTextEditor() { search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace_in_files"), REPLACE_IN_FILES); search_menu->get_popup()->add_separator(); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/contextual_help"), HELP_CONTEXTUAL); - search_menu->get_popup()->connect("id_pressed", this, "_edit_option"); + search_menu->get_popup()->connect_compat("id_pressed", this, "_edit_option"); edit_hb->add_child(edit_menu); @@ -1899,7 +1906,7 @@ ScriptTextEditor::ScriptTextEditor() { edit_hb->add_child(goto_menu); goto_menu->set_text(TTR("Go To")); goto_menu->set_switch_on_hover(true); - goto_menu->get_popup()->connect("id_pressed", this, "_edit_option"); + goto_menu->get_popup()->connect_compat("id_pressed", this, "_edit_option"); goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_function"), SEARCH_LOCATE_FUNCTION); goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_line"), SEARCH_GOTO_LINE); @@ -1910,20 +1917,20 @@ ScriptTextEditor::ScriptTextEditor() { goto_menu->get_popup()->add_child(bookmarks_menu); goto_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "Bookmarks"); _update_bookmark_list(); - bookmarks_menu->connect("about_to_show", this, "_update_bookmark_list"); - bookmarks_menu->connect("index_pressed", this, "_bookmark_item_pressed"); + bookmarks_menu->connect_compat("about_to_show", this, "_update_bookmark_list"); + bookmarks_menu->connect_compat("index_pressed", this, "_bookmark_item_pressed"); breakpoints_menu = memnew(PopupMenu); breakpoints_menu->set_name("Breakpoints"); goto_menu->get_popup()->add_child(breakpoints_menu); goto_menu->get_popup()->add_submenu_item(TTR("Breakpoints"), "Breakpoints"); _update_breakpoint_list(); - breakpoints_menu->connect("about_to_show", this, "_update_breakpoint_list"); - breakpoints_menu->connect("index_pressed", this, "_breakpoint_item_pressed"); + breakpoints_menu->connect_compat("about_to_show", this, "_update_breakpoint_list"); + breakpoints_menu->connect_compat("index_pressed", this, "_breakpoint_item_pressed"); quick_open = memnew(ScriptEditorQuickOpen); add_child(quick_open); - quick_open->connect("goto_line", this, "_goto_line"); + quick_open->connect_compat("goto_line", this, "_goto_line"); goto_line_dialog = memnew(GotoLineDialog); add_child(goto_line_dialog); diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h index 359f0b0019..e23160d029 100644 --- a/editor/plugins/script_text_editor.h +++ b/editor/plugins/script_text_editor.h @@ -220,7 +220,7 @@ public: virtual void reload(bool p_soft); virtual void get_breakpoints(List<int> *p_breakpoints); - virtual void add_callback(const String &p_function, PoolStringArray p_args); + virtual void add_callback(const String &p_function, PackedStringArray p_args); virtual void update_settings(); virtual bool show_members_overview(); diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index a19f0b4975..6c20483cf6 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -607,8 +607,8 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { shader_editor->add_constant_override("separation", 0); shader_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE); - shader_editor->connect("script_changed", this, "apply_shaders"); - EditorSettings::get_singleton()->connect("settings_changed", this, "_editor_settings_changed"); + shader_editor->connect_compat("script_changed", this, "apply_shaders"); + EditorSettings::get_singleton()->connect_compat("settings_changed", this, "_editor_settings_changed"); shader_editor->get_text_edit()->set_callhint_settings( EditorSettings::get_singleton()->get("text_editor/completion/put_callhint_tooltip_below_current_line"), @@ -616,13 +616,13 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { shader_editor->get_text_edit()->set_select_identifiers_on_hover(true); shader_editor->get_text_edit()->set_context_menu_enabled(false); - shader_editor->get_text_edit()->connect("gui_input", this, "_text_edit_gui_input"); + shader_editor->get_text_edit()->connect_compat("gui_input", this, "_text_edit_gui_input"); shader_editor->update_editor_settings(); context_menu = memnew(PopupMenu); add_child(context_menu); - context_menu->connect("id_pressed", this, "_menu_option"); + context_menu->connect_compat("id_pressed", this, "_menu_option"); context_menu->set_hide_on_window_lose_focus(true); VBoxContainer *main_container = memnew(VBoxContainer); @@ -650,7 +650,7 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/clone_down"), EDIT_CLONE_DOWN); edit_menu->get_popup()->add_separator(); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/complete_symbol"), EDIT_COMPLETE); - edit_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + edit_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); search_menu = memnew(MenuButton); search_menu->set_text(TTR("Search")); @@ -660,12 +660,12 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_previous"), SEARCH_FIND_PREV); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/replace"), SEARCH_REPLACE); - search_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + search_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); MenuButton *goto_menu = memnew(MenuButton); goto_menu->set_text(TTR("Go To")); goto_menu->set_switch_on_hover(true); - goto_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + goto_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_line"), SEARCH_GOTO_LINE); goto_menu->get_popup()->add_separator(); @@ -675,14 +675,14 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { goto_menu->get_popup()->add_child(bookmarks_menu); goto_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "Bookmarks"); _update_bookmark_list(); - bookmarks_menu->connect("about_to_show", this, "_update_bookmark_list"); - bookmarks_menu->connect("index_pressed", this, "_bookmark_item_pressed"); + bookmarks_menu->connect_compat("about_to_show", this, "_update_bookmark_list"); + bookmarks_menu->connect_compat("index_pressed", this, "_bookmark_item_pressed"); help_menu = memnew(MenuButton); help_menu->set_text(TTR("Help")); help_menu->set_switch_on_hover(true); help_menu->get_popup()->add_icon_item(p_node->get_gui_base()->get_icon("Instance", "EditorIcons"), TTR("Online Docs"), HELP_DOCS); - help_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + help_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); add_child(main_container); main_container->add_child(hbc); @@ -705,11 +705,11 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { dl->set_text(TTR("This shader has been modified on on disk.\nWhat action should be taken?")); vbc->add_child(dl); - disk_changed->connect("confirmed", this, "_reload_shader_from_disk"); + disk_changed->connect_compat("confirmed", this, "_reload_shader_from_disk"); disk_changed->get_ok()->set_text(TTR("Reload")); disk_changed->add_button(TTR("Resave"), !OS::get_singleton()->get_swap_ok_cancel(), "resave"); - disk_changed->connect("custom_action", this, "save_external_data"); + disk_changed->connect_compat("custom_action", this, "save_external_data"); add_child(disk_changed); diff --git a/editor/plugins/skeleton_2d_editor_plugin.cpp b/editor/plugins/skeleton_2d_editor_plugin.cpp index dbe64f202d..d83a8ddf2d 100644 --- a/editor/plugins/skeleton_2d_editor_plugin.cpp +++ b/editor/plugins/skeleton_2d_editor_plugin.cpp @@ -110,7 +110,7 @@ Skeleton2DEditor::Skeleton2DEditor() { options->get_popup()->add_item(TTR("Set Bones to Rest Pose"), MENU_OPTION_SET_REST); options->set_switch_on_hover(true); - options->get_popup()->connect("id_pressed", this, "_menu_option"); + options->get_popup()->connect_compat("id_pressed", this, "_menu_option"); err_dialog = memnew(AcceptDialog); add_child(err_dialog); diff --git a/editor/plugins/skeleton_editor_plugin.cpp b/editor/plugins/skeleton_editor_plugin.cpp index 9101c64eab..43ba99317e 100644 --- a/editor/plugins/skeleton_editor_plugin.cpp +++ b/editor/plugins/skeleton_editor_plugin.cpp @@ -137,7 +137,7 @@ void SkeletonEditor::edit(Skeleton *p_node) { void SkeletonEditor::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - get_tree()->connect("node_removed", this, "_node_removed"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); } } @@ -164,7 +164,7 @@ SkeletonEditor::SkeletonEditor() { options->get_popup()->add_item(TTR("Create physical skeleton"), MENU_OPTION_CREATE_PHYSICAL_SKELETON); - options->get_popup()->connect("id_pressed", this, "_on_click_option"); + options->get_popup()->connect_compat("id_pressed", this, "_on_click_option"); options->hide(); } diff --git a/editor/plugins/skeleton_ik_editor_plugin.cpp b/editor/plugins/skeleton_ik_editor_plugin.cpp index eb6ad9498d..a09dcca279 100644 --- a/editor/plugins/skeleton_ik_editor_plugin.cpp +++ b/editor/plugins/skeleton_ik_editor_plugin.cpp @@ -93,7 +93,7 @@ SkeletonIKEditorPlugin::SkeletonIKEditorPlugin(EditorNode *p_node) { play_btn->set_text(TTR("Play IK")); play_btn->set_toggle_mode(true); play_btn->hide(); - play_btn->connect("pressed", this, "_play"); + play_btn->connect_compat("pressed", this, "_play"); add_control_to_container(CONTAINER_SPATIAL_EDITOR_MENU, play_btn); skeleton_ik = NULL; } diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index e916f6f028..4c8a0590fd 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -36,12 +36,12 @@ #include "core/print_string.h" #include "core/project_settings.h" #include "core/sort_array.h" +#include "editor/debugger/editor_debugger_node.h" #include "editor/editor_node.h" #include "editor/editor_scale.h" #include "editor/editor_settings.h" #include "editor/plugins/animation_player_editor_plugin.h" #include "editor/plugins/script_editor_plugin.h" -#include "editor/script_editor_debugger.h" #include "editor/spatial_editor_gizmos.h" #include "scene/3d/camera.h" #include "scene/3d/collision_shape.h" @@ -2147,6 +2147,8 @@ void SpatialEditorViewport::_notification(int p_what) { set_process(visible); if (visible) { + orthogonal = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_ORTHOGONAL)); + _update_name(); _update_camera(0); } else { set_freelook_active(false); @@ -2185,10 +2187,10 @@ void SpatialEditorViewport::_notification(int p_what) { if (cam != NULL && cam != previewing) { //then switch the viewport's camera to the scene's viewport camera if (previewing != NULL) { - previewing->disconnect("tree_exited", this, "_preview_exited_scene"); + previewing->disconnect_compat("tree_exited", this, "_preview_exited_scene"); } previewing = cam; - previewing->connect("tree_exited", this, "_preview_exited_scene"); + previewing->connect_compat("tree_exited", this, "_preview_exited_scene"); VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), cam->get_camera()); surface->update(); } @@ -2329,12 +2331,12 @@ void SpatialEditorViewport::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - surface->connect("draw", this, "_draw"); - surface->connect("gui_input", this, "_sinput"); - surface->connect("mouse_entered", this, "_surface_mouse_enter"); - surface->connect("mouse_exited", this, "_surface_mouse_exit"); - surface->connect("focus_entered", this, "_surface_focus_enter"); - surface->connect("focus_exited", this, "_surface_focus_exit"); + surface->connect_compat("draw", this, "_draw"); + surface->connect_compat("gui_input", this, "_sinput"); + surface->connect_compat("mouse_entered", this, "_surface_mouse_enter"); + surface->connect_compat("mouse_exited", this, "_surface_mouse_exit"); + surface->connect_compat("focus_entered", this, "_surface_focus_enter"); + surface->connect_compat("focus_exited", this, "_surface_focus_exit"); _init_gizmo_instance(index); } @@ -2835,10 +2837,10 @@ void SpatialEditorViewport::_menu_option(int p_option) { void SpatialEditorViewport::_preview_exited_scene() { - preview_camera->disconnect("toggled", this, "_toggle_camera_preview"); + preview_camera->disconnect_compat("toggled", this, "_toggle_camera_preview"); preview_camera->set_pressed(false); _toggle_camera_preview(false); - preview_camera->connect("toggled", this, "_toggle_camera_preview"); + preview_camera->connect_compat("toggled", this, "_toggle_camera_preview"); view_menu->show(); } @@ -2901,7 +2903,7 @@ void SpatialEditorViewport::_toggle_camera_preview(bool p_activate) { if (!p_activate) { - previewing->disconnect("tree_exiting", this, "_preview_exited_scene"); + previewing->disconnect_compat("tree_exiting", this, "_preview_exited_scene"); previewing = NULL; VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), camera->get_camera()); //restore if (!preview) @@ -2912,7 +2914,7 @@ void SpatialEditorViewport::_toggle_camera_preview(bool p_activate) { } else { previewing = preview; - previewing->connect("tree_exiting", this, "_preview_exited_scene"); + previewing->connect_compat("tree_exiting", this, "_preview_exited_scene"); VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), preview->get_camera()); //replace view_menu->set_disabled(true); surface->update(); @@ -2923,7 +2925,7 @@ void SpatialEditorViewport::_toggle_cinema_preview(bool p_activate) { previewing_cinema = p_activate; if (!previewing_cinema) { if (previewing != NULL) - previewing->disconnect("tree_exited", this, "_preview_exited_scene"); + previewing->disconnect_compat("tree_exited", this, "_preview_exited_scene"); previewing = NULL; VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), camera->get_camera()); //restore @@ -3108,14 +3110,14 @@ void SpatialEditorViewport::set_state(const Dictionary &p_state) { view_menu->get_popup()->set_item_checked(idx, previewing_cinema); } - if (preview_camera->is_connected("toggled", this, "_toggle_camera_preview")) { - preview_camera->disconnect("toggled", this, "_toggle_camera_preview"); + if (preview_camera->is_connected_compat("toggled", this, "_toggle_camera_preview")) { + preview_camera->disconnect_compat("toggled", this, "_toggle_camera_preview"); } if (p_state.has("previewing")) { Node *pv = EditorNode::get_singleton()->get_edited_scene()->get_node(p_state["previewing"]); if (Object::cast_to<Camera>(pv)) { previewing = Object::cast_to<Camera>(pv); - previewing->connect("tree_exiting", this, "_preview_exited_scene"); + previewing->connect_compat("tree_exiting", this, "_preview_exited_scene"); VS::get_singleton()->viewport_attach_camera(viewport->get_viewport_rid(), previewing->get_camera()); //replace view_menu->set_disabled(true); surface->update(); @@ -3123,7 +3125,7 @@ void SpatialEditorViewport::set_state(const Dictionary &p_state) { preview_camera->show(); } } - preview_camera->connect("toggled", this, "_toggle_camera_preview"); + preview_camera->connect_compat("toggled", this, "_toggle_camera_preview"); } Dictionary SpatialEditorViewport::get_state() const { @@ -3419,9 +3421,9 @@ bool SpatialEditorViewport::_create_instance(Node *parent, String &path, const P editor_data->get_undo_redo().add_undo_method(parent, "remove_child", instanced_scene); String new_name = parent->validate_child_name(instanced_scene); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed, "live_debug_instance_node", editor->get_edited_scene()->get_path_to(parent), path, new_name); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name)); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_instance_node", editor->get_edited_scene()->get_path_to(parent), path, new_name); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name)); Transform global_transform; Spatial *parent_spatial = Object::cast_to<Spatial>(parent); @@ -3682,8 +3684,8 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/focus_selection"), VIEW_CENTER_TO_SELECTION); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/align_transform_with_view"), VIEW_ALIGN_TRANSFORM_WITH_VIEW); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/align_rotation_with_view"), VIEW_ALIGN_ROTATION_WITH_VIEW); - view_menu->get_popup()->connect("id_pressed", this, "_menu_option"); - display_submenu->connect("id_pressed", this, "_menu_option"); + view_menu->get_popup()->connect_compat("id_pressed", this, "_menu_option"); + display_submenu->connect_compat("id_pressed", this, "_menu_option"); view_menu->set_disable_shortcuts(true); if (OS::get_singleton()->get_current_video_driver() == OS::VIDEO_DRIVER_GLES2) { @@ -3718,7 +3720,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed vbox->add_child(preview_camera); preview_camera->set_h_size_flags(0); preview_camera->hide(); - preview_camera->connect("toggled", this, "_toggle_camera_preview"); + preview_camera->connect_compat("toggled", this, "_toggle_camera_preview"); previewing = NULL; gizmo_scale = 1.0; @@ -3771,8 +3773,8 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed selection_menu = memnew(PopupMenu); add_child(selection_menu); selection_menu->set_custom_minimum_size(Size2(100, 0) * EDSCALE); - selection_menu->connect("id_pressed", this, "_selection_result_pressed"); - selection_menu->connect("popup_hide", this, "_selection_menu_hide"); + selection_menu->connect_compat("id_pressed", this, "_selection_result_pressed"); + selection_menu->connect_compat("popup_hide", this, "_selection_menu_hide"); if (p_index == 0) { view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(VIEW_AUDIO_LISTENER), true); @@ -3782,7 +3784,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed name = ""; _update_name(); - EditorSettings::get_singleton()->connect("settings_changed", this, "update_transform_gizmo_view"); + EditorSettings::get_singleton()->connect_compat("settings_changed", this, "update_transform_gizmo_view"); } ////////////////////////////////////////////////////////////// @@ -4495,7 +4497,7 @@ void SpatialEditor::_menu_item_toggled(bool pressed, int p_option) { } break; case MENU_TOOL_OVERRIDE_CAMERA: { - ScriptEditorDebugger *const debugger = ScriptEditor::get_singleton()->get_debugger(); + EditorDebuggerNode *const debugger = EditorDebuggerNode::get_singleton(); if (pressed) { using Override = ScriptEditorDebugger::CameraOverride; @@ -4552,7 +4554,7 @@ void SpatialEditor::_update_camera_override_viewport(Object *p_viewport) { if (!current_viewport) return; - ScriptEditorDebugger *const debugger = ScriptEditor::get_singleton()->get_debugger(); + EditorDebuggerNode *const debugger = EditorDebuggerNode::get_singleton(); camera_override_viewport_id = current_viewport->index; if (debugger->get_camera_override() >= ScriptEditorDebugger::OVERRIDE_3D_1) { @@ -5181,8 +5183,8 @@ void SpatialEditor::_update_gizmos_menu_theme() { void SpatialEditor::_init_grid() { - PoolVector<Color> grid_colors[3]; - PoolVector<Vector3> grid_points[3]; + Vector<Color> grid_colors[3]; + Vector<Vector3> grid_points[3]; Color primary_grid_color = EditorSettings::get_singleton()->get("editors/3d/primary_grid_color"); Color secondary_grid_color = EditorSettings::get_singleton()->get("editors/3d/secondary_grid_color"); @@ -5469,12 +5471,12 @@ void SpatialEditor::_notification(int p_what) { _refresh_menu_icons(); - get_tree()->connect("node_removed", this, "_node_removed"); - EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor()->connect("node_changed", this, "_refresh_menu_icons"); - editor_selection->connect("selection_changed", this, "_refresh_menu_icons"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); + EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor()->connect_compat("node_changed", this, "_refresh_menu_icons"); + editor_selection->connect_compat("selection_changed", this, "_refresh_menu_icons"); - editor->connect("stop_pressed", this, "_update_camera_override_button", make_binds(false)); - editor->connect("play_pressed", this, "_update_camera_override_button", make_binds(true)); + editor->connect_compat("stop_pressed", this, "_update_camera_override_button", make_binds(false)); + editor->connect_compat("play_pressed", this, "_update_camera_override_button", make_binds(true)); } else if (p_what == NOTIFICATION_ENTER_TREE) { _register_all_gizmos(); @@ -5511,7 +5513,7 @@ void SpatialEditor::_notification(int p_what) { _init_grid(); } else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { if (!is_visible() && tool_option_button[TOOL_OPT_OVERRIDE_CAMERA]->is_pressed()) { - ScriptEditorDebugger *debugger = ScriptEditor::get_singleton()->get_debugger(); + EditorDebuggerNode *debugger = EditorDebuggerNode::get_singleton(); debugger->set_camera_override(ScriptEditorDebugger::OVERRIDE_NONE); tool_option_button[TOOL_OPT_OVERRIDE_CAMERA]->set_pressed(false); @@ -5730,7 +5732,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_button[TOOL_MODE_SELECT]->set_flat(true); tool_button[TOOL_MODE_SELECT]->set_pressed(true); button_binds.write[0] = MENU_TOOL_SELECT; - tool_button[TOOL_MODE_SELECT]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_MODE_SELECT]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_MODE_SELECT]->set_shortcut(ED_SHORTCUT("spatial_editor/tool_select", TTR("Select Mode"), KEY_Q)); tool_button[TOOL_MODE_SELECT]->set_tooltip(keycode_get_string(KEY_MASK_CMD) + TTR("Drag: Rotate\nAlt+Drag: Move\nAlt+RMB: Depth list selection")); @@ -5741,7 +5743,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_button[TOOL_MODE_MOVE]->set_toggle_mode(true); tool_button[TOOL_MODE_MOVE]->set_flat(true); button_binds.write[0] = MENU_TOOL_MOVE; - tool_button[TOOL_MODE_MOVE]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_MODE_MOVE]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_MODE_MOVE]->set_shortcut(ED_SHORTCUT("spatial_editor/tool_move", TTR("Move Mode"), KEY_W)); tool_button[TOOL_MODE_ROTATE] = memnew(ToolButton); @@ -5749,7 +5751,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_button[TOOL_MODE_ROTATE]->set_toggle_mode(true); tool_button[TOOL_MODE_ROTATE]->set_flat(true); button_binds.write[0] = MENU_TOOL_ROTATE; - tool_button[TOOL_MODE_ROTATE]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_MODE_ROTATE]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_MODE_ROTATE]->set_shortcut(ED_SHORTCUT("spatial_editor/tool_rotate", TTR("Rotate Mode"), KEY_E)); tool_button[TOOL_MODE_SCALE] = memnew(ToolButton); @@ -5757,7 +5759,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_button[TOOL_MODE_SCALE]->set_toggle_mode(true); tool_button[TOOL_MODE_SCALE]->set_flat(true); button_binds.write[0] = MENU_TOOL_SCALE; - tool_button[TOOL_MODE_SCALE]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_MODE_SCALE]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_MODE_SCALE]->set_shortcut(ED_SHORTCUT("spatial_editor/tool_scale", TTR("Scale Mode"), KEY_R)); hbc_menu->add_child(memnew(VSeparator)); @@ -5767,31 +5769,31 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_button[TOOL_MODE_LIST_SELECT]->set_toggle_mode(true); tool_button[TOOL_MODE_LIST_SELECT]->set_flat(true); button_binds.write[0] = MENU_TOOL_LIST_SELECT; - tool_button[TOOL_MODE_LIST_SELECT]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_MODE_LIST_SELECT]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_MODE_LIST_SELECT]->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode).")); tool_button[TOOL_LOCK_SELECTED] = memnew(ToolButton); hbc_menu->add_child(tool_button[TOOL_LOCK_SELECTED]); button_binds.write[0] = MENU_LOCK_SELECTED; - tool_button[TOOL_LOCK_SELECTED]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_LOCK_SELECTED]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_LOCK_SELECTED]->set_tooltip(TTR("Lock the selected object in place (can't be moved).")); tool_button[TOOL_UNLOCK_SELECTED] = memnew(ToolButton); hbc_menu->add_child(tool_button[TOOL_UNLOCK_SELECTED]); button_binds.write[0] = MENU_UNLOCK_SELECTED; - tool_button[TOOL_UNLOCK_SELECTED]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_UNLOCK_SELECTED]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_UNLOCK_SELECTED]->set_tooltip(TTR("Unlock the selected object (can be moved).")); tool_button[TOOL_GROUP_SELECTED] = memnew(ToolButton); hbc_menu->add_child(tool_button[TOOL_GROUP_SELECTED]); button_binds.write[0] = MENU_GROUP_SELECTED; - tool_button[TOOL_GROUP_SELECTED]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_GROUP_SELECTED]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_GROUP_SELECTED]->set_tooltip(TTR("Makes sure the object's children are not selectable.")); tool_button[TOOL_UNGROUP_SELECTED] = memnew(ToolButton); hbc_menu->add_child(tool_button[TOOL_UNGROUP_SELECTED]); button_binds.write[0] = MENU_UNGROUP_SELECTED; - tool_button[TOOL_UNGROUP_SELECTED]->connect("pressed", this, "_menu_item_pressed", button_binds); + tool_button[TOOL_UNGROUP_SELECTED]->connect_compat("pressed", this, "_menu_item_pressed", button_binds); tool_button[TOOL_UNGROUP_SELECTED]->set_tooltip(TTR("Restores the object's children's ability to be selected.")); hbc_menu->add_child(memnew(VSeparator)); @@ -5801,7 +5803,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_toggle_mode(true); tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_flat(true); button_binds.write[0] = MENU_TOOL_LOCAL_COORDS; - tool_option_button[TOOL_OPT_LOCAL_COORDS]->connect("toggled", this, "_menu_item_toggled", button_binds); + tool_option_button[TOOL_OPT_LOCAL_COORDS]->connect_compat("toggled", this, "_menu_item_toggled", button_binds); tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_shortcut(ED_SHORTCUT("spatial_editor/local_coords", TTR("Use Local Space"), KEY_T)); tool_option_button[TOOL_OPT_USE_SNAP] = memnew(ToolButton); @@ -5809,7 +5811,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_option_button[TOOL_OPT_USE_SNAP]->set_toggle_mode(true); tool_option_button[TOOL_OPT_USE_SNAP]->set_flat(true); button_binds.write[0] = MENU_TOOL_USE_SNAP; - tool_option_button[TOOL_OPT_USE_SNAP]->connect("toggled", this, "_menu_item_toggled", button_binds); + tool_option_button[TOOL_OPT_USE_SNAP]->connect_compat("toggled", this, "_menu_item_toggled", button_binds); tool_option_button[TOOL_OPT_USE_SNAP]->set_shortcut(ED_SHORTCUT("spatial_editor/snap", TTR("Use Snap"), KEY_Y)); hbc_menu->add_child(memnew(VSeparator)); @@ -5820,7 +5822,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { tool_option_button[TOOL_OPT_OVERRIDE_CAMERA]->set_flat(true); tool_option_button[TOOL_OPT_OVERRIDE_CAMERA]->set_disabled(true); button_binds.write[0] = MENU_TOOL_OVERRIDE_CAMERA; - tool_option_button[TOOL_OPT_OVERRIDE_CAMERA]->connect("toggled", this, "_menu_item_toggled", button_binds); + tool_option_button[TOOL_OPT_OVERRIDE_CAMERA]->connect_compat("toggled", this, "_menu_item_toggled", button_binds); _update_camera_override_button(false); hbc_menu->add_child(memnew(VSeparator)); @@ -5857,7 +5859,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { p->add_separator(); p->add_shortcut(ED_SHORTCUT("spatial_editor/configure_snap", TTR("Configure Snap...")), MENU_TRANSFORM_CONFIGURE_SNAP); - p->connect("id_pressed", this, "_menu_item_pressed"); + p->connect_compat("id_pressed", this, "_menu_item_pressed"); view_menu = memnew(MenuButton); view_menu->set_text(TTR("View")); @@ -5889,13 +5891,13 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { p->set_item_checked(p->get_item_index(MENU_VIEW_ORIGIN), true); p->set_item_checked(p->get_item_index(MENU_VIEW_GRID), true); - p->connect("id_pressed", this, "_menu_item_pressed"); + p->connect_compat("id_pressed", this, "_menu_item_pressed"); gizmos_menu = memnew(PopupMenu); p->add_child(gizmos_menu); gizmos_menu->set_name("GizmosMenu"); gizmos_menu->set_hide_on_checkable_item_selection(false); - gizmos_menu->connect("id_pressed", this, "_menu_gizmo_toggled"); + gizmos_menu->connect_compat("id_pressed", this, "_menu_gizmo_toggled"); /* REST OF MENU */ @@ -5912,8 +5914,8 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { for (uint32_t i = 0; i < VIEWPORTS_COUNT; i++) { viewports[i] = memnew(SpatialEditorViewport(this, editor, i)); - viewports[i]->connect("toggle_maximize_view", this, "_toggle_maximize_view"); - viewports[i]->connect("clicked", this, "_update_camera_override_viewport"); + viewports[i]->connect_compat("toggle_maximize_view", this, "_toggle_maximize_view"); + viewports[i]->connect_compat("clicked", this, "_update_camera_override_viewport"); viewports[i]->assign_pending_data_pointers(preview_node, &preview_bounds, accept); viewport_base->add_child(viewports[i]); } @@ -6028,7 +6030,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { xform_type->add_item(TTR("Post")); xform_vbc->add_child(xform_type); - xform_dialog->connect("confirmed", this, "_xform_dialog_action"); + xform_dialog->connect_compat("confirmed", this, "_xform_dialog_action"); scenario_debug = VisualServer::SCENARIO_DEBUG_DISABLED; @@ -6040,7 +6042,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { EDITOR_DEF("editors/3d/manipulator_gizmo_size", 80); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "editors/3d/manipulator_gizmo_size", PROPERTY_HINT_RANGE, "16,1024,1")); EDITOR_DEF("editors/3d/manipulator_gizmo_opacity", 0.4); - EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::REAL, "editors/3d/manipulator_gizmo_opacity", PROPERTY_HINT_RANGE, "0,1,0.01")); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::FLOAT, "editors/3d/manipulator_gizmo_opacity", PROPERTY_HINT_RANGE, "0,1,0.01")); over_gizmo_handle = -1; } @@ -6182,7 +6184,7 @@ SpatialEditorPlugin::SpatialEditorPlugin(EditorNode *p_node) { editor->get_viewport()->add_child(spatial_editor); spatial_editor->hide(); - spatial_editor->connect("transform_key_request", editor->get_inspector_dock(), "_transform_keyed"); + spatial_editor->connect_compat("transform_key_request", editor->get_inspector_dock(), "_transform_keyed"); } SpatialEditorPlugin::~SpatialEditorPlugin() { diff --git a/editor/plugins/sprite_editor_plugin.cpp b/editor/plugins/sprite_editor_plugin.cpp index 2736bbfd3a..c35afa0644 100644 --- a/editor/plugins/sprite_editor_plugin.cpp +++ b/editor/plugins/sprite_editor_plugin.cpp @@ -358,13 +358,13 @@ void SpriteEditor::_convert_to_polygon_2d_node() { for (int i = 0; i < computed_outline_lines.size(); i++) total_point_count += computed_outline_lines[i].size(); - PoolVector2Array polygon; + PackedVector2Array polygon; polygon.resize(total_point_count); - PoolVector2Array::Write polygon_write = polygon.write(); + Vector2 *polygon_write = polygon.ptrw(); - PoolVector2Array uvs; + PackedVector2Array uvs; uvs.resize(total_point_count); - PoolVector2Array::Write uvs_write = uvs.write(); + Vector2 *uvs_write = uvs.ptrw(); int current_point_index = 0; @@ -376,9 +376,9 @@ void SpriteEditor::_convert_to_polygon_2d_node() { Vector<Vector2> outline = computed_outline_lines[i]; Vector<Vector2> uv_outline = outline_lines[i]; - PoolIntArray pia; + PackedInt32Array pia; pia.resize(outline.size()); - PoolIntArray::Write pia_write = pia.write(); + int *pia_write = pia.ptrw(); for (int pi = 0; pi < outline.size(); pi++) { polygon_write[current_point_index] = outline[pi]; @@ -442,9 +442,9 @@ void SpriteEditor::_create_light_occluder_2d_node() { Ref<OccluderPolygon2D> polygon; polygon.instance(); - PoolVector2Array a; + PackedVector2Array a; a.resize(outline.size()); - PoolVector2Array::Write aw = a.write(); + Vector2 *aw = a.ptrw(); for (int io = 0; io < outline.size(); io++) { aw[io] = outline[io]; } @@ -526,7 +526,7 @@ SpriteEditor::SpriteEditor() { options->get_popup()->add_item(TTR("Create LightOccluder2D Sibling"), MENU_OPTION_CREATE_LIGHT_OCCLUDER_2D); options->set_switch_on_hover(true); - options->get_popup()->connect("id_pressed", this, "_menu_option"); + options->get_popup()->connect_compat("id_pressed", this, "_menu_option"); err_dialog = memnew(AcceptDialog); add_child(err_dialog); @@ -542,9 +542,9 @@ SpriteEditor::SpriteEditor() { scroll->set_enable_v_scroll(true); vb->add_margin_child(TTR("Preview:"), scroll, true); debug_uv = memnew(Control); - debug_uv->connect("draw", this, "_debug_uv_draw"); + debug_uv->connect_compat("draw", this, "_debug_uv_draw"); scroll->add_child(debug_uv); - debug_uv_dialog->connect("confirmed", this, "_create_node"); + debug_uv_dialog->connect_compat("confirmed", this, "_create_node"); HBoxContainer *hb = memnew(HBoxContainer); hb->add_child(memnew(Label(TTR("Simplification: ")))); @@ -573,7 +573,7 @@ SpriteEditor::SpriteEditor() { hb->add_spacer(); update_preview = memnew(Button); update_preview->set_text(TTR("Update Preview")); - update_preview->connect("pressed", this, "_update_mesh_data"); + update_preview->connect_compat("pressed", this, "_update_mesh_data"); hb->add_child(update_preview); vb->add_margin_child(TTR("Settings:"), hb); diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp index 2d756af213..c80ba873fb 100644 --- a/editor/plugins/sprite_frames_editor_plugin.cpp +++ b/editor/plugins/sprite_frames_editor_plugin.cpp @@ -234,7 +234,7 @@ void SpriteFramesEditor::_notification(int p_what) { _delete->set_icon(get_icon("Remove", "EditorIcons")); new_anim->set_icon(get_icon("New", "EditorIcons")); remove_anim->set_icon(get_icon("Remove", "EditorIcons")); - FALLTHROUGH; + [[fallthrough]]; } case NOTIFICATION_THEME_CHANGED: { splite_sheet_scroll->add_style_override("bg", get_stylebox("bg", "Tree")); @@ -245,7 +245,7 @@ void SpriteFramesEditor::_notification(int p_what) { } } -void SpriteFramesEditor::_file_load_request(const PoolVector<String> &p_path, int p_at_pos) { +void SpriteFramesEditor::_file_load_request(const Vector<String> &p_path, int p_at_pos) { ERR_FAIL_COND(!frames->has_animation(edited_anim)); @@ -852,7 +852,7 @@ void SpriteFramesEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da if (String(d["type"]) == "files") { - PoolVector<String> files = d["files"]; + Vector<String> files = d["files"]; _file_load_request(files, at_pos); } @@ -905,19 +905,19 @@ SpriteFramesEditor::SpriteFramesEditor() { new_anim = memnew(ToolButton); new_anim->set_tooltip(TTR("New Animation")); hbc_animlist->add_child(new_anim); - new_anim->connect("pressed", this, "_animation_add"); + new_anim->connect_compat("pressed", this, "_animation_add"); remove_anim = memnew(ToolButton); remove_anim->set_tooltip(TTR("Remove Animation")); hbc_animlist->add_child(remove_anim); - remove_anim->connect("pressed", this, "_animation_remove"); + remove_anim->connect_compat("pressed", this, "_animation_remove"); animations = memnew(Tree); sub_vb->add_child(animations); animations->set_v_size_flags(SIZE_EXPAND_FILL); animations->set_hide_root(true); - animations->connect("cell_selected", this, "_animation_select"); - animations->connect("item_edited", this, "_animation_name_edited"); + animations->connect_compat("cell_selected", this, "_animation_select"); + animations->connect_compat("item_edited", this, "_animation_name_edited"); animations->set_allow_reselect(true); anim_speed = memnew(SpinBox); @@ -925,12 +925,12 @@ SpriteFramesEditor::SpriteFramesEditor() { anim_speed->set_min(0); anim_speed->set_max(100); anim_speed->set_step(0.01); - anim_speed->connect("value_changed", this, "_animation_fps_changed"); + anim_speed->connect_compat("value_changed", this, "_animation_fps_changed"); anim_loop = memnew(CheckButton); anim_loop->set_text(TTR("Loop")); vbc_animlist->add_child(anim_loop); - anim_loop->connect("pressed", this, "_animation_loop_changed"); + anim_loop->connect_compat("pressed", this, "_animation_loop_changed"); VBoxContainer *vbc = memnew(VBoxContainer); add_child(vbc); @@ -1004,16 +1004,16 @@ SpriteFramesEditor::SpriteFramesEditor() { dialog = memnew(AcceptDialog); add_child(dialog); - load->connect("pressed", this, "_load_pressed"); - load_sheet->connect("pressed", this, "_open_sprite_sheet"); - _delete->connect("pressed", this, "_delete_pressed"); - copy->connect("pressed", this, "_copy_pressed"); - paste->connect("pressed", this, "_paste_pressed"); - empty->connect("pressed", this, "_empty_pressed"); - empty2->connect("pressed", this, "_empty2_pressed"); - move_up->connect("pressed", this, "_up_pressed"); - move_down->connect("pressed", this, "_down_pressed"); - file->connect("files_selected", this, "_file_load_request"); + load->connect_compat("pressed", this, "_load_pressed"); + load_sheet->connect_compat("pressed", this, "_open_sprite_sheet"); + _delete->connect_compat("pressed", this, "_delete_pressed"); + copy->connect_compat("pressed", this, "_copy_pressed"); + paste->connect_compat("pressed", this, "_paste_pressed"); + empty->connect_compat("pressed", this, "_empty_pressed"); + empty2->connect_compat("pressed", this, "_empty2_pressed"); + move_up->connect_compat("pressed", this, "_up_pressed"); + move_down->connect_compat("pressed", this, "_down_pressed"); + file->connect_compat("files_selected", this, "_file_load_request"); loading_scene = false; sel = -1; @@ -1023,14 +1023,14 @@ SpriteFramesEditor::SpriteFramesEditor() { delete_dialog = memnew(ConfirmationDialog); add_child(delete_dialog); - delete_dialog->connect("confirmed", this, "_animation_remove_confirmed"); + delete_dialog->connect_compat("confirmed", this, "_animation_remove_confirmed"); split_sheet_dialog = memnew(ConfirmationDialog); add_child(split_sheet_dialog); VBoxContainer *split_sheet_vb = memnew(VBoxContainer); split_sheet_dialog->add_child(split_sheet_vb); split_sheet_dialog->set_title(TTR("Select Frames")); - split_sheet_dialog->connect("confirmed", this, "_sheet_add_frames"); + split_sheet_dialog->connect_compat("confirmed", this, "_sheet_add_frames"); HBoxContainer *split_sheet_hb = memnew(HBoxContainer); @@ -1041,7 +1041,7 @@ SpriteFramesEditor::SpriteFramesEditor() { split_sheet_h->set_max(128); split_sheet_h->set_step(1); split_sheet_hb->add_child(split_sheet_h); - split_sheet_h->connect("value_changed", this, "_sheet_spin_changed"); + split_sheet_h->connect_compat("value_changed", this, "_sheet_spin_changed"); ss_label = memnew(Label(TTR("Vertical:"))); split_sheet_hb->add_child(ss_label); @@ -1050,13 +1050,13 @@ SpriteFramesEditor::SpriteFramesEditor() { split_sheet_v->set_max(128); split_sheet_v->set_step(1); split_sheet_hb->add_child(split_sheet_v); - split_sheet_v->connect("value_changed", this, "_sheet_spin_changed"); + split_sheet_v->connect_compat("value_changed", this, "_sheet_spin_changed"); split_sheet_hb->add_spacer(); Button *select_clear_all = memnew(Button); select_clear_all->set_text(TTR("Select/Clear All Frames")); - select_clear_all->connect("pressed", this, "_sheet_select_clear_all_frames"); + select_clear_all->connect_compat("pressed", this, "_sheet_select_clear_all_frames"); split_sheet_hb->add_child(select_clear_all); split_sheet_vb->add_child(split_sheet_hb); @@ -1064,8 +1064,8 @@ SpriteFramesEditor::SpriteFramesEditor() { split_sheet_preview = memnew(TextureRect); split_sheet_preview->set_expand(false); split_sheet_preview->set_mouse_filter(MOUSE_FILTER_PASS); - split_sheet_preview->connect("draw", this, "_sheet_preview_draw"); - split_sheet_preview->connect("gui_input", this, "_sheet_preview_input"); + split_sheet_preview->connect_compat("draw", this, "_sheet_preview_draw"); + split_sheet_preview->connect_compat("gui_input", this, "_sheet_preview_input"); splite_sheet_scroll = memnew(ScrollContainer); splite_sheet_scroll->set_enable_h_scroll(true); @@ -1083,7 +1083,7 @@ SpriteFramesEditor::SpriteFramesEditor() { file_split_sheet->set_title(TTR("Create Frames from Sprite Sheet")); file_split_sheet->set_mode(EditorFileDialog::MODE_OPEN_FILE); add_child(file_split_sheet); - file_split_sheet->connect("file_selected", this, "_prepare_sprite_sheet"); + file_split_sheet->connect_compat("file_selected", this, "_prepare_sprite_sheet"); } void SpriteFramesEditorPlugin::edit(Object *p_object) { diff --git a/editor/plugins/sprite_frames_editor_plugin.h b/editor/plugins/sprite_frames_editor_plugin.h index aa683605ed..1fa93b5c47 100644 --- a/editor/plugins/sprite_frames_editor_plugin.h +++ b/editor/plugins/sprite_frames_editor_plugin.h @@ -86,7 +86,7 @@ class SpriteFramesEditor : public HSplitContainer { void _load_pressed(); void _load_scene_pressed(); - void _file_load_request(const PoolVector<String> &p_path, int p_at_pos = -1); + void _file_load_request(const Vector<String> &p_path, int p_at_pos = -1); void _copy_pressed(); void _paste_pressed(); void _empty_pressed(); diff --git a/editor/plugins/style_box_editor_plugin.cpp b/editor/plugins/style_box_editor_plugin.cpp index eebcd567a4..a9936658c3 100644 --- a/editor/plugins/style_box_editor_plugin.cpp +++ b/editor/plugins/style_box_editor_plugin.cpp @@ -54,11 +54,11 @@ void EditorInspectorPluginStyleBox::parse_end() { void StyleBoxPreview::edit(const Ref<StyleBox> &p_stylebox) { if (stylebox.is_valid()) - stylebox->disconnect("changed", this, "_sb_changed"); + stylebox->disconnect_compat("changed", this, "_sb_changed"); stylebox = p_stylebox; if (p_stylebox.is_valid()) { preview->add_style_override("panel", stylebox); - stylebox->connect("changed", this, "_sb_changed"); + stylebox->connect_compat("changed", this, "_sb_changed"); } _sb_changed(); } @@ -91,7 +91,7 @@ StyleBoxPreview::StyleBoxPreview() { preview = memnew(Control); preview->set_custom_minimum_size(Size2(0, 150 * EDSCALE)); preview->set_clip_contents(true); - preview->connect("draw", this, "_redraw"); + preview->connect_compat("draw", this, "_redraw"); add_margin_child(TTR("Preview:"), preview); } diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index 69f1bcfa2e..a8b6d74c1f 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -185,7 +185,7 @@ void TextEditor::set_edited_resource(const RES &p_res) { code_editor->update_line_and_column(); } -void TextEditor::add_callback(const String &p_function, PoolStringArray p_args) { +void TextEditor::add_callback(const String &p_function, PackedStringArray p_args) { } void TextEditor::set_debugger_active(bool p_active) { @@ -633,19 +633,19 @@ TextEditor::TextEditor() { code_editor = memnew(CodeTextEditor); add_child(code_editor); code_editor->add_constant_override("separation", 0); - code_editor->connect("load_theme_settings", this, "_load_theme_settings"); - code_editor->connect("validate_script", this, "_validate_script"); + code_editor->connect_compat("load_theme_settings", this, "_load_theme_settings"); + code_editor->connect_compat("validate_script", this, "_validate_script"); code_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE); code_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL); update_settings(); code_editor->get_text_edit()->set_context_menu_enabled(false); - code_editor->get_text_edit()->connect("gui_input", this, "_text_edit_gui_input"); + code_editor->get_text_edit()->connect_compat("gui_input", this, "_text_edit_gui_input"); context_menu = memnew(PopupMenu); add_child(context_menu); - context_menu->connect("id_pressed", this, "_edit_option"); + context_menu->connect_compat("id_pressed", this, "_edit_option"); edit_hb = memnew(HBoxContainer); @@ -653,7 +653,7 @@ TextEditor::TextEditor() { edit_hb->add_child(search_menu); search_menu->set_text(TTR("Search")); search_menu->set_switch_on_hover(true); - search_menu->get_popup()->connect("id_pressed", this, "_edit_option"); + search_menu->get_popup()->connect_compat("id_pressed", this, "_edit_option"); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find"), SEARCH_FIND); search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/find_next"), SEARCH_FIND_NEXT); @@ -667,7 +667,7 @@ TextEditor::TextEditor() { edit_hb->add_child(edit_menu); edit_menu->set_text(TTR("Edit")); edit_menu->set_switch_on_hover(true); - edit_menu->get_popup()->connect("id_pressed", this, "_edit_option"); + edit_menu->get_popup()->connect_compat("id_pressed", this, "_edit_option"); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO); edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO); @@ -700,7 +700,7 @@ TextEditor::TextEditor() { convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/convert_to_uppercase", TTR("Uppercase")), EDIT_TO_UPPERCASE); convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/convert_to_lowercase", TTR("Lowercase")), EDIT_TO_LOWERCASE); convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/capitalize", TTR("Capitalize")), EDIT_CAPITALIZE); - convert_case->connect("id_pressed", this, "_edit_option"); + convert_case->connect_compat("id_pressed", this, "_edit_option"); highlighters["Standard"] = NULL; highlighter_menu = memnew(PopupMenu); @@ -708,13 +708,13 @@ TextEditor::TextEditor() { edit_menu->get_popup()->add_child(highlighter_menu); edit_menu->get_popup()->add_submenu_item(TTR("Syntax Highlighter"), "highlighter_menu"); highlighter_menu->add_radio_check_item(TTR("Standard")); - highlighter_menu->connect("id_pressed", this, "_change_syntax_highlighter"); + highlighter_menu->connect_compat("id_pressed", this, "_change_syntax_highlighter"); MenuButton *goto_menu = memnew(MenuButton); edit_hb->add_child(goto_menu); goto_menu->set_text(TTR("Go To")); goto_menu->set_switch_on_hover(true); - goto_menu->get_popup()->connect("id_pressed", this, "_edit_option"); + goto_menu->get_popup()->connect_compat("id_pressed", this, "_edit_option"); goto_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_line"), SEARCH_GOTO_LINE); goto_menu->get_popup()->add_separator(); @@ -724,8 +724,8 @@ TextEditor::TextEditor() { goto_menu->get_popup()->add_child(bookmarks_menu); goto_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "Bookmarks"); _update_bookmark_list(); - bookmarks_menu->connect("about_to_show", this, "_update_bookmark_list"); - bookmarks_menu->connect("index_pressed", this, "_bookmark_item_pressed"); + bookmarks_menu->connect_compat("about_to_show", this, "_update_bookmark_list"); + bookmarks_menu->connect_compat("index_pressed", this, "_bookmark_item_pressed"); goto_line_dialog = memnew(GotoLineDialog); add_child(goto_line_dialog); diff --git a/editor/plugins/text_editor.h b/editor/plugins/text_editor.h index c976cd87f1..c80052e7ba 100644 --- a/editor/plugins/text_editor.h +++ b/editor/plugins/text_editor.h @@ -147,7 +147,7 @@ public: virtual bool can_lose_focus_on_node_selection() { return true; } virtual void set_debugger_active(bool p_active); virtual void set_tooltip_request_func(String p_method, Object *p_obj); - virtual void add_callback(const String &p_function, PoolStringArray p_args); + virtual void add_callback(const String &p_function, PackedStringArray p_args); virtual Control *get_edit_menu(); virtual void clear_edit_menu(); diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp index 2350c20cb7..065833fd2b 100644 --- a/editor/plugins/texture_region_editor_plugin.cpp +++ b/editor/plugins/texture_region_editor_plugin.cpp @@ -935,7 +935,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { snap_mode_button->add_item(TTR("Grid Snap"), 2); snap_mode_button->add_item(TTR("Auto Slice"), 3); snap_mode_button->select(0); - snap_mode_button->connect("item_selected", this, "_set_snap_mode"); + snap_mode_button->connect_compat("item_selected", this, "_set_snap_mode"); hb_grid = memnew(HBoxContainer); hb_tools->add_child(hb_grid); @@ -949,7 +949,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { sb_off_x->set_step(1); sb_off_x->set_value(snap_offset.x); sb_off_x->set_suffix("px"); - sb_off_x->connect("value_changed", this, "_set_snap_off_x"); + sb_off_x->connect_compat("value_changed", this, "_set_snap_off_x"); hb_grid->add_child(sb_off_x); sb_off_y = memnew(SpinBox); @@ -958,7 +958,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { sb_off_y->set_step(1); sb_off_y->set_value(snap_offset.y); sb_off_y->set_suffix("px"); - sb_off_y->connect("value_changed", this, "_set_snap_off_y"); + sb_off_y->connect_compat("value_changed", this, "_set_snap_off_y"); hb_grid->add_child(sb_off_y); hb_grid->add_child(memnew(VSeparator)); @@ -970,7 +970,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { sb_step_x->set_step(1); sb_step_x->set_value(snap_step.x); sb_step_x->set_suffix("px"); - sb_step_x->connect("value_changed", this, "_set_snap_step_x"); + sb_step_x->connect_compat("value_changed", this, "_set_snap_step_x"); hb_grid->add_child(sb_step_x); sb_step_y = memnew(SpinBox); @@ -979,7 +979,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { sb_step_y->set_step(1); sb_step_y->set_value(snap_step.y); sb_step_y->set_suffix("px"); - sb_step_y->connect("value_changed", this, "_set_snap_step_y"); + sb_step_y->connect_compat("value_changed", this, "_set_snap_step_y"); hb_grid->add_child(sb_step_y); hb_grid->add_child(memnew(VSeparator)); @@ -991,7 +991,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { sb_sep_x->set_step(1); sb_sep_x->set_value(snap_separation.x); sb_sep_x->set_suffix("px"); - sb_sep_x->connect("value_changed", this, "_set_snap_sep_x"); + sb_sep_x->connect_compat("value_changed", this, "_set_snap_sep_x"); hb_grid->add_child(sb_sep_x); sb_sep_y = memnew(SpinBox); @@ -1000,7 +1000,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { sb_sep_y->set_step(1); sb_sep_y->set_value(snap_separation.y); sb_sep_y->set_suffix("px"); - sb_sep_y->connect("value_changed", this, "_set_snap_sep_y"); + sb_sep_y->connect_compat("value_changed", this, "_set_snap_sep_y"); hb_grid->add_child(sb_sep_y); hb_grid->hide(); @@ -1008,8 +1008,8 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { edit_draw = memnew(Panel); add_child(edit_draw); edit_draw->set_v_size_flags(SIZE_EXPAND_FILL); - edit_draw->connect("draw", this, "_region_draw"); - edit_draw->connect("gui_input", this, "_region_input"); + edit_draw->connect_compat("draw", this, "_region_draw"); + edit_draw->connect_compat("gui_input", this, "_region_input"); draw_zoom = 1.0; edit_draw->set_clip_contents(true); @@ -1020,27 +1020,27 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) { zoom_out = memnew(ToolButton); zoom_out->set_tooltip(TTR("Zoom Out")); - zoom_out->connect("pressed", this, "_zoom_out"); + zoom_out->connect_compat("pressed", this, "_zoom_out"); zoom_hb->add_child(zoom_out); zoom_reset = memnew(ToolButton); zoom_reset->set_tooltip(TTR("Zoom Reset")); - zoom_reset->connect("pressed", this, "_zoom_reset"); + zoom_reset->connect_compat("pressed", this, "_zoom_reset"); zoom_hb->add_child(zoom_reset); zoom_in = memnew(ToolButton); zoom_in->set_tooltip(TTR("Zoom In")); - zoom_in->connect("pressed", this, "_zoom_in"); + zoom_in->connect_compat("pressed", this, "_zoom_in"); zoom_hb->add_child(zoom_in); vscroll = memnew(VScrollBar); vscroll->set_step(0.001); edit_draw->add_child(vscroll); - vscroll->connect("value_changed", this, "_scroll_changed"); + vscroll->connect_compat("value_changed", this, "_scroll_changed"); hscroll = memnew(HScrollBar); hscroll->set_step(0.001); edit_draw->add_child(hscroll); - hscroll->connect("value_changed", this, "_scroll_changed"); + hscroll->connect_compat("value_changed", this, "_scroll_changed"); updating_scroll = false; } @@ -1125,7 +1125,7 @@ TextureRegionEditorPlugin::TextureRegionEditorPlugin(EditorNode *p_node) { region_editor = memnew(TextureRegionEditor(p_node)); region_editor->set_custom_minimum_size(Size2(0, 200) * EDSCALE); region_editor->hide(); - region_editor->connect("visibility_changed", this, "_editor_visiblity_changed"); + region_editor->connect_compat("visibility_changed", this, "_editor_visiblity_changed"); texture_region_button = p_node->add_bottom_panel_item(TTR("TextureRegion"), region_editor); texture_region_button->hide(); diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index 48d80a0017..717c9adad3 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -629,7 +629,7 @@ ThemeEditor::ThemeEditor() { theme_menu->get_popup()->add_item(TTR("Create Empty Editor Template"), POPUP_CREATE_EDITOR_EMPTY); theme_menu->get_popup()->add_item(TTR("Create From Current Editor Theme"), POPUP_IMPORT_EDITOR_THEME); top_menu->add_child(theme_menu); - theme_menu->get_popup()->connect("id_pressed", this, "_theme_menu_cbk"); + theme_menu->get_popup()->connect_compat("id_pressed", this, "_theme_menu_cbk"); ScrollContainer *scroll = memnew(ScrollContainer); add_child(scroll); @@ -835,7 +835,7 @@ ThemeEditor::ThemeEditor() { type_menu->set_text(".."); type_hbc->add_child(type_menu); - type_menu->get_popup()->connect("id_pressed", this, "_type_menu_cbk"); + type_menu->get_popup()->connect_compat("id_pressed", this, "_type_menu_cbk"); l = memnew(Label); l->set_text(TTR("Name:")); @@ -853,8 +853,8 @@ ThemeEditor::ThemeEditor() { name_menu->set_text(".."); name_hbc->add_child(name_menu); - name_menu->get_popup()->connect("about_to_show", this, "_name_menu_about_to_show"); - name_menu->get_popup()->connect("id_pressed", this, "_name_menu_cbk"); + name_menu->get_popup()->connect_compat("about_to_show", this, "_name_menu_about_to_show"); + name_menu->get_popup()->connect_compat("id_pressed", this, "_name_menu_cbk"); type_select_label = memnew(Label); type_select_label->set_text(TTR("Data Type:")); @@ -869,12 +869,12 @@ ThemeEditor::ThemeEditor() { dialog_vbc->add_child(type_select); - add_del_dialog->get_ok()->connect("pressed", this, "_dialog_cbk"); + add_del_dialog->get_ok()->connect_compat("pressed", this, "_dialog_cbk"); file_dialog = memnew(EditorFileDialog); file_dialog->add_filter("*.theme ; " + TTR("Theme File")); add_child(file_dialog); - file_dialog->connect("file_selected", this, "_save_template_cbk"); + file_dialog->connect_compat("file_selected", this, "_save_template_cbk"); } void ThemeEditorPlugin::edit(Object *p_node) { diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp index 425a759dac..10d00b2a1d 100644 --- a/editor/plugins/tile_map_editor_plugin.cpp +++ b/editor/plugins/tile_map_editor_plugin.cpp @@ -55,7 +55,7 @@ void TileMapEditor::_notification(int p_what) { if (is_visible_in_tree()) { _update_palette(); } - FALLTHROUGH; + [[fallthrough]]; } case NOTIFICATION_ENTER_TREE: { @@ -598,7 +598,7 @@ void TileMapEditor::_pick_tile(const Point2 &p_pos) { CanvasItemEditor::get_singleton()->update_viewport(); } -PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool erase, bool preview) { +Vector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool erase, bool preview) { int prev_id = node->get_cell(p_start.x, p_start.y); Vector<int> ids; @@ -607,14 +607,14 @@ PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool era ids = get_selected_tiles(); if (ids.size() == 0 || ids[0] == TileMap::INVALID_CELL) - return PoolVector<Vector2>(); + return Vector<Vector2>(); } else if (prev_id == TileMap::INVALID_CELL) { - return PoolVector<Vector2>(); + return Vector<Vector2>(); } if (ids.size() == 1 && ids[0] == prev_id) { // Same ID, nothing to change - return PoolVector<Vector2>(); + return Vector<Vector2>(); } Rect2i r = node->get_used_rect(); @@ -640,14 +640,14 @@ PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool era if (invalidate_cache) { for (int i = 0; i < area; ++i) bucket_cache_visited[i] = false; - bucket_cache = PoolVector<Vector2>(); + bucket_cache = Vector<Vector2>(); bucket_cache_tile = prev_id; bucket_cache_rect = r; bucket_queue.clear(); } } - PoolVector<Vector2> points; + Vector<Vector2> points; Vector<Vector2> non_preview_cache; int count = 0; int limit = 0; @@ -698,10 +698,10 @@ PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool era return preview ? bucket_cache : points; } -void TileMapEditor::_fill_points(const PoolVector<Vector2> &p_points, const Dictionary &p_op) { +void TileMapEditor::_fill_points(const Vector<Vector2> &p_points, const Dictionary &p_op) { int len = p_points.size(); - PoolVector<Vector2>::Read pr = p_points.read(); + const Vector2 *pr = p_points.ptr(); Vector<int> ids = p_op["id"]; bool xf = p_op["flip_h"]; @@ -716,10 +716,10 @@ void TileMapEditor::_fill_points(const PoolVector<Vector2> &p_points, const Dict node->update_dirty_bitmask(); } -void TileMapEditor::_erase_points(const PoolVector<Vector2> &p_points) { +void TileMapEditor::_erase_points(const Vector<Vector2> &p_points) { int len = p_points.size(); - PoolVector<Vector2>::Read pr = p_points.read(); + const Vector2 *pr = p_points.ptr(); for (int i = 0; i < len; i++) { @@ -882,8 +882,8 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p void TileMapEditor::_draw_fill_preview(Control *p_viewport, int p_cell, const Point2i &p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Point2i &p_autotile_coord, const Transform2D &p_xform) { - PoolVector<Vector2> points = _bucket_fill(p_point, false, true); - PoolVector<Vector2>::Read pr = points.read(); + Vector<Vector2> points = _bucket_fill(p_point, false, true); + const Vector2 *pr = points.ptr(); int len = points.size(); for (int i = 0; i < len; ++i) { @@ -1109,7 +1109,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { } else if (tool == TOOL_BUCKET) { - PoolVector<Vector2> points = _bucket_fill(over_tile); + Vector<Vector2> points = _bucket_fill(over_tile); if (points.size() == 0) return false; @@ -1216,7 +1216,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { pop["flip_v"] = node->is_cell_y_flipped(over_tile.x, over_tile.y); pop["transpose"] = node->is_cell_transposed(over_tile.x, over_tile.y); - PoolVector<Vector2> points = _bucket_fill(over_tile, true); + Vector<Vector2> points = _bucket_fill(over_tile, true); if (points.size() == 0) return false; @@ -1761,30 +1761,30 @@ void TileMapEditor::edit(Node *p_tile_map) { } if (node) - node->disconnect("settings_changed", this, "_tileset_settings_changed"); + node->disconnect_compat("settings_changed", this, "_tileset_settings_changed"); if (p_tile_map) { node = Object::cast_to<TileMap>(p_tile_map); - if (!canvas_item_editor_viewport->is_connected("mouse_entered", this, "_canvas_mouse_enter")) - canvas_item_editor_viewport->connect("mouse_entered", this, "_canvas_mouse_enter"); - if (!canvas_item_editor_viewport->is_connected("mouse_exited", this, "_canvas_mouse_exit")) - canvas_item_editor_viewport->connect("mouse_exited", this, "_canvas_mouse_exit"); + if (!canvas_item_editor_viewport->is_connected_compat("mouse_entered", this, "_canvas_mouse_enter")) + canvas_item_editor_viewport->connect_compat("mouse_entered", this, "_canvas_mouse_enter"); + if (!canvas_item_editor_viewport->is_connected_compat("mouse_exited", this, "_canvas_mouse_exit")) + canvas_item_editor_viewport->connect_compat("mouse_exited", this, "_canvas_mouse_exit"); _update_palette(); } else { node = NULL; - if (canvas_item_editor_viewport->is_connected("mouse_entered", this, "_canvas_mouse_enter")) - canvas_item_editor_viewport->disconnect("mouse_entered", this, "_canvas_mouse_enter"); - if (canvas_item_editor_viewport->is_connected("mouse_exited", this, "_canvas_mouse_exit")) - canvas_item_editor_viewport->disconnect("mouse_exited", this, "_canvas_mouse_exit"); + if (canvas_item_editor_viewport->is_connected_compat("mouse_entered", this, "_canvas_mouse_enter")) + canvas_item_editor_viewport->disconnect_compat("mouse_entered", this, "_canvas_mouse_enter"); + if (canvas_item_editor_viewport->is_connected_compat("mouse_exited", this, "_canvas_mouse_exit")) + canvas_item_editor_viewport->disconnect_compat("mouse_exited", this, "_canvas_mouse_exit"); _update_palette(); } if (node) - node->connect("settings_changed", this, "_tileset_settings_changed"); + node->connect_compat("settings_changed", this, "_tileset_settings_changed"); _clear_bucket_cache(); } @@ -1939,20 +1939,20 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { manual_button = memnew(CheckBox); manual_button->set_text(TTR("Disable Autotile")); - manual_button->connect("toggled", this, "_manual_toggled"); + manual_button->connect_compat("toggled", this, "_manual_toggled"); add_child(manual_button); priority_button = memnew(CheckBox); priority_button->set_text(TTR("Enable Priority")); - priority_button->connect("toggled", this, "_priority_toggled"); + priority_button->connect_compat("toggled", this, "_priority_toggled"); add_child(priority_button); search_box = memnew(LineEdit); search_box->set_placeholder(TTR("Filter tiles")); search_box->set_h_size_flags(SIZE_EXPAND_FILL); - search_box->connect("text_entered", this, "_text_entered"); - search_box->connect("text_changed", this, "_text_changed"); - search_box->connect("gui_input", this, "_sbox_input"); + search_box->connect_compat("text_entered", this, "_text_entered"); + search_box->connect_compat("text_changed", this, "_text_changed"); + search_box->connect_compat("gui_input", this, "_sbox_input"); add_child(search_box); size_slider = memnew(HSlider); @@ -1961,7 +1961,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { size_slider->set_max(4.0f); size_slider->set_step(0.1f); size_slider->set_value(1.0f); - size_slider->connect("value_changed", this, "_icon_size_changed"); + size_slider->connect_compat("value_changed", this, "_icon_size_changed"); add_child(size_slider); int mw = EDITOR_DEF("editors/tile_map/palette_min_width", 80); @@ -1980,8 +1980,8 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { palette->set_max_text_lines(2); palette->set_select_mode(ItemList::SELECT_MULTI); palette->add_constant_override("vseparation", 8 * EDSCALE); - palette->connect("item_selected", this, "_palette_selected"); - palette->connect("multi_selected", this, "_palette_multi_selected"); + palette->connect_compat("item_selected", this, "_palette_selected"); + palette->connect_compat("multi_selected", this, "_palette_multi_selected"); palette_container->add_child(palette); // Add message for when no texture is selected. @@ -2015,25 +2015,25 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { paint_button = memnew(ToolButton); paint_button->set_shortcut(ED_SHORTCUT("tile_map_editor/paint_tile", TTR("Paint Tile"), KEY_P)); paint_button->set_tooltip(TTR("Shift+LMB: Line Draw\nShift+Ctrl+LMB: Rectangle Paint")); - paint_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_NONE)); + paint_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_NONE)); paint_button->set_toggle_mode(true); toolbar->add_child(paint_button); bucket_fill_button = memnew(ToolButton); bucket_fill_button->set_shortcut(ED_SHORTCUT("tile_map_editor/bucket_fill", TTR("Bucket Fill"), KEY_G)); - bucket_fill_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_BUCKET)); + bucket_fill_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_BUCKET)); bucket_fill_button->set_toggle_mode(true); toolbar->add_child(bucket_fill_button); picker_button = memnew(ToolButton); picker_button->set_shortcut(ED_SHORTCUT("tile_map_editor/pick_tile", TTR("Pick Tile"), KEY_I)); - picker_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_PICKING)); + picker_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_PICKING)); picker_button->set_toggle_mode(true); toolbar->add_child(picker_button); select_button = memnew(ToolButton); select_button->set_shortcut(ED_SHORTCUT("tile_map_editor/select", TTR("Select"), KEY_M)); - select_button->connect("pressed", this, "_button_tool_select", make_binds(TOOL_SELECTING)); + select_button->connect_compat("pressed", this, "_button_tool_select", make_binds(TOOL_SELECTING)); select_button->set_toggle_mode(true); toolbar->add_child(select_button); @@ -2068,40 +2068,40 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { p->add_shortcut(ED_GET_SHORTCUT("tile_map_editor/erase_selection"), OPTION_ERASE_SELECTION); p->add_separator(); p->add_item(TTR("Fix Invalid Tiles"), OPTION_FIX_INVALID); - p->connect("id_pressed", this, "_menu_option"); + p->connect_compat("id_pressed", this, "_menu_option"); rotate_left_button = memnew(ToolButton); rotate_left_button->set_tooltip(TTR("Rotate Left")); rotate_left_button->set_focus_mode(FOCUS_NONE); - rotate_left_button->connect("pressed", this, "_rotate", varray(-1)); + rotate_left_button->connect_compat("pressed", this, "_rotate", varray(-1)); rotate_left_button->set_shortcut(ED_SHORTCUT("tile_map_editor/rotate_left", TTR("Rotate Left"), KEY_A)); tool_hb->add_child(rotate_left_button); rotate_right_button = memnew(ToolButton); rotate_right_button->set_tooltip(TTR("Rotate Right")); rotate_right_button->set_focus_mode(FOCUS_NONE); - rotate_right_button->connect("pressed", this, "_rotate", varray(1)); + rotate_right_button->connect_compat("pressed", this, "_rotate", varray(1)); rotate_right_button->set_shortcut(ED_SHORTCUT("tile_map_editor/rotate_right", TTR("Rotate Right"), KEY_S)); tool_hb->add_child(rotate_right_button); flip_horizontal_button = memnew(ToolButton); flip_horizontal_button->set_tooltip(TTR("Flip Horizontally")); flip_horizontal_button->set_focus_mode(FOCUS_NONE); - flip_horizontal_button->connect("pressed", this, "_flip_horizontal"); + flip_horizontal_button->connect_compat("pressed", this, "_flip_horizontal"); flip_horizontal_button->set_shortcut(ED_SHORTCUT("tile_map_editor/flip_horizontal", TTR("Flip Horizontally"), KEY_X)); tool_hb->add_child(flip_horizontal_button); flip_vertical_button = memnew(ToolButton); flip_vertical_button->set_tooltip(TTR("Flip Vertically")); flip_vertical_button->set_focus_mode(FOCUS_NONE); - flip_vertical_button->connect("pressed", this, "_flip_vertical"); + flip_vertical_button->connect_compat("pressed", this, "_flip_vertical"); flip_vertical_button->set_shortcut(ED_SHORTCUT("tile_map_editor/flip_vertical", TTR("Flip Vertically"), KEY_Z)); tool_hb->add_child(flip_vertical_button); clear_transform_button = memnew(ToolButton); clear_transform_button->set_tooltip(TTR("Clear Transform")); clear_transform_button->set_focus_mode(FOCUS_NONE); - clear_transform_button->connect("pressed", this, "_clear_transform"); + clear_transform_button->connect_compat("pressed", this, "_clear_transform"); clear_transform_button->set_shortcut(ED_SHORTCUT("tile_map_editor/clear_transform", TTR("Clear Transform"), KEY_W)); tool_hb->add_child(clear_transform_button); diff --git a/editor/plugins/tile_map_editor_plugin.h b/editor/plugins/tile_map_editor_plugin.h index 927f0887bb..74969d3e64 100644 --- a/editor/plugins/tile_map_editor_plugin.h +++ b/editor/plugins/tile_map_editor_plugin.h @@ -123,7 +123,7 @@ class TileMapEditor : public VBoxContainer { bool *bucket_cache_visited; Rect2i bucket_cache_rect; int bucket_cache_tile; - PoolVector<Vector2> bucket_cache; + Vector<Vector2> bucket_cache; List<Point2i> bucket_queue; struct CellOp { @@ -164,10 +164,10 @@ class TileMapEditor : public VBoxContainer { void _pick_tile(const Point2 &p_pos); - PoolVector<Vector2> _bucket_fill(const Point2i &p_start, bool erase = false, bool preview = false); + Vector<Vector2> _bucket_fill(const Point2i &p_start, bool erase = false, bool preview = false); - void _fill_points(const PoolVector<Vector2> &p_points, const Dictionary &p_op); - void _erase_points(const PoolVector<Vector2> &p_points); + void _fill_points(const Vector<Vector2> &p_points, const Dictionary &p_op); + void _erase_points(const Vector<Vector2> &p_points); void _select(const Point2i &p_from, const Point2i &p_to); void _erase_selection(); diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp index ce865510b4..a61b291029 100644 --- a/editor/plugins/tile_set_editor_plugin.cpp +++ b/editor/plugins/tile_set_editor_plugin.cpp @@ -251,7 +251,7 @@ void TileSetEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, C if (String(d["type"]) == "files") { - PoolVector<String> files = d["files"]; + Vector<String> files = d["files"]; _on_textures_added(files); } @@ -358,19 +358,19 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { left_container->add_child(texture_list); texture_list->set_v_size_flags(SIZE_EXPAND_FILL); texture_list->set_custom_minimum_size(Size2(200, 0)); - texture_list->connect("item_selected", this, "_on_texture_list_selected"); + texture_list->connect_compat("item_selected", this, "_on_texture_list_selected"); texture_list->set_drag_forwarding(this); HBoxContainer *tileset_toolbar_container = memnew(HBoxContainer); left_container->add_child(tileset_toolbar_container); tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE] = memnew(ToolButton); - tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->connect("pressed", this, "_on_tileset_toolbar_button_pressed", varray(TOOL_TILESET_ADD_TEXTURE)); + tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->connect_compat("pressed", this, "_on_tileset_toolbar_button_pressed", varray(TOOL_TILESET_ADD_TEXTURE)); tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]); tileset_toolbar_buttons[TOOL_TILESET_ADD_TEXTURE]->set_tooltip(TTR("Add Texture(s) to TileSet.")); tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE] = memnew(ToolButton); - tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->connect("pressed", this, "_on_tileset_toolbar_button_pressed", varray(TOOL_TILESET_REMOVE_TEXTURE)); + tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->connect_compat("pressed", this, "_on_tileset_toolbar_button_pressed", varray(TOOL_TILESET_REMOVE_TEXTURE)); tileset_toolbar_container->add_child(tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]); tileset_toolbar_buttons[TOOL_TILESET_REMOVE_TEXTURE]->set_tooltip(TTR("Remove selected Texture from TileSet.")); @@ -383,7 +383,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tileset_toolbar_tools->get_popup()->add_item(TTR("Create from Scene"), TOOL_TILESET_CREATE_SCENE); tileset_toolbar_tools->get_popup()->add_item(TTR("Merge from Scene"), TOOL_TILESET_MERGE_SCENE); - tileset_toolbar_tools->get_popup()->connect("id_pressed", this, "_on_tileset_toolbar_button_pressed"); + tileset_toolbar_tools->get_popup()->connect_compat("id_pressed", this, "_on_tileset_toolbar_button_pressed"); tileset_toolbar_container->add_child(tileset_toolbar_tools); //--------------- @@ -416,7 +416,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tool_workspacemode[i]->set_text(workspace_label[i]); tool_workspacemode[i]->set_toggle_mode(true); tool_workspacemode[i]->set_button_group(g); - tool_workspacemode[i]->connect("pressed", this, "_on_workspace_mode_changed", varray(i)); + tool_workspacemode[i]->connect_compat("pressed", this, "_on_workspace_mode_changed", varray(i)); tool_hb->add_child(tool_workspacemode[i]); } @@ -429,14 +429,14 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tool_hb->add_child(tools[SELECT_NEXT]); tool_hb->move_child(tools[SELECT_NEXT], WORKSPACE_CREATE_SINGLE); tools[SELECT_NEXT]->set_shortcut(ED_SHORTCUT("tileset_editor/next_shape", TTR("Next Coordinate"), KEY_PAGEDOWN)); - tools[SELECT_NEXT]->connect("pressed", this, "_on_tool_clicked", varray(SELECT_NEXT)); + tools[SELECT_NEXT]->connect_compat("pressed", this, "_on_tool_clicked", varray(SELECT_NEXT)); tools[SELECT_NEXT]->set_tooltip(TTR("Select the next shape, subtile, or Tile.")); tools[SELECT_PREVIOUS] = memnew(ToolButton); tool_hb->add_child(tools[SELECT_PREVIOUS]); tool_hb->move_child(tools[SELECT_PREVIOUS], WORKSPACE_CREATE_SINGLE); tools[SELECT_PREVIOUS]->set_shortcut(ED_SHORTCUT("tileset_editor/previous_shape", TTR("Previous Coordinate"), KEY_PAGEUP)); tools[SELECT_PREVIOUS]->set_tooltip(TTR("Select the previous shape, subtile, or Tile.")); - tools[SELECT_PREVIOUS]->connect("pressed", this, "_on_tool_clicked", varray(SELECT_PREVIOUS)); + tools[SELECT_PREVIOUS]->connect_compat("pressed", this, "_on_tool_clicked", varray(SELECT_PREVIOUS)); VSeparator *separator_shape_selection = memnew(VSeparator); tool_hb->add_child(separator_shape_selection); @@ -466,7 +466,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tool_editmode[i]->set_text(label[i]); tool_editmode[i]->set_toggle_mode(true); tool_editmode[i]->set_button_group(g); - tool_editmode[i]->connect("pressed", this, "_on_edit_mode_changed", varray(i)); + tool_editmode[i]->connect_compat("pressed", this, "_on_edit_mode_changed", varray(i)); tool_hb->add_child(tool_editmode[i]); } tool_editmode[EDITMODE_COLLISION]->set_pressed(true); @@ -493,21 +493,21 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tools[TOOL_SELECT]->set_toggle_mode(true); tools[TOOL_SELECT]->set_button_group(tg); tools[TOOL_SELECT]->set_pressed(true); - tools[TOOL_SELECT]->connect("pressed", this, "_on_tool_clicked", varray(TOOL_SELECT)); + tools[TOOL_SELECT]->connect_compat("pressed", this, "_on_tool_clicked", varray(TOOL_SELECT)); separator_bitmask = memnew(VSeparator); toolbar->add_child(separator_bitmask); tools[BITMASK_COPY] = memnew(ToolButton); tools[BITMASK_COPY]->set_tooltip(TTR("Copy bitmask.")); - tools[BITMASK_COPY]->connect("pressed", this, "_on_tool_clicked", varray(BITMASK_COPY)); + tools[BITMASK_COPY]->connect_compat("pressed", this, "_on_tool_clicked", varray(BITMASK_COPY)); toolbar->add_child(tools[BITMASK_COPY]); tools[BITMASK_PASTE] = memnew(ToolButton); tools[BITMASK_PASTE]->set_tooltip(TTR("Paste bitmask.")); - tools[BITMASK_PASTE]->connect("pressed", this, "_on_tool_clicked", varray(BITMASK_PASTE)); + tools[BITMASK_PASTE]->connect_compat("pressed", this, "_on_tool_clicked", varray(BITMASK_PASTE)); toolbar->add_child(tools[BITMASK_PASTE]); tools[BITMASK_CLEAR] = memnew(ToolButton); tools[BITMASK_CLEAR]->set_tooltip(TTR("Erase bitmask.")); - tools[BITMASK_CLEAR]->connect("pressed", this, "_on_tool_clicked", varray(BITMASK_CLEAR)); + tools[BITMASK_CLEAR]->connect_compat("pressed", this, "_on_tool_clicked", varray(BITMASK_CLEAR)); toolbar->add_child(tools[BITMASK_CLEAR]); tools[SHAPE_NEW_RECTANGLE] = memnew(ToolButton); @@ -525,13 +525,13 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { separator_shape_toggle = memnew(VSeparator); toolbar->add_child(separator_shape_toggle); tools[SHAPE_TOGGLE_TYPE] = memnew(ToolButton); - tools[SHAPE_TOGGLE_TYPE]->connect("pressed", this, "_on_tool_clicked", varray(SHAPE_TOGGLE_TYPE)); + tools[SHAPE_TOGGLE_TYPE]->connect_compat("pressed", this, "_on_tool_clicked", varray(SHAPE_TOGGLE_TYPE)); toolbar->add_child(tools[SHAPE_TOGGLE_TYPE]); separator_delete = memnew(VSeparator); toolbar->add_child(separator_delete); tools[SHAPE_DELETE] = memnew(ToolButton); - tools[SHAPE_DELETE]->connect("pressed", this, "_on_tool_clicked", varray(SHAPE_DELETE)); + tools[SHAPE_DELETE]->connect_compat("pressed", this, "_on_tool_clicked", varray(SHAPE_DELETE)); toolbar->add_child(tools[SHAPE_DELETE]); spin_priority = memnew(SpinBox); @@ -539,7 +539,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { spin_priority->set_max(255); spin_priority->set_step(1); spin_priority->set_custom_minimum_size(Size2(100, 0)); - spin_priority->connect("value_changed", this, "_on_priority_changed"); + spin_priority->connect_compat("value_changed", this, "_on_priority_changed"); spin_priority->hide(); toolbar->add_child(spin_priority); @@ -548,7 +548,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { spin_z_index->set_max(VS::CANVAS_ITEM_Z_MAX); spin_z_index->set_step(1); spin_z_index->set_custom_minimum_size(Size2(100, 0)); - spin_z_index->connect("value_changed", this, "_on_z_index_changed"); + spin_z_index->connect_compat("value_changed", this, "_on_z_index_changed"); spin_z_index->hide(); toolbar->add_child(spin_z_index); @@ -562,7 +562,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tools[TOOL_GRID_SNAP] = memnew(ToolButton); tools[TOOL_GRID_SNAP]->set_toggle_mode(true); tools[TOOL_GRID_SNAP]->set_tooltip(TTR("Enable snap and show grid (configurable via the Inspector).")); - tools[TOOL_GRID_SNAP]->connect("toggled", this, "_on_grid_snap_toggled"); + tools[TOOL_GRID_SNAP]->connect_compat("toggled", this, "_on_grid_snap_toggled"); toolbar->add_child(tools[TOOL_GRID_SNAP]); Control *separator = memnew(Control); @@ -570,15 +570,15 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { toolbar->add_child(separator); tools[ZOOM_OUT] = memnew(ToolButton); - tools[ZOOM_OUT]->connect("pressed", this, "_zoom_out"); + tools[ZOOM_OUT]->connect_compat("pressed", this, "_zoom_out"); toolbar->add_child(tools[ZOOM_OUT]); tools[ZOOM_OUT]->set_tooltip(TTR("Zoom Out")); tools[ZOOM_1] = memnew(ToolButton); - tools[ZOOM_1]->connect("pressed", this, "_zoom_reset"); + tools[ZOOM_1]->connect_compat("pressed", this, "_zoom_reset"); toolbar->add_child(tools[ZOOM_1]); tools[ZOOM_1]->set_tooltip(TTR("Zoom Reset")); tools[ZOOM_IN] = memnew(ToolButton); - tools[ZOOM_IN]->connect("pressed", this, "_zoom_in"); + tools[ZOOM_IN]->connect_compat("pressed", this, "_zoom_in"); toolbar->add_child(tools[ZOOM_IN]); tools[ZOOM_IN]->set_tooltip(TTR("Zoom In")); @@ -607,13 +607,13 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { scroll->add_child(workspace_container); workspace_overlay = memnew(Control); - workspace_overlay->connect("draw", this, "_on_workspace_overlay_draw"); + workspace_overlay->connect_compat("draw", this, "_on_workspace_overlay_draw"); workspace_container->add_child(workspace_overlay); workspace = memnew(Control); workspace->set_focus_mode(FOCUS_ALL); - workspace->connect("draw", this, "_on_workspace_draw"); - workspace->connect("gui_input", this, "_on_workspace_input"); + workspace->connect_compat("draw", this, "_on_workspace_draw"); + workspace->connect_compat("gui_input", this, "_on_workspace_input"); workspace->set_draw_behind_parent(true); workspace_overlay->add_child(workspace); @@ -626,7 +626,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { //--------------- cd = memnew(ConfirmationDialog); add_child(cd); - cd->connect("confirmed", this, "_on_tileset_toolbar_confirm"); + cd->connect_compat("confirmed", this, "_on_tileset_toolbar_confirm"); //--------------- err_dialog = memnew(AcceptDialog); @@ -645,7 +645,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { texture_dialog->add_filter("*." + E->get() + " ; " + E->get().to_upper()); } add_child(texture_dialog); - texture_dialog->connect("files_selected", this, "_on_textures_added"); + texture_dialog->connect_compat("files_selected", this, "_on_textures_added"); //--------------- helper = memnew(TilesetEditorContext(this)); @@ -750,7 +750,7 @@ void TileSetEditor::_on_texture_list_selected(int p_index) { workspace->update(); } -void TileSetEditor::_on_textures_added(const PoolStringArray &p_paths) { +void TileSetEditor::_on_textures_added(const PackedStringArray &p_paths) { int invalid_count = 0; for (int i = 0; i < p_paths.size(); i++) { Ref<Texture2D> t = Ref<Texture2D>(ResourceLoader::load(p_paths[i])); @@ -1618,16 +1618,14 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) { if (dragging_point >= 0) { dragging_point = -1; - PoolVector<Vector2> polygon; + Vector<Vector2> polygon; polygon.resize(current_shape.size()); - PoolVector<Vector2>::Write w = polygon.write(); + Vector2 *w = polygon.ptrw(); for (int i = 0; i < current_shape.size(); i++) { w[i] = current_shape[i] - shape_anchor; } - w.release(); - undo_redo->create_action(TTR("Edit Occlusion Polygon")); undo_redo->add_do_method(edited_occlusion_shape.ptr(), "set_polygon", polygon); undo_redo->add_undo_method(edited_occlusion_shape.ptr(), "set_polygon", edited_occlusion_shape->get_polygon()); @@ -1639,18 +1637,16 @@ void TileSetEditor::_on_workspace_input(const Ref<InputEvent> &p_ie) { if (dragging_point >= 0) { dragging_point = -1; - PoolVector<Vector2> polygon; + Vector<Vector2> polygon; Vector<int> indices; polygon.resize(current_shape.size()); - PoolVector<Vector2>::Write w = polygon.write(); + Vector2 *w = polygon.ptrw(); for (int i = 0; i < current_shape.size(); i++) { w[i] = current_shape[i] - shape_anchor; indices.push_back(i); } - w.release(); - undo_redo->create_action(TTR("Edit Navigation Polygon")); undo_redo->add_do_method(edited_navigation_shape.ptr(), "set_vertices", polygon); undo_redo->add_undo_method(edited_navigation_shape.ptr(), "set_vertices", edited_navigation_shape->get_vertices()); @@ -1983,7 +1979,7 @@ void TileSetEditor::_set_edited_shape_points(const Vector<Vector2> &points) { undo_redo->add_do_method(convex.ptr(), "set_points", points); undo_redo->add_undo_method(convex.ptr(), "set_points", _get_edited_shape_points()); } else if (concave.is_valid()) { - PoolVector2Array segments; + PackedVector2Array segments; for (int i = 0; i < points.size() - 1; i++) { segments.push_back(points[i]); segments.push_back(points[i + 1]); @@ -2782,7 +2778,7 @@ void TileSetEditor::draw_polygon_shapes() { colors.push_back(c_bg); } } else { - PoolVector<Vector2> vertices = shape->get_vertices(); + Vector<Vector2> vertices = shape->get_vertices(); for (int j = 0; j < shape->get_polygon(0).size(); j++) { polygon.push_back(vertices[shape->get_polygon(0)[j]] + anchor); colors.push_back(c_bg); @@ -2830,7 +2826,7 @@ void TileSetEditor::draw_polygon_shapes() { colors.push_back(c_bg); } } else { - PoolVector<Vector2> vertices = shape->get_vertices(); + Vector<Vector2> vertices = shape->get_vertices(); for (int j = 0; j < shape->get_polygon(0).size(); j++) { polygon.push_back(vertices[shape->get_polygon(0)[j]] + anchor); colors.push_back(c_bg); @@ -2917,15 +2913,14 @@ void TileSetEditor::close_shape(const Vector2 &shape_anchor) { } else if (edit_mode == EDITMODE_OCCLUSION) { Ref<OccluderPolygon2D> shape = memnew(OccluderPolygon2D); - PoolVector<Vector2> polygon; + Vector<Vector2> polygon; polygon.resize(current_shape.size()); - PoolVector<Vector2>::Write w = polygon.write(); + Vector2 *w = polygon.ptrw(); for (int i = 0; i < current_shape.size(); i++) { w[i] = current_shape[i] - shape_anchor; } - w.release(); shape->set_polygon(polygon); undo_redo->create_action(TTR("Create Occlusion Polygon")); @@ -2943,17 +2938,16 @@ void TileSetEditor::close_shape(const Vector2 &shape_anchor) { } else if (edit_mode == EDITMODE_NAVIGATION) { Ref<NavigationPolygon> shape = memnew(NavigationPolygon); - PoolVector<Vector2> polygon; + Vector<Vector2> polygon; Vector<int> indices; polygon.resize(current_shape.size()); - PoolVector<Vector2>::Write w = polygon.write(); + Vector2 *w = polygon.ptrw(); for (int i = 0; i < current_shape.size(); i++) { w[i] = current_shape[i] - shape_anchor; indices.push_back(i); } - w.release(); shape->set_vertices(polygon); shape->add_polygon(indices); @@ -2975,7 +2969,7 @@ void TileSetEditor::close_shape(const Vector2 &shape_anchor) { void TileSetEditor::select_coord(const Vector2 &coord) { _update_tile_data(); - current_shape = PoolVector2Array(); + current_shape = PackedVector2Array(); if (get_current_tile() == -1) return; Rect2 current_tile_region = tileset->tile_get_region(get_current_tile()); @@ -3006,7 +3000,7 @@ void TileSetEditor::select_coord(const Vector2 &coord) { current_shape.resize(0); if (edited_navigation_shape.is_valid()) { if (edited_navigation_shape->get_polygon_count() > 0) { - PoolVector<Vector2> vertices = edited_navigation_shape->get_vertices(); + Vector<Vector2> vertices = edited_navigation_shape->get_vertices(); for (int i = 0; i < edited_navigation_shape->get_polygon(0).size(); i++) { current_shape.push_back(vertices[edited_navigation_shape->get_polygon(0)[i]] + current_tile_region.position); } @@ -3055,7 +3049,7 @@ void TileSetEditor::select_coord(const Vector2 &coord) { current_shape.resize(0); if (edited_navigation_shape.is_valid()) { if (edited_navigation_shape->get_polygon_count() > 0) { - PoolVector<Vector2> vertices = edited_navigation_shape->get_vertices(); + Vector<Vector2> vertices = edited_navigation_shape->get_vertices(); for (int i = 0; i < edited_navigation_shape->get_polygon(0).size(); i++) { current_shape.push_back(vertices[edited_navigation_shape->get_polygon(0)[i]] + shape_anchor); } @@ -3513,7 +3507,7 @@ void TilesetEditorContext::_get_property_list(List<PropertyInfo> *p_list) const p_list->push_back(PropertyInfo(Variant::OBJECT, "selected_collision", PROPERTY_HINT_RESOURCE_TYPE, tileset_editor->edited_collision_shape->get_class())); if (tileset_editor->edited_collision_shape.is_valid()) { p_list->push_back(PropertyInfo(Variant::BOOL, "selected_collision_one_way", PROPERTY_HINT_NONE)); - p_list->push_back(PropertyInfo(Variant::REAL, "selected_collision_one_way_margin", PROPERTY_HINT_NONE)); + p_list->push_back(PropertyInfo(Variant::FLOAT, "selected_collision_one_way_margin", PROPERTY_HINT_NONE)); } } if (tileset_editor->edit_mode == TileSetEditor::EDITMODE_NAVIGATION && tileset_editor->edited_navigation_shape.is_valid()) { @@ -3554,11 +3548,11 @@ void TileSetEditorPlugin::make_visible(bool p_visible) { if (p_visible) { tileset_editor_button->show(); editor->make_bottom_panel_item_visible(tileset_editor); - get_tree()->connect("idle_frame", tileset_editor, "_on_workspace_process"); + get_tree()->connect_compat("idle_frame", tileset_editor, "_on_workspace_process"); } else { editor->hide_bottom_panel(); tileset_editor_button->hide(); - get_tree()->disconnect("idle_frame", tileset_editor, "_on_workspace_process"); + get_tree()->disconnect_compat("idle_frame", tileset_editor, "_on_workspace_process"); } } diff --git a/editor/plugins/tile_set_editor_plugin.h b/editor/plugins/tile_set_editor_plugin.h index 26340824a0..7b49e2ece2 100644 --- a/editor/plugins/tile_set_editor_plugin.h +++ b/editor/plugins/tile_set_editor_plugin.h @@ -123,7 +123,7 @@ class TileSetEditor : public HSplitContainer { Rect2 edited_region; bool draw_edited_region; Vector2 edited_shape_coord; - PoolVector2Array current_shape; + PackedVector2Array current_shape; Map<Vector2i, SubtileData> current_tile_data; Map<Vector2, uint32_t> bitmask_map_copy; @@ -178,7 +178,7 @@ class TileSetEditor : public HSplitContainer { Variant get_drag_data_fw(const Point2 &p_point, Control *p_from); bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const; void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from); - void _file_load_request(const PoolVector<String> &p_path, int p_at_pos = -1); + void _file_load_request(const Vector<String> &p_path, int p_at_pos = -1); protected: static void _bind_methods(); @@ -195,7 +195,7 @@ private: void _on_tileset_toolbar_button_pressed(int p_index); void _on_tileset_toolbar_confirm(); void _on_texture_list_selected(int p_index); - void _on_textures_added(const PoolStringArray &p_paths); + void _on_textures_added(const PackedStringArray &p_paths); void _on_edit_mode_changed(int p_edit_mode); void _on_workspace_mode_changed(int p_workspace_mode); void _on_workspace_overlay_draw(); diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp index e17e6a9d16..cfa10488ab 100644 --- a/editor/plugins/version_control_editor_plugin.cpp +++ b/editor/plugins/version_control_editor_plugin.cpp @@ -127,7 +127,7 @@ void VersionControlEditorPlugin::_initialize_vcs() { vcs_interface->set_script_and_instance(script, addon_script_instance); EditorVCSInterface::set_singleton(vcs_interface); - EditorFileSystem::get_singleton()->connect("filesystem_changed", this, "_refresh_stage_area"); + EditorFileSystem::get_singleton()->connect_compat("filesystem_changed", this, "_refresh_stage_area"); String res_dir = OS::get_singleton()->get_resource_dir(); @@ -388,8 +388,8 @@ void VersionControlEditorPlugin::clear_stage_area() { void VersionControlEditorPlugin::shut_down() { if (EditorVCSInterface::get_singleton()) { - if (EditorFileSystem::get_singleton()->is_connected("filesystem_changed", this, "_refresh_stage_area")) { - EditorFileSystem::get_singleton()->disconnect("filesystem_changed", this, "_refresh_stage_area"); + if (EditorFileSystem::get_singleton()->is_connected_compat("filesystem_changed", this, "_refresh_stage_area")) { + EditorFileSystem::get_singleton()->disconnect_compat("filesystem_changed", this, "_refresh_stage_area"); } EditorVCSInterface::get_singleton()->shut_down(); memdelete(EditorVCSInterface::get_singleton()); @@ -444,14 +444,14 @@ VersionControlEditorPlugin::VersionControlEditorPlugin() { set_up_choice = memnew(OptionButton); set_up_choice->set_h_size_flags(HBoxContainer::SIZE_EXPAND_FILL); - set_up_choice->connect("item_selected", this, "_selected_a_vcs"); + set_up_choice->connect_compat("item_selected", this, "_selected_a_vcs"); set_up_hbc->add_child(set_up_choice); set_up_init_settings = NULL; set_up_init_button = memnew(Button); set_up_init_button->set_text(TTR("Initialize")); - set_up_init_button->connect("pressed", this, "_initialize_vcs"); + set_up_init_button->connect_compat("pressed", this, "_initialize_vcs"); set_up_vbc->add_child(set_up_init_button); version_control_actions->set_v_size_flags(PopupMenu::SIZE_EXPAND_FILL); @@ -479,7 +479,7 @@ VersionControlEditorPlugin::VersionControlEditorPlugin() { refresh_button->set_tooltip(TTR("Detect new changes")); refresh_button->set_text(TTR("Refresh")); refresh_button->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("Reload", "EditorIcons")); - refresh_button->connect("pressed", this, "_refresh_stage_area"); + refresh_button->connect_compat("pressed", this, "_refresh_stage_area"); stage_tools->add_child(refresh_button); stage_files = memnew(Tree); @@ -492,7 +492,7 @@ VersionControlEditorPlugin::VersionControlEditorPlugin() { stage_files->set_allow_rmb_select(true); stage_files->set_select_mode(Tree::SelectMode::SELECT_MULTI); stage_files->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); - stage_files->connect("cell_selected", this, "_view_file_diff"); + stage_files->connect_compat("cell_selected", this, "_view_file_diff"); stage_files->create_item(); stage_files->set_hide_root(true); commit_box_vbc->add_child(stage_files); @@ -516,12 +516,12 @@ VersionControlEditorPlugin::VersionControlEditorPlugin() { stage_selected_button = memnew(Button); stage_selected_button->set_h_size_flags(Button::SIZE_EXPAND_FILL); stage_selected_button->set_text(TTR("Stage Selected")); - stage_selected_button->connect("pressed", this, "_stage_selected"); + stage_selected_button->connect_compat("pressed", this, "_stage_selected"); stage_buttons->add_child(stage_selected_button); stage_all_button = memnew(Button); stage_all_button->set_text(TTR("Stage All")); - stage_all_button->connect("pressed", this, "_stage_all"); + stage_all_button->connect_compat("pressed", this, "_stage_all"); stage_buttons->add_child(stage_all_button); commit_box_vbc->add_child(memnew(HSeparator)); @@ -537,7 +537,7 @@ VersionControlEditorPlugin::VersionControlEditorPlugin() { commit_button = memnew(Button); commit_button->set_text(TTR("Commit Changes")); - commit_button->connect("pressed", this, "_send_commit_msg"); + commit_button->connect_compat("pressed", this, "_send_commit_msg"); commit_box_vbc->add_child(commit_button); commit_status = memnew(Label); @@ -571,7 +571,7 @@ VersionControlEditorPlugin::VersionControlEditorPlugin() { diff_refresh_button = memnew(Button); diff_refresh_button->set_tooltip(TTR("Detect changes in file diff")); diff_refresh_button->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("Reload", "EditorIcons")); - diff_refresh_button->connect("pressed", this, "_refresh_file_diff"); + diff_refresh_button->connect_compat("pressed", this, "_refresh_file_diff"); diff_hbc->add_child(diff_refresh_button); diff = memnew(RichTextLabel); diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index ecc140d7d2..2fb23f6a84 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -35,6 +35,7 @@ #include "core/os/input.h" #include "core/os/keyboard.h" #include "core/project_settings.h" +#include "core/version.h" #include "editor/editor_log.h" #include "editor/editor_properties.h" #include "editor/editor_scale.h" @@ -72,14 +73,20 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) { } } visual_shader = Ref<VisualShader>(p_visual_shader); - if (!visual_shader->is_connected("changed", this, "_update_preview")) { - visual_shader->connect("changed", this, "_update_preview"); + if (!visual_shader->is_connected_compat("changed", this, "_update_preview")) { + visual_shader->connect_compat("changed", this, "_update_preview"); } +#ifndef DISABLE_DEPRECATED + String version = VERSION_BRANCH; + if (visual_shader->get_version() != version) { + visual_shader->update_version(version); + } +#endif visual_shader->set_graph_offset(graph->get_scroll_ofs() / EDSCALE); } else { if (visual_shader.is_valid()) { - if (visual_shader->is_connected("changed", this, "")) { - visual_shader->disconnect("changed", this, "_update_preview"); + if (visual_shader->is_connected_compat("changed", this, "")) { + visual_shader->disconnect_compat("changed", this, "_update_preview"); } } visual_shader.unref(); @@ -116,7 +123,7 @@ void VisualShaderEditor::clear_custom_types() { } } -void VisualShaderEditor::add_custom_type(const String &p_name, const Ref<Script> &p_script, const String &p_description, int p_return_icon_type, const String &p_category, const String &p_subcategory, bool p_highend) { +void VisualShaderEditor::add_custom_type(const String &p_name, const Ref<Script> &p_script, const String &p_description, int p_return_icon_type, const String &p_category, bool p_highend) { ERR_FAIL_COND(!p_name.is_valid_identifier()); ERR_FAIL_COND(!p_script.is_valid()); @@ -134,15 +141,15 @@ void VisualShaderEditor::add_custom_type(const String &p_name, const Ref<Script> ao.return_type = p_return_icon_type; ao.description = p_description; ao.category = p_category; - ao.sub_category = p_subcategory; ao.highend = p_highend; ao.is_custom = true; bool begin = false; + String root = p_category.split("/")[0]; for (int i = 0; i < add_options.size(); i++) { if (add_options[i].is_custom) { - if (add_options[i].category == p_category) { + if (add_options[i].category == root) { if (!begin) { begin = true; } @@ -239,9 +246,6 @@ void VisualShaderEditor::update_custom_nodes() { if (ref->has_method("_get_category")) { category = (String)ref->call("_get_category"); } - if (category == "") { - category = "Custom"; - } String subcategory = ""; if (ref->has_method("_get_subcategory")) { @@ -258,18 +262,19 @@ void VisualShaderEditor::update_custom_nodes() { dict["script"] = script; dict["description"] = description; dict["return_icon_type"] = return_icon_type; + + category = category.rstrip("/"); + category = category.lstrip("/"); + category = "Addons/" + category; + if (subcategory != "") { + category += "/" + subcategory; + } + dict["category"] = category; - dict["subcategory"] = subcategory; dict["highend"] = highend; String key; - key = category; - key += "/"; - if (subcategory != "") { - key += subcategory; - key += "/"; - } - key += name; + key = category + "/" + name; added[key] = dict; } @@ -284,7 +289,7 @@ void VisualShaderEditor::update_custom_nodes() { const Dictionary &value = (Dictionary)added[key]; - add_custom_type(value["name"], value["script"], value["description"], value["return_icon_type"], value["category"], value["subcategory"], value["highend"]); + add_custom_type(value["name"], value["script"], value["description"], value["return_icon_type"], value["category"], value["highend"]); } _update_options_menu(); @@ -299,22 +304,12 @@ void VisualShaderEditor::_update_options_menu() { node_desc->set_text(""); members_dialog->get_ok()->set_disabled(true); - String prev_category; - String prev_sub_category; - members->clear(); TreeItem *root = members->create_item(); - TreeItem *category = NULL; - TreeItem *sub_category = NULL; String filter = node_filter->get_text().strip_edges(); bool use_filter = !filter.empty(); - Vector<String> categories; - Vector<String> sub_categories; - - int item_count = 0; - int item_count2 = 0; bool is_first_item = true; Color unsupported_color = get_color("error_color", "Editor"); @@ -322,111 +317,95 @@ void VisualShaderEditor::_update_options_menu() { static bool low_driver = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name") == "GLES2"; + Map<String, TreeItem *> folders; + int current_func = -1; if (!visual_shader.is_null()) { current_func = visual_shader->get_mode(); } - for (int i = 0; i < add_options.size() + 1; i++) { + Vector<AddOption> custom_options; + Vector<AddOption> embedded_options; - if (i == add_options.size()) { - if (sub_category != NULL && item_count2 == 0) { - memdelete(sub_category); - --item_count; + for (int i = 0; i < add_options.size(); i++) { + if (!use_filter || add_options[i].name.findn(filter) != -1) { + if ((add_options[i].func != current_func && add_options[i].func != -1) || !_is_available(add_options[i].mode)) { + continue; } - if (category != NULL && item_count == 0) { - memdelete(category); + const_cast<AddOption &>(add_options[i]).temp_idx = i; // save valid id + if (add_options[i].is_custom) { + custom_options.push_back(add_options[i]); + } else { + embedded_options.push_back(add_options[i]); } - break; } + } + Vector<AddOption> options; + SortArray<AddOption, _OptionComparator> sorter; + sorter.sort(custom_options.ptrw(), custom_options.size()); - if (!use_filter || add_options[i].name.findn(filter) != -1) { - - if ((add_options[i].func != current_func && add_options[i].func != -1) || !_is_available(add_options[i].mode)) - continue; + options.append_array(custom_options); + options.append_array(embedded_options); - if (prev_category != add_options[i].category) { - if (category != NULL && item_count == 0) { - memdelete(category); - } + for (int i = 0; i < options.size(); i++) { + String path = options[i].category; + Vector<String> subfolders = path.split("/"); + TreeItem *category = NULL; - item_count = 0; - prev_sub_category = ""; - category = members->create_item(root); - category->set_text(0, add_options[i].category); - category->set_selectable(0, false); - if (!use_filter) - category->set_collapsed(true); - } - - if (add_options[i].sub_category != "") { - if (prev_sub_category != add_options[i].sub_category) { - if (category != NULL) { - if (sub_category != NULL && item_count2 == 0) { - memdelete(sub_category); - --item_count; - } - ++item_count; - item_count2 = 0; - sub_category = members->create_item(category); - sub_category->set_text(0, add_options[i].sub_category); - sub_category->set_selectable(0, false); - if (!use_filter) - sub_category->set_collapsed(true); - } - } - } else { - sub_category = NULL; - } - - TreeItem *p_category = NULL; - - if (sub_category != NULL) { - p_category = sub_category; - ++item_count2; - } else if (category != NULL) { - p_category = category; - ++item_count; - } - - if (p_category != NULL) { - TreeItem *item = members->create_item(p_category); - if (add_options[i].highend && low_driver) - item->set_custom_color(0, unsupported_color); - else if (add_options[i].highend) - item->set_custom_color(0, supported_color); - item->set_text(0, add_options[i].name); - if (is_first_item && use_filter) { - item->select(0); - node_desc->set_text(_get_description(i)); - is_first_item = false; - } - switch (add_options[i].return_type) { - case VisualShaderNode::PORT_TYPE_SCALAR: - item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("float", "EditorIcons")); - break; - case VisualShaderNode::PORT_TYPE_VECTOR: - item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("Vector3", "EditorIcons")); - break; - case VisualShaderNode::PORT_TYPE_BOOLEAN: - item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("bool", "EditorIcons")); - break; - case VisualShaderNode::PORT_TYPE_TRANSFORM: - item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("Transform", "EditorIcons")); - break; - case VisualShaderNode::PORT_TYPE_SAMPLER: - item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("ImageTexture", "EditorIcons")); - break; - default: - break; + if (!folders.has(path)) { + category = root; + String path_temp = ""; + for (int j = 0; j < subfolders.size(); j++) { + path_temp += subfolders[j]; + if (!folders.has(path_temp)) { + category = members->create_item(category); + category->set_selectable(0, false); + category->set_collapsed(!use_filter); + category->set_text(0, subfolders[j]); + folders.insert(path_temp, category); + } else { + category = folders[path_temp]; } - item->set_meta("id", i); } - - prev_sub_category = add_options[i].sub_category; - prev_category = add_options[i].category; + } else { + category = folders[path]; + } + + TreeItem *item = members->create_item(category); + if (options[i].highend && low_driver) + item->set_custom_color(0, unsupported_color); + else if (options[i].highend) + item->set_custom_color(0, supported_color); + item->set_text(0, options[i].name); + if (is_first_item && use_filter) { + item->select(0); + node_desc->set_text(options[i].description); + is_first_item = false; + } + switch (options[i].return_type) { + case VisualShaderNode::PORT_TYPE_SCALAR: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("float", "EditorIcons")); + break; + case VisualShaderNode::PORT_TYPE_SCALAR_INT: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("int", "EditorIcons")); + break; + case VisualShaderNode::PORT_TYPE_VECTOR: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("Vector3", "EditorIcons")); + break; + case VisualShaderNode::PORT_TYPE_BOOLEAN: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("bool", "EditorIcons")); + break; + case VisualShaderNode::PORT_TYPE_TRANSFORM: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("Transform", "EditorIcons")); + break; + case VisualShaderNode::PORT_TYPE_SAMPLER: + item->set_icon(0, EditorNode::get_singleton()->get_gui_base()->get_icon("ImageTexture", "EditorIcons")); + break; + default: + break; } + item->set_meta("id", options[i].temp_idx); } } @@ -459,14 +438,22 @@ void VisualShaderEditor::_update_created_node(GraphNode *node) { if (EditorSettings::get_singleton()->get("interface/theme/use_graph_node_headers")) { Ref<StyleBoxFlat> sb = node->get_stylebox("frame", "GraphNode"); Color c = sb->get_border_color(); - Color mono_color = ((c.r + c.g + c.b) / 3) < 0.7 ? Color(1.0, 1.0, 1.0) : Color(0.0, 0.0, 0.0); + Color ic; + Color mono_color; + if (((c.r + c.g + c.b) / 3) < 0.7) { + mono_color = Color(1.0, 1.0, 1.0); + ic = Color(0.0, 0.0, 0.0, 0.7); + } else { + mono_color = Color(0.0, 0.0, 0.0); + ic = Color(1.0, 1.0, 1.0, 0.7); + } mono_color.a = 0.85; c = mono_color; node->add_color_override("title_color", c); c.a = 0.7; node->add_color_override("close_color", c); - node->add_color_override("resizer_color", c); + node->add_color_override("resizer_color", ic); } } @@ -493,12 +480,13 @@ void VisualShaderEditor::_update_graph() { } } - static const Color type_color[5] = { - Color(0.38, 0.85, 0.96), // scalar + static const Color type_color[6] = { + Color(0.38, 0.85, 0.96), // scalar (float) + Color(0.49, 0.78, 0.94), // scalar (int) Color(0.84, 0.49, 0.93), // vector Color(0.55, 0.65, 0.94), // boolean Color(0.96, 0.66, 0.43), // transform - Color(1.0, 1.0, 0.0) // sampler + Color(1.0, 1.0, 0.0), // sampler }; List<VisualShader::Connection> connections; @@ -529,7 +517,7 @@ void VisualShaderEditor::_update_graph() { size = group_node->get_size(); node->set_resizable(true); - node->connect("resize_request", this, "_node_resized", varray((int)type, nodes[n_i])); + node->connect_compat("resize_request", this, "_node_resized", varray((int)type, nodes[n_i])); } if (is_expression) { expression = expression_node->get_expression(); @@ -546,10 +534,10 @@ void VisualShaderEditor::_update_graph() { if (nodes[n_i] >= 2) { node->set_show_close_button(true); - node->connect("close_request", this, "_delete_request", varray(nodes[n_i]), CONNECT_DEFERRED); + node->connect_compat("close_request", this, "_delete_request", varray(nodes[n_i]), CONNECT_DEFERRED); } - node->connect("dragged", this, "_node_dragged", varray(nodes[n_i])); + node->connect_compat("dragged", this, "_node_dragged", varray(nodes[n_i])); Control *custom_editor = NULL; int port_offset = 0; @@ -559,7 +547,8 @@ void VisualShaderEditor::_update_graph() { } Ref<VisualShaderNodeUniform> uniform = vsnode; - Ref<VisualShaderNodeScalarUniform> scalar_uniform = vsnode; + Ref<VisualShaderNodeFloatUniform> float_uniform = vsnode; + Ref<VisualShaderNodeIntUniform> int_uniform = vsnode; if (uniform.is_valid()) { graph->add_child(node); _update_created_node(node); @@ -567,14 +556,14 @@ void VisualShaderEditor::_update_graph() { LineEdit *uniform_name = memnew(LineEdit); uniform_name->set_text(uniform->get_uniform_name()); node->add_child(uniform_name); - uniform_name->connect("text_entered", this, "_line_edit_changed", varray(uniform_name, nodes[n_i])); - uniform_name->connect("focus_exited", this, "_line_edit_focus_out", varray(uniform_name, nodes[n_i])); + uniform_name->connect_compat("text_entered", this, "_line_edit_changed", varray(uniform_name, nodes[n_i])); + uniform_name->connect_compat("focus_exited", this, "_line_edit_focus_out", varray(uniform_name, nodes[n_i])); if (vsnode->get_input_port_count() == 0 && vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") { //shortcut VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0); node->set_slot(0, false, VisualShaderNode::PORT_TYPE_SCALAR, Color(), true, port_right, type_color[port_right]); - if (!scalar_uniform.is_valid()) { + if (!float_uniform.is_valid() && !int_uniform.is_valid()) { continue; } } @@ -588,13 +577,13 @@ void VisualShaderEditor::_update_graph() { } } - if (custom_editor && !scalar_uniform.is_valid() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == "")) { + if (custom_editor && !float_uniform.is_valid() && !int_uniform.is_valid() && vsnode->get_output_port_count() > 0 && vsnode->get_output_port_name(0) == "" && (vsnode->get_input_port_count() == 0 || vsnode->get_input_port_name(0) == "")) { //will be embedded in first port } else if (custom_editor) { port_offset++; node->add_child(custom_editor); - if (scalar_uniform.is_valid()) { + if (float_uniform.is_valid() || int_uniform.is_valid()) { custom_editor->call_deferred("_show_prop_names", true); continue; } @@ -612,14 +601,14 @@ void VisualShaderEditor::_update_graph() { Button *add_input_btn = memnew(Button); add_input_btn->set_text(TTR("Add Input")); - add_input_btn->connect("pressed", this, "_add_input_port", varray(nodes[n_i], group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "input" + itos(group_node->get_free_input_port_id())), CONNECT_DEFERRED); + add_input_btn->connect_compat("pressed", this, "_add_input_port", varray(nodes[n_i], group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "input" + itos(group_node->get_free_input_port_id())), CONNECT_DEFERRED); hb2->add_child(add_input_btn); hb2->add_spacer(); Button *add_output_btn = memnew(Button); add_output_btn->set_text(TTR("Add Output")); - add_output_btn->connect("pressed", this, "_add_output_port", varray(nodes[n_i], group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "output" + itos(group_node->get_free_output_port_id())), CONNECT_DEFERRED); + add_output_btn->connect_compat("pressed", this, "_add_output_port", varray(nodes[n_i], group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "output" + itos(group_node->get_free_output_port_id())), CONNECT_DEFERRED); hb2->add_child(add_output_btn); node->add_child(hb2); @@ -667,19 +656,19 @@ void VisualShaderEditor::_update_graph() { if (default_value.get_type() != Variant::NIL) { // only a label Button *button = memnew(Button); hb->add_child(button); - button->connect("pressed", this, "_edit_port_default_input", varray(button, nodes[n_i], i)); + button->connect_compat("pressed", this, "_edit_port_default_input", varray(button, nodes[n_i], i)); switch (default_value.get_type()) { case Variant::COLOR: { button->set_custom_minimum_size(Size2(30, 0) * EDSCALE); - button->connect("draw", this, "_draw_color_over_button", varray(button, default_value)); + button->connect_compat("draw", this, "_draw_color_over_button", varray(button, default_value)); } break; case Variant::BOOL: { button->set_text(((bool)default_value) ? "true" : "false"); } break; case Variant::INT: - case Variant::REAL: { + case Variant::FLOAT: { button->set_text(String::num(default_value, 4)); } break; case Variant::VECTOR3: { @@ -701,27 +690,28 @@ void VisualShaderEditor::_update_graph() { if (is_group) { OptionButton *type_box = memnew(OptionButton); hb->add_child(type_box); - type_box->add_item(TTR("Scalar")); + type_box->add_item(TTR("Float")); + type_box->add_item(TTR("Int")); type_box->add_item(TTR("Vector")); type_box->add_item(TTR("Boolean")); type_box->add_item(TTR("Transform")); type_box->add_item(TTR("Sampler")); type_box->select(group_node->get_input_port_type(i)); type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); - type_box->connect("item_selected", this, "_change_input_port_type", varray(nodes[n_i], i), CONNECT_DEFERRED); + type_box->connect_compat("item_selected", this, "_change_input_port_type", varray(nodes[n_i], i), CONNECT_DEFERRED); LineEdit *name_box = memnew(LineEdit); hb->add_child(name_box); name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0)); name_box->set_h_size_flags(SIZE_EXPAND_FILL); name_box->set_text(name_left); - name_box->connect("text_entered", this, "_change_input_port_name", varray(name_box, nodes[n_i], i)); - name_box->connect("focus_exited", this, "_port_name_focus_out", varray(name_box, nodes[n_i], i, false)); + name_box->connect_compat("text_entered", this, "_change_input_port_name", varray(name_box, nodes[n_i], i)); + name_box->connect_compat("focus_exited", this, "_port_name_focus_out", varray(name_box, nodes[n_i], i, false)); Button *remove_btn = memnew(Button); remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("Remove", "EditorIcons")); remove_btn->set_tooltip(TTR("Remove") + " " + name_left); - remove_btn->connect("pressed", this, "_remove_input_port", varray(nodes[n_i], i), CONNECT_DEFERRED); + remove_btn->connect_compat("pressed", this, "_remove_input_port", varray(nodes[n_i], i), CONNECT_DEFERRED); hb->add_child(remove_btn); } else { @@ -750,7 +740,7 @@ void VisualShaderEditor::_update_graph() { Button *remove_btn = memnew(Button); remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("Remove", "EditorIcons")); remove_btn->set_tooltip(TTR("Remove") + " " + name_left); - remove_btn->connect("pressed", this, "_remove_output_port", varray(nodes[n_i], i), CONNECT_DEFERRED); + remove_btn->connect_compat("pressed", this, "_remove_output_port", varray(nodes[n_i], i), CONNECT_DEFERRED); hb->add_child(remove_btn); LineEdit *name_box = memnew(LineEdit); @@ -758,18 +748,19 @@ void VisualShaderEditor::_update_graph() { name_box->set_custom_minimum_size(Size2(65 * EDSCALE, 0)); name_box->set_h_size_flags(SIZE_EXPAND_FILL); name_box->set_text(name_right); - name_box->connect("text_entered", this, "_change_output_port_name", varray(name_box, nodes[n_i], i)); - name_box->connect("focus_exited", this, "_port_name_focus_out", varray(name_box, nodes[n_i], i, true)); + name_box->connect_compat("text_entered", this, "_change_output_port_name", varray(name_box, nodes[n_i], i)); + name_box->connect_compat("focus_exited", this, "_port_name_focus_out", varray(name_box, nodes[n_i], i, true)); OptionButton *type_box = memnew(OptionButton); hb->add_child(type_box); - type_box->add_item(TTR("Scalar")); + type_box->add_item(TTR("Float")); + type_box->add_item(TTR("Int")); type_box->add_item(TTR("Vector")); type_box->add_item(TTR("Boolean")); type_box->add_item(TTR("Transform")); type_box->select(group_node->get_output_port_type(i)); type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); - type_box->connect("item_selected", this, "_change_output_port_type", varray(nodes[n_i], i), CONNECT_DEFERRED); + type_box->connect_compat("item_selected", this, "_change_output_port_type", varray(nodes[n_i], i), CONNECT_DEFERRED); } else { Label *label = memnew(Label); label->set_text(name_right); @@ -790,7 +781,7 @@ void VisualShaderEditor::_update_graph() { preview->set_pressed(true); } - preview->connect("pressed", this, "_preview_select_port", varray(nodes[n_i], i), CONNECT_DEFERRED); + preview->connect_compat("pressed", this, "_preview_select_port", varray(nodes[n_i], i), CONNECT_DEFERRED); hb->add_child(preview); } @@ -863,7 +854,7 @@ void VisualShaderEditor::_update_graph() { expression_box->set_context_menu_enabled(false); expression_box->set_show_line_numbers(true); - expression_box->connect("focus_exited", this, "_expression_focus_out", varray(expression_box, nodes[n_i])); + expression_box->connect_compat("focus_exited", this, "_expression_focus_out", varray(expression_box, nodes[n_i])); } if (!uniform.is_valid()) { @@ -1326,7 +1317,7 @@ VisualShaderNode *VisualShaderEditor::_add_node(int p_idx, int p_op_idx) { VisualShaderNode *vsn = Object::cast_to<VisualShaderNode>(ClassDB::instance(add_options[p_idx].type)); ERR_FAIL_COND_V(!vsn, NULL); - VisualShaderNodeScalarConstant *constant = Object::cast_to<VisualShaderNodeScalarConstant>(vsn); + VisualShaderNodeFloatConstant *constant = Object::cast_to<VisualShaderNodeFloatConstant>(vsn); if (constant) { if ((int)add_options[p_idx].value != -1) @@ -1365,16 +1356,28 @@ VisualShaderNode *VisualShaderEditor::_add_node(int p_idx, int p_op_idx) { colorFunc->set_function((VisualShaderNodeColorFunc::Function)p_op_idx); } - VisualShaderNodeScalarOp *scalarOp = Object::cast_to<VisualShaderNodeScalarOp>(vsn); + VisualShaderNodeFloatOp *floatOp = Object::cast_to<VisualShaderNodeFloatOp>(vsn); + + if (floatOp) { + floatOp->set_operator((VisualShaderNodeFloatOp::Operator)p_op_idx); + } + + VisualShaderNodeIntOp *intOp = Object::cast_to<VisualShaderNodeIntOp>(vsn); + + if (intOp) { + intOp->set_operator((VisualShaderNodeIntOp::Operator)p_op_idx); + } + + VisualShaderNodeFloatFunc *floatFunc = Object::cast_to<VisualShaderNodeFloatFunc>(vsn); - if (scalarOp) { - scalarOp->set_operator((VisualShaderNodeScalarOp::Operator)p_op_idx); + if (floatFunc) { + floatFunc->set_function((VisualShaderNodeFloatFunc::Function)p_op_idx); } - VisualShaderNodeScalarFunc *scalarFunc = Object::cast_to<VisualShaderNodeScalarFunc>(vsn); + VisualShaderNodeIntFunc *intFunc = Object::cast_to<VisualShaderNodeIntFunc>(vsn); - if (scalarFunc) { - scalarFunc->set_function((VisualShaderNodeScalarFunc::Function)p_op_idx); + if (intFunc) { + intFunc->set_function((VisualShaderNodeIntFunc::Function)p_op_idx); } VisualShaderNodeVectorOp *vecOp = Object::cast_to<VisualShaderNodeVectorOp>(vsn); @@ -1606,8 +1609,29 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> mb = p_event; - if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_RIGHT) - _show_members_dialog(true); + if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_RIGHT) { + List<int> to_change; + for (int i = 0; i < graph->get_child_count(); i++) { + GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i)); + if (gn) { + if (gn->is_selected() && gn->is_close_button_visible()) { + to_change.push_back(gn->get_name().operator String().to_int()); + } + } + } + if (to_change.empty() && copy_nodes_buffer.empty()) { + _show_members_dialog(true); + } else { + popup_menu->set_item_disabled(NodeMenuOptions::COPY, to_change.empty()); + popup_menu->set_item_disabled(NodeMenuOptions::PASTE, copy_nodes_buffer.empty()); + popup_menu->set_item_disabled(NodeMenuOptions::DELETE, to_change.empty()); + popup_menu->set_item_disabled(NodeMenuOptions::DUPLICATE, to_change.empty()); + menu_point = graph->get_local_mouse_position(); + Point2 gpos = Input::get_singleton()->get_mouse_position(); + popup_menu->set_position(gpos); + popup_menu->popup(); + } + } } void VisualShaderEditor::_show_members_dialog(bool at_mouse_pos) { @@ -1905,7 +1929,7 @@ void VisualShaderEditor::_copy_nodes() { _dup_copy_nodes(copy_type, copy_nodes_buffer, copy_nodes_excluded_buffer); } -void VisualShaderEditor::_paste_nodes() { +void VisualShaderEditor::_paste_nodes(bool p_use_custom_position, const Vector2 &p_custom_position) { if (copy_nodes_buffer.empty()) return; @@ -1916,12 +1940,19 @@ void VisualShaderEditor::_paste_nodes() { float scale = graph->get_zoom(); - _dup_paste_nodes(type, copy_type, copy_nodes_buffer, copy_nodes_excluded_buffer, (graph->get_scroll_ofs() / scale + graph->get_local_mouse_position() / scale - selection_center), false); + Vector2 mpos; + if (p_use_custom_position) { + mpos = p_custom_position; + } else { + mpos = graph->get_local_mouse_position(); + } + + _dup_paste_nodes(type, copy_type, copy_nodes_buffer, copy_nodes_excluded_buffer, (graph->get_scroll_ofs() / scale + mpos / scale - selection_center), false); _dup_update_excluded(type, copy_nodes_excluded_buffer); // to prevent selection of previous copies at new paste } -void VisualShaderEditor::_on_nodes_delete() { +void VisualShaderEditor::_delete_nodes() { VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); List<int> to_erase; @@ -2107,6 +2138,26 @@ void VisualShaderEditor::_tools_menu_option(int p_idx) { } } +void VisualShaderEditor::_node_menu_id_pressed(int p_idx) { + switch (p_idx) { + case NodeMenuOptions::ADD: + _show_members_dialog(true); + break; + case NodeMenuOptions::COPY: + _copy_nodes(); + break; + case NodeMenuOptions::PASTE: + _paste_nodes(true, menu_point); + break; + case NodeMenuOptions::DELETE: + _delete_nodes(); + break; + case NodeMenuOptions::DUPLICATE: + _duplicate_nodes(); + break; + } +} + Variant VisualShaderEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from) { if (p_from == members) { @@ -2164,10 +2215,10 @@ void VisualShaderEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da saved_node_pos_dirty = true; _add_node(idx, add_options[idx].sub_func); } else if (d.has("files")) { - if (d["files"].get_type() == Variant::POOL_STRING_ARRAY) { + if (d["files"].get_type() == Variant::PACKED_STRING_ARRAY) { int j = 0; - PoolStringArray arr = d["files"]; + PackedStringArray arr = d["files"]; for (int i = 0; i < arr.size(); i++) { String type = ResourceLoader::get_resource_type(arr[i]); @@ -2245,7 +2296,7 @@ void VisualShaderEditor::_bind_methods() { ClassDB::bind_method("_node_selected", &VisualShaderEditor::_node_selected); ClassDB::bind_method("_scroll_changed", &VisualShaderEditor::_scroll_changed); ClassDB::bind_method("_delete_request", &VisualShaderEditor::_delete_request); - ClassDB::bind_method("_on_nodes_delete", &VisualShaderEditor::_on_nodes_delete); + ClassDB::bind_method("_delete_nodes", &VisualShaderEditor::_delete_nodes); ClassDB::bind_method("_node_changed", &VisualShaderEditor::_node_changed); ClassDB::bind_method("_edit_port_default_input", &VisualShaderEditor::_edit_port_default_input); ClassDB::bind_method("_port_edited", &VisualShaderEditor::_port_edited); @@ -2288,6 +2339,8 @@ void VisualShaderEditor::_bind_methods() { ClassDB::bind_method("_member_unselected", &VisualShaderEditor::_member_unselected); ClassDB::bind_method("_member_create", &VisualShaderEditor::_member_create); ClassDB::bind_method("_member_cancel", &VisualShaderEditor::_member_cancel); + + ClassDB::bind_method("_node_menu_id_pressed", &VisualShaderEditor::_node_menu_id_pressed); } VisualShaderEditor *VisualShaderEditor::singleton = NULL; @@ -2321,30 +2374,38 @@ VisualShaderEditor::VisualShaderEditor() { main_box->add_child(graph); graph->set_drag_forwarding(this); graph->add_valid_right_disconnect_type(VisualShaderNode::PORT_TYPE_SCALAR); + graph->add_valid_right_disconnect_type(VisualShaderNode::PORT_TYPE_SCALAR_INT); graph->add_valid_right_disconnect_type(VisualShaderNode::PORT_TYPE_BOOLEAN); graph->add_valid_right_disconnect_type(VisualShaderNode::PORT_TYPE_VECTOR); graph->add_valid_right_disconnect_type(VisualShaderNode::PORT_TYPE_TRANSFORM); graph->add_valid_right_disconnect_type(VisualShaderNode::PORT_TYPE_SAMPLER); //graph->add_valid_left_disconnect_type(0); graph->set_v_size_flags(SIZE_EXPAND_FILL); - graph->connect("connection_request", this, "_connection_request", varray(), CONNECT_DEFERRED); - graph->connect("disconnection_request", this, "_disconnection_request", varray(), CONNECT_DEFERRED); - graph->connect("node_selected", this, "_node_selected"); - graph->connect("scroll_offset_changed", this, "_scroll_changed"); - graph->connect("duplicate_nodes_request", this, "_duplicate_nodes"); - graph->connect("copy_nodes_request", this, "_copy_nodes"); - graph->connect("paste_nodes_request", this, "_paste_nodes"); - graph->connect("delete_nodes_request", this, "_on_nodes_delete"); - graph->connect("gui_input", this, "_graph_gui_input"); - graph->connect("connection_to_empty", this, "_connection_to_empty"); - graph->connect("connection_from_empty", this, "_connection_from_empty"); + graph->connect_compat("connection_request", this, "_connection_request", varray(), CONNECT_DEFERRED); + graph->connect_compat("disconnection_request", this, "_disconnection_request", varray(), CONNECT_DEFERRED); + graph->connect_compat("node_selected", this, "_node_selected"); + graph->connect_compat("scroll_offset_changed", this, "_scroll_changed"); + graph->connect_compat("duplicate_nodes_request", this, "_duplicate_nodes"); + graph->connect_compat("copy_nodes_request", this, "_copy_nodes"); + graph->connect_compat("paste_nodes_request", this, "_paste_nodes"); + graph->connect_compat("delete_nodes_request", this, "_delete_nodes"); + graph->connect_compat("gui_input", this, "_graph_gui_input"); + graph->connect_compat("connection_to_empty", this, "_connection_to_empty"); + graph->connect_compat("connection_from_empty", this, "_connection_from_empty"); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR, VisualShaderNode::PORT_TYPE_SCALAR); + graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR, VisualShaderNode::PORT_TYPE_SCALAR_INT); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR, VisualShaderNode::PORT_TYPE_VECTOR); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR, VisualShaderNode::PORT_TYPE_BOOLEAN); + graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShaderNode::PORT_TYPE_SCALAR_INT); + graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShaderNode::PORT_TYPE_SCALAR); + graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShaderNode::PORT_TYPE_VECTOR); + graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShaderNode::PORT_TYPE_BOOLEAN); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_VECTOR, VisualShaderNode::PORT_TYPE_SCALAR); + graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_VECTOR, VisualShaderNode::PORT_TYPE_SCALAR_INT); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_VECTOR, VisualShaderNode::PORT_TYPE_VECTOR); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_VECTOR, VisualShaderNode::PORT_TYPE_BOOLEAN); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShaderNode::PORT_TYPE_SCALAR); + graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShaderNode::PORT_TYPE_SCALAR_INT); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShaderNode::PORT_TYPE_VECTOR); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_BOOLEAN, VisualShaderNode::PORT_TYPE_BOOLEAN); graph->add_valid_connection_type(VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShaderNode::PORT_TYPE_TRANSFORM); @@ -2359,7 +2420,7 @@ VisualShaderEditor::VisualShaderEditor() { edit_type->add_item(TTR("Fragment")); edit_type->add_item(TTR("Light")); edit_type->select(1); - edit_type->connect("item_selected", this, "_mode_selected"); + edit_type->connect_compat("item_selected", this, "_mode_selected"); graph->get_zoom_hbox()->add_child(edit_type); graph->get_zoom_hbox()->move_child(edit_type, 0); @@ -2367,13 +2428,13 @@ VisualShaderEditor::VisualShaderEditor() { graph->get_zoom_hbox()->add_child(add_node); add_node->set_text(TTR("Add Node...")); graph->get_zoom_hbox()->move_child(add_node, 0); - add_node->connect("pressed", this, "_show_members_dialog", varray(false)); + add_node->connect_compat("pressed", this, "_show_members_dialog", varray(false)); preview_shader = memnew(ToolButton); preview_shader->set_toggle_mode(true); preview_shader->set_tooltip(TTR("Show resulted shader code.")); graph->get_zoom_hbox()->add_child(preview_shader); - preview_shader->connect("pressed", this, "_show_preview_text"); + preview_shader->connect_compat("pressed", this, "_show_preview_text"); /////////////////////////////////////// // PREVIEW PANEL @@ -2396,6 +2457,20 @@ VisualShaderEditor::VisualShaderEditor() { error_text->set_visible(false); /////////////////////////////////////// + // POPUP MENU + /////////////////////////////////////// + + popup_menu = memnew(PopupMenu); + add_child(popup_menu); + popup_menu->add_item("Add Node", NodeMenuOptions::ADD); + popup_menu->add_separator(); + popup_menu->add_item("Copy", NodeMenuOptions::COPY); + popup_menu->add_item("Paste", NodeMenuOptions::PASTE); + popup_menu->add_item("Delete", NodeMenuOptions::DELETE); + popup_menu->add_item("Duplicate", NodeMenuOptions::DUPLICATE); + popup_menu->connect_compat("id_pressed", this, "_node_menu_id_pressed"); + + /////////////////////////////////////// // SHADER NODES TREE /////////////////////////////////////// @@ -2407,15 +2482,15 @@ VisualShaderEditor::VisualShaderEditor() { node_filter = memnew(LineEdit); filter_hb->add_child(node_filter); - node_filter->connect("text_changed", this, "_member_filter_changed"); - node_filter->connect("gui_input", this, "_sbox_input"); + node_filter->connect_compat("text_changed", this, "_member_filter_changed"); + node_filter->connect_compat("gui_input", this, "_sbox_input"); node_filter->set_h_size_flags(SIZE_EXPAND_FILL); node_filter->set_placeholder(TTR("Search")); tools = memnew(MenuButton); filter_hb->add_child(tools); tools->set_tooltip(TTR("Options")); - tools->get_popup()->connect("id_pressed", this, "_tools_menu_option"); + tools->get_popup()->connect_compat("id_pressed", this, "_tools_menu_option"); tools->get_popup()->add_item(TTR("Expand All"), EXPAND_ALL); tools->get_popup()->add_item(TTR("Collapse All"), COLLAPSE_ALL); @@ -2428,9 +2503,9 @@ VisualShaderEditor::VisualShaderEditor() { members->set_allow_reselect(true); members->set_hide_folding(false); members->set_custom_minimum_size(Size2(180 * EDSCALE, 200 * EDSCALE)); - members->connect("item_activated", this, "_member_create"); - members->connect("item_selected", this, "_member_selected"); - members->connect("nothing_selected", this, "_member_unselected"); + members->connect_compat("item_activated", this, "_member_create"); + members->connect_compat("item_selected", this, "_member_selected"); + members->connect_compat("nothing_selected", this, "_member_unselected"); HBoxContainer *desc_hbox = memnew(HBoxContainer); members_vb->add_child(desc_hbox); @@ -2458,11 +2533,11 @@ VisualShaderEditor::VisualShaderEditor() { members_dialog->set_title(TTR("Create Shader Node")); members_dialog->add_child(members_vb); members_dialog->get_ok()->set_text(TTR("Create")); - members_dialog->get_ok()->connect("pressed", this, "_member_create"); + members_dialog->get_ok()->connect_compat("pressed", this, "_member_create"); members_dialog->get_ok()->set_disabled(true); members_dialog->set_resizable(true); members_dialog->set_as_minsize(); - members_dialog->connect("hide", this, "_member_cancel"); + members_dialog->connect_compat("hide", this, "_member_cancel"); add_child(members_dialog); alert = memnew(AcceptDialog); @@ -2633,7 +2708,7 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("CustomAlpha", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "custom_alpha"), "custom_alpha", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); add_options.push_back(AddOption("Delta", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "delta"), "delta", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); add_options.push_back(AddOption("EmissionTransform", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "emission_transform"), "emission_transform", VisualShaderNode::PORT_TYPE_TRANSFORM, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); - add_options.push_back(AddOption("Index", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); + add_options.push_back(AddOption("Index", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "index"), "index", VisualShaderNode::PORT_TYPE_SCALAR_INT, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); add_options.push_back(AddOption("LifeTime", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "lifetime"), "lifetime", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); add_options.push_back(AddOption("Restart", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "restart"), "restart", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); add_options.push_back(AddOption("Time", "Input", "Vertex", "VisualShaderNodeInput", vformat(input_param_for_vertex_shader_mode, "time"), "time", VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_VERTEX, Shader::MODE_PARTICLES)); @@ -2642,71 +2717,84 @@ VisualShaderEditor::VisualShaderEditor() { // SCALAR - add_options.push_back(AddOption("ScalarFunc", "Scalar", "Common", "VisualShaderNodeScalarFunc", TTR("Scalar function."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ScalarOp", "Scalar", "Common", "VisualShaderNodeScalarOp", TTR("Scalar operator."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("FloatFunc", "Scalar", "Common", "VisualShaderNodeFloatFunc", TTR("Float function."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("IntFunc", "Scalar", "Common", "VisualShaderNodeIntFunc", TTR("Integer function."), -1, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("FloatOp", "Scalar", "Common", "VisualShaderNodeFloatOp", TTR("Float operator."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("IntOp", "Scalar", "Common", "VisualShaderNodeIntOp", TTR("Integer operator."), -1, VisualShaderNode::PORT_TYPE_SCALAR_INT)); //CONSTANTS - add_options.push_back(AddOption("E", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("E constant (2.718282). Represents the base of the natural logarithm."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_E)); - add_options.push_back(AddOption("Epsilon", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Epsilon constant (0.00001). Smallest possible scalar number."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, CMP_EPSILON)); - add_options.push_back(AddOption("Phi", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Phi constant (1.618034). Golden ratio."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, 1.618034f)); - add_options.push_back(AddOption("Pi/4", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Pi/4 constant (0.785398) or 45 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 4)); - add_options.push_back(AddOption("Pi/2", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Pi/2 constant (1.570796) or 90 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 2)); - add_options.push_back(AddOption("Pi", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Pi constant (3.141593) or 180 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI)); - add_options.push_back(AddOption("Tau", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Tau constant (6.283185) or 360 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_TAU)); - add_options.push_back(AddOption("Sqrt2", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Sqrt2 constant (1.414214). Square root of 2."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_SQRT2)); + add_options.push_back(AddOption("E", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("E constant (2.718282). Represents the base of the natural logarithm."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_E)); + add_options.push_back(AddOption("Epsilon", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Epsilon constant (0.00001). Smallest possible scalar number."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, CMP_EPSILON)); + add_options.push_back(AddOption("Phi", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Phi constant (1.618034). Golden ratio."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, 1.618034f)); + add_options.push_back(AddOption("Pi/4", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Pi/4 constant (0.785398) or 45 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 4)); + add_options.push_back(AddOption("Pi/2", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Pi/2 constant (1.570796) or 90 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 2)); + add_options.push_back(AddOption("Pi", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Pi constant (3.141593) or 180 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI)); + add_options.push_back(AddOption("Tau", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Tau constant (6.283185) or 360 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_TAU)); + add_options.push_back(AddOption("Sqrt2", "Scalar", "Constants", "VisualShaderNodeFloatConstant", TTR("Sqrt2 constant (1.414214). Square root of 2."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_SQRT2)); // FUNCTIONS - add_options.push_back(AddOption("Abs", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the absolute value of the parameter."), VisualShaderNodeScalarFunc::FUNC_ABS, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ACos", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the arc-cosine of the parameter."), VisualShaderNodeScalarFunc::FUNC_ACOS, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ACosH", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the inverse hyperbolic cosine of the parameter."), VisualShaderNodeScalarFunc::FUNC_ACOSH, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ASin", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the arc-sine of the parameter."), VisualShaderNodeScalarFunc::FUNC_ASIN, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ASinH", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the inverse hyperbolic sine of the parameter."), VisualShaderNodeScalarFunc::FUNC_ASINH, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ATan", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the arc-tangent of the parameter."), VisualShaderNodeScalarFunc::FUNC_ATAN, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ATan2", "Scalar", "Functions", "VisualShaderNodeScalarOp", TTR("Returns the arc-tangent of the parameters."), VisualShaderNodeScalarOp::OP_ATAN2, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ATanH", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the inverse hyperbolic tangent of the parameter."), VisualShaderNodeScalarFunc::FUNC_ATANH, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Ceil", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Finds the nearest integer that is greater than or equal to the parameter."), VisualShaderNodeScalarFunc::FUNC_CEIL, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Abs", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the absolute value of the parameter."), VisualShaderNodeFloatFunc::FUNC_ABS, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Abs", "Scalar", "Functions", "VisualShaderNodeIntFunc", TTR("Returns the absolute value of the parameter."), VisualShaderNodeIntFunc::FUNC_ABS, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("ACos", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the arc-cosine of the parameter."), VisualShaderNodeFloatFunc::FUNC_ACOS, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("ACosH", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the inverse hyperbolic cosine of the parameter."), VisualShaderNodeFloatFunc::FUNC_ACOSH, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("ASin", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the arc-sine of the parameter."), VisualShaderNodeFloatFunc::FUNC_ASIN, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("ASinH", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the inverse hyperbolic sine of the parameter."), VisualShaderNodeFloatFunc::FUNC_ASINH, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("ATan", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the arc-tangent of the parameter."), VisualShaderNodeFloatFunc::FUNC_ATAN, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("ATan2", "Scalar", "Functions", "VisualShaderNodeFloatOp", TTR("Returns the arc-tangent of the parameters."), VisualShaderNodeFloatOp::OP_ATAN2, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("ATanH", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the inverse hyperbolic tangent of the parameter."), VisualShaderNodeFloatFunc::FUNC_ATANH, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Ceil", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Finds the nearest integer that is greater than or equal to the parameter."), VisualShaderNodeFloatFunc::FUNC_CEIL, VisualShaderNode::PORT_TYPE_SCALAR)); add_options.push_back(AddOption("Clamp", "Scalar", "Functions", "VisualShaderNodeScalarClamp", TTR("Constrains a value to lie between two further values."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Cos", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the cosine of the parameter."), VisualShaderNodeScalarFunc::FUNC_COS, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("CosH", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the hyperbolic cosine of the parameter."), VisualShaderNodeScalarFunc::FUNC_COSH, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Degrees", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Converts a quantity in radians to degrees."), VisualShaderNodeScalarFunc::FUNC_DEGREES, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Exp", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Base-e Exponential."), VisualShaderNodeScalarFunc::FUNC_EXP, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Exp2", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Base-2 Exponential."), VisualShaderNodeScalarFunc::FUNC_EXP2, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Floor", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Finds the nearest integer less than or equal to the parameter."), VisualShaderNodeScalarFunc::FUNC_FLOOR, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Fract", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Computes the fractional part of the argument."), VisualShaderNodeScalarFunc::FUNC_FRAC, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("InverseSqrt", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the inverse of the square root of the parameter."), VisualShaderNodeScalarFunc::FUNC_INVERSE_SQRT, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Log", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Natural logarithm."), VisualShaderNodeScalarFunc::FUNC_LOG, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Log2", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Base-2 logarithm."), VisualShaderNodeScalarFunc::FUNC_LOG2, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Max", "Scalar", "Functions", "VisualShaderNodeScalarOp", TTR("Returns the greater of two values."), VisualShaderNodeScalarOp::OP_MAX, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Min", "Scalar", "Functions", "VisualShaderNodeScalarOp", TTR("Returns the lesser of two values."), VisualShaderNodeScalarOp::OP_MIN, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Clamp", "Scalar", "Functions", "VisualShaderNodeIntFunc", TTR("Constrains a value to lie between two further values."), VisualShaderNodeIntFunc::FUNC_CLAMP, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("Cos", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the cosine of the parameter."), VisualShaderNodeFloatFunc::FUNC_COS, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("CosH", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the hyperbolic cosine of the parameter."), VisualShaderNodeFloatFunc::FUNC_COSH, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Degrees", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Converts a quantity in radians to degrees."), VisualShaderNodeFloatFunc::FUNC_DEGREES, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Exp", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Base-e Exponential."), VisualShaderNodeFloatFunc::FUNC_EXP, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Exp2", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Base-2 Exponential."), VisualShaderNodeFloatFunc::FUNC_EXP2, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Floor", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Finds the nearest integer less than or equal to the parameter."), VisualShaderNodeFloatFunc::FUNC_FLOOR, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Fract", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Computes the fractional part of the argument."), VisualShaderNodeFloatFunc::FUNC_FRAC, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("InverseSqrt", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the inverse of the square root of the parameter."), VisualShaderNodeFloatFunc::FUNC_INVERSE_SQRT, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Log", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Natural logarithm."), VisualShaderNodeFloatFunc::FUNC_LOG, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Log2", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Base-2 logarithm."), VisualShaderNodeFloatFunc::FUNC_LOG2, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Max", "Scalar", "Functions", "VisualShaderNodeFloatOp", TTR("Returns the greater of two values."), VisualShaderNodeFloatOp::OP_MAX, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Min", "Scalar", "Functions", "VisualShaderNodeFloatOp", TTR("Returns the lesser of two values."), VisualShaderNodeFloatOp::OP_MIN, VisualShaderNode::PORT_TYPE_SCALAR)); add_options.push_back(AddOption("Mix", "Scalar", "Functions", "VisualShaderNodeScalarInterp", TTR("Linear interpolation between two scalars."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Negate", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the opposite value of the parameter."), VisualShaderNodeScalarFunc::FUNC_NEGATE, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("OneMinus", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("1.0 - scalar"), VisualShaderNodeScalarFunc::FUNC_ONEMINUS, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Pow", "Scalar", "Functions", "VisualShaderNodeScalarOp", TTR("Returns the value of the first parameter raised to the power of the second."), VisualShaderNodeScalarOp::OP_POW, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Radians", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Converts a quantity in degrees to radians."), VisualShaderNodeScalarFunc::FUNC_RADIANS, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Reciprocal", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("1.0 / scalar"), VisualShaderNodeScalarFunc::FUNC_RECIPROCAL, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Round", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Finds the nearest integer to the parameter."), VisualShaderNodeScalarFunc::FUNC_ROUND, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("RoundEven", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Finds the nearest even integer to the parameter."), VisualShaderNodeScalarFunc::FUNC_ROUNDEVEN, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Saturate", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Clamps the value between 0.0 and 1.0."), VisualShaderNodeScalarFunc::FUNC_SATURATE, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Sign", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Extracts the sign of the parameter."), VisualShaderNodeScalarFunc::FUNC_SIGN, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Sin", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the sine of the parameter."), VisualShaderNodeScalarFunc::FUNC_SIN, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("SinH", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the hyperbolic sine of the parameter."), VisualShaderNodeScalarFunc::FUNC_SINH, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Sqrt", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the square root of the parameter."), VisualShaderNodeScalarFunc::FUNC_SQRT, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Negate", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the opposite value of the parameter."), VisualShaderNodeFloatFunc::FUNC_NEGATE, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Negate", "Scalar", "Functions", "VisualShaderNodeIntFunc", TTR("Returns the opposite value of the parameter."), VisualShaderNodeIntFunc::FUNC_NEGATE, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("OneMinus", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("1.0 - scalar"), VisualShaderNodeFloatFunc::FUNC_ONEMINUS, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Pow", "Scalar", "Functions", "VisualShaderNodeFloatOp", TTR("Returns the value of the first parameter raised to the power of the second."), VisualShaderNodeFloatOp::OP_POW, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Radians", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Converts a quantity in degrees to radians."), VisualShaderNodeFloatFunc::FUNC_RADIANS, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Reciprocal", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("1.0 / scalar"), VisualShaderNodeFloatFunc::FUNC_RECIPROCAL, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Round", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Finds the nearest integer to the parameter."), VisualShaderNodeFloatFunc::FUNC_ROUND, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("RoundEven", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Finds the nearest even integer to the parameter."), VisualShaderNodeFloatFunc::FUNC_ROUNDEVEN, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Saturate", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Clamps the value between 0.0 and 1.0."), VisualShaderNodeFloatFunc::FUNC_SATURATE, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Sign", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Extracts the sign of the parameter."), VisualShaderNodeFloatFunc::FUNC_SIGN, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Sign", "Scalar", "Functions", "VisualShaderNodeIntFunc", TTR("Extracts the sign of the parameter."), VisualShaderNodeIntFunc::FUNC_SIGN, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("Sin", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the sine of the parameter."), VisualShaderNodeFloatFunc::FUNC_SIN, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("SinH", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the hyperbolic sine of the parameter."), VisualShaderNodeFloatFunc::FUNC_SINH, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Sqrt", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the square root of the parameter."), VisualShaderNodeFloatFunc::FUNC_SQRT, VisualShaderNode::PORT_TYPE_SCALAR)); add_options.push_back(AddOption("SmoothStep", "Scalar", "Functions", "VisualShaderNodeScalarSmoothStep", TTR("SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n\nReturns 0.0 if 'x' is smaller than 'edge0' and 1.0 if x is larger than 'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 using Hermite polynomials."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Step", "Scalar", "Functions", "VisualShaderNodeScalarOp", TTR("Step function( scalar(edge), scalar(x) ).\n\nReturns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."), VisualShaderNodeScalarOp::OP_STEP, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Tan", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the tangent of the parameter."), VisualShaderNodeScalarFunc::FUNC_TAN, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("TanH", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the hyperbolic tangent of the parameter."), VisualShaderNodeScalarFunc::FUNC_TANH, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Trunc", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Finds the truncated value of the parameter."), VisualShaderNodeScalarFunc::FUNC_TRUNC, VisualShaderNode::PORT_TYPE_SCALAR)); - - add_options.push_back(AddOption("Add", "Scalar", "Operators", "VisualShaderNodeScalarOp", TTR("Adds scalar to scalar."), VisualShaderNodeScalarOp::OP_ADD, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Divide", "Scalar", "Operators", "VisualShaderNodeScalarOp", TTR("Divides scalar by scalar."), VisualShaderNodeScalarOp::OP_DIV, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Multiply", "Scalar", "Operators", "VisualShaderNodeScalarOp", TTR("Multiplies scalar by scalar."), VisualShaderNodeScalarOp::OP_MUL, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Remainder", "Scalar", "Operators", "VisualShaderNodeScalarOp", TTR("Returns the remainder of the two scalars."), VisualShaderNodeScalarOp::OP_MOD, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("Subtract", "Scalar", "Operators", "VisualShaderNodeScalarOp", TTR("Subtracts scalar from scalar."), VisualShaderNodeScalarOp::OP_SUB, VisualShaderNode::PORT_TYPE_SCALAR)); - - add_options.push_back(AddOption("ScalarConstant", "Scalar", "Variables", "VisualShaderNodeScalarConstant", TTR("Scalar constant."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); - add_options.push_back(AddOption("ScalarUniform", "Scalar", "Variables", "VisualShaderNodeScalarUniform", TTR("Scalar uniform."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Step", "Scalar", "Functions", "VisualShaderNodeFloatOp", TTR("Step function( scalar(edge), scalar(x) ).\n\nReturns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."), VisualShaderNodeFloatOp::OP_STEP, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Tan", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the tangent of the parameter."), VisualShaderNodeFloatFunc::FUNC_TAN, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("TanH", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Returns the hyperbolic tangent of the parameter."), VisualShaderNodeFloatFunc::FUNC_TANH, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Trunc", "Scalar", "Functions", "VisualShaderNodeFloatFunc", TTR("Finds the truncated value of the parameter."), VisualShaderNodeFloatFunc::FUNC_TRUNC, VisualShaderNode::PORT_TYPE_SCALAR)); + + add_options.push_back(AddOption("Add", "Scalar", "Operators", "VisualShaderNodeFloatOp", TTR("Sums two floating-point scalars."), VisualShaderNodeFloatOp::OP_ADD, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Add", "Scalar", "Operators", "VisualShaderNodeIntOp", TTR("Sums two integer scalars."), VisualShaderNodeIntOp::OP_ADD, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("Divide", "Scalar", "Operators", "VisualShaderNodeFloatOp", TTR("Divides two floating-point scalars."), VisualShaderNodeFloatOp::OP_DIV, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Divide", "Scalar", "Operators", "VisualShaderNodeIntOp", TTR("Divides two integer scalars."), VisualShaderNodeIntOp::OP_DIV, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("Multiply", "Scalar", "Operators", "VisualShaderNodeFloatOp", TTR("Multiplies two floating-point scalars."), VisualShaderNodeFloatOp::OP_MUL, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Multiply", "Scalar", "Operators", "VisualShaderNodeIntOp", TTR("Multiplies two integer scalars."), VisualShaderNodeIntOp::OP_MUL, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("Remainder", "Scalar", "Operators", "VisualShaderNodeFloatOp", TTR("Returns the remainder of the two floating-point scalars."), VisualShaderNodeFloatOp::OP_MOD, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Remainder", "Scalar", "Operators", "VisualShaderNodeIntOp", TTR("Returns the remainder of the two integer scalars."), VisualShaderNodeIntOp::OP_MOD, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("Subtract", "Scalar", "Operators", "VisualShaderNodeFloatOp", TTR("Subtracts two floating-point scalars."), VisualShaderNodeFloatOp::OP_SUB, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("Subtract", "Scalar", "Operators", "VisualShaderNodeIntOp", TTR("Subtracts two integer scalars."), VisualShaderNodeIntOp::OP_SUB, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + + add_options.push_back(AddOption("FloatConstant", "Scalar", "Variables", "VisualShaderNodeFloatConstant", TTR("Scalar floating-point constant."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("IntConstant", "Scalar", "Variables", "VisualShaderNodeIntConstant", TTR("Scalar integer constant."), -1, VisualShaderNode::PORT_TYPE_SCALAR_INT)); + add_options.push_back(AddOption("FloatUniform", "Scalar", "Variables", "VisualShaderNodeFloatUniform", TTR("Scalar floating-point uniform."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); + add_options.push_back(AddOption("IntUniform", "Scalar", "Variables", "VisualShaderNodeIntUniform", TTR("Scalar integer uniform."), -1, VisualShaderNode::PORT_TYPE_SCALAR_INT)); // TEXTURES @@ -2841,7 +2929,7 @@ VisualShaderEditor::VisualShaderEditor() { property_editor = memnew(CustomPropertyEditor); add_child(property_editor); - property_editor->connect("variant_changed", this, "_port_edited"); + property_editor->connect_compat("variant_changed", this, "_port_edited"); } void VisualShaderEditorPlugin::edit(Object *p_object) { @@ -2902,7 +2990,7 @@ protected: public: void _notification(int p_what) { if (p_what == NOTIFICATION_READY) { - connect("item_selected", this, "_item_selected"); + connect_compat("item_selected", this, "_item_selected"); } } @@ -2912,8 +3000,9 @@ public: void setup(const Ref<VisualShaderNodeInput> &p_input) { input = p_input; - Ref<Texture2D> type_icon[5] = { + Ref<Texture2D> type_icon[6] = { EditorNode::get_singleton()->get_gui_base()->get_icon("float", "EditorIcons"), + EditorNode::get_singleton()->get_gui_base()->get_icon("int", "EditorIcons"), EditorNode::get_singleton()->get_gui_base()->get_icon("Vector3", "EditorIcons"), EditorNode::get_singleton()->get_gui_base()->get_icon("bool", "EditorIcons"), EditorNode::get_singleton()->get_gui_base()->get_icon("Transform", "EditorIcons"), @@ -3031,16 +3120,16 @@ public: bool res_prop = Object::cast_to<EditorPropertyResource>(p_properties[i]); if (res_prop) { - p_properties[i]->connect("resource_selected", this, "_resource_selected"); + p_properties[i]->connect_compat("resource_selected", this, "_resource_selected"); } - properties[i]->connect("property_changed", this, "_property_changed"); + properties[i]->connect_compat("property_changed", this, "_property_changed"); properties[i]->set_object_and_property(node.ptr(), p_names[i]); properties[i]->update_property(); properties[i]->set_name_split_ratio(0); } - node->connect("changed", this, "_node_changed"); - node->connect("editor_refresh_request", this, "_refresh_request", varray(), CONNECT_DEFERRED); + node->connect_compat("changed", this, "_node_changed"); + node->connect_compat("editor_refresh_request", this, "_refresh_request", varray(), CONNECT_DEFERRED); } static void _bind_methods() { @@ -3206,7 +3295,7 @@ EditorPropertyShaderMode::EditorPropertyShaderMode() { options->set_clip_text(true); add_child(options); add_focusable(options); - options->connect("item_selected", this, "_option_selected"); + options->connect_compat("item_selected", this, "_option_selected"); } bool EditorInspectorShaderModePlugin::can_handle(Object *p_object) { @@ -3279,7 +3368,7 @@ void VisualShaderNodePortPreview::_shader_changed() { void VisualShaderNodePortPreview::setup(const Ref<VisualShader> &p_shader, VisualShader::Type p_type, int p_node, int p_port) { shader = p_shader; - shader->connect("changed", this, "_shader_changed"); + shader->connect_compat("changed", this, "_shader_changed"); type = p_type; port = p_port; node = p_node; diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h index 150cf16167..8756fe9fe9 100644 --- a/editor/plugins/visual_shader_editor_plugin.h +++ b/editor/plugins/visual_shader_editor_plugin.h @@ -81,6 +81,7 @@ class VisualShaderEditor : public VBoxContainer { bool saved_node_pos_dirty; ConfirmationDialog *members_dialog; + PopupMenu *popup_menu; MenuButton *tools; bool preview_showed; @@ -90,6 +91,15 @@ class VisualShaderEditor : public VBoxContainer { COLLAPSE_ALL }; + enum NodeMenuOptions { + ADD, + SEPARATOR, // ignore + COPY, + PASTE, + DELETE, + DUPLICATE, + }; + Tree *members; AcceptDialog *alert; LineEdit *node_filter; @@ -104,7 +114,6 @@ class VisualShaderEditor : public VBoxContainer { struct AddOption { String name; String category; - String sub_category; String type; String description; int sub_func; @@ -116,12 +125,12 @@ class VisualShaderEditor : public VBoxContainer { float value; bool highend; bool is_custom; + int temp_idx; AddOption(const String &p_name = String(), const String &p_category = String(), const String &p_sub_category = String(), const String &p_type = String(), const String &p_description = String(), int p_sub_func = -1, int p_return_type = -1, int p_mode = -1, int p_func = -1, float p_value = -1, bool p_highend = false) { name = p_name; type = p_type; - category = p_category; - sub_category = p_sub_category; + category = p_category + "/" + p_sub_category; description = p_description; sub_func = p_sub_func; return_type = p_return_type; @@ -135,8 +144,7 @@ class VisualShaderEditor : public VBoxContainer { AddOption(const String &p_name, const String &p_category, const String &p_sub_category, const String &p_type, const String &p_description, const String &p_sub_func, int p_return_type = -1, int p_mode = -1, int p_func = -1, float p_value = -1, bool p_highend = false) { name = p_name; type = p_type; - category = p_category; - sub_category = p_sub_category; + category = p_category + "/" + p_sub_category; description = p_description; sub_func = 0; sub_func_str = p_sub_func; @@ -148,6 +156,12 @@ class VisualShaderEditor : public VBoxContainer { is_custom = false; } }; + struct _OptionComparator { + + _FORCE_INLINE_ bool operator()(const AddOption &a, const AddOption &b) const { + return a.category.count("/") > b.category.count("/") || (a.category + "/" + a.name).naturalnocasecmp_to(b.category + "/" + b.name) < 0; + } + }; Vector<AddOption> add_options; int texture_node_option_idx; @@ -177,7 +191,7 @@ class VisualShaderEditor : public VBoxContainer { void _node_selected(Object *p_node); void _delete_request(int); - void _on_nodes_delete(); + void _delete_nodes(); void _removed_from_graph(); @@ -212,7 +226,7 @@ class VisualShaderEditor : public VBoxContainer { void _clear_buffer(); void _copy_nodes(); - void _paste_nodes(); + void _paste_nodes(bool p_use_custom_position = false, const Vector2 &p_custom_position = Vector2()); Vector<Ref<VisualShaderNodePlugin> > plugins; @@ -246,6 +260,9 @@ class VisualShaderEditor : public VBoxContainer { void _member_create(); void _member_cancel(); + Vector2 menu_point; + void _node_menu_id_pressed(int p_idx); + Variant get_drag_data_fw(const Point2 &p_point, Control *p_from); bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const; void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from); @@ -265,7 +282,7 @@ public: static VisualShaderEditor *get_singleton() { return singleton; } void clear_custom_types(); - void add_custom_type(const String &p_name, const Ref<Script> &p_script, const String &p_description, int p_return_icon_type, const String &p_category, const String &p_subcategory, bool p_highend); + void add_custom_type(const String &p_name, const Ref<Script> &p_script, const String &p_description, int p_return_icon_type, const String &p_category, bool p_highend); virtual Size2 get_minimum_size() const; void edit(VisualShader *p_visual_shader); diff --git a/editor/progress_dialog.cpp b/editor/progress_dialog.cpp index 0665b1d013..59db531581 100644 --- a/editor/progress_dialog.cpp +++ b/editor/progress_dialog.cpp @@ -264,5 +264,5 @@ ProgressDialog::ProgressDialog() { cancel_hb->add_child(cancel); cancel->set_text(TTR("Cancel")); cancel_hb->add_spacer(); - cancel->connect("pressed", this, "_cancel_pressed"); + cancel->connect_compat("pressed", this, "_cancel_pressed"); } diff --git a/editor/project_export.cpp b/editor/project_export.cpp index 3c8fef6233..753125eb03 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -53,7 +53,7 @@ void ProjectExportDialog::_notification(int p_what) { case NOTIFICATION_READY: { duplicate_preset->set_icon(get_icon("Duplicate", "EditorIcons")); delete_preset->set_icon(get_icon("Remove", "EditorIcons")); - connect("confirmed", this, "_export_pck_zip"); + connect_compat("confirmed", this, "_export_pck_zip"); custom_feature_display->get_parent_control()->add_style_override("panel", get_stylebox("bg", "Tree")); } break; case NOTIFICATION_POPUP_HIDE: { @@ -913,10 +913,10 @@ void ProjectExportDialog::_validate_export_path(const String &p_path) { if (invalid_path) { export_project->get_ok()->set_disabled(true); - export_project->get_line_edit()->disconnect("text_entered", export_project, "_file_entered"); + export_project->get_line_edit()->disconnect_compat("text_entered", export_project, "_file_entered"); } else { export_project->get_ok()->set_disabled(false); - export_project->get_line_edit()->connect("text_entered", export_project, "_file_entered"); + export_project->get_line_edit()->connect_compat("text_entered", export_project, "_file_entered"); } } @@ -946,9 +946,9 @@ void ProjectExportDialog::_export_project() { } // Ensure that signal is connected if previous attempt left it disconnected with _validate_export_path - if (!export_project->get_line_edit()->is_connected("text_entered", export_project, "_file_entered")) { + if (!export_project->get_line_edit()->is_connected_compat("text_entered", export_project, "_file_entered")) { export_project->get_ok()->set_disabled(false); - export_project->get_line_edit()->connect("text_entered", export_project, "_file_entered"); + export_project->get_line_edit()->connect_compat("text_entered", export_project, "_file_entered"); } export_project->set_mode(EditorFileDialog::MODE_SAVE_FILE); @@ -1085,7 +1085,7 @@ ProjectExportDialog::ProjectExportDialog() { add_preset = memnew(MenuButton); add_preset->set_text(TTR("Add...")); - add_preset->get_popup()->connect("index_pressed", this, "_add_preset"); + add_preset->get_popup()->connect_compat("index_pressed", this, "_add_preset"); preset_hb->add_child(add_preset); MarginContainer *mc = memnew(MarginContainer); preset_vb->add_child(mc); @@ -1093,13 +1093,13 @@ ProjectExportDialog::ProjectExportDialog() { presets = memnew(ItemList); presets->set_drag_forwarding(this); mc->add_child(presets); - presets->connect("item_selected", this, "_edit_preset"); + presets->connect_compat("item_selected", this, "_edit_preset"); duplicate_preset = memnew(ToolButton); preset_hb->add_child(duplicate_preset); - duplicate_preset->connect("pressed", this, "_duplicate_preset"); + duplicate_preset->connect_compat("pressed", this, "_duplicate_preset"); delete_preset = memnew(ToolButton); preset_hb->add_child(delete_preset); - delete_preset->connect("pressed", this, "_delete_preset"); + delete_preset->connect_compat("pressed", this, "_delete_preset"); // Preset settings. @@ -1109,11 +1109,11 @@ ProjectExportDialog::ProjectExportDialog() { name = memnew(LineEdit); settings_vb->add_margin_child(TTR("Name:"), name); - name->connect("text_changed", this, "_name_changed"); + name->connect_compat("text_changed", this, "_name_changed"); runnable = memnew(CheckButton); runnable->set_text(TTR("Runnable")); runnable->set_tooltip(TTR("If checked, the preset will be available for use in one-click deploy.\nOnly one preset per platform may be marked as runnable.")); - runnable->connect("pressed", this, "_runnable_pressed"); + runnable->connect_compat("pressed", this, "_runnable_pressed"); settings_vb->add_child(runnable); export_path = memnew(EditorPropertyPath); @@ -1121,7 +1121,7 @@ ProjectExportDialog::ProjectExportDialog() { export_path->set_label(TTR("Export Path")); export_path->set_object_and_property(this, "export_path"); export_path->set_save_mode(); - export_path->connect("property_changed", this, "_export_path_changed"); + export_path->connect_compat("property_changed", this, "_export_path_changed"); // Subsections. @@ -1137,7 +1137,7 @@ ProjectExportDialog::ProjectExportDialog() { sections->add_child(parameters); parameters->set_name(TTR("Options")); parameters->set_v_size_flags(SIZE_EXPAND_FILL); - parameters->connect("property_edited", this, "_update_parameters"); + parameters->connect_compat("property_edited", this, "_update_parameters"); // Resources export parameters. @@ -1150,7 +1150,7 @@ ProjectExportDialog::ProjectExportDialog() { export_filter->add_item(TTR("Export selected scenes (and dependencies)")); export_filter->add_item(TTR("Export selected resources (and dependencies)")); resources_vb->add_margin_child(TTR("Export Mode:"), export_filter); - export_filter->connect("item_selected", this, "_export_type_changed"); + export_filter->connect_compat("item_selected", this, "_export_type_changed"); include_label = memnew(Label); include_label->set_text(TTR("Resources to export:")); @@ -1161,19 +1161,19 @@ ProjectExportDialog::ProjectExportDialog() { include_files = memnew(Tree); include_margin->add_child(include_files); - include_files->connect("item_edited", this, "_tree_changed"); + include_files->connect_compat("item_edited", this, "_tree_changed"); include_filters = memnew(LineEdit); resources_vb->add_margin_child( TTR("Filters to export non-resource files/folders\n(comma-separated, e.g: *.json, *.txt, docs/*)"), include_filters); - include_filters->connect("text_changed", this, "_filter_changed"); + include_filters->connect_compat("text_changed", this, "_filter_changed"); exclude_filters = memnew(LineEdit); resources_vb->add_margin_child( TTR("Filters to exclude files/folders from project\n(comma-separated, e.g: *.json, *.txt, docs/*)"), exclude_filters); - exclude_filters->connect("text_changed", this, "_filter_changed"); + exclude_filters->connect_compat("text_changed", this, "_filter_changed"); // Patch packages. @@ -1190,8 +1190,8 @@ ProjectExportDialog::ProjectExportDialog() { patch_vb->add_child(patches); patches->set_v_size_flags(SIZE_EXPAND_FILL); patches->set_hide_root(true); - patches->connect("button_pressed", this, "_patch_button_pressed"); - patches->connect("item_edited", this, "_patch_edited"); + patches->connect_compat("button_pressed", this, "_patch_button_pressed"); + patches->connect_compat("item_edited", this, "_patch_edited"); patches->set_drag_forwarding(this); patches->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); @@ -1206,12 +1206,12 @@ ProjectExportDialog::ProjectExportDialog() { patch_dialog = memnew(EditorFileDialog); patch_dialog->add_filter("*.pck ; " + TTR("Pack File")); patch_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE); - patch_dialog->connect("file_selected", this, "_patch_selected"); + patch_dialog->connect_compat("file_selected", this, "_patch_selected"); add_child(patch_dialog); patch_erase = memnew(ConfirmationDialog); patch_erase->get_ok()->set_text(TTR("Delete")); - patch_erase->connect("confirmed", this, "_patch_deleted"); + patch_erase->connect_compat("confirmed", this, "_patch_deleted"); add_child(patch_erase); // Feature tags. @@ -1219,7 +1219,7 @@ ProjectExportDialog::ProjectExportDialog() { VBoxContainer *feature_vb = memnew(VBoxContainer); feature_vb->set_name(TTR("Features")); custom_features = memnew(LineEdit); - custom_features->connect("text_changed", this, "_custom_features_changed"); + custom_features->connect_compat("text_changed", this, "_custom_features_changed"); feature_vb->add_margin_child(TTR("Custom (comma-separated):"), custom_features); Panel *features_panel = memnew(Panel); custom_feature_display = memnew(RichTextLabel); @@ -1240,9 +1240,9 @@ ProjectExportDialog::ProjectExportDialog() { script_mode->add_item(TTR("Text"), (int)EditorExportPreset::MODE_SCRIPT_TEXT); script_mode->add_item(TTR("Compiled"), (int)EditorExportPreset::MODE_SCRIPT_COMPILED); script_mode->add_item(TTR("Encrypted (Provide Key Below)"), (int)EditorExportPreset::MODE_SCRIPT_ENCRYPTED); - script_mode->connect("item_selected", this, "_script_export_mode_changed"); + script_mode->connect_compat("item_selected", this, "_script_export_mode_changed"); script_key = memnew(LineEdit); - script_key->connect("text_changed", this, "_script_encryption_key_changed"); + script_key->connect_compat("text_changed", this, "_script_encryption_key_changed"); script_key_error = memnew(Label); script_key_error->set_text("- " + TTR("Invalid Encryption Key (must be 64 characters long)")); script_key_error->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("error_color", "Editor")); @@ -1250,7 +1250,7 @@ ProjectExportDialog::ProjectExportDialog() { script_vb->add_child(script_key_error); sections->add_child(script_vb); - sections->connect("tab_changed", this, "_tab_changed"); + sections->connect_compat("tab_changed", this, "_tab_changed"); // Disable by default. name->set_editable(false); @@ -1267,7 +1267,7 @@ ProjectExportDialog::ProjectExportDialog() { delete_confirm = memnew(ConfirmationDialog); add_child(delete_confirm); delete_confirm->get_ok()->set_text(TTR("Delete")); - delete_confirm->connect("confirmed", this, "_delete_preset_confirm"); + delete_confirm->connect_compat("confirmed", this, "_delete_preset_confirm"); // Export buttons, dialogs and errors. @@ -1276,7 +1276,7 @@ ProjectExportDialog::ProjectExportDialog() { get_cancel()->set_text(TTR("Close")); get_ok()->set_text(TTR("Export PCK/Zip")); export_button = add_button(TTR("Export Project"), !OS::get_singleton()->get_swap_ok_cancel(), "export"); - export_button->connect("pressed", this, "_export_project"); + export_button->connect_compat("pressed", this, "_export_project"); // Disable initially before we select a valid preset export_button->set_disabled(true); get_ok()->set_disabled(true); @@ -1288,10 +1288,10 @@ ProjectExportDialog::ProjectExportDialog() { export_all_dialog->get_ok()->hide(); export_all_dialog->add_button(TTR("Debug"), true, "debug"); export_all_dialog->add_button(TTR("Release"), true, "release"); - export_all_dialog->connect("custom_action", this, "_export_all_dialog_action"); + export_all_dialog->connect_compat("custom_action", this, "_export_all_dialog_action"); export_all_button = add_button(TTR("Export All"), !OS::get_singleton()->get_swap_ok_cancel(), "export"); - export_all_button->connect("pressed", this, "_export_all_dialog"); + export_all_button->connect_compat("pressed", this, "_export_all_dialog"); export_all_button->set_disabled(true); export_pck_zip = memnew(EditorFileDialog); @@ -1300,7 +1300,7 @@ ProjectExportDialog::ProjectExportDialog() { export_pck_zip->set_access(EditorFileDialog::ACCESS_FILESYSTEM); export_pck_zip->set_mode(EditorFileDialog::MODE_SAVE_FILE); add_child(export_pck_zip); - export_pck_zip->connect("file_selected", this, "_export_pck_zip_selected"); + export_pck_zip->connect_compat("file_selected", this, "_export_pck_zip_selected"); export_error = memnew(Label); main_vb->add_child(export_error); @@ -1326,13 +1326,13 @@ ProjectExportDialog::ProjectExportDialog() { download_templates->set_text(TTR("Manage Export Templates")); download_templates->set_v_size_flags(SIZE_SHRINK_CENTER); export_templates_error->add_child(download_templates); - download_templates->connect("pressed", this, "_open_export_template_manager"); + download_templates->connect_compat("pressed", this, "_open_export_template_manager"); export_project = memnew(EditorFileDialog); export_project->set_access(EditorFileDialog::ACCESS_FILESYSTEM); add_child(export_project); - export_project->connect("file_selected", this, "_export_project_to_path"); - export_project->get_line_edit()->connect("text_changed", this, "_validate_export_path"); + export_project->connect_compat("file_selected", this, "_export_project_to_path"); + export_project->get_line_edit()->connect_compat("text_changed", this, "_validate_export_path"); export_debug = memnew(CheckBox); export_debug->set_text(TTR("Export With Debug")); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index a1032130f8..23a7628eeb 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -811,7 +811,7 @@ public: create_dir = memnew(Button); pnhb->add_child(create_dir); create_dir->set_text(TTR("Create Folder")); - create_dir->connect("pressed", this, "_create_folder"); + create_dir->connect_compat("pressed", this, "_create_folder"); path_container = memnew(VBoxContainer); vb->add_child(path_container); @@ -848,7 +848,7 @@ public: browse = memnew(Button); browse->set_text(TTR("Browse")); - browse->connect("pressed", this, "_browse_path"); + browse->connect_compat("pressed", this, "_browse_path"); pphb->add_child(browse); // install status icon @@ -858,7 +858,7 @@ public: install_browse = memnew(Button); install_browse->set_text(TTR("Browse")); - install_browse->connect("pressed", this, "_browse_install_path"); + install_browse->connect_compat("pressed", this, "_browse_install_path"); iphb->add_child(install_browse); msg = memnew(Label); @@ -928,13 +928,13 @@ public: fdialog_install->set_access(FileDialog::ACCESS_FILESYSTEM); add_child(fdialog); add_child(fdialog_install); - project_name->connect("text_changed", this, "_text_changed"); - project_path->connect("text_changed", this, "_path_text_changed"); - install_path->connect("text_changed", this, "_path_text_changed"); - fdialog->connect("dir_selected", this, "_path_selected"); - fdialog->connect("file_selected", this, "_file_selected"); - fdialog_install->connect("dir_selected", this, "_install_path_selected"); - fdialog_install->connect("file_selected", this, "_install_path_selected"); + project_name->connect_compat("text_changed", this, "_text_changed"); + project_path->connect_compat("text_changed", this, "_path_text_changed"); + install_path->connect_compat("text_changed", this, "_path_text_changed"); + fdialog->connect_compat("dir_selected", this, "_path_selected"); + fdialog->connect_compat("file_selected", this, "_file_selected"); + fdialog_install->connect_compat("dir_selected", this, "_install_path_selected"); + fdialog_install->connect_compat("file_selected", this, "_install_path_selected"); set_hide_on_ok(false); mode = MODE_NEW; @@ -1320,8 +1320,8 @@ void ProjectList::create_project_item_control(int p_index) { Color font_color = get_color("font_color", "Tree"); ProjectListItemControl *hb = memnew(ProjectListItemControl); - hb->connect("draw", this, "_panel_draw", varray(hb)); - hb->connect("gui_input", this, "_panel_input", varray(hb)); + hb->connect_compat("draw", this, "_panel_draw", varray(hb)); + hb->connect_compat("gui_input", this, "_panel_input", varray(hb)); hb->add_constant_override("separation", 10 * EDSCALE); hb->set_tooltip(item.description); @@ -1332,7 +1332,7 @@ void ProjectList::create_project_item_control(int p_index) { favorite->set_normal_texture(favorite_icon); // This makes the project's "hover" style display correctly when hovering the favorite icon favorite->set_mouse_filter(MOUSE_FILTER_PASS); - favorite->connect("pressed", this, "_favorite_pressed", varray(hb)); + favorite->connect_compat("pressed", this, "_favorite_pressed", varray(hb)); favorite_box->add_child(favorite); favorite_box->set_alignment(BoxContainer::ALIGN_CENTER); hb->add_child(favorite_box); @@ -1380,7 +1380,7 @@ void ProjectList::create_project_item_control(int p_index) { path_hb->add_child(show); if (!item.missing) { - show->connect("pressed", this, "_show_project", varray(item.path)); + show->connect_compat("pressed", this, "_show_project", varray(item.path)); show->set_tooltip(TTR("Show in File Manager")); } else { show->set_tooltip(TTR("Error: Project is missing on the filesystem.")); @@ -2327,7 +2327,7 @@ void ProjectManager::_install_project(const String &p_zip_path, const String &p_ npdialog->show_dialog(); } -void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) { +void ProjectManager::_files_dropped(PackedStringArray p_files, int p_screen) { Set<String> folders_set; DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); for (int i = 0; i < p_files.size(); i++) { @@ -2336,9 +2336,9 @@ void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) { } memdelete(da); if (folders_set.size() > 0) { - PoolStringArray folders; + PackedStringArray folders; for (Set<String>::Element *E = folders_set.front(); E; E = E->next()) { - folders.append(E->get()); + folders.push_back(E->get()); } bool confirm = true; @@ -2358,8 +2358,8 @@ void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) { memdelete(dir); } if (confirm) { - multi_scan_ask->get_ok()->disconnect("pressed", this, "_scan_multiple_folders"); - multi_scan_ask->get_ok()->connect("pressed", this, "_scan_multiple_folders", varray(folders)); + multi_scan_ask->get_ok()->disconnect_compat("pressed", this, "_scan_multiple_folders"); + multi_scan_ask->get_ok()->connect_compat("pressed", this, "_scan_multiple_folders", varray(folders)); multi_scan_ask->set_text( vformat(TTR("Are you sure to scan %s folders for existing Godot projects?\nThis could take a while."), folders.size())); multi_scan_ask->popup_centered_minsize(); @@ -2369,7 +2369,7 @@ void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) { } } -void ProjectManager::_scan_multiple_folders(PoolStringArray p_files) { +void ProjectManager::_scan_multiple_folders(PackedStringArray p_files) { for (int i = 0; i < p_files.size(); i++) { _scan_begin(p_files.get(i)); } @@ -2524,7 +2524,7 @@ ProjectManager::ProjectManager() { project_order_filter->_setup_filters(sort_filter_titles); project_order_filter->set_filter_size(150); sort_filters->add_child(project_order_filter); - project_order_filter->connect("filter_changed", this, "_on_order_option_changed"); + project_order_filter->connect_compat("filter_changed", this, "_on_order_option_changed"); project_order_filter->set_custom_minimum_size(Size2(180, 10) * EDSCALE); int projects_sorting_order = (int)EditorSettings::get_singleton()->get("project_manager/sorting_order"); @@ -2534,7 +2534,7 @@ ProjectManager::ProjectManager() { project_filter = memnew(ProjectListFilter); project_filter->add_search_box(); - project_filter->connect("filter_changed", this, "_on_filter_option_changed"); + project_filter->connect_compat("filter_changed", this, "_on_filter_option_changed"); project_filter->set_custom_minimum_size(Size2(280, 10) * EDSCALE); sort_filters->add_child(project_filter); @@ -2546,8 +2546,8 @@ ProjectManager::ProjectManager() { pc->set_v_size_flags(SIZE_EXPAND_FILL); _project_list = memnew(ProjectList); - _project_list->connect(ProjectList::SIGNAL_SELECTION_CHANGED, this, "_update_project_buttons"); - _project_list->connect(ProjectList::SIGNAL_PROJECT_ASK_OPEN, this, "_open_selected_projects_ask"); + _project_list->connect_compat(ProjectList::SIGNAL_SELECTION_CHANGED, this, "_update_project_buttons"); + _project_list->connect_compat(ProjectList::SIGNAL_PROJECT_ASK_OPEN, this, "_open_selected_projects_ask"); pc->add_child(_project_list); _project_list->set_enable_h_scroll(false); @@ -2557,13 +2557,13 @@ ProjectManager::ProjectManager() { Button *open = memnew(Button); open->set_text(TTR("Edit")); tree_vb->add_child(open); - open->connect("pressed", this, "_open_selected_projects_ask"); + open->connect_compat("pressed", this, "_open_selected_projects_ask"); open_btn = open; Button *run = memnew(Button); run->set_text(TTR("Run")); tree_vb->add_child(run); - run->connect("pressed", this, "_run_project"); + run->connect_compat("pressed", this, "_run_project"); run_btn = run; tree_vb->add_child(memnew(HSeparator)); @@ -2571,7 +2571,7 @@ ProjectManager::ProjectManager() { Button *scan = memnew(Button); scan->set_text(TTR("Scan")); tree_vb->add_child(scan); - scan->connect("pressed", this, "_scan_projects"); + scan->connect_compat("pressed", this, "_scan_projects"); tree_vb->add_child(memnew(HSeparator)); @@ -2581,34 +2581,34 @@ ProjectManager::ProjectManager() { scan_dir->set_title(TTR("Select a Folder to Scan")); // must be after mode or it's overridden scan_dir->set_current_dir(EditorSettings::get_singleton()->get("filesystem/directories/default_project_path")); gui_base->add_child(scan_dir); - scan_dir->connect("dir_selected", this, "_scan_begin"); + scan_dir->connect_compat("dir_selected", this, "_scan_begin"); Button *create = memnew(Button); create->set_text(TTR("New Project")); tree_vb->add_child(create); - create->connect("pressed", this, "_new_project"); + create->connect_compat("pressed", this, "_new_project"); Button *import = memnew(Button); import->set_text(TTR("Import")); tree_vb->add_child(import); - import->connect("pressed", this, "_import_project"); + import->connect_compat("pressed", this, "_import_project"); Button *rename = memnew(Button); rename->set_text(TTR("Rename")); tree_vb->add_child(rename); - rename->connect("pressed", this, "_rename_project"); + rename->connect_compat("pressed", this, "_rename_project"); rename_btn = rename; Button *erase = memnew(Button); erase->set_text(TTR("Remove")); tree_vb->add_child(erase); - erase->connect("pressed", this, "_erase_project"); + erase->connect_compat("pressed", this, "_erase_project"); erase_btn = erase; Button *erase_missing = memnew(Button); erase_missing->set_text(TTR("Remove Missing")); tree_vb->add_child(erase_missing); - erase_missing->connect("pressed", this, "_erase_missing_projects"); + erase_missing->connect_compat("pressed", this, "_erase_missing_projects"); erase_missing_btn = erase_missing; tree_vb->add_spacer(); @@ -2617,7 +2617,7 @@ ProjectManager::ProjectManager() { asset_library = memnew(EditorAssetLibrary(true)); asset_library->set_name(TTR("Templates")); tabs->add_child(asset_library); - asset_library->connect("install_asset", this, "_install_project"); + asset_library->connect_compat("install_asset", this, "_install_project"); } else { WARN_PRINT("Asset Library not available, as it requires SSL to work."); } @@ -2664,7 +2664,7 @@ ProjectManager::ProjectManager() { language_btn->set_icon(get_icon("Environment", "EditorIcons")); settings_hb->add_child(language_btn); - language_btn->connect("item_selected", this, "_language_selected"); + language_btn->connect_compat("item_selected", this, "_language_selected"); center_box->add_child(settings_hb); settings_hb->set_anchors_and_margins_preset(Control::PRESET_TOP_RIGHT); @@ -2673,28 +2673,28 @@ ProjectManager::ProjectManager() { language_restart_ask = memnew(ConfirmationDialog); language_restart_ask->get_ok()->set_text(TTR("Restart Now")); - language_restart_ask->get_ok()->connect("pressed", this, "_restart_confirm"); + language_restart_ask->get_ok()->connect_compat("pressed", this, "_restart_confirm"); language_restart_ask->get_cancel()->set_text(TTR("Continue")); gui_base->add_child(language_restart_ask); erase_missing_ask = memnew(ConfirmationDialog); erase_missing_ask->get_ok()->set_text(TTR("Remove All")); - erase_missing_ask->get_ok()->connect("pressed", this, "_erase_missing_projects_confirm"); + erase_missing_ask->get_ok()->connect_compat("pressed", this, "_erase_missing_projects_confirm"); gui_base->add_child(erase_missing_ask); erase_ask = memnew(ConfirmationDialog); erase_ask->get_ok()->set_text(TTR("Remove")); - erase_ask->get_ok()->connect("pressed", this, "_erase_project_confirm"); + erase_ask->get_ok()->connect_compat("pressed", this, "_erase_project_confirm"); gui_base->add_child(erase_ask); multi_open_ask = memnew(ConfirmationDialog); multi_open_ask->get_ok()->set_text(TTR("Edit")); - multi_open_ask->get_ok()->connect("pressed", this, "_open_selected_projects"); + multi_open_ask->get_ok()->connect_compat("pressed", this, "_open_selected_projects"); gui_base->add_child(multi_open_ask); multi_run_ask = memnew(ConfirmationDialog); multi_run_ask->get_ok()->set_text(TTR("Run")); - multi_run_ask->get_ok()->connect("pressed", this, "_run_project_confirm"); + multi_run_ask->get_ok()->connect_compat("pressed", this, "_run_project_confirm"); gui_base->add_child(multi_run_ask); multi_scan_ask = memnew(ConfirmationDialog); @@ -2702,7 +2702,7 @@ ProjectManager::ProjectManager() { gui_base->add_child(multi_scan_ask); ask_update_settings = memnew(ConfirmationDialog); - ask_update_settings->get_ok()->connect("pressed", this, "_confirm_update_settings"); + ask_update_settings->get_ok()->connect_compat("pressed", this, "_confirm_update_settings"); gui_base->add_child(ask_update_settings); OS::get_singleton()->set_low_processor_usage_mode(true); @@ -2710,8 +2710,8 @@ ProjectManager::ProjectManager() { npdialog = memnew(ProjectDialog); gui_base->add_child(npdialog); - npdialog->connect("projects_updated", this, "_on_projects_updated"); - npdialog->connect("project_created", this, "_on_project_created"); + npdialog->connect_compat("projects_updated", this, "_on_projects_updated"); + npdialog->connect_compat("project_created", this, "_on_project_created"); _load_recent_projects(); @@ -2719,8 +2719,8 @@ ProjectManager::ProjectManager() { _scan_begin(EditorSettings::get_singleton()->get("filesystem/directories/autoscan_project_path")); } - SceneTree::get_singleton()->connect("files_dropped", this, "_files_dropped"); - SceneTree::get_singleton()->connect("global_menu_action", this, "_global_menu_action"); + SceneTree::get_singleton()->connect_compat("files_dropped", this, "_files_dropped"); + SceneTree::get_singleton()->connect_compat("global_menu_action", this, "_global_menu_action"); run_error_diag = memnew(AcceptDialog); gui_base->add_child(run_error_diag); @@ -2732,7 +2732,7 @@ ProjectManager::ProjectManager() { open_templates = memnew(ConfirmationDialog); open_templates->set_text(TTR("You currently don't have any projects.\nWould you like to explore official example projects in the Asset Library?")); open_templates->get_ok()->set_text(TTR("Open Asset Library")); - open_templates->connect("confirmed", this, "_open_asset_library"); + open_templates->connect_compat("confirmed", this, "_open_asset_library"); add_child(open_templates); } @@ -2793,14 +2793,14 @@ void ProjectListFilter::_bind_methods() { void ProjectListFilter::add_filter_option() { filter_option = memnew(OptionButton); filter_option->set_clip_text(true); - filter_option->connect("item_selected", this, "_filter_option_selected"); + filter_option->connect_compat("item_selected", this, "_filter_option_selected"); add_child(filter_option); } void ProjectListFilter::add_search_box() { search_box = memnew(LineEdit); search_box->set_placeholder(TTR("Search")); - search_box->connect("text_changed", this, "_search_text_changed"); + search_box->connect_compat("text_changed", this, "_search_text_changed"); search_box->set_h_size_flags(SIZE_EXPAND_FILL); add_child(search_box); diff --git a/editor/project_manager.h b/editor/project_manager.h index feeea9695d..8b9c769c59 100644 --- a/editor/project_manager.h +++ b/editor/project_manager.h @@ -111,8 +111,8 @@ class ProjectManager : public Control { void _dim_window(); void _unhandled_input(const Ref<InputEvent> &p_ev); - void _files_dropped(PoolStringArray p_files, int p_screen); - void _scan_multiple_folders(PoolStringArray p_files); + void _files_dropped(PackedStringArray p_files, int p_screen); + void _scan_multiple_folders(PackedStringArray p_files); void _on_order_option_changed(); void _on_filter_option_changed(); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 6635f5cb47..9bee84b482 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -108,7 +108,7 @@ void ProjectSettingsEditor::_notification(int p_what) { action_add_error->add_color_override("font_color", get_color("error_color", "Editor")); - translation_list->connect("button_pressed", this, "_translation_delete"); + translation_list->connect_compat("button_pressed", this, "_translation_delete"); _update_actions(); popup_add->add_icon_item(get_icon("Keyboard", "EditorIcons"), TTR("Key "), INPUT_KEY); //"Key " - because the word 'key' has already been used as a key animation popup_add->add_icon_item(get_icon("JoyButton", "EditorIcons"), TTR("Joy Button"), INPUT_JOY_BUTTON); @@ -847,7 +847,7 @@ void ProjectSettingsEditor::_item_add() { // Initialize the property with the default value for the given type. // The type list starts at 1 (as we exclude Nil), so add 1 to the selected value. - Variant::CallError ce; + Callable::CallError ce; const Variant value = Variant::construct(Variant::Type(type->get_selected() + 1), NULL, 0, ce); String catname = category->get_text().strip_edges(); @@ -1188,7 +1188,7 @@ void ProjectSettingsEditor::add_translation(const String &p_translation) { void ProjectSettingsEditor::_translation_add(const String &p_path) { - PoolStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); + PackedStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); for (int i = 0; i < translations.size(); i++) { @@ -1219,7 +1219,7 @@ void ProjectSettingsEditor::_translation_delete(Object *p_item, int p_column, in int idx = ti->get_metadata(0); - PoolStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); + PackedStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); ERR_FAIL_INDEX(idx, translations.size()); @@ -1253,7 +1253,7 @@ void ProjectSettingsEditor::_translation_res_add(const String &p_path) { if (remaps.has(p_path)) return; //pointless already has it - remaps[p_path] = PoolStringArray(); + remaps[p_path] = PackedStringArray(); undo_redo->create_action(TTR("Add Remapped Path")); undo_redo->add_do_property(ProjectSettings::get_singleton(), "locale/translation_remaps", remaps); @@ -1281,7 +1281,7 @@ void ProjectSettingsEditor::_translation_res_option_add(const String &p_path) { String key = k->get_metadata(0); ERR_FAIL_COND(!remaps.has(key)); - PoolStringArray r = remaps[key]; + PackedStringArray r = remaps[key]; r.push_back(p_path + ":" + "en"); remaps[key] = r; @@ -1328,7 +1328,7 @@ void ProjectSettingsEditor::_translation_res_option_changed() { ERR_FAIL_INDEX(which, langs.size()); ERR_FAIL_COND(!remaps.has(key)); - PoolStringArray r = remaps[key]; + PackedStringArray r = remaps[key]; ERR_FAIL_INDEX(idx, r.size()); if (translation_locales_idxs_remap.size() > which) { r.set(idx, path + ":" + langs[translation_locales_idxs_remap[which]]); @@ -1395,7 +1395,7 @@ void ProjectSettingsEditor::_translation_res_option_delete(Object *p_item, int p int idx = ed->get_metadata(0); ERR_FAIL_COND(!remaps.has(key)); - PoolStringArray r = remaps[key]; + PackedStringArray r = remaps[key]; ERR_FAIL_INDEX(idx, r.size()); r.remove(idx); remaps[key] = r; @@ -1506,7 +1506,7 @@ void ProjectSettingsEditor::_update_translations() { translation_list->set_hide_root(true); if (ProjectSettings::get_singleton()->has_setting("locale/translations")) { - PoolStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); + PackedStringArray translations = ProjectSettings::get_singleton()->get("locale/translations"); for (int i = 0; i < translations.size(); i++) { TreeItem *t = translation_list->create_item(root); @@ -1642,7 +1642,7 @@ void ProjectSettingsEditor::_update_translations() { t->select(0); translation_res_option_add_button->set_disabled(false); - PoolStringArray selected = remaps[keys[i]]; + PackedStringArray selected = remaps[keys[i]]; for (int j = 0; j < selected.size(); j++) { String s2 = selected[j]; @@ -1805,7 +1805,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { search_button->set_pressed(false); search_button->set_text(TTR("Search")); hbc->add_child(search_button); - search_button->connect("toggled", this, "_toggle_search_bar"); + search_button->connect_compat("toggled", this, "_toggle_search_bar"); hbc->add_child(memnew(VSeparator)); @@ -1820,7 +1820,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { category = memnew(LineEdit); category->set_h_size_flags(Control::SIZE_EXPAND_FILL); add_prop_bar->add_child(category); - category->connect("text_entered", this, "_item_adds"); + category->connect_compat("text_entered", this, "_item_adds"); l = memnew(Label); add_prop_bar->add_child(l); @@ -1829,7 +1829,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { property = memnew(LineEdit); property->set_h_size_flags(Control::SIZE_EXPAND_FILL); add_prop_bar->add_child(property); - property->connect("text_entered", this, "_item_adds"); + property->connect_compat("text_entered", this, "_item_adds"); l = memnew(Label); add_prop_bar->add_child(l); @@ -1847,7 +1847,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { Button *add = memnew(Button); add_prop_bar->add_child(add); add->set_text(TTR("Add")); - add->connect("pressed", this, "_item_add"); + add->connect_compat("pressed", this, "_item_add"); search_bar = memnew(HBoxContainer); search_bar->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -1863,14 +1863,14 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { globals_editor->get_inspector()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo()); globals_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL); globals_editor->register_search_box(search_box); - globals_editor->get_inspector()->connect("property_selected", this, "_item_selected"); - globals_editor->get_inspector()->connect("property_edited", this, "_settings_prop_edited"); - globals_editor->get_inspector()->connect("restart_requested", this, "_editor_restart_request"); + globals_editor->get_inspector()->connect_compat("property_selected", this, "_item_selected"); + globals_editor->get_inspector()->connect_compat("property_edited", this, "_settings_prop_edited"); + globals_editor->get_inspector()->connect_compat("restart_requested", this, "_editor_restart_request"); Button *del = memnew(Button); hbc->add_child(del); del->set_text(TTR("Delete")); - del->connect("pressed", this, "_item_del"); + del->connect_compat("pressed", this, "_item_del"); add_prop_bar->add_child(memnew(VSeparator)); @@ -1879,8 +1879,8 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { popup_copy_to_feature->set_disabled(true); add_prop_bar->add_child(popup_copy_to_feature); - popup_copy_to_feature->get_popup()->connect("id_pressed", this, "_copy_to_platform"); - popup_copy_to_feature->get_popup()->connect("about_to_show", this, "_copy_to_platform_about_to_show"); + popup_copy_to_feature->get_popup()->connect_compat("id_pressed", this, "_copy_to_platform"); + popup_copy_to_feature->get_popup()->connect_compat("about_to_show", this, "_copy_to_platform_about_to_show"); get_ok()->set_text(TTR("Close")); set_hide_on_ok(true); @@ -1897,11 +1897,11 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { restart_hb->add_child(restart_label); restart_hb->add_spacer(); Button *restart_button = memnew(Button); - restart_button->connect("pressed", this, "_editor_restart"); + restart_button->connect_compat("pressed", this, "_editor_restart"); restart_hb->add_child(restart_button); restart_button->set_text(TTR("Save & Restart")); restart_close_button = memnew(ToolButton); - restart_close_button->connect("pressed", this, "_editor_restart_close"); + restart_close_button->connect_compat("pressed", this, "_editor_restart_close"); restart_hb->add_child(restart_close_button); restart_container->hide(); @@ -1929,8 +1929,8 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { action_name = memnew(LineEdit); action_name->set_h_size_flags(SIZE_EXPAND_FILL); hbc->add_child(action_name); - action_name->connect("text_entered", this, "_action_adds"); - action_name->connect("text_changed", this, "_action_check"); + action_name->connect_compat("text_entered", this, "_action_adds"); + action_name->connect_compat("text_changed", this, "_action_check"); action_add_error = memnew(Label); hbc->add_child(action_add_error); @@ -1940,7 +1940,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { hbc->add_child(add); add->set_text(TTR("Add")); add->set_disabled(true); - add->connect("pressed", this, "_action_add"); + add->connect_compat("pressed", this, "_action_add"); action_add = add; input_editor = memnew(Tree); @@ -1954,15 +1954,15 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { input_editor->set_column_min_width(1, 80 * EDSCALE); input_editor->set_column_expand(2, false); input_editor->set_column_min_width(2, 50 * EDSCALE); - input_editor->connect("item_edited", this, "_action_edited"); - input_editor->connect("item_activated", this, "_action_activated"); - input_editor->connect("cell_selected", this, "_action_selected"); - input_editor->connect("button_pressed", this, "_action_button_pressed"); + input_editor->connect_compat("item_edited", this, "_action_edited"); + input_editor->connect_compat("item_activated", this, "_action_activated"); + input_editor->connect_compat("cell_selected", this, "_action_selected"); + input_editor->connect_compat("button_pressed", this, "_action_button_pressed"); input_editor->set_drag_forwarding(this); popup_add = memnew(PopupMenu); add_child(popup_add); - popup_add->connect("id_pressed", this, "_add_item"); + popup_add->connect_compat("id_pressed", this, "_add_item"); press_a_key = memnew(ConfirmationDialog); press_a_key->set_focus_mode(FOCUS_ALL); @@ -1977,13 +1977,13 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { press_a_key->get_ok()->set_disabled(true); press_a_key_label = l; press_a_key->add_child(l); - press_a_key->connect("gui_input", this, "_wait_for_key"); - press_a_key->connect("confirmed", this, "_press_a_key_confirm"); + press_a_key->connect_compat("gui_input", this, "_wait_for_key"); + press_a_key->connect_compat("confirmed", this, "_press_a_key_confirm"); device_input = memnew(ConfirmationDialog); add_child(device_input); device_input->get_ok()->set_text(TTR("Add")); - device_input->connect("confirmed", this, "_device_input_add"); + device_input->connect_compat("confirmed", this, "_device_input_add"); hbc = memnew(HBoxContainer); device_input->add_child(hbc); @@ -2034,7 +2034,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { thb->add_child(memnew(Label(TTR("Translations:")))); thb->add_spacer(); Button *addtr = memnew(Button(TTR("Add..."))); - addtr->connect("pressed", this, "_translation_file_open"); + addtr->connect_compat("pressed", this, "_translation_file_open"); thb->add_child(addtr); VBoxContainer *tmc = memnew(VBoxContainer); tvb->add_child(tmc); @@ -2046,7 +2046,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { translation_file_open = memnew(EditorFileDialog); add_child(translation_file_open); translation_file_open->set_mode(EditorFileDialog::MODE_OPEN_FILE); - translation_file_open->connect("file_selected", this, "_translation_add"); + translation_file_open->connect_compat("file_selected", this, "_translation_add"); } { @@ -2058,28 +2058,28 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { thb->add_child(memnew(Label(TTR("Resources:")))); thb->add_spacer(); Button *addtr = memnew(Button(TTR("Add..."))); - addtr->connect("pressed", this, "_translation_res_file_open"); + addtr->connect_compat("pressed", this, "_translation_res_file_open"); thb->add_child(addtr); VBoxContainer *tmc = memnew(VBoxContainer); tvb->add_child(tmc); tmc->set_v_size_flags(SIZE_EXPAND_FILL); translation_remap = memnew(Tree); translation_remap->set_v_size_flags(SIZE_EXPAND_FILL); - translation_remap->connect("cell_selected", this, "_translation_res_select"); + translation_remap->connect_compat("cell_selected", this, "_translation_res_select"); tmc->add_child(translation_remap); - translation_remap->connect("button_pressed", this, "_translation_res_delete"); + translation_remap->connect_compat("button_pressed", this, "_translation_res_delete"); translation_res_file_open = memnew(EditorFileDialog); add_child(translation_res_file_open); translation_res_file_open->set_mode(EditorFileDialog::MODE_OPEN_FILE); - translation_res_file_open->connect("file_selected", this, "_translation_res_add"); + translation_res_file_open->connect_compat("file_selected", this, "_translation_res_add"); thb = memnew(HBoxContainer); tvb->add_child(thb); thb->add_child(memnew(Label(TTR("Remaps by Locale:")))); thb->add_spacer(); addtr = memnew(Button(TTR("Add..."))); - addtr->connect("pressed", this, "_translation_res_option_file_open"); + addtr->connect_compat("pressed", this, "_translation_res_option_file_open"); translation_res_option_add_button = addtr; thb->add_child(addtr); tmc = memnew(VBoxContainer); @@ -2096,13 +2096,13 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { translation_remap_options->set_column_expand(0, true); translation_remap_options->set_column_expand(1, false); translation_remap_options->set_column_min_width(1, 200); - translation_remap_options->connect("item_edited", this, "_translation_res_option_changed"); - translation_remap_options->connect("button_pressed", this, "_translation_res_option_delete"); + translation_remap_options->connect_compat("item_edited", this, "_translation_res_option_changed"); + translation_remap_options->connect_compat("button_pressed", this, "_translation_res_option_delete"); translation_res_option_file_open = memnew(EditorFileDialog); add_child(translation_res_option_file_open); translation_res_option_file_open->set_mode(EditorFileDialog::MODE_OPEN_FILE); - translation_res_option_file_open->connect("file_selected", this, "_translation_res_option_add"); + translation_res_option_file_open->connect_compat("file_selected", this, "_translation_res_option_add"); } { @@ -2118,20 +2118,20 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { translation_locale_filter_mode->add_item(TTR("Show Selected Locales Only"), SHOW_ONLY_SELECTED_LOCALES); translation_locale_filter_mode->select(0); tmc->add_margin_child(TTR("Filter mode:"), translation_locale_filter_mode); - translation_locale_filter_mode->connect("item_selected", this, "_translation_filter_mode_changed"); + translation_locale_filter_mode->connect_compat("item_selected", this, "_translation_filter_mode_changed"); translation_filter = memnew(Tree); translation_filter->set_v_size_flags(SIZE_EXPAND_FILL); translation_filter->set_columns(1); tmc->add_child(memnew(Label(TTR("Locales:")))); tmc->add_child(translation_filter); - translation_filter->connect("item_edited", this, "_translation_filter_option_changed"); + translation_filter->connect_compat("item_edited", this, "_translation_filter_option_changed"); } autoload_settings = memnew(EditorAutoloadSettings); autoload_settings->set_name(TTR("AutoLoad")); tab_container->add_child(autoload_settings); - autoload_settings->connect("autoload_changed", this, "_settings_changed"); + autoload_settings->connect_compat("autoload_changed", this, "_settings_changed"); plugin_settings = memnew(EditorPluginSettings); plugin_settings->set_name(TTR("Plugins")); @@ -2139,7 +2139,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) { timer = memnew(Timer); timer->set_wait_time(1.5); - timer->connect("timeout", ProjectSettings::get_singleton(), "save"); + timer->connect_compat("timeout", ProjectSettings::get_singleton(), "save"); timer->set_one_shot(true); add_child(timer); diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp index e6128f255d..2bcf2c3b44 100644 --- a/editor/property_editor.cpp +++ b/editor/property_editor.cpp @@ -393,12 +393,12 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant:: } break; case Variant::INT: - case Variant::REAL: { + case Variant::FLOAT: { if (hint == PROPERTY_HINT_RANGE) { int c = hint_text.get_slice_count(","); - float min = 0, max = 100, step = type == Variant::REAL ? .01 : 1; + float min = 0, max = 100, step = type == Variant::FLOAT ? .01 : 1; if (c >= 1) { if (!hint_text.get_slice(",", 0).empty()) @@ -589,7 +589,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant:: if (!create_dialog) { create_dialog = memnew(CreateDialog); - create_dialog->connect("create", this, "_create_dialog_callback"); + create_dialog->connect_compat("create", this, "_create_dialog_callback"); add_child(create_dialog); } @@ -605,12 +605,12 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant:: return false; } else if (hint == PROPERTY_HINT_METHOD_OF_VARIANT_TYPE) { -#define MAKE_PROPSELECT \ - if (!property_select) { \ - property_select = memnew(PropertySelector); \ - property_select->connect("selected", this, "_create_selected_property"); \ - add_child(property_select); \ - } \ +#define MAKE_PROPSELECT \ + if (!property_select) { \ + property_select = memnew(PropertySelector); \ + property_select->connect_compat("selected", this, "_create_selected_property"); \ + add_child(property_select); \ + } \ hide(); MAKE_PROPSELECT; @@ -865,7 +865,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant:: color_picker->set_deferred_mode(true); add_child(color_picker); color_picker->hide(); - color_picker->connect("color_changed", this, "_color_changed"); + color_picker->connect_compat("color_changed", this, "_color_changed"); // get default color picker mode from editor settings int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode"); @@ -1045,22 +1045,28 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant:: case Variant::DICTIONARY: { } break; - case Variant::POOL_BYTE_ARRAY: { + case Variant::PACKED_BYTE_ARRAY: { } break; - case Variant::POOL_INT_ARRAY: { + case Variant::PACKED_INT32_ARRAY: { } break; - case Variant::POOL_REAL_ARRAY: { + case Variant::PACKED_FLOAT32_ARRAY: { } break; - case Variant::POOL_STRING_ARRAY: { + case Variant::PACKED_INT64_ARRAY: { } break; - case Variant::POOL_VECTOR3_ARRAY: { + case Variant::PACKED_FLOAT64_ARRAY: { } break; - case Variant::POOL_COLOR_ARRAY: { + case Variant::PACKED_STRING_ARRAY: { + + } break; + case Variant::PACKED_VECTOR3_ARRAY: { + + } break; + case Variant::PACKED_COLOR_ARRAY: { } break; default: { @@ -1113,7 +1119,7 @@ void CustomPropertyEditor::_file_selected(String p_file) { void CustomPropertyEditor::_type_create_selected(int p_idx) { - if (type == Variant::INT || type == Variant::REAL) { + if (type == Variant::INT || type == Variant::FLOAT) { float newval = 0; switch (p_idx) { @@ -1563,7 +1569,7 @@ void CustomPropertyEditor::_modified(String p_string) { emit_signal("variant_changed"); } break; - case Variant::REAL: { + case Variant::FLOAT: { if (hint != PROPERTY_HINT_EXP_EASING) { String text = value_editor[0]->get_text(); @@ -1697,22 +1703,22 @@ void CustomPropertyEditor::_modified(String p_string) { case Variant::DICTIONARY: { } break; - case Variant::POOL_BYTE_ARRAY: { + case Variant::PACKED_BYTE_ARRAY: { } break; - case Variant::POOL_INT_ARRAY: { + case Variant::PACKED_INT32_ARRAY: { } break; - case Variant::POOL_REAL_ARRAY: { + case Variant::PACKED_FLOAT32_ARRAY: { } break; - case Variant::POOL_STRING_ARRAY: { + case Variant::PACKED_STRING_ARRAY: { } break; - case Variant::POOL_VECTOR3_ARRAY: { + case Variant::PACKED_VECTOR3_ARRAY: { } break; - case Variant::POOL_COLOR_ARRAY: { + case Variant::PACKED_COLOR_ARRAY: { } break; default: { @@ -1751,7 +1757,7 @@ void CustomPropertyEditor::_range_modified(double p_value) { void CustomPropertyEditor::_focus_enter() { switch (type) { - case Variant::REAL: + case Variant::FLOAT: case Variant::STRING: case Variant::VECTOR2: case Variant::RECT2: @@ -1777,7 +1783,7 @@ void CustomPropertyEditor::_focus_enter() { void CustomPropertyEditor::_focus_exit() { switch (type) { - case Variant::REAL: + case Variant::FLOAT: case Variant::STRING: case Variant::VECTOR2: case Variant::RECT2: @@ -1902,9 +1908,9 @@ CustomPropertyEditor::CustomPropertyEditor() { add_child(value_label[i]); value_editor[i]->hide(); value_label[i]->hide(); - value_editor[i]->connect("text_entered", this, "_modified"); - value_editor[i]->connect("focus_entered", this, "_focus_enter"); - value_editor[i]->connect("focus_exited", this, "_focus_exit"); + value_editor[i]->connect_compat("text_entered", this, "_modified"); + value_editor[i]->connect_compat("focus_entered", this, "_focus_enter"); + value_editor[i]->connect_compat("focus_exited", this, "_focus_exit"); } focused_value_editor = -1; @@ -1934,7 +1940,7 @@ CustomPropertyEditor::CustomPropertyEditor() { checks20[i]->set_focus_mode(FOCUS_NONE); checks20gc->add_child(checks20[i]); checks20[i]->hide(); - checks20[i]->connect("pressed", this, "_action_pressed", make_binds(i)); + checks20[i]->connect_compat("pressed", this, "_action_pressed", make_binds(i)); checks20[i]->set_tooltip(vformat(TTR("Bit %d, val %d."), i, 1 << i)); } @@ -1944,7 +1950,7 @@ CustomPropertyEditor::CustomPropertyEditor() { text_edit->set_margin(MARGIN_BOTTOM, -30); text_edit->hide(); - text_edit->connect("text_changed", this, "_text_edit_changed"); + text_edit->connect_compat("text_changed", this, "_text_edit_changed"); for (int i = 0; i < MAX_ACTION_BUTTONS; i++) { @@ -1953,7 +1959,7 @@ CustomPropertyEditor::CustomPropertyEditor() { add_child(action_buttons[i]); Vector<Variant> binds; binds.push_back(i); - action_buttons[i]->connect("pressed", this, "_action_pressed", binds); + action_buttons[i]->connect_compat("pressed", this, "_action_pressed", binds); action_buttons[i]->set_flat(true); } @@ -1964,8 +1970,8 @@ CustomPropertyEditor::CustomPropertyEditor() { add_child(file); file->hide(); - file->connect("file_selected", this, "_file_selected"); - file->connect("dir_selected", this, "_file_selected"); + file->connect_compat("file_selected", this, "_file_selected"); + file->connect_compat("dir_selected", this, "_file_selected"); error = memnew(ConfirmationDialog); error->set_title(TTR("Error!")); @@ -1973,7 +1979,7 @@ CustomPropertyEditor::CustomPropertyEditor() { scene_tree = memnew(SceneTreeDialog); add_child(scene_tree); - scene_tree->connect("selected", this, "_node_path_selected"); + scene_tree->connect_compat("selected", this, "_node_path_selected"); scene_tree->get_scene_tree()->set_show_enabled_subscene(true); texture_preview = memnew(TextureRect); @@ -1983,31 +1989,31 @@ CustomPropertyEditor::CustomPropertyEditor() { easing_draw = memnew(Control); add_child(easing_draw); easing_draw->hide(); - easing_draw->connect("draw", this, "_draw_easing"); - easing_draw->connect("gui_input", this, "_drag_easing"); + easing_draw->connect_compat("draw", this, "_draw_easing"); + easing_draw->connect_compat("gui_input", this, "_drag_easing"); easing_draw->set_default_cursor_shape(Control::CURSOR_MOVE); type_button = memnew(MenuButton); add_child(type_button); type_button->hide(); - type_button->get_popup()->connect("id_pressed", this, "_type_create_selected"); + type_button->get_popup()->connect_compat("id_pressed", this, "_type_create_selected"); menu = memnew(PopupMenu); menu->set_pass_on_modal_close_click(false); add_child(menu); - menu->connect("id_pressed", this, "_menu_option"); + menu->connect_compat("id_pressed", this, "_menu_option"); evaluator = NULL; spinbox = memnew(SpinBox); add_child(spinbox); spinbox->set_anchors_and_margins_preset(Control::PRESET_WIDE, Control::PRESET_MODE_MINSIZE, 5); - spinbox->connect("value_changed", this, "_range_modified"); + spinbox->connect_compat("value_changed", this, "_range_modified"); slider = memnew(HSlider); add_child(slider); slider->set_anchors_and_margins_preset(Control::PRESET_WIDE, Control::PRESET_MODE_MINSIZE, 5); - slider->connect("value_changed", this, "_range_modified"); + slider->connect_compat("value_changed", this, "_range_modified"); create_dialog = NULL; property_select = NULL; diff --git a/editor/property_selector.cpp b/editor/property_selector.cpp index 1de5099c4a..416ffb3fd0 100644 --- a/editor/property_selector.cpp +++ b/editor/property_selector.cpp @@ -95,7 +95,7 @@ void PropertySelector::_update_search() { instance->get_property_list(&props, true); } else if (type != Variant::NIL) { Variant v; - Variant::CallError ce; + Callable::CallError ce; v = Variant::construct(type, NULL, 0, ce); v.get_property_list(&props); @@ -141,13 +141,13 @@ void PropertySelector::_update_search() { Control::get_icon("Object", "EditorIcons"), Control::get_icon("Dictionary", "EditorIcons"), Control::get_icon("Array", "EditorIcons"), - Control::get_icon("PoolByteArray", "EditorIcons"), - Control::get_icon("PoolIntArray", "EditorIcons"), - Control::get_icon("PoolRealArray", "EditorIcons"), - Control::get_icon("PoolStringArray", "EditorIcons"), - Control::get_icon("PoolVector2Array", "EditorIcons"), - Control::get_icon("PoolVector3Array", "EditorIcons"), - Control::get_icon("PoolColorArray", "EditorIcons") + Control::get_icon("PackedByteArray", "EditorIcons"), + Control::get_icon("PackedInt32Array", "EditorIcons"), + Control::get_icon("PackedFloat32Array", "EditorIcons"), + Control::get_icon("PackedStringArray", "EditorIcons"), + Control::get_icon("PackedVector2Array", "EditorIcons"), + Control::get_icon("PackedVector3Array", "EditorIcons"), + Control::get_icon("PackedColorArray", "EditorIcons") }; for (List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) { @@ -200,7 +200,7 @@ void PropertySelector::_update_search() { if (type != Variant::NIL) { Variant v; - Variant::CallError ce; + Callable::CallError ce; v = Variant::construct(type, NULL, 0, ce); v.get_method_list(&methods); } else { @@ -393,9 +393,9 @@ void PropertySelector::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - connect("confirmed", this, "_confirmed"); + connect_compat("confirmed", this, "_confirmed"); } else if (p_what == NOTIFICATION_EXIT_TREE) { - disconnect("confirmed", this, "_confirmed"); + disconnect_compat("confirmed", this, "_confirmed"); } } @@ -557,21 +557,21 @@ PropertySelector::PropertySelector() { //set_child_rect(vbc); search_box = memnew(LineEdit); vbc->add_margin_child(TTR("Search:"), search_box); - search_box->connect("text_changed", this, "_text_changed"); - search_box->connect("gui_input", this, "_sbox_input"); + search_box->connect_compat("text_changed", this, "_text_changed"); + search_box->connect_compat("gui_input", this, "_sbox_input"); search_options = memnew(Tree); vbc->add_margin_child(TTR("Matches:"), search_options, true); get_ok()->set_text(TTR("Open")); get_ok()->set_disabled(true); register_text_enter(search_box); set_hide_on_ok(false); - search_options->connect("item_activated", this, "_confirmed"); - search_options->connect("cell_selected", this, "_item_selected"); + search_options->connect_compat("item_activated", this, "_confirmed"); + search_options->connect_compat("cell_selected", this, "_item_selected"); search_options->set_hide_root(true); search_options->set_hide_folding(true); virtuals_only = false; help_bit = memnew(EditorHelpBit); vbc->add_margin_child(TTR("Description:"), help_bit); - help_bit->connect("request_hide", this, "_closed"); + help_bit->connect_compat("request_hide", this, "_closed"); } diff --git a/editor/quick_open.cpp b/editor/quick_open.cpp index ea92e6407c..57e3c1da70 100644 --- a/editor/quick_open.cpp +++ b/editor/quick_open.cpp @@ -257,16 +257,16 @@ void EditorQuickOpen::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - connect("confirmed", this, "_confirmed"); + connect_compat("confirmed", this, "_confirmed"); search_box->set_clear_button_enabled(true); - FALLTHROUGH; + [[fallthrough]]; } case NOTIFICATION_THEME_CHANGED: { search_box->set_right_icon(get_icon("Search", "EditorIcons")); } break; case NOTIFICATION_EXIT_TREE: { - disconnect("confirmed", this, "_confirmed"); + disconnect_compat("confirmed", this, "_confirmed"); } break; } } @@ -291,15 +291,15 @@ EditorQuickOpen::EditorQuickOpen() { add_child(vbc); search_box = memnew(LineEdit); vbc->add_margin_child(TTR("Search:"), search_box); - search_box->connect("text_changed", this, "_text_changed"); - search_box->connect("gui_input", this, "_sbox_input"); + search_box->connect_compat("text_changed", this, "_text_changed"); + search_box->connect_compat("gui_input", this, "_sbox_input"); search_options = memnew(Tree); vbc->add_margin_child(TTR("Matches:"), search_options, true); get_ok()->set_text(TTR("Open")); get_ok()->set_disabled(true); register_text_enter(search_box); set_hide_on_ok(false); - search_options->connect("item_activated", this, "_confirmed"); + search_options->connect_compat("item_activated", this, "_confirmed"); search_options->set_hide_root(true); search_options->set_hide_folding(true); search_options->add_constant_override("draw_guides", 1); diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp index 317be309a3..aa8352aa25 100644 --- a/editor/rename_dialog.cpp +++ b/editor/rename_dialog.cpp @@ -144,7 +144,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und but_insert_name->set_text("NAME"); but_insert_name->set_tooltip(String("${NAME}\n") + TTR("Node name")); but_insert_name->set_focus_mode(FOCUS_NONE); - but_insert_name->connect("pressed", this, "_insert_text", make_binds("${NAME}")); + but_insert_name->connect_compat("pressed", this, "_insert_text", make_binds("${NAME}")); but_insert_name->set_h_size_flags(SIZE_EXPAND_FILL); grd_substitute->add_child(but_insert_name); @@ -154,7 +154,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und but_insert_parent->set_text("PARENT"); but_insert_parent->set_tooltip(String("${PARENT}\n") + TTR("Node's parent name, if available")); but_insert_parent->set_focus_mode(FOCUS_NONE); - but_insert_parent->connect("pressed", this, "_insert_text", make_binds("${PARENT}")); + but_insert_parent->connect_compat("pressed", this, "_insert_text", make_binds("${PARENT}")); but_insert_parent->set_h_size_flags(SIZE_EXPAND_FILL); grd_substitute->add_child(but_insert_parent); @@ -164,7 +164,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und but_insert_type->set_text("TYPE"); but_insert_type->set_tooltip(String("${TYPE}\n") + TTR("Node type")); but_insert_type->set_focus_mode(FOCUS_NONE); - but_insert_type->connect("pressed", this, "_insert_text", make_binds("${TYPE}")); + but_insert_type->connect_compat("pressed", this, "_insert_text", make_binds("${TYPE}")); but_insert_type->set_h_size_flags(SIZE_EXPAND_FILL); grd_substitute->add_child(but_insert_type); @@ -174,7 +174,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und but_insert_scene->set_text("SCENE"); but_insert_scene->set_tooltip(String("${SCENE}\n") + TTR("Current scene name")); but_insert_scene->set_focus_mode(FOCUS_NONE); - but_insert_scene->connect("pressed", this, "_insert_text", make_binds("${SCENE}")); + but_insert_scene->connect_compat("pressed", this, "_insert_text", make_binds("${SCENE}")); but_insert_scene->set_h_size_flags(SIZE_EXPAND_FILL); grd_substitute->add_child(but_insert_scene); @@ -184,7 +184,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und but_insert_root->set_text("ROOT"); but_insert_root->set_tooltip(String("${ROOT}\n") + TTR("Root node name")); but_insert_root->set_focus_mode(FOCUS_NONE); - but_insert_root->connect("pressed", this, "_insert_text", make_binds("${ROOT}")); + but_insert_root->connect_compat("pressed", this, "_insert_text", make_binds("${ROOT}")); but_insert_root->set_h_size_flags(SIZE_EXPAND_FILL); grd_substitute->add_child(but_insert_root); @@ -194,7 +194,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und but_insert_count->set_text("COUNTER"); but_insert_count->set_tooltip(String("${COUNTER}\n") + TTR("Sequential integer counter.\nCompare counter options.")); but_insert_count->set_focus_mode(FOCUS_NONE); - but_insert_count->connect("pressed", this, "_insert_text", make_binds("${COUNTER}")); + but_insert_count->connect_compat("pressed", this, "_insert_text", make_binds("${COUNTER}")); but_insert_count->set_h_size_flags(SIZE_EXPAND_FILL); grd_substitute->add_child(but_insert_count); @@ -306,35 +306,35 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und // ---- Connections - cbut_collapse_features->connect("toggled", this, "_features_toggled"); + cbut_collapse_features->connect_compat("toggled", this, "_features_toggled"); // Substitite Buttons - lne_search->connect("focus_entered", this, "_update_substitute"); - lne_search->connect("focus_exited", this, "_update_substitute"); - lne_replace->connect("focus_entered", this, "_update_substitute"); - lne_replace->connect("focus_exited", this, "_update_substitute"); - lne_prefix->connect("focus_entered", this, "_update_substitute"); - lne_prefix->connect("focus_exited", this, "_update_substitute"); - lne_suffix->connect("focus_entered", this, "_update_substitute"); - lne_suffix->connect("focus_exited", this, "_update_substitute"); + lne_search->connect_compat("focus_entered", this, "_update_substitute"); + lne_search->connect_compat("focus_exited", this, "_update_substitute"); + lne_replace->connect_compat("focus_entered", this, "_update_substitute"); + lne_replace->connect_compat("focus_exited", this, "_update_substitute"); + lne_prefix->connect_compat("focus_entered", this, "_update_substitute"); + lne_prefix->connect_compat("focus_exited", this, "_update_substitute"); + lne_suffix->connect_compat("focus_entered", this, "_update_substitute"); + lne_suffix->connect_compat("focus_exited", this, "_update_substitute"); // Preview - lne_prefix->connect("text_changed", this, "_update_preview"); - lne_suffix->connect("text_changed", this, "_update_preview"); - lne_search->connect("text_changed", this, "_update_preview"); - lne_replace->connect("text_changed", this, "_update_preview"); - spn_count_start->connect("value_changed", this, "_update_preview_int"); - spn_count_step->connect("value_changed", this, "_update_preview_int"); - spn_count_padding->connect("value_changed", this, "_update_preview_int"); - opt_style->connect("item_selected", this, "_update_preview_int"); - opt_case->connect("item_selected", this, "_update_preview_int"); - cbut_substitute->connect("pressed", this, "_update_preview", varray("")); - cbut_regex->connect("pressed", this, "_update_preview", varray("")); - cbut_process->connect("pressed", this, "_update_preview", varray("")); - - but_reset->connect("pressed", this, "reset"); + lne_prefix->connect_compat("text_changed", this, "_update_preview"); + lne_suffix->connect_compat("text_changed", this, "_update_preview"); + lne_search->connect_compat("text_changed", this, "_update_preview"); + lne_replace->connect_compat("text_changed", this, "_update_preview"); + spn_count_start->connect_compat("value_changed", this, "_update_preview_int"); + spn_count_step->connect_compat("value_changed", this, "_update_preview_int"); + spn_count_padding->connect_compat("value_changed", this, "_update_preview_int"); + opt_style->connect_compat("item_selected", this, "_update_preview_int"); + opt_case->connect_compat("item_selected", this, "_update_preview_int"); + cbut_substitute->connect_compat("pressed", this, "_update_preview", varray("")); + cbut_regex->connect_compat("pressed", this, "_update_preview", varray("")); + cbut_process->connect_compat("pressed", this, "_update_preview", varray("")); + + but_reset->connect_compat("pressed", this, "reset"); reset(); _features_toggled(false); diff --git a/editor/reparent_dialog.cpp b/editor/reparent_dialog.cpp index dd35f41b7a..7c99f5d520 100644 --- a/editor/reparent_dialog.cpp +++ b/editor/reparent_dialog.cpp @@ -38,12 +38,12 @@ void ReparentDialog::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - connect("confirmed", this, "_reparent"); + connect_compat("confirmed", this, "_reparent"); } if (p_what == NOTIFICATION_EXIT_TREE) { - disconnect("confirmed", this, "_reparent"); + disconnect_compat("confirmed", this, "_reparent"); } if (p_what == NOTIFICATION_DRAW) { @@ -93,7 +93,7 @@ ReparentDialog::ReparentDialog() { vbc->add_margin_child(TTR("Reparent Location (Select new Parent):"), tree, true); - tree->get_scene_tree()->connect("item_activated", this, "_reparent"); + tree->get_scene_tree()->connect_compat("item_activated", this, "_reparent"); //Label *label = memnew( Label ); //label->set_position( Point2( 15,8) ); diff --git a/editor/run_settings_dialog.cpp b/editor/run_settings_dialog.cpp index 3a8d17b54e..0c7ee8d807 100644 --- a/editor/run_settings_dialog.cpp +++ b/editor/run_settings_dialog.cpp @@ -81,7 +81,7 @@ RunSettingsDialog::RunSettingsDialog() { vbc->add_margin_child(TTR("Run Mode:"), run_mode); run_mode->add_item(TTR("Current Scene")); run_mode->add_item(TTR("Main Scene")); - run_mode->connect("item_selected", this, "_run_mode_changed"); + run_mode->connect_compat("item_selected", this, "_run_mode_changed"); arguments = memnew(LineEdit); vbc->add_margin_child(TTR("Main Scene Arguments:"), arguments); arguments->set_editable(false); diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 784791d40c..ebc7d56b24 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -35,6 +35,7 @@ #include "core/os/keyboard.h" #include "core/project_settings.h" +#include "editor/debugger/editor_debugger_node.h" #include "editor/editor_feature_profile.h" #include "editor/editor_node.h" #include "editor/editor_scale.h" @@ -44,7 +45,6 @@ #include "editor/plugins/canvas_item_editor_plugin.h" #include "editor/plugins/script_editor_plugin.h" #include "editor/plugins/spatial_editor_plugin.h" -#include "editor/script_editor_debugger.h" #include "scene/main/viewport.h" #include "scene/resources/packed_scene.h" @@ -229,9 +229,9 @@ void SceneTreeDock::_perform_instance_scenes(const Vector<String> &p_files, Node editor_data->get_undo_redo().add_undo_method(parent, "remove_child", instanced_scene); String new_name = parent->validate_child_name(instanced_scene); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed, "live_debug_instance_node", edited_scene->get_path_to(parent), p_files[i], new_name); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(edited_scene->get_path_to(parent)).plus_file(new_name))); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_instance_node", edited_scene->get_path_to(parent), p_files[i], new_name); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(edited_scene->get_path_to(parent)).plus_file(new_name))); } editor_data->get_undo_redo().commit_action(); @@ -591,10 +591,10 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { editor_data->get_undo_redo().add_undo_method(parent, "remove_child", dup); editor_data->get_undo_redo().add_do_reference(dup); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); - editor_data->get_undo_redo().add_do_method(sed, "live_debug_duplicate_node", edited_scene->get_path_to(node), dup->get_name()); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(edited_scene->get_path_to(parent)).plus_file(dup->get_name()))); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_duplicate_node", edited_scene->get_path_to(node), dup->get_name()); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(edited_scene->get_path_to(parent)).plus_file(dup->get_name()))); } editor_data->get_undo_redo().commit_action(); @@ -1046,18 +1046,18 @@ void SceneTreeDock::_notification(int p_what) { break; first_enter = false; - EditorFeatureProfileManager::get_singleton()->connect("current_feature_profile_changed", this, "_feature_profile_changed"); + EditorFeatureProfileManager::get_singleton()->connect_compat("current_feature_profile_changed", this, "_feature_profile_changed"); CanvasItemEditorPlugin *canvas_item_plugin = Object::cast_to<CanvasItemEditorPlugin>(editor_data->get_editor("2D")); if (canvas_item_plugin) { - canvas_item_plugin->get_canvas_item_editor()->connect("item_lock_status_changed", scene_tree, "_update_tree"); - canvas_item_plugin->get_canvas_item_editor()->connect("item_group_status_changed", scene_tree, "_update_tree"); - scene_tree->connect("node_changed", canvas_item_plugin->get_canvas_item_editor()->get_viewport_control(), "update"); + canvas_item_plugin->get_canvas_item_editor()->connect_compat("item_lock_status_changed", scene_tree, "_update_tree"); + canvas_item_plugin->get_canvas_item_editor()->connect_compat("item_group_status_changed", scene_tree, "_update_tree"); + scene_tree->connect_compat("node_changed", canvas_item_plugin->get_canvas_item_editor()->get_viewport_control(), "update"); } SpatialEditorPlugin *spatial_editor_plugin = Object::cast_to<SpatialEditorPlugin>(editor_data->get_editor("3D")); - spatial_editor_plugin->get_spatial_editor()->connect("item_lock_status_changed", scene_tree, "_update_tree"); - spatial_editor_plugin->get_spatial_editor()->connect("item_group_status_changed", scene_tree, "_update_tree"); + spatial_editor_plugin->get_spatial_editor()->connect_compat("item_lock_status_changed", scene_tree, "_update_tree"); + spatial_editor_plugin->get_spatial_editor()->connect_compat("item_group_status_changed", scene_tree, "_update_tree"); button_add->set_icon(get_icon("Add", "EditorIcons")); button_instance->set_icon(get_icon("Instance", "EditorIcons")); @@ -1067,8 +1067,8 @@ void SceneTreeDock::_notification(int p_what) { filter->set_right_icon(get_icon("Search", "EditorIcons")); filter->set_clear_button_enabled(true); - EditorNode::get_singleton()->get_editor_selection()->connect("selection_changed", this, "_selection_changed"); - scene_tree->get_scene_tree()->connect("item_collapsed", this, "_node_collapsed"); + EditorNode::get_singleton()->get_editor_selection()->connect_compat("selection_changed", this, "_selection_changed"); + scene_tree->get_scene_tree()->connect_compat("item_collapsed", this, "_node_collapsed"); // create_root_dialog HBoxContainer *top_row = memnew(HBoxContainer); @@ -1083,7 +1083,7 @@ void SceneTreeDock::_notification(int p_what) { node_shortcuts_toggle->set_toggle_mode(true); node_shortcuts_toggle->set_pressed(EDITOR_GET("_use_favorites_root_selection")); node_shortcuts_toggle->set_anchors_and_margins_preset(Control::PRESET_CENTER_RIGHT); - node_shortcuts_toggle->connect("pressed", this, "_update_create_root_dialog"); + node_shortcuts_toggle->connect_compat("pressed", this, "_update_create_root_dialog"); top_row->add_child(node_shortcuts_toggle); create_root_dialog->add_child(top_row); @@ -1099,18 +1099,18 @@ void SceneTreeDock::_notification(int p_what) { beginner_node_shortcuts->add_child(button_2d); button_2d->set_text(TTR("2D Scene")); button_2d->set_icon(get_icon("Node2D", "EditorIcons")); - button_2d->connect("pressed", this, "_tool_selected", make_binds(TOOL_CREATE_2D_SCENE, false)); + button_2d->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_CREATE_2D_SCENE, false)); button_3d = memnew(Button); beginner_node_shortcuts->add_child(button_3d); button_3d->set_text(TTR("3D Scene")); button_3d->set_icon(get_icon("Spatial", "EditorIcons")); - button_3d->connect("pressed", this, "_tool_selected", make_binds(TOOL_CREATE_3D_SCENE, false)); + button_3d->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_CREATE_3D_SCENE, false)); Button *button_ui = memnew(Button); beginner_node_shortcuts->add_child(button_ui); button_ui->set_text(TTR("User Interface")); button_ui->set_icon(get_icon("Control", "EditorIcons")); - button_ui->connect("pressed", this, "_tool_selected", make_binds(TOOL_CREATE_USER_INTERFACE, false)); + button_ui->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_CREATE_USER_INTERFACE, false)); VBoxContainer *favorite_node_shortcuts = memnew(VBoxContainer); favorite_node_shortcuts->set_name("FavoriteNodeShortcuts"); @@ -1120,7 +1120,7 @@ void SceneTreeDock::_notification(int p_what) { node_shortcuts->add_child(button_custom); button_custom->set_text(TTR("Other Node")); button_custom->set_icon(get_icon("Add", "EditorIcons")); - button_custom->connect("pressed", this, "_tool_selected", make_binds(TOOL_NEW, false)); + button_custom->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_NEW, false)); node_shortcuts->add_spacer(); create_root_dialog->add_child(node_shortcuts); @@ -1128,11 +1128,11 @@ void SceneTreeDock::_notification(int p_what) { } break; case NOTIFICATION_ENTER_TREE: { - clear_inherit_confirm->connect("confirmed", this, "_tool_selected", varray(TOOL_SCENE_CLEAR_INHERITANCE_CONFIRM)); + clear_inherit_confirm->connect_compat("confirmed", this, "_tool_selected", varray(TOOL_SCENE_CLEAR_INHERITANCE_CONFIRM)); } break; case NOTIFICATION_EXIT_TREE: { - clear_inherit_confirm->disconnect("confirmed", this, "_tool_selected"); + clear_inherit_confirm->disconnect_compat("confirmed", this, "_tool_selected"); } break; case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: { button_add->set_icon(get_icon("Add", "EditorIcons")); @@ -1584,7 +1584,7 @@ void SceneTreeDock::_do_reparent(Node *p_new_parent, int p_position_in_parent, V if (p_position_in_parent >= 0) editor_data->get_undo_redo().add_do_method(new_parent, "move_child", node, p_position_in_parent + inc); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); String old_name = former_names[ni]; String new_name = new_parent->validate_child_name(node); @@ -1609,8 +1609,8 @@ void SceneTreeDock::_do_reparent(Node *p_new_parent, int p_position_in_parent, V path_renames[ni].second = fixed_node_path; } - editor_data->get_undo_redo().add_do_method(sed, "live_debug_reparent_node", edited_scene->get_path_to(node), edited_scene->get_path_to(new_parent), new_name, p_position_in_parent + inc); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_reparent_node", NodePath(String(edited_scene->get_path_to(new_parent)).plus_file(new_name)), edited_scene->get_path_to(node->get_parent()), node->get_name(), node->get_index()); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_reparent_node", edited_scene->get_path_to(node), edited_scene->get_path_to(new_parent), new_name, p_position_in_parent + inc); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_reparent_node", NodePath(String(edited_scene->get_path_to(new_parent)).plus_file(new_name)), edited_scene->get_path_to(node->get_parent()), node->get_name(), node->get_index()); if (p_keep_global_xform) { if (Object::cast_to<Node2D>(node)) @@ -1738,7 +1738,7 @@ void SceneTreeDock::_script_created(Ref<Script> p_script) { } void SceneTreeDock::_script_creation_closed() { - script_create_dialog->disconnect("script_created", this, "_script_created"); + script_create_dialog->disconnect_compat("script_created", this, "_script_created"); } void SceneTreeDock::_toggle_editable_children_from_selection() { @@ -1849,9 +1849,9 @@ void SceneTreeDock::_delete_confirm() { editor_data->get_undo_redo().add_undo_method(this, "_set_owners", edited_scene, owners); editor_data->get_undo_redo().add_undo_reference(n); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed, "live_debug_remove_and_keep_node", edited_scene->get_path_to(n), n->get_instance_id()); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_restore_node", n->get_instance_id(), edited_scene->get_path_to(n->get_parent()), n->get_index()); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_remove_and_keep_node", edited_scene->get_path_to(n), n->get_instance_id()); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_restore_node", n->get_instance_id(), edited_scene->get_path_to(n->get_parent()), n->get_index()); } } editor_data->get_undo_redo().commit_action(); @@ -1950,9 +1950,9 @@ void SceneTreeDock::_do_create(Node *p_parent) { editor_data->get_undo_redo().add_undo_method(p_parent, "remove_child", child); String new_name = p_parent->validate_child_name(child); - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - editor_data->get_undo_redo().add_do_method(sed, "live_debug_create_node", edited_scene->get_path_to(p_parent), child->get_class(), new_name); - editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(edited_scene->get_path_to(p_parent)).plus_file(new_name))); + EditorDebuggerNode *ed = EditorDebuggerNode::get_singleton(); + editor_data->get_undo_redo().add_do_method(ed, "live_debug_create_node", edited_scene->get_path_to(p_parent), child->get_class(), new_name); + editor_data->get_undo_redo().add_undo_method(ed, "live_debug_remove_node", NodePath(String(edited_scene->get_path_to(p_parent)).plus_file(new_name))); } else { @@ -2113,7 +2113,7 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_prop Object::Connection &c = F->get(); if (!(c.flags & Object::CONNECT_PERSIST)) continue; - newnode->connect(c.signal, c.target, c.method, c.binds, Object::CONNECT_PERSIST); + newnode->connect_compat(c.signal.get_name(), c.callable.get_object(), c.callable.get_method(), c.binds, Object::CONNECT_PERSIST); } } @@ -2410,7 +2410,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { menu->clear(); Ref<Script> existing_script; - bool exisiting_script_removable = true; + bool existing_script_removable = true; if (selection.size() == 1) { Node *selected = selection[0]; @@ -2432,7 +2432,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { existing_script = selected->get_script(); if (EditorNode::get_singleton()->get_object_custom_type_base(selected) == existing_script) { - exisiting_script_removable = false; + existing_script_removable = false; } } @@ -2446,7 +2446,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { menu->add_icon_shortcut(get_icon("ScriptExtend", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/extend_script"), TOOL_EXTEND_SCRIPT); } } - if (existing_script.is_valid() && exisiting_script_removable) { + if (existing_script.is_valid() && existing_script_removable) { add_separator = true; menu->add_icon_shortcut(get_icon("ScriptRemove", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/clear_script"), TOOL_CLEAR_SCRIPT); } else if (full_selection.size() > 1) { @@ -2616,8 +2616,8 @@ void SceneTreeDock::attach_script_to_selected(bool p_extend) { } } - script_create_dialog->connect("script_created", this, "_script_created"); - script_create_dialog->connect("popup_hide", this, "_script_creation_closed", varray(), CONNECT_ONESHOT); + script_create_dialog->connect_compat("script_created", this, "_script_created"); + script_create_dialog->connect_compat("popup_hide", this, "_script_creation_closed", varray(), CONNECT_ONESHOT); script_create_dialog->set_inheritance_base_type("Node"); script_create_dialog->config(inherits, path); script_create_dialog->popup_centered(); @@ -2719,7 +2719,7 @@ void SceneTreeDock::_update_create_root_dialog() { if (ScriptServer::is_global_class(name)) name = ScriptServer::get_global_class_native_base(name); button->set_icon(EditorNode::get_singleton()->get_class_icon(name)); - button->connect("pressed", this, "_favorite_root_selected", make_binds(l)); + button->connect_compat("pressed", this, "_favorite_root_selected", make_binds(l)); } } @@ -2850,13 +2850,13 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel ED_SHORTCUT("scene_tree/delete", TTR("Delete"), KEY_DELETE); button_add = memnew(ToolButton); - button_add->connect("pressed", this, "_tool_selected", make_binds(TOOL_NEW, false)); + button_add->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_NEW, false)); button_add->set_tooltip(TTR("Add/Create a New Node.")); button_add->set_shortcut(ED_GET_SHORTCUT("scene_tree/add_child_node")); filter_hbc->add_child(button_add); button_instance = memnew(ToolButton); - button_instance->connect("pressed", this, "_tool_selected", make_binds(TOOL_INSTANCE, false)); + button_instance->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_INSTANCE, false)); button_instance->set_tooltip(TTR("Instance a scene file as a Node. Creates an inherited scene if no root node exists.")); button_instance->set_shortcut(ED_GET_SHORTCUT("scene_tree/instance_scene")); filter_hbc->add_child(button_instance); @@ -2867,17 +2867,17 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel filter->set_placeholder(TTR("Filter nodes")); filter_hbc->add_child(filter); filter->add_constant_override("minimum_spaces", 0); - filter->connect("text_changed", this, "_filter_changed"); + filter->connect_compat("text_changed", this, "_filter_changed"); button_create_script = memnew(ToolButton); - button_create_script->connect("pressed", this, "_tool_selected", make_binds(TOOL_ATTACH_SCRIPT, false)); + button_create_script->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_ATTACH_SCRIPT, false)); button_create_script->set_tooltip(TTR("Attach a new or existing script for the selected node.")); button_create_script->set_shortcut(ED_GET_SHORTCUT("scene_tree/attach_script")); filter_hbc->add_child(button_create_script); button_create_script->hide(); button_clear_script = memnew(ToolButton); - button_clear_script->connect("pressed", this, "_tool_selected", make_binds(TOOL_CLEAR_SCRIPT, false)); + button_clear_script->connect_compat("pressed", this, "_tool_selected", make_binds(TOOL_CLEAR_SCRIPT, false)); button_clear_script->set_tooltip(TTR("Clear a script for the selected node.")); button_clear_script->set_shortcut(ED_GET_SHORTCUT("scene_tree/clear_script")); filter_hbc->add_child(button_clear_script); @@ -2891,14 +2891,14 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel edit_remote->set_h_size_flags(SIZE_EXPAND_FILL); edit_remote->set_text(TTR("Remote")); edit_remote->set_toggle_mode(true); - edit_remote->connect("pressed", this, "_remote_tree_selected"); + edit_remote->connect_compat("pressed", this, "_remote_tree_selected"); edit_local = memnew(ToolButton); button_hb->add_child(edit_local); edit_local->set_h_size_flags(SIZE_EXPAND_FILL); edit_local->set_text(TTR("Local")); edit_local->set_toggle_mode(true); - edit_local->connect("pressed", this, "_local_tree_selected"); + edit_local->connect_compat("pressed", this, "_local_tree_selected"); remote_tree = NULL; button_hb->hide(); @@ -2911,19 +2911,19 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel vbc->add_child(scene_tree); scene_tree->set_v_size_flags(SIZE_EXPAND | SIZE_FILL); - scene_tree->connect("rmb_pressed", this, "_tree_rmb"); + scene_tree->connect_compat("rmb_pressed", this, "_tree_rmb"); - scene_tree->connect("node_selected", this, "_node_selected", varray(), CONNECT_DEFERRED); - scene_tree->connect("node_renamed", this, "_node_renamed", varray(), CONNECT_DEFERRED); - scene_tree->connect("node_prerename", this, "_node_prerenamed"); - scene_tree->connect("open", this, "_load_request"); - scene_tree->connect("open_script", this, "_script_open_request"); - scene_tree->connect("nodes_rearranged", this, "_nodes_dragged"); - scene_tree->connect("files_dropped", this, "_files_dropped"); - scene_tree->connect("script_dropped", this, "_script_dropped"); - scene_tree->connect("nodes_dragged", this, "_nodes_drag_begin"); + scene_tree->connect_compat("node_selected", this, "_node_selected", varray(), CONNECT_DEFERRED); + scene_tree->connect_compat("node_renamed", this, "_node_renamed", varray(), CONNECT_DEFERRED); + scene_tree->connect_compat("node_prerename", this, "_node_prerenamed"); + scene_tree->connect_compat("open", this, "_load_request"); + scene_tree->connect_compat("open_script", this, "_script_open_request"); + scene_tree->connect_compat("nodes_rearranged", this, "_nodes_dragged"); + scene_tree->connect_compat("files_dropped", this, "_files_dropped"); + scene_tree->connect_compat("script_dropped", this, "_script_dropped"); + scene_tree->connect_compat("nodes_dragged", this, "_nodes_drag_begin"); - scene_tree->get_scene_tree()->connect("item_double_clicked", this, "_focus_node"); + scene_tree->get_scene_tree()->connect_compat("item_double_clicked", this, "_focus_node"); scene_tree->set_undo_redo(&editor_data->get_undo_redo()); scene_tree->set_editor_selection(editor_selection); @@ -2931,8 +2931,8 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel create_dialog = memnew(CreateDialog); create_dialog->set_base_type("Node"); add_child(create_dialog); - create_dialog->connect("create", this, "_create"); - create_dialog->connect("favorites_updated", this, "_update_create_root_dialog"); + create_dialog->connect_compat("create", this, "_create"); + create_dialog->connect_compat("favorites_updated", this, "_update_create_root_dialog"); rename_dialog = memnew(RenameDialog(scene_tree, &editor_data->get_undo_redo())); add_child(rename_dialog); @@ -2943,44 +2943,44 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel reparent_dialog = memnew(ReparentDialog); add_child(reparent_dialog); - reparent_dialog->connect("reparent", this, "_node_reparent"); + reparent_dialog->connect_compat("reparent", this, "_node_reparent"); accept = memnew(AcceptDialog); add_child(accept); quick_open = memnew(EditorQuickOpen); add_child(quick_open); - quick_open->connect("quick_open", this, "_quick_open"); + quick_open->connect_compat("quick_open", this, "_quick_open"); set_process_unhandled_key_input(true); delete_dialog = memnew(ConfirmationDialog); add_child(delete_dialog); - delete_dialog->connect("confirmed", this, "_delete_confirm"); + delete_dialog->connect_compat("confirmed", this, "_delete_confirm"); editable_instance_remove_dialog = memnew(ConfirmationDialog); add_child(editable_instance_remove_dialog); - editable_instance_remove_dialog->connect("confirmed", this, "_toggle_editable_children_from_selection"); + editable_instance_remove_dialog->connect_compat("confirmed", this, "_toggle_editable_children_from_selection"); placeholder_editable_instance_remove_dialog = memnew(ConfirmationDialog); add_child(placeholder_editable_instance_remove_dialog); - placeholder_editable_instance_remove_dialog->connect("confirmed", this, "_toggle_placeholder_from_selection"); + placeholder_editable_instance_remove_dialog->connect_compat("confirmed", this, "_toggle_placeholder_from_selection"); import_subscene_dialog = memnew(EditorSubScene); add_child(import_subscene_dialog); - import_subscene_dialog->connect("subscene_selected", this, "_import_subscene"); + import_subscene_dialog->connect_compat("subscene_selected", this, "_import_subscene"); new_scene_from_dialog = memnew(EditorFileDialog); new_scene_from_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); add_child(new_scene_from_dialog); - new_scene_from_dialog->connect("file_selected", this, "_new_scene_from"); + new_scene_from_dialog->connect_compat("file_selected", this, "_new_scene_from"); menu = memnew(PopupMenu); add_child(menu); - menu->connect("id_pressed", this, "_tool_selected"); + menu->connect_compat("id_pressed", this, "_tool_selected"); menu->set_hide_on_window_lose_focus(true); menu_subresources = memnew(PopupMenu); menu_subresources->set_name("Sub-Resources"); - menu_subresources->connect("id_pressed", this, "_tool_selected"); + menu_subresources->connect_compat("id_pressed", this, "_tool_selected"); menu->add_child(menu_subresources); first_enter = true; restore_script_editor_on_drag = false; diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index 0e8a9146e1..ff8eaa8897 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -323,8 +323,8 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { if (can_open_instance && undo_redo) { //Show buttons only when necessary(SceneTreeDock) to avoid crashes - if (!p_node->is_connected("script_changed", this, "_node_script_changed")) - p_node->connect("script_changed", this, "_node_script_changed", varray(p_node)); + if (!p_node->is_connected_compat("script_changed", this, "_node_script_changed")) + p_node->connect_compat("script_changed", this, "_node_script_changed", varray(p_node)); Ref<Script> script = p_node->get_script(); if (!script.is_null()) { @@ -350,8 +350,8 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { else item->add_button(0, get_icon("GuiVisibilityHidden", "EditorIcons"), BUTTON_VISIBILITY, false, TTR("Toggle Visibility")); - if (!p_node->is_connected("visibility_changed", this, "_node_visibility_changed")) - p_node->connect("visibility_changed", this, "_node_visibility_changed", varray(p_node)); + if (!p_node->is_connected_compat("visibility_changed", this, "_node_visibility_changed")) + p_node->connect_compat("visibility_changed", this, "_node_visibility_changed", varray(p_node)); _update_visibility_color(p_node, item); } else if (p_node->is_class("Spatial")) { @@ -370,8 +370,8 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { else item->add_button(0, get_icon("GuiVisibilityHidden", "EditorIcons"), BUTTON_VISIBILITY, false, TTR("Toggle Visibility")); - if (!p_node->is_connected("visibility_changed", this, "_node_visibility_changed")) - p_node->connect("visibility_changed", this, "_node_visibility_changed", varray(p_node)); + if (!p_node->is_connected_compat("visibility_changed", this, "_node_visibility_changed")) + p_node->connect_compat("visibility_changed", this, "_node_visibility_changed", varray(p_node)); _update_visibility_color(p_node, item); } else if (p_node->is_class("AnimationPlayer")) { @@ -495,12 +495,12 @@ void SceneTreeEditor::_node_removed(Node *p_node) { if (EditorNode::get_singleton()->is_exiting()) return; //speed up exit - if (p_node->is_connected("script_changed", this, "_node_script_changed")) - p_node->disconnect("script_changed", this, "_node_script_changed"); + if (p_node->is_connected_compat("script_changed", this, "_node_script_changed")) + p_node->disconnect_compat("script_changed", this, "_node_script_changed"); if (p_node->is_class("Spatial") || p_node->is_class("CanvasItem")) { - if (p_node->is_connected("visibility_changed", this, "_node_visibility_changed")) - p_node->disconnect("visibility_changed", this, "_node_visibility_changed"); + if (p_node->is_connected_compat("visibility_changed", this, "_node_visibility_changed")) + p_node->disconnect_compat("visibility_changed", this, "_node_visibility_changed"); } if (p_node == selected) { @@ -640,22 +640,22 @@ void SceneTreeEditor::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - get_tree()->connect("tree_changed", this, "_tree_changed"); - get_tree()->connect("node_removed", this, "_node_removed"); - get_tree()->connect("node_renamed", this, "_node_renamed"); - get_tree()->connect("node_configuration_warning_changed", this, "_warning_changed"); + get_tree()->connect_compat("tree_changed", this, "_tree_changed"); + get_tree()->connect_compat("node_removed", this, "_node_removed"); + get_tree()->connect_compat("node_renamed", this, "_node_renamed"); + get_tree()->connect_compat("node_configuration_warning_changed", this, "_warning_changed"); - tree->connect("item_collapsed", this, "_cell_collapsed"); + tree->connect_compat("item_collapsed", this, "_cell_collapsed"); _update_tree(); } break; case NOTIFICATION_EXIT_TREE: { - get_tree()->disconnect("tree_changed", this, "_tree_changed"); - get_tree()->disconnect("node_removed", this, "_node_removed"); - get_tree()->disconnect("node_renamed", this, "_node_renamed"); - tree->disconnect("item_collapsed", this, "_cell_collapsed"); - get_tree()->disconnect("node_configuration_warning_changed", this, "_warning_changed"); + get_tree()->disconnect_compat("tree_changed", this, "_tree_changed"); + get_tree()->disconnect_compat("node_removed", this, "_node_removed"); + get_tree()->disconnect_compat("node_renamed", this, "_node_renamed"); + tree->disconnect_compat("item_collapsed", this, "_cell_collapsed"); + get_tree()->disconnect_compat("node_configuration_warning_changed", this, "_warning_changed"); } break; case NOTIFICATION_THEME_CHANGED: { @@ -836,7 +836,7 @@ void SceneTreeEditor::set_editor_selection(EditorSelection *p_selection) { editor_selection = p_selection; tree->set_select_mode(Tree::SELECT_MULTI); tree->set_cursor_can_exit_tree(false); - editor_selection->connect("selection_changed", this, "_selection_changed"); + editor_selection->connect_compat("selection_changed", this, "_selection_changed"); } void SceneTreeEditor::_update_selection(TreeItem *item) { @@ -1120,7 +1120,7 @@ void SceneTreeEditor::_bind_methods() { ADD_SIGNAL(MethodInfo("node_changed")); ADD_SIGNAL(MethodInfo("nodes_dragged")); ADD_SIGNAL(MethodInfo("nodes_rearranged", PropertyInfo(Variant::ARRAY, "paths"), PropertyInfo(Variant::NODE_PATH, "to_path"), PropertyInfo(Variant::INT, "type"))); - ADD_SIGNAL(MethodInfo("files_dropped", PropertyInfo(Variant::POOL_STRING_ARRAY, "files"), PropertyInfo(Variant::NODE_PATH, "to_path"), PropertyInfo(Variant::INT, "type"))); + ADD_SIGNAL(MethodInfo("files_dropped", PropertyInfo(Variant::PACKED_STRING_ARRAY, "files"), PropertyInfo(Variant::NODE_PATH, "to_path"), PropertyInfo(Variant::INT, "type"))); ADD_SIGNAL(MethodInfo("script_dropped", PropertyInfo(Variant::STRING, "file"), PropertyInfo(Variant::NODE_PATH, "to_path"))); ADD_SIGNAL(MethodInfo("rmb_pressed", PropertyInfo(Variant::VECTOR2, "position"))); @@ -1163,15 +1163,15 @@ SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_ope tree->set_drag_forwarding(this); if (p_can_rename) { tree->set_allow_rmb_select(true); - tree->connect("item_rmb_selected", this, "_rmb_select"); - tree->connect("empty_tree_rmb_selected", this, "_rmb_select"); + tree->connect_compat("item_rmb_selected", this, "_rmb_select"); + tree->connect_compat("empty_tree_rmb_selected", this, "_rmb_select"); } - tree->connect("cell_selected", this, "_selected_changed"); - tree->connect("item_edited", this, "_renamed", varray(), CONNECT_DEFERRED); - tree->connect("multi_selected", this, "_cell_multi_selected"); - tree->connect("button_pressed", this, "_cell_button_pressed"); - tree->connect("nothing_selected", this, "_deselect_items"); + tree->connect_compat("cell_selected", this, "_selected_changed"); + tree->connect_compat("item_edited", this, "_renamed", varray(), CONNECT_DEFERRED); + tree->connect_compat("multi_selected", this, "_cell_multi_selected"); + tree->connect_compat("button_pressed", this, "_cell_button_pressed"); + tree->connect_compat("nothing_selected", this, "_deselect_items"); //tree->connect("item_edited", this,"_renamed",Vector<Variant>(),true); error = memnew(AcceptDialog); @@ -1189,7 +1189,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_ope blocked = 0; update_timer = memnew(Timer); - update_timer->connect("timeout", this, "_update_tree"); + update_timer->connect_compat("timeout", this, "_update_tree"); update_timer->set_one_shot(true); update_timer->set_wait_time(0.5); add_child(update_timer); @@ -1209,12 +1209,12 @@ void SceneTreeDialog::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { - connect("confirmed", this, "_select"); + connect_compat("confirmed", this, "_select"); filter->set_right_icon(get_icon("Search", "EditorIcons")); filter->set_clear_button_enabled(true); } break; case NOTIFICATION_EXIT_TREE: { - disconnect("confirmed", this, "_select"); + disconnect_compat("confirmed", this, "_select"); } break; case NOTIFICATION_VISIBILITY_CHANGED: { if (is_visible_in_tree()) @@ -1259,12 +1259,12 @@ SceneTreeDialog::SceneTreeDialog() { filter->set_h_size_flags(SIZE_EXPAND_FILL); filter->set_placeholder(TTR("Filter nodes")); filter->add_constant_override("minimum_spaces", 0); - filter->connect("text_changed", this, "_filter_changed"); + filter->connect_compat("text_changed", this, "_filter_changed"); vbc->add_child(filter); tree = memnew(SceneTreeEditor(false, false, true)); tree->set_v_size_flags(SIZE_EXPAND_FILL); - tree->get_scene_tree()->connect("item_activated", this, "_select"); + tree->get_scene_tree()->connect_compat("item_activated", this, "_select"); vbc->add_child(tree); } diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp index 959bb67e12..ca4baffe84 100644 --- a/editor/script_create_dialog.cpp +++ b/editor/script_create_dialog.cpp @@ -804,7 +804,7 @@ ScriptCreateDialog::ScriptCreateDialog() { language_menu->select(default_language); current_language = default_language; - language_menu->connect("item_selected", this, "_lang_changed"); + language_menu->connect_compat("item_selected", this, "_lang_changed"); /* Inherits */ @@ -813,16 +813,16 @@ ScriptCreateDialog::ScriptCreateDialog() { hb = memnew(HBoxContainer); hb->set_h_size_flags(SIZE_EXPAND_FILL); parent_name = memnew(LineEdit); - parent_name->connect("text_changed", this, "_parent_name_changed"); + parent_name->connect_compat("text_changed", this, "_parent_name_changed"); parent_name->set_h_size_flags(SIZE_EXPAND_FILL); hb->add_child(parent_name); parent_search_button = memnew(Button); parent_search_button->set_flat(true); - parent_search_button->connect("pressed", this, "_browse_class_in_tree"); + parent_search_button->connect_compat("pressed", this, "_browse_class_in_tree"); hb->add_child(parent_search_button); parent_browse_button = memnew(Button); parent_browse_button->set_flat(true); - parent_browse_button->connect("pressed", this, "_browse_path", varray(true, false)); + parent_browse_button->connect_compat("pressed", this, "_browse_path", varray(true, false)); hb->add_child(parent_browse_button); gc->add_child(memnew(Label(TTR("Inherits:")))); gc->add_child(hb); @@ -831,7 +831,7 @@ ScriptCreateDialog::ScriptCreateDialog() { /* Class Name */ class_name = memnew(LineEdit); - class_name->connect("text_changed", this, "_class_name_changed"); + class_name->connect_compat("text_changed", this, "_class_name_changed"); class_name->set_h_size_flags(SIZE_EXPAND_FILL); gc->add_child(memnew(Label(TTR("Class Name:")))); gc->add_child(class_name); @@ -841,28 +841,28 @@ ScriptCreateDialog::ScriptCreateDialog() { template_menu = memnew(OptionButton); gc->add_child(memnew(Label(TTR("Template:")))); gc->add_child(template_menu); - template_menu->connect("item_selected", this, "_template_changed"); + template_menu->connect_compat("item_selected", this, "_template_changed"); /* Built-in Script */ internal = memnew(CheckBox); internal->set_text(TTR("On")); - internal->connect("pressed", this, "_built_in_pressed"); + internal->connect_compat("pressed", this, "_built_in_pressed"); gc->add_child(memnew(Label(TTR("Built-in Script:")))); gc->add_child(internal); /* Path */ hb = memnew(HBoxContainer); - hb->connect("sort_children", this, "_path_hbox_sorted"); + hb->connect_compat("sort_children", this, "_path_hbox_sorted"); file_path = memnew(LineEdit); - file_path->connect("text_changed", this, "_path_changed"); - file_path->connect("text_entered", this, "_path_entered"); + file_path->connect_compat("text_changed", this, "_path_changed"); + file_path->connect_compat("text_entered", this, "_path_entered"); file_path->set_h_size_flags(SIZE_EXPAND_FILL); hb->add_child(file_path); path_button = memnew(Button); path_button->set_flat(true); - path_button->connect("pressed", this, "_browse_path", varray(false, true)); + path_button->connect_compat("pressed", this, "_browse_path", varray(false, true)); hb->add_child(path_button); gc->add_child(memnew(Label(TTR("Path:")))); gc->add_child(hb); @@ -871,11 +871,11 @@ ScriptCreateDialog::ScriptCreateDialog() { /* Dialog Setup */ select_class = memnew(CreateDialog); - select_class->connect("create", this, "_create"); + select_class->connect_compat("create", this, "_create"); add_child(select_class); file_browse = memnew(EditorFileDialog); - file_browse->connect("file_selected", this, "_file_selected"); + file_browse->connect_compat("file_selected", this, "_file_selected"); file_browse->set_mode(EditorFileDialog::MODE_OPEN_FILE); add_child(file_browse); get_ok()->set_text(TTR("Create")); diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp index 44962323e5..9f8a531762 100644 --- a/editor/settings_config_dialog.cpp +++ b/editor/settings_config_dialog.cpp @@ -32,13 +32,13 @@ #include "core/os/keyboard.h" #include "core/project_settings.h" +#include "editor/debugger/editor_debugger_node.h" #include "editor_file_system.h" #include "editor_log.h" #include "editor_node.h" #include "editor_scale.h" #include "editor_settings.h" #include "scene/gui/margin_container.h" -#include "script_editor_debugger.h" void EditorSettingsDialog::ok_pressed() { @@ -119,9 +119,8 @@ void EditorSettingsDialog::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { - ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger(); - undo_redo->set_method_notify_callback(sed->_method_changeds, sed); - undo_redo->set_property_notify_callback(sed->_property_changeds, sed); + undo_redo->set_method_notify_callback(EditorDebuggerNode::_method_changeds, NULL); + undo_redo->set_property_notify_callback(EditorDebuggerNode::_property_changeds, NULL); undo_redo->set_commit_notify_callback(_undo_redo_callback, this); } break; case NOTIFICATION_ENTER_TREE: { @@ -412,7 +411,7 @@ EditorSettingsDialog::EditorSettingsDialog() { tabs = memnew(TabContainer); tabs->set_tab_align(TabContainer::ALIGN_LEFT); - tabs->connect("tab_changed", this, "_tabs_tab_changed"); + tabs->connect_compat("tab_changed", this, "_tabs_tab_changed"); add_child(tabs); // General Tab @@ -435,8 +434,8 @@ EditorSettingsDialog::EditorSettingsDialog() { inspector->set_v_size_flags(Control::SIZE_EXPAND_FILL); inspector->get_inspector()->set_undo_redo(undo_redo); tab_general->add_child(inspector); - inspector->get_inspector()->connect("property_edited", this, "_settings_property_edited"); - inspector->get_inspector()->connect("restart_requested", this, "_editor_restart_request"); + inspector->get_inspector()->connect_compat("property_edited", this, "_settings_property_edited"); + inspector->get_inspector()->connect_compat("restart_requested", this, "_editor_restart_request"); restart_container = memnew(PanelContainer); tab_general->add_child(restart_container); @@ -450,11 +449,11 @@ EditorSettingsDialog::EditorSettingsDialog() { restart_hb->add_child(restart_label); restart_hb->add_spacer(); Button *restart_button = memnew(Button); - restart_button->connect("pressed", this, "_editor_restart"); + restart_button->connect_compat("pressed", this, "_editor_restart"); restart_hb->add_child(restart_button); restart_button->set_text(TTR("Save & Restart")); restart_close_button = memnew(ToolButton); - restart_close_button->connect("pressed", this, "_editor_restart_close"); + restart_close_button->connect_compat("pressed", this, "_editor_restart_close"); restart_hb->add_child(restart_close_button); restart_container->hide(); @@ -471,7 +470,7 @@ EditorSettingsDialog::EditorSettingsDialog() { shortcut_search_box = memnew(LineEdit); shortcut_search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL); hbc->add_child(shortcut_search_box); - shortcut_search_box->connect("text_changed", this, "_filter_shortcuts"); + shortcut_search_box->connect_compat("text_changed", this, "_filter_shortcuts"); shortcuts = memnew(Tree); tab_shortcuts->add_child(shortcuts, true); @@ -481,7 +480,7 @@ EditorSettingsDialog::EditorSettingsDialog() { shortcuts->set_column_titles_visible(true); shortcuts->set_column_title(0, TTR("Name")); shortcuts->set_column_title(1, TTR("Binding")); - shortcuts->connect("button_pressed", this, "_shortcut_button_pressed"); + shortcuts->connect_compat("button_pressed", this, "_shortcut_button_pressed"); press_a_key = memnew(ConfirmationDialog); press_a_key->set_focus_mode(FOCUS_ALL); @@ -495,17 +494,17 @@ EditorSettingsDialog::EditorSettingsDialog() { l->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_BEGIN, 30); press_a_key_label = l; press_a_key->add_child(l); - press_a_key->connect("gui_input", this, "_wait_for_key"); - press_a_key->connect("confirmed", this, "_press_a_key_confirm"); + press_a_key->connect_compat("gui_input", this, "_wait_for_key"); + press_a_key->connect_compat("confirmed", this, "_press_a_key_confirm"); set_hide_on_ok(true); timer = memnew(Timer); timer->set_wait_time(1.5); - timer->connect("timeout", this, "_settings_save"); + timer->connect_compat("timeout", this, "_settings_save"); timer->set_one_shot(true); add_child(timer); - EditorSettings::get_singleton()->connect("settings_changed", this, "_settings_changed"); + EditorSettings::get_singleton()->connect_compat("settings_changed", this, "_settings_changed"); get_ok()->set_text(TTR("Close")); updating = false; diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp index 1163621815..40e1be665c 100644 --- a/editor/spatial_editor_gizmos.cpp +++ b/editor/spatial_editor_gizmos.cpp @@ -214,10 +214,10 @@ void EditorSpatialGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mat a[Mesh::ARRAY_VERTEX] = p_lines; - PoolVector<Color> color; + Vector<Color> color; color.resize(p_lines.size()); { - PoolVector<Color>::Write w = color.write(); + Color *w = color.ptrw(); for (int i = 0; i < p_lines.size(); i++) { if (is_selected()) w[i] = Color(1, 1, 1, 0.8) * p_modulate; @@ -348,10 +348,10 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, const Ref Array a; a.resize(VS::ARRAY_MAX); a[VS::ARRAY_VERTEX] = p_handles; - PoolVector<Color> colors; + Vector<Color> colors; { colors.resize(p_handles.size()); - PoolVector<Color>::Write w = colors.write(); + Color *w = colors.ptrw(); for (int i = 0; i < p_handles.size(); i++) { Color col(1, 1, 1, 1); @@ -410,8 +410,8 @@ void EditorSpatialGizmo::add_solid_box(Ref<Material> &p_material, Vector3 p_size cubem.set_size(p_size); Array arrays = cubem.surface_get_arrays(0); - PoolVector3Array vertex = arrays[VS::ARRAY_VERTEX]; - PoolVector3Array::Write w = vertex.write(); + PackedVector3Array vertex = arrays[VS::ARRAY_VERTEX]; + Vector3 *w = vertex.ptrw(); for (int i = 0; i < vertex.size(); ++i) { w[i] += p_position; @@ -1238,7 +1238,6 @@ CameraSpatialGizmoPlugin::CameraSpatialGizmoPlugin() { Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/camera", Color(0.8, 0.4, 0.8)); create_material("camera_material", gizmo_color); - create_icon_material("camera_icon", SpatialEditor::get_singleton()->get_icon("GizmoCamera", "EditorIcons")); create_handle_material("handles"); } @@ -1350,7 +1349,6 @@ void CameraSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { Vector<Vector3> handles; Ref<Material> material = get_material("camera_material", p_gizmo); - Ref<Material> icon = get_material("camera_icon", p_gizmo); #define ADD_TRIANGLE(m_a, m_b, m_c) \ { \ @@ -1445,7 +1443,6 @@ void CameraSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { #undef ADD_QUAD p_gizmo->add_lines(lines, material); - p_gizmo->add_unscaled_billboard(icon, 0.05); p_gizmo->add_handles(handles, get_material("handles")); ClippedCamera *clipcam = Object::cast_to<ClippedCamera>(camera); @@ -1566,7 +1563,7 @@ Position3DSpatialGizmoPlugin::Position3DSpatialGizmoPlugin() { pos3d_mesh = Ref<ArrayMesh>(memnew(ArrayMesh)); cursor_points = Vector<Vector3>(); - PoolVector<Color> cursor_colors; + Vector<Color> cursor_colors; float cs = 0.25; cursor_points.push_back(Vector3(+cs, 0, 0)); cursor_points.push_back(Vector3(-cs, 0, 0)); @@ -3450,7 +3447,7 @@ void CollisionShapeSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { Vector<Vector3> points; - Vector3 d(0, 0, height * 0.5); + Vector3 d(0, height * 0.5, 0); for (int i = 0; i < 360; i++) { float ra = Math::deg2rad((float)i); @@ -3458,24 +3455,24 @@ void CollisionShapeSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * radius; Point2 b = Vector2(Math::sin(rb), Math::cos(rb)) * radius; - points.push_back(Vector3(a.x, a.y, 0) + d); - points.push_back(Vector3(b.x, b.y, 0) + d); + points.push_back(Vector3(a.x, 0, a.y) + d); + points.push_back(Vector3(b.x, 0, b.y) + d); - points.push_back(Vector3(a.x, a.y, 0) - d); - points.push_back(Vector3(b.x, b.y, 0) - d); + points.push_back(Vector3(a.x, 0, a.y) - d); + points.push_back(Vector3(b.x, 0, b.y) - d); if (i % 90 == 0) { - points.push_back(Vector3(a.x, a.y, 0) + d); - points.push_back(Vector3(a.x, a.y, 0) - d); + points.push_back(Vector3(a.x, 0, a.y) + d); + points.push_back(Vector3(a.x, 0, a.y) - d); } Vector3 dud = i < 180 ? d : -d; - points.push_back(Vector3(0, a.y, a.x) + dud); - points.push_back(Vector3(0, b.y, b.x) + dud); - points.push_back(Vector3(a.y, 0, a.x) + dud); - points.push_back(Vector3(b.y, 0, b.x) + dud); + points.push_back(Vector3(0, a.x, a.y) + dud); + points.push_back(Vector3(0, b.x, b.y) + dud); + points.push_back(Vector3(a.y, a.x, 0) + dud); + points.push_back(Vector3(b.y, b.x, 0) + dud); } p_gizmo->add_lines(points, material); @@ -3489,31 +3486,31 @@ void CollisionShapeSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * radius; Point2 b = Vector2(Math::sin(rb), Math::cos(rb)) * radius; - collision_segments.push_back(Vector3(a.x, a.y, 0) + d); - collision_segments.push_back(Vector3(b.x, b.y, 0) + d); + collision_segments.push_back(Vector3(a.x, 0, a.y) + d); + collision_segments.push_back(Vector3(b.x, 0, b.y) + d); - collision_segments.push_back(Vector3(a.x, a.y, 0) - d); - collision_segments.push_back(Vector3(b.x, b.y, 0) - d); + collision_segments.push_back(Vector3(a.x, 0, a.y) - d); + collision_segments.push_back(Vector3(b.x, 0, b.y) - d); if (i % 16 == 0) { - collision_segments.push_back(Vector3(a.x, a.y, 0) + d); - collision_segments.push_back(Vector3(a.x, a.y, 0) - d); + collision_segments.push_back(Vector3(a.x, 0, a.y) + d); + collision_segments.push_back(Vector3(a.x, 0, a.y) - d); } Vector3 dud = i < 32 ? d : -d; - collision_segments.push_back(Vector3(0, a.y, a.x) + dud); - collision_segments.push_back(Vector3(0, b.y, b.x) + dud); - collision_segments.push_back(Vector3(a.y, 0, a.x) + dud); - collision_segments.push_back(Vector3(b.y, 0, b.x) + dud); + collision_segments.push_back(Vector3(0, a.x, a.y) + dud); + collision_segments.push_back(Vector3(0, b.x, b.y) + dud); + collision_segments.push_back(Vector3(a.y, a.x, 0) + dud); + collision_segments.push_back(Vector3(b.y, b.x, 0) + dud); } p_gizmo->add_collision_segments(collision_segments); Vector<Vector3> handles; handles.push_back(Vector3(cs2->get_radius(), 0, 0)); - handles.push_back(Vector3(0, 0, cs2->get_height() * 0.5 + cs2->get_radius())); + handles.push_back(Vector3(0, cs2->get_height() * 0.5 + cs2->get_radius(), 0)); p_gizmo->add_handles(handles, handles_material); } @@ -3611,7 +3608,7 @@ void CollisionShapeSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { if (Object::cast_to<ConvexPolygonShape>(*s)) { - PoolVector<Vector3> points = Object::cast_to<ConvexPolygonShape>(*s)->get_points(); + Vector<Vector3> points = Object::cast_to<ConvexPolygonShape>(*s)->get_points(); if (points.size() > 3) { @@ -3748,8 +3745,8 @@ void NavigationMeshSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { if (navmeshie.is_null()) return; - PoolVector<Vector3> vertices = navmeshie->get_vertices(); - PoolVector<Vector3>::Read vr = vertices.read(); + Vector<Vector3> vertices = navmeshie->get_vertices(); + const Vector3 *vr = vertices.ptr(); List<Face3> faces; for (int i = 0; i < navmeshie->get_polygon_count(); i++) { Vector<int> p = navmeshie->get_polygon(i); @@ -3768,11 +3765,11 @@ void NavigationMeshSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { return; Map<_EdgeKey, bool> edge_map; - PoolVector<Vector3> tmeshfaces; + Vector<Vector3> tmeshfaces; tmeshfaces.resize(faces.size() * 3); { - PoolVector<Vector3>::Write tw = tmeshfaces.write(); + Vector3 *tw = tmeshfaces.ptrw(); int tidx = 0; for (List<Face3>::Element *E = faces.front(); E; E = E->next()) { diff --git a/editor/translations/af.po b/editor/translations/af.po index a08a21a49a..eab0005cb1 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -4010,15 +4010,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "Vind" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 292dadc047..c9520d2669 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -4070,6 +4070,11 @@ msgid "Saving..." msgstr "جاري الحفظ..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " ملفات" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "حدد كإفتراضي من أجل '%s'" @@ -4078,10 +4083,6 @@ msgid "Clear Default for '%s'" msgstr "إخلاء الإفتراضي لـ '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " ملفات" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "إستيراد كـ:" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index 977652e70e..2281de6a8e 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -3816,6 +3816,10 @@ msgid "Saving..." msgstr "Запазване..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Файлове" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Задаване по подразбиране за „%s“" @@ -3824,10 +3828,6 @@ msgid "Clear Default for '%s'" msgstr "Изчистване на подразбирането за „%s“" #: editor/import_dock.cpp -msgid " Files" -msgstr " Файлове" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Внасяне като:" diff --git a/editor/translations/bn.po b/editor/translations/bn.po index d07fe4caef..a7f287be62 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -4259,6 +4259,11 @@ msgid "Saving..." msgstr "সংরক্ষিত হচ্ছে..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr "ফাইল" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "'%s' এর জন্য ডিফল্ট হিসাবে সেট করুন" @@ -4268,11 +4273,6 @@ msgstr "'%s' এর জন্য ডিফল্ট ক্লিয়ার ক #: editor/import_dock.cpp #, fuzzy -msgid " Files" -msgstr "ফাইল" - -#: editor/import_dock.cpp -#, fuzzy msgid "Import As:" msgstr "ইম্পোর্ট" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index 95643d82df..fb0a3af30c 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -3999,6 +3999,10 @@ msgid "Saving..." msgstr "Desant..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Fitxers" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Establir com a valor Predeterminat per a '%s'" @@ -4007,10 +4011,6 @@ msgid "Clear Default for '%s'" msgstr "Neteja el valor Predeterminat de '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Fitxers" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importar com a:" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 5dfe84f0f0..39bcef5430 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-02-14 03:19+0000\n" +"PO-Revision-Date: 2020-02-19 08:56+0000\n" "Last-Translator: Vojtěch Šamla <auzkok@seznam.cz>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/" "cs/>\n" @@ -31,7 +31,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 3.11\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -3973,6 +3973,11 @@ msgid "Saving..." msgstr "Ukládání..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Soubory" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Nastavit jako výchozí pro '%s'" @@ -3981,10 +3986,6 @@ msgid "Clear Default for '%s'" msgstr "Vyčistit výchozí pro '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Soubory" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importovat jako:" @@ -5137,7 +5138,6 @@ msgid "Scale Step:" msgstr "Zvětšení:" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move Vertical Guide" msgstr "Přesunout svislé vodítko" @@ -5799,12 +5799,10 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Add Point" msgstr "Přidat bod" #: editor/plugins/curve_editor_plugin.cpp -#, fuzzy msgid "Remove Point" msgstr "Odstranit bod" @@ -6654,9 +6652,8 @@ msgid "Error writing TextFile:" msgstr "Chyba při zápisu textového souboru:" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Could not load file at:" -msgstr "Chyba: nelze načíst soubor." +msgstr "Nelze načíst soubor:" #: editor/plugins/script_editor_plugin.cpp msgid "Error saving file!" @@ -6679,7 +6676,6 @@ msgid "Error Importing" msgstr "Chyba importu" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "New Text File..." msgstr "Nový textový soubor..." @@ -6725,9 +6721,8 @@ msgid "Save Theme As..." msgstr "Uložit motiv jako..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Reference třídy" +msgstr "Reference třídy %s" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -6740,18 +6735,16 @@ msgid "Find Previous" msgstr "Najít předchozí" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Filter scripts" -msgstr "Filtrovat vlastnosti" +msgstr "Filtrovat skripty" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "Přepnout abecední řazení seznamu metod." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Filter methods" -msgstr "Režim filtru:" +msgstr "Filtrovat metody" #: editor/plugins/script_editor_plugin.cpp msgid "Sort" @@ -6786,9 +6779,8 @@ msgid "Open..." msgstr "Otevřít..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Reopen Closed Script" -msgstr "Otevřít skript" +msgstr "Znovu otevřít zavřený skript" #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -6803,7 +6795,6 @@ msgid "Copy Script Path" msgstr "Zkopírovat cestu ke skriptu" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Historie předchozí" @@ -6841,9 +6832,8 @@ msgid "Run" msgstr "Spustit" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Step Into" -msgstr "Vstoupit" +msgstr "Vstoupit do" #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" @@ -6867,9 +6857,8 @@ msgid "Debug with External Editor" msgstr "Debugovat v externím editoru" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Open Godot online documentation." -msgstr "Otevřít Godot online dokumentaci" +msgstr "Otevřít online dokumentaci Godotu." #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" @@ -6922,9 +6911,8 @@ msgid "Search Results" msgstr "Výsledky hledání" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Clear Recent Scripts" -msgstr "Vymazat nedávné scény" +msgstr "Vymazat nedávné skripty" #: editor/plugins/script_text_editor.cpp #, fuzzy @@ -6932,9 +6920,8 @@ msgid "Connections to method:" msgstr "Připojit k uzlu:" #: editor/plugins/script_text_editor.cpp editor/script_editor_debugger.cpp -#, fuzzy msgid "Source" -msgstr "Zdroj:" +msgstr "Zdroj" #: editor/plugins/script_text_editor.cpp msgid "Target" @@ -8605,17 +8592,15 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "(GLES3 only)" -msgstr "" +msgstr "(Pouze GLES3)" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Add Output" -msgstr "Přidat vstup" +msgstr "Přidat výstup" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Scalar" -msgstr "Zvětšení:" +msgstr "Skalár" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector" @@ -8623,7 +8608,7 @@ msgstr "Vektor" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" -msgstr "" +msgstr "Boolean" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Sampler" @@ -9120,9 +9105,8 @@ msgid "Returns the tangent of the parameter." msgstr "Vrátí tangens parametru." #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Returns the hyperbolic tangent of the parameter." -msgstr "(Pouze GLES3) Vrátí hyperbolický tangens parametru." +msgstr "Vrátí hyperbolický tangens parametru." #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy diff --git a/editor/translations/da.po b/editor/translations/da.po index bfd4d71cdc..e575e1a015 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -4103,6 +4103,10 @@ msgid "Saving..." msgstr "Gemmer..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Filer" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Sæt som Standard for '%s'" @@ -4111,10 +4115,6 @@ msgid "Clear Default for '%s'" msgstr "Fjern Standard for '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Filer" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importer Som:" diff --git a/editor/translations/de.po b/editor/translations/de.po index c0ac945e57..3e8c61025a 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -52,7 +52,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-01-28 07:51+0000\n" +"PO-Revision-Date: 2020-02-16 15:20+0000\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -734,9 +734,8 @@ msgid "Line Number:" msgstr "Zeilennummer:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Ersetzen..." +msgstr "%d ersetzt." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -4023,6 +4022,10 @@ msgid "Saving..." msgstr "Speichere..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Dateien" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Als Standard für ‚%s‘ setzen" @@ -4031,10 +4034,6 @@ msgid "Clear Default for '%s'" msgstr "Standard für ‚%s‘ löschen" #: editor/import_dock.cpp -msgid " Files" -msgstr " Dateien" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importiere als:" @@ -5914,9 +5913,8 @@ msgid "Mesh is empty!" msgstr "Mesh ist leer!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Trimesh-Kollisionselement erzeugen" +msgstr "Konnte Trimesh-Kollisionselement nicht erzeugen." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5933,29 +5931,30 @@ msgstr "Trimesh-Statische-Form erzeugen" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." msgstr "" +"Aus der Szenenwurzel kann ein einzelnes konvexes Kollisionselement nicht " +"erzeugt werden." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Ein einzelnes konvexes Kollisionselement konnte nicht erzeugt werden." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Konvexe Form(en) erstellen" +msgstr "Einzelne konvexe Form erstellen" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." msgstr "" +"Aus der Szenenwurzel konnten mehrere konvexe Kollisionselemente nicht " +"erzeugt werden." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "Ordner konnte nicht erstellt werden." +msgstr "Konnte kein einziges Kollisionselement erzeugen." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Konvexe Form(en) erstellen" +msgstr "Mehrere konvexe Formen erstellen" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -6012,6 +6011,9 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Erstellt einen StaticBody und weist ein polygon-basiertes Kollisionselement " +"automatisch zu.\n" +"Dies ist die präziseste (aber langsamste) Methode für Kollisionsberechnungen." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -6022,28 +6024,32 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Erstellt ein polygon-basiertes Kollisionselement.\n" +"Dies ist die präziseste (aber langsamste) Methode für Kollisionsberechnungen." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "Konvexe(s) Kollisionselement(e) erzeugen" +msgstr "Ein einzelnes konvexes Kollisionsunterelement erzeugen" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Erstellt ein einzelnes konvexes Kollisionselement.\n" +"Dies ist die schnellste (aber ungenauste) Methode für Kollisionsberechnungen." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Konvexe(s) Kollisionselement(e) erzeugen" +msgstr "Mehrere konvexe Kollisionsunterelemente erzeugen" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Erstellt ein polygon-basiertes Kollisionselement.\n" +"Dies liegt von der Geschwindigkeit in der Mitte der beiden anderen Methoden." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -6056,6 +6062,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"Erstellt ein statisches Outline-Mesh. Outline-Meshes haben ihre " +"Normalenvektoren automatisch invertiert.\n" +"Dies kann als Ersatz für die SpatialMaterial-Grow-Eigenschaft genutzt werden " +"wenn sie nicht verfügbar ist." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -9651,34 +9661,29 @@ msgid "Export With Debug" msgstr "Exportiere mit Debuginformationen" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "Dieser Pfad existiert nicht." +msgstr "Der angegebene Pfad existiert nicht." #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "Fehler beim Öffnen der Paketdatei, kein ZIP-Format." +msgstr "Fehler beim Öffnen der Paketdatei (kein ZIP-Format)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." -msgstr "Ungültige Projekt-Zipdatei, enthält keine ‚project.godot‘-Datei." +msgstr "Ungültige „.zip“-Projektdatei, enthält keine „project.godot“-Datei." #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "Bitte einen leeren Ordner auswählen." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "Eine ‚project.godot‘-Datei oder Zipdatei auswählen." +msgstr "Eine „project.godot” oder „.zip“-Datei auswählen." #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." -msgstr "Das Verzeichnis beinhaltet bereits ein Godot-Projekt." +msgstr "Dieses Verzeichnis beinhaltet bereits ein Godot-Projekt." #: editor/project_manager.cpp msgid "New Game Project" @@ -10381,9 +10386,8 @@ msgid "Suffix" msgstr "Suffix" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "Reguläre Ausdrücke" +msgstr "Reguläre Ausdrücke verwenden" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10422,7 +10426,6 @@ msgstr "" "Zahleroptionen vergleichen." #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" msgstr "Pro-Ebene-Zähler" @@ -10464,12 +10467,10 @@ msgid "Keep" msgstr "Behalten" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" msgstr "CamelCase zu unter_strich" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" msgstr "unter_strich zu CamelCase" @@ -10490,14 +10491,12 @@ msgid "Reset" msgstr "Zurücksetzen" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Reguläre Ausdrücke" +msgstr "Fehler in regulärem Ausdruck" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Gültige Zeichen:" +msgstr "Bei Zeichen %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10965,9 +10964,8 @@ msgid "Invalid inherited parent name or path." msgstr "Ungültiger geerbter Name oder Pfad." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "Skript ist gültig." +msgstr "Skript-Pfad oder -Name ist gültig." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -11058,9 +11056,8 @@ msgid "Copy Error" msgstr "Fehlermeldung kopieren" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" -msgstr "Grafikspeicher" +msgstr "Video RAM" #: editor/script_editor_debugger.cpp msgid "Skip Breakpoints" diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po index 3579069f14..f4db15a122 100644 --- a/editor/translations/de_CH.po +++ b/editor/translations/de_CH.po @@ -3961,6 +3961,10 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Dateien" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "" @@ -3969,11 +3973,6 @@ msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp -#, fuzzy -msgid " Files" -msgstr "Datei(en) öffnen" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index a8bde3c192..1db40e52cb 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -3797,15 +3797,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/el.po b/editor/translations/el.po index b82c0fbff8..6aa7a07f5d 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -3986,6 +3986,10 @@ msgid "Saving..." msgstr "Αποθήκευση..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d αρχεία" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Ορισμός ως προεπιλογής για '%s'" @@ -3994,10 +3998,6 @@ msgid "Clear Default for '%s'" msgstr "Εκκαθάριση προεπιλογής για '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Αρχεία" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Εισαγωγή ώς:" diff --git a/editor/translations/eo.po b/editor/translations/eo.po index 96ee7aea8d..37f49a4908 100644 --- a/editor/translations/eo.po +++ b/editor/translations/eo.po @@ -3900,15 +3900,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "Trovi en dosierojn" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/es.po b/editor/translations/es.po index 6bf8a88ad6..80e0f9240c 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -4024,6 +4024,10 @@ msgid "Saving..." msgstr "Guardando..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d archivos" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Establecer como predeterminado para '%s'" @@ -4032,10 +4036,6 @@ msgid "Clear Default for '%s'" msgstr "Restablecer Predeterminado para '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Archivos" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importar como:" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index 5a9515ee87..e7aa5cb780 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -18,8 +18,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-02-02 08:52+0000\n" -"Last-Translator: roger <616steam@gmail.com>\n" +"PO-Revision-Date: 2020-02-18 15:09+0000\n" +"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" "Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/" "godot-engine/godot/es_AR/>\n" "Language: es_AR\n" @@ -27,7 +27,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 3.11\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -681,7 +681,7 @@ msgstr "Cambiar Offset Final de Clip de Pista de Audio" #: editor/array_property_edit.cpp msgid "Resize Array" -msgstr "Redimencionar Array" +msgstr "Redimensionar Array" #: editor/array_property_edit.cpp msgid "Change Array Value Type" @@ -700,9 +700,8 @@ msgid "Line Number:" msgstr "Numero de Línea:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Reemplazar..." +msgstr "%d reemplazadas." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -3988,6 +3987,10 @@ msgid "Saving..." msgstr "Guardando..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Archivos" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Asignar como Predeterminado para '%s'" @@ -3996,10 +3999,6 @@ msgid "Clear Default for '%s'" msgstr "Restablecer Predeterminados para '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Archivos" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importar Como:" @@ -5879,9 +5878,8 @@ msgid "Mesh is empty!" msgstr "¡El Mesh está vacío!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Crear Collider Triangular Hermano" +msgstr "No se pudo crear una forma de colisión Trimersh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5898,29 +5896,29 @@ msgstr "Crear Trimesh Static Shape" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." msgstr "" +"No se pudo crear una única forma de colisión convexa para la raíz de escena." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "No se pudo crear una forma de colisión única." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Crear Shape(s) Convexo(s)" +msgstr "Crear Forma Convexa Unica" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." msgstr "" +"No se pudo crear múltiples formas de colisión convexas para la raíz de " +"escena." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "No se pudo crear la carpeta." +msgstr "No se pudo crear ninguna forma de colisión." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Crear Shape(s) Convexo(s)" +msgstr "Crear Múltiples Formas Convexas" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -5976,6 +5974,9 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Crea un StaticBody y le asigna automáticamente una forma de colisión basada " +"en polígonos .\n" +"Esta es la opción mas exacta (pero más lenta) de detección de colisiones." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -5986,28 +5987,32 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Crea una forma de colisión basada en polígonos.\n" +"Esta es la opción mas exacta (pero más lenta) de detección de colisiones." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "Crear Collider Convexo Hermano(s)" +msgstr "Crear Colisión Convexa Unica como Nodo Hermano" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Crear forma de colisión convexa única.\n" +"Esta es la opción mas rápida (pero menos exacta) para detectar colisiones." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Crear Collider Convexo Hermano(s)" +msgstr "Crear Múltiples Colisiones Convexas como Nodos Hermanos" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Crea una forma de colisión basada en polígonos.\n" +"Esto está en un punto medio de rendimiento entre las dos opciones de arriba." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -6020,6 +6025,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"Crea un mesh de contorno estático. Este mesh de contorno tendrá sus normales " +"invertidas automáticamente.\n" +"Esto puede ser usado en vez de la propiedad Grow del SpatialMaterial cuando " +"no sea posible usar dicha propiedad." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -9603,33 +9612,29 @@ msgid "Export With Debug" msgstr "Exportar Con Depuración" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "La ruta no existe." +msgstr "La ruta especificada no existe." #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "Error al abrir el archivo comprimido, no está en formato ZIP." +msgstr "Error al abrir el archivo de paquete (no esta en formato ZIP)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." msgstr "" -"Archivo de projecto '.zip' inválido, no contiene un archivo 'project.godot'." +"Archivo de projecto \".zip\" inválido; no contiene un archivo \"project.godot" +"\"." #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "Por favor elegí una carpeta vacía." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "Por favor elegí un archivo 'project.godot' o '.zip'." +msgstr "Por favor elegí un archivo \"project.godot\" o \".zip\"." #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." msgstr "El directorio ya contiene un proyecto de Godot." @@ -10331,9 +10336,8 @@ msgid "Suffix" msgstr "Sufijo" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "Expresiones Regulares" +msgstr "Usar Expresiones Regulares" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10372,9 +10376,8 @@ msgstr "" "Comparar opciones de contador." #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" -msgstr "Contador por nivel" +msgstr "Contador Por Nivel" #: editor/rename_dialog.cpp msgid "If set the counter restarts for each group of child nodes" @@ -10413,14 +10416,12 @@ msgid "Keep" msgstr "Conservar" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" -msgstr "CamelCase a under_scored" +msgstr "PascalCase a snake_case" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" -msgstr "under_scored a CamelCase" +msgstr "snake_case a PascalCase" #: editor/rename_dialog.cpp msgid "Case" @@ -10439,14 +10440,12 @@ msgid "Reset" msgstr "Resetear" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Expresiones Regulares" +msgstr "Error de Expresión Regular" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Caracteres válidos:" +msgstr "En el caracter %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10914,9 +10913,8 @@ msgid "Invalid inherited parent name or path." msgstr "Ruta o nombre del padre heredado inválido." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "El script es válido." +msgstr "La ruta/nombre del script es inválida." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -11007,7 +11005,6 @@ msgid "Copy Error" msgstr "Copiar Error" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" msgstr "Mem. de Video" diff --git a/editor/translations/et.po b/editor/translations/et.po index ff0a3d9535..059a200138 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -3810,15 +3810,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/eu.po b/editor/translations/eu.po index bf4634ba8d..2829912826 100644 --- a/editor/translations/eu.po +++ b/editor/translations/eu.po @@ -3802,15 +3802,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 295a94d322..377bbfbb67 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -4040,6 +4040,11 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " پوشه ها" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "" @@ -4048,10 +4053,6 @@ msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" -msgstr " پوشه ها" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 644271f3ec..d8fa02de0f 100644 --- a/editor/translations/fi.po +++ b/editor/translations/fi.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-02-02 08:51+0000\n" +"PO-Revision-Date: 2020-02-16 15:21+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -687,9 +687,8 @@ msgid "Line Number:" msgstr "Rivinumero:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Korvaa..." +msgstr "%d korvattu." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -3949,6 +3948,11 @@ msgid "Saving..." msgstr "Tallennetaan..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Tiedostot" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Aseta oletus valinnalle '%s'" @@ -3957,10 +3961,6 @@ msgid "Clear Default for '%s'" msgstr "Poista oletus valinnalta '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Tiedostot" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Tuo nimellä:" @@ -5836,9 +5836,8 @@ msgid "Mesh is empty!" msgstr "Mesh on tyhjä!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Luo konkaavi törmäysmuoto sisareksi" +msgstr "Ei voitu luoda konkaavia törmäysmuotoa." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5854,30 +5853,27 @@ msgstr "Luo staattinen konkaavi muoto" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." -msgstr "" +msgstr "Ei voida luoda yksittäistä konveksia törmäysmuotoa skenen juurelle." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Ei voitu luoda yksittäistä konveksia törmäysmuotoa." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Luo konvekseja muotoja" +msgstr "Luo yksittäinen konveksi muoto" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." -msgstr "" +msgstr "Ei voi luoda useata konveksia törmäysmuotoa skenen juurelle." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "Kansiota ei voitu luoda." +msgstr "Yhtään törmäysmuotoa ei voitu luoda." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Luo konvekseja muotoja" +msgstr "Luo useita konvekseja muotoja" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -5933,6 +5929,9 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Luo StaticBody solmun ja asettaa sille automaattisesti polygonipohjaisen " +"törmäysmuodon.\n" +"Tämä on tarkin (mutta hitain) vaihtoehto törmäystunnistukselle." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -5943,28 +5942,32 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Luo polygonipohjaisen törmäysmuodon.\n" +"Tämä on tarkin (mutta hitain) vaihtoehto törmäystunnistukselle." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "Luo konvekseja törmäysmuotoja sisariksi" +msgstr "Luo yksittäisen konveksin törmäysmuodon sisaret" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Luo yksittäisen konveksin törmäysmuodon.\n" +"Tämä on nopein (mutta epätarkin) vaihtoehto törmäystunnistukselle." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Luo konvekseja törmäysmuotoja sisariksi" +msgstr "Luo useita konvekseja törmäysmuotojen sisaria" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Luo polygonipohjaisen törmäysmuodon.\n" +"Tämä on suorituskyvyltään välimaastoa kahdelle yllä olevalle vaihtoehdolle." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5977,6 +5980,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"Luo staattisen ääriviiva-meshin. Ääriviiva-meshin normaalit on käännetty " +"automaattisesti.\n" +"Tätä voidaan käyttää SpatialMaterial Grow ominaisuuden sijaan silloin, kun " +"tuon ominaisuuden käyttäminen ei ole mahdollista." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -9556,21 +9563,18 @@ msgid "Export With Debug" msgstr "Vie debugaten" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "Polkua ei ole olemassa." +msgstr "Määritelty polku ei ole olemassa." #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "Virhe avattaessa pakettitiedostoa, ei ZIP-muodossa." +msgstr "Virhe avattaessa pakettitiedostoa (se ei ole ZIP-muodossa)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." msgstr "" -"Virheellinen '.zip' projektitiedosto; se ei sisällä 'project.godot' " +"Virheellinen \".zip\" projektitiedosto; se ei sisällä \"project.godot\" " "tiedostoa." #: editor/project_manager.cpp @@ -9578,14 +9582,12 @@ msgid "Please choose an empty folder." msgstr "Ole hyvä ja valitse tyhjä kansio." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "Ole hyvä ja valitse 'project.godot' tai '.zip' tiedosto." +msgstr "Ole hyvä ja valitse \"project.godot\"- tai \".zip\"-tiedosto." #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." -msgstr "Hakemisto sisältää jo Godot-projektin." +msgstr "Tämä hakemisto sisältää jo Godot-projektin." #: editor/project_manager.cpp msgid "New Game Project" @@ -10280,9 +10282,8 @@ msgid "Suffix" msgstr "Pääte" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "Säännölliset lausekkeet" +msgstr "Käytä säännöllisiä lausekkeita" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10321,7 +10322,6 @@ msgstr "" "Vertaa laskurin valintoja." #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" msgstr "Per taso -laskuri" @@ -10362,14 +10362,12 @@ msgid "Keep" msgstr "Pidä" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" -msgstr "CamelCase ala_viivoiksi" +msgstr "PascalCase ala_viivoiksi" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" -msgstr "ala_viivat CamelCaseksi" +msgstr "ala_viivat PascalCaseksi" #: editor/rename_dialog.cpp msgid "Case" @@ -10388,14 +10386,12 @@ msgid "Reset" msgstr "Palauta" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Säännölliset lausekkeet" +msgstr "Säännöllisen lausekkeen virhe" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Kelvolliset merkit:" +msgstr "Merkissä %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10863,9 +10859,8 @@ msgid "Invalid inherited parent name or path." msgstr "Virheellinen peritty isännän nimi tai polku." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "Skripti kelpaa." +msgstr "Skriptin polku/nimi kelpaa." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -10956,7 +10951,6 @@ msgid "Copy Error" msgstr "Kopioi virhe" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" msgstr "Näyttömuisti" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index 89cd86eefd..9616bfc1be 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -3813,15 +3813,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 9e930d28d3..8cbba6643c 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -74,7 +74,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-02-09 19:05+0000\n" +"PO-Revision-Date: 2020-02-18 15:09+0000\n" "Last-Translator: Pierre Caye <pierrecaye@laposte.net>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" @@ -83,7 +83,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 3.11\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -760,9 +760,8 @@ msgid "Line Number:" msgstr "Numéro de ligne :" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Remplacer…" +msgstr "%d remplacé." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -4058,6 +4057,10 @@ msgid "Saving..." msgstr "Enregistrement…" #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d fichiers" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Définir comme défaut pour « %s »" @@ -4066,10 +4069,6 @@ msgid "Clear Default for '%s'" msgstr "Effacer le préréglage par défaut pour « %s »" #: editor/import_dock.cpp -msgid " Files" -msgstr " Fichiers" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importer comme :" @@ -5953,9 +5952,8 @@ msgid "Mesh is empty!" msgstr "Le maillage est vide !" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Créer une collision Trimesh" +msgstr "Impossible de créer une forme de collision Trimesh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5972,29 +5970,30 @@ msgstr "Créer une forme Trimesh statique" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." msgstr "" +"Impossible de créer une forme de collision convexe unique pour la racine de " +"la scène." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Impossible de créer une forme de collision convexe unique." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Créer une(des) forme(s) convexe(s)" +msgstr "Créer une forme convexe unique" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." msgstr "" +"Impossible de créer des formes de collision convexes multiples pour la " +"racine de la scène." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "Impossible de créer le dossier." +msgstr "Impossible de créer des formes de collision." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Créer une(des) forme(s) convexe(s)" +msgstr "Créer des formes convexes multiples" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -6053,6 +6052,10 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Crée un StaticBody et lui attribue automatiquement une forme de collision " +"basée sur les polygones.\n" +"C'est l'option la plus précise (mais la plus lente) pour la détection des " +"collisions." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -6063,28 +6066,34 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Crée une forme de collision basée sur les polygones.\n" +"C'est l'option la plus précise (mais la plus lente) pour la détection des " +"collisions." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "Créer une(des) collision(s) convexe(s) sœur(s)" +msgstr "Créer une(des) collision(s) convexe(s) unique(s) sœur(s)" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Crée une forme de collision convexe unique.\n" +"C'est l'option la plus rapide (mais la moins précise) pour la détection des " +"collisions." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Créer une(des) collision(s) convexe(s) sœur(s)" +msgstr "Créer une(des) collision(s) convexe(s) multiple(s) sœur(s)" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Crée une forme de collision basée sur les polygones.\n" +"Il s'agit d'une performance à mi-chemin entre les deux options ci-dessus." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -6097,6 +6106,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"Crée un maillage de contour statique. Le maillage de contour verra ses " +"normales inversées automatiquement.\n" +"Cela peut être utilisé à la place de la propriété SpatialMaterial Grow " +"lorsque l'utilisation de cette propriété n'est pas possible." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -9696,36 +9709,32 @@ msgid "Export With Debug" msgstr "Exporter avec debug" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "Le chemin vers ce fichier n'existe pas." +msgstr "Le chemin spécifié n'existe pas." #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "Erreur d'ouverture de paquetage, pas au format ZIP." +msgstr "" +"Erreur lors de l'ouverture du fichier package (il n'est pas au format ZIP)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." msgstr "" -"Fichier de projet « .zip » invalide, il ne contient pas de fichier « project." -"godot »." +"Fichier de projet \".zip\" invalide ; il ne contient pas de fichier \"projet." +"godot\"." #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "Veuillez choisir un dossier vide." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "Veuillez choisir un fichier « project.godot » ou « .zip »." +msgstr "Veuillez choisir un fichier \"project.godot\" ou \".zip\"." #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." -msgstr "Le répertoire contient déjà un projet Godot." +msgstr "Ce répertoire contient déjà un projet Godot." #: editor/project_manager.cpp msgid "New Game Project" @@ -10426,9 +10435,8 @@ msgid "Suffix" msgstr "Suffixe" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "Expressions régulières" +msgstr "Utiliser des expressions régulières" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10467,7 +10475,6 @@ msgstr "" "Comparez les options du compteur." #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" msgstr "Compteur par niveau" @@ -10508,14 +10515,12 @@ msgid "Keep" msgstr "Conserver" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" -msgstr "CamelCase vers sous_ligné" +msgstr "PascalCase vers snake_case" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" -msgstr "sous_ligné vers CamelCase" +msgstr "snake_case vers PascalCase" #: editor/rename_dialog.cpp msgid "Case" @@ -10534,14 +10539,12 @@ msgid "Reset" msgstr "Réinitialiser" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Expressions régulières" +msgstr "Erreur d'expression régulière" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Caractères valides :" +msgstr "À caractère %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -11007,9 +11010,8 @@ msgid "Invalid inherited parent name or path." msgstr "Nom ou chemin parent hérité invalide." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "Script valide." +msgstr "Le chemin/nom du script est valide." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -11100,9 +11102,8 @@ msgid "Copy Error" msgstr "Copier l'erreur" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" -msgstr "Mémoire vidéo" +msgstr "Vidéo RAM" #: editor/script_editor_debugger.cpp msgid "Skip Breakpoints" diff --git a/editor/translations/ga.po b/editor/translations/ga.po index 7920e0513b..018d095c92 100644 --- a/editor/translations/ga.po +++ b/editor/translations/ga.po @@ -3807,15 +3807,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "Amharc ar Chomhaid" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/he.po b/editor/translations/he.po index 0509e77e01..1aa8c9d306 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -4034,6 +4034,11 @@ msgid "Saving..." msgstr "שמירה…" #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " קבצים" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "הגדרה כבררת מחדל עבור ‚%s’" @@ -4042,10 +4047,6 @@ msgid "Clear Default for '%s'" msgstr "מחיקת בררת מחדל עבור ‚%s’" #: editor/import_dock.cpp -msgid " Files" -msgstr " קבצים" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "ייבוא בתור:" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index f26820b011..9278e63fc9 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -3862,15 +3862,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/hr.po b/editor/translations/hr.po index 280116550f..5922d2effb 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -3826,15 +3826,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "Datoteka:" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 754f297fec..4a2e0eb506 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -4137,6 +4137,11 @@ msgid "Saving..." msgstr "Mentés..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Fájlok" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Beállítás Alapértelmezettként '%s'-hez" @@ -4145,10 +4150,6 @@ msgid "Clear Default for '%s'" msgstr "Alapértelmezett Törlése '%s'-nél" #: editor/import_dock.cpp -msgid " Files" -msgstr " Fájlok" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importálás Mint:" diff --git a/editor/translations/id.po b/editor/translations/id.po index 3cd3ae4624..6a76af5db6 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -29,8 +29,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-02-14 03:19+0000\n" -"Last-Translator: zephyroths <ridho.hikaru@gmail.com>\n" +"PO-Revision-Date: 2020-02-16 15:21+0000\n" +"Last-Translator: Sofyan Sugianto <sofyanartem@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/" "godot/id/>\n" "Language: id\n" @@ -3973,6 +3973,11 @@ msgid "Saving..." msgstr "Menyimpan..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Berkas" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Jadikan Baku untuk '%s'" @@ -3981,10 +3986,6 @@ msgid "Clear Default for '%s'" msgstr "Bersihkan Baku untuk '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Berkas" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Impor sebagai:" @@ -5869,11 +5870,11 @@ msgstr "Buat Bentuk Trimesh Statis" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." -msgstr "" +msgstr "Tidak dapat membuat convex collision shape tunggal untuk skena root." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Tidak dapat membuat convex collision shape tunggal." #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy @@ -5882,7 +5883,7 @@ msgstr "Buat Bentuk Cembung" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." -msgstr "" +msgstr "Tidak dapat membuat beberapa convex collision shape untuk skena root." #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy @@ -5948,6 +5949,10 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Buat StaticBody dan tetapkan collision shape berbasis poligon untuknya " +"secara otomatis.\n" +"Opsi ini merupakan yang paling akurat (tapi paling lambat) untuk deteksi " +"collision." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -5958,6 +5963,9 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Buat collision shape berbasis poligon.\n" +"Opsi ini merupakan yang paling akurat (tapi paling lambat) untuk deteksi " +"collision." #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy @@ -5969,6 +5977,9 @@ msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Buat convex collision shape tunggal.\n" +"Opsi ini merupakan yang paling cepat (tapi paling tidak akurat) untuk " +"deteksi collision." #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy @@ -5980,6 +5991,8 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Buat collision shape berbasis poligon.\n" +"Opsi ini kinerjanya berada di antara dua opsi di atas." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -10598,7 +10611,7 @@ msgstr "Node Lainnya" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" -msgstr "" +msgstr "Tidak dapat bekerja pada node dari skena luar!" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes the current scene inherits from!" diff --git a/editor/translations/is.po b/editor/translations/is.po index d55e21cafa..7f0ab2f719 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -3850,15 +3850,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/it.po b/editor/translations/it.po index 8c912c4b59..77956e9233 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -43,12 +43,13 @@ # Katia Piazza <gydey@ridiculousglitch.com>, 2019. # nickfla1 <lanterniniflavio@gmail.com>, 2019. # Fabio Iotti <fabiogiopla@gmail.com>, 2020. +# Douglas Fiedler <dognew@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-01-27 07:09+0000\n" -"Last-Translator: Micila Micillotto <micillotto@gmail.com>\n" +"PO-Revision-Date: 2020-02-18 15:09+0000\n" +"Last-Translator: Douglas Fiedler <dognew@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -56,7 +57,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 3.11\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -726,9 +727,8 @@ msgid "Line Number:" msgstr "Numero linea:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Rimpiazza..." +msgstr "%d rimpiazzato." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -4015,6 +4015,10 @@ msgid "Saving..." msgstr "Salvataggio..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d File" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Imposta come Default per '%s'" @@ -4023,10 +4027,6 @@ msgid "Clear Default for '%s'" msgstr "Elimina Default per '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Files" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importa Come:" @@ -5906,9 +5906,8 @@ msgid "Mesh is empty!" msgstr "La mesh è vuota!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Crea Fratello di Collisione Trimesh" +msgstr "Non poteva creare una forma di collisione Trimesh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -7238,7 +7237,7 @@ msgstr "Scalatura: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Translating: " -msgstr "Traducendo: " +msgstr "Spostamento: " #: editor/plugins/spatial_editor_plugin.cpp msgid "Rotating %s degrees." diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 43bca13c13..c0298bb075 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -35,7 +35,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-02-14 16:48+0000\n" +"PO-Revision-Date: 2020-02-16 15:20+0000\n" "Last-Translator: Akihiro Ogoshi <technical@palsystem-game.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" @@ -716,9 +716,8 @@ msgid "Line Number:" msgstr "行番号:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "置換..." +msgstr "%d を置換しました。" #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -1671,11 +1670,11 @@ msgstr "(エディタ無効、プロパティ無効)" #: editor/editor_feature_profile.cpp msgid "(Properties Disabled)" -msgstr "(プロパティ無効)" +msgstr "(プロパティ無効)" #: editor/editor_feature_profile.cpp msgid "(Editor Disabled)" -msgstr "(エディタ無効)" +msgstr "(エディタ無効)" #: editor/editor_feature_profile.cpp msgid "Class Options:" @@ -2204,7 +2203,7 @@ msgstr "書込むファイルを開けません:" #: editor/editor_node.cpp msgid "Requested file format unknown:" -msgstr "ファイル形式が不明:" +msgstr "要求されたファイル形式は不明です:" #: editor/editor_node.cpp msgid "Error while saving." @@ -3976,6 +3975,11 @@ msgid "Saving..." msgstr "保存中..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " ファイル" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "'%s' のデフォルトとして設定" @@ -3984,10 +3988,6 @@ msgid "Clear Default for '%s'" msgstr "'%s' のデフォルトをクリア" #: editor/import_dock.cpp -msgid " Files" -msgstr " ファイル" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "名前を付けてインポート:" @@ -4292,7 +4292,7 @@ msgstr "BlendSpace2Dのポイントを削除する" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Remove BlendSpace2D Triangle" -msgstr "BlendSpace2D三角形を削除する" +msgstr "BlendSpace2Dの三角形を削除する" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "BlendSpace2D does not belong to an AnimationTree node." @@ -5066,7 +5066,7 @@ msgstr "公式" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Testing" -msgstr "テスト中" +msgstr "テストする" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Loading..." @@ -5827,7 +5827,7 @@ msgstr "右クリックで点を追加" #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" -msgstr "グローバルイルミネーションの事前計算" +msgstr "GIプローブの焼き込み" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" @@ -5854,9 +5854,8 @@ msgid "Mesh is empty!" msgstr "メッシュがありません!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "三角形メッシュ兄弟コリジョンを生成" +msgstr "トライメッシュコリジョンシェイプを作成できませんでした。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5864,7 +5863,7 @@ msgstr "三角形メッシュ静的ボディを作成" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "This doesn't work on scene root!" -msgstr "シーンのルートでは無効です!" +msgstr "これはシーンのルートでは機能しません!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Shape" @@ -5873,29 +5872,28 @@ msgstr "三角形メッシュ静的シェイプを生成" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." msgstr "" +"シーンのルートに単一の凸型のコリジョンシェイプを作成することはできません。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "単一の凸型コリジョンシェイプを作成できませんでした。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "凸状シェイプを作成" +msgstr "単一の凸型シェイプを作成する" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." msgstr "" +"シーンのルートに複数の凸型コリジョンシェイプを作成することはできません。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "フォルダを作成できませんでした。" +msgstr "コリジョンシェイプを作成できませんでした。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "凸状シェイプを作成" +msgstr "複数の凸型シェイプを作成する" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -5919,7 +5917,7 @@ msgstr "モデルにはこのレイヤーにUVがありません" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" -msgstr "メッシュインスタンスにメッシュが不足しています!" +msgstr "MeshInstanceにメッシュがありません!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh has not surface to create outlines from!" @@ -5951,6 +5949,9 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"StaticBodyを作成し、ポリゴンベースのコリジョンシェイプを自動的に割り当てま" +"す。\n" +"これは、衝突検出の最も正確な(ただし最も遅い)オプションです。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -5961,28 +5962,32 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"ポリゴンベースのコリジョンシェイプを作成します。\n" +"これは、衝突検出の最も正確な(ただし最も遅い)オプションです。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "凸型兄弟関係コリジョンを生成" +msgstr "単一の凸型コリジョンの兄弟を作成" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"単一の凸型コリジョンシェイプを作成します。\n" +"これは、衝突検出の最速の(ただし精度が最も低い)オプションです。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "凸型兄弟関係コリジョンを生成" +msgstr "複数の凸型コリジョンの兄弟を作成する" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"ポリゴンベースのコリジョンシェイプを作成します。\n" +"これは、上記の2つのオプションの中間的なパフォーマンスです。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5995,6 +6000,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"静的なアウトラインメッシュを作成します。アウトラインメッシュの法線は自動的に" +"反転します。\n" +"このプロパティを使用できない場合は、SpatialMaterialのGrowプロパティを代わりに" +"使用できます。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -6230,11 +6239,11 @@ msgstr "AABBを生成中" #: editor/plugins/particles_editor_plugin.cpp msgid "Generate Visibility AABB" -msgstr "軸平行境界ボックスの可視性を生成する" +msgstr "可視性のAABBを生成" #: editor/plugins/particles_editor_plugin.cpp msgid "Generate AABB" -msgstr "軸平行境界ボックス(AABB)を生成" +msgstr "AABBを生成" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Remove Point from Curve" @@ -6337,14 +6346,12 @@ msgid "Set Curve Point Position" msgstr "カーブポイントの位置を設定" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve In Position" -msgstr "曲線の位置を設定" +msgstr "曲線のIn-Controlの位置を指定" #: editor/plugins/path_editor_plugin.cpp -#, fuzzy msgid "Set Curve Out Position" -msgstr "曲線のOut-ハンドルの位置を指定" +msgstr "曲線のOut-Controlの位置を指定" #: editor/plugins/path_editor_plugin.cpp msgid "Split Path" @@ -6613,7 +6620,7 @@ msgstr "リソースを読み込む" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ResourcePreloader" -msgstr "リソースプリローダー" +msgstr "ResourcePreloader" #: editor/plugins/root_motion_editor_plugin.cpp msgid "AnimationTree has no path set to an AnimationPlayer" @@ -7018,11 +7025,11 @@ msgstr "行を折りたたむ/展開する" #: editor/plugins/script_text_editor.cpp msgid "Fold All Lines" -msgstr "すべての行を折りたたむ" +msgstr "全ての行を折りたたむ" #: editor/plugins/script_text_editor.cpp msgid "Unfold All Lines" -msgstr "すべての行を展開する" +msgstr "全ての行を展開する" #: editor/plugins/script_text_editor.cpp msgid "Clone Down" @@ -7127,7 +7134,7 @@ msgstr "ボーンへレスト・ポーズを設定する" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Skeleton2D" -msgstr "スケルトン2D" +msgstr "Skeleton2D" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Make Rest Pose (From Bones)" @@ -7163,7 +7170,7 @@ msgstr "透視投影" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Aborted." -msgstr "変換は中止されました." +msgstr "トランスフォームは中止されました。" #: editor/plugins/spatial_editor_plugin.cpp msgid "X-Axis Transform." @@ -7287,7 +7294,7 @@ msgstr "回転をビューに合わせる" #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "No parent to instance a child at." -msgstr "子インスタンスを生成するための親が見つかりません。" +msgstr "子をインスタンス化するための親が見つかりません。" #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "This operation requires a single selected node." @@ -7378,9 +7385,8 @@ msgid "Freelook Speed Modifier" msgstr "フリールックの速度を調整" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Freelook Slow Modifier" -msgstr "フリールックの速度を調整" +msgstr "フリールックの減速を調整" #: editor/plugins/spatial_editor_plugin.cpp msgid "" @@ -7400,7 +7406,7 @@ msgstr "Xformダイアログ" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Nodes To Floor" -msgstr "ノードを底面にスナップさせる" +msgstr "ノードをフロアにスナップ" #: editor/plugins/spatial_editor_plugin.cpp msgid "Couldn't find a solid floor to snap the selection to." @@ -7475,7 +7481,7 @@ msgstr "トランスフォーム" #: editor/plugins/spatial_editor_plugin.cpp msgid "Snap Object to Floor" -msgstr "オブジェクトを底面にスナップ" +msgstr "オブジェクトをフロアにスナップ" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -8213,7 +8219,7 @@ msgstr "新規ポリゴンを生成。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Keep polygon inside region Rect." -msgstr "領域Rect内にポリゴンを保持します。" +msgstr "領域Rect内のポリゴンを保持します。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Enable snap and show grid (configurable via the Inspector)." @@ -8262,8 +8268,8 @@ msgid "" "Drag handles to edit Rect.\n" "Click on another Tile to edit it." msgstr "" -"四角形を編集するためハンドルをドラッグします。編集のため別のタイルをクリック" -"します。" +"ハンドルをドラッグして矩形を編集します。\n" +"別のタイルをクリックしてそれを編集します。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Delete selected Rect." @@ -8275,7 +8281,7 @@ msgid "" "Click on another Tile to edit it." msgstr "" "現在編集中のサブタイルを選択します。\n" -"別のタイルをクリックして編集します。" +"別のタイルをクリックしてそれを編集します。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Delete polygon." @@ -8288,10 +8294,10 @@ msgid "" "Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" -"左クリック:ビットをオンに設定します。\n" +"左クリック:ビットをオンにします。\n" "右クリック:ビットをオフにします。\n" "Shift+左クリック:ワイルドカード・ビットを設定します。\n" -"別のタイルをクリックして編集します。" +"別のタイルをクリックしてそれを編集します。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -8316,8 +8322,8 @@ msgid "" "Select sub-tile to change its z index.\n" "Click on another Tile to edit it." msgstr "" -"Zインデックスを変更するには、サブタイルを選択します。\n" -"別のタイルをクリックして編集します。" +"サブタイルを選択して、zインデックスを変更します。\n" +"別のタイルをクリックしてそれを編集します。" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Set Tile Region" @@ -8514,19 +8520,19 @@ msgstr "出力を追加" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar" -msgstr "スカラー" +msgstr "スカラー(Scaler)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector" -msgstr "ベクター(Vector)" +msgstr "ベクトル(Vector)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Boolean" -msgstr "ブール" +msgstr "ブール(Boolean)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Sampler" -msgstr "サンプラー" +msgstr "サンプラー(Sampler)" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Add input port" @@ -8566,7 +8572,7 @@ msgstr "式の設定" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Resize VisualShader node" -msgstr "ビジュアルシェーダーノードのサイズを変更する" +msgstr "VisualShaderノードのサイズを変更" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" @@ -8619,7 +8625,7 @@ msgstr "シェーダーノードの作成" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Color function." -msgstr "カラー関数。" +msgstr "Color関数。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Color operator." @@ -8679,11 +8685,11 @@ msgstr "SoftLight演算子。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Color constant." -msgstr "カラー定数。" +msgstr "Color定数。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Color uniform." -msgstr "色のuniform。" +msgstr "Colorのuniform。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Returns the boolean result of the %s comparison between two parameters." @@ -8811,7 +8817,7 @@ msgstr "ネイピア数(2.718282)。自然対数のベースを表します。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Epsilon constant (0.00001). Smallest possible scalar number." -msgstr "Υ(イプシロン)定数(0.00001)。可能な最小のスカラー数。" +msgstr "Υ(イプシロン)定数(0.00001)。使用可能な最小のスカラー数。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Phi constant (1.618034). Golden ratio." @@ -9041,7 +9047,7 @@ msgstr "スカラー定数。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Scalar uniform." -msgstr "スカラのuniform。" +msgstr "Scalarのuniform。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Perform the cubic texture lookup." @@ -9113,14 +9119,12 @@ msgid "Multiplies vector by transform." msgstr "トランスフォームでベクトルを乗算します。" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Transform constant." -msgstr "トランスフォームは中止されました." +msgstr "トランスフォーム定数。" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Transform uniform." -msgstr "トランスフォームは中止されました." +msgstr "トランスフォーム用uniform。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Vector function." @@ -9270,9 +9274,8 @@ msgid "Vector constant." msgstr "ベクトル定数。" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vector uniform." -msgstr "uniform への割り当て。" +msgstr "ベクトルuniform。" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "" @@ -9359,7 +9362,7 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" -msgstr "ビジュアルシェーダー" +msgstr "VisualShader" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Edit Visual Property" @@ -9524,7 +9527,7 @@ msgstr "テキスト" #: editor/project_export.cpp msgid "Compiled" -msgstr "コンパイル" +msgstr "コンパイル済み" #: editor/project_export.cpp msgid "Encrypted (Provide Key Below)" @@ -9575,21 +9578,19 @@ msgid "Export With Debug" msgstr "デバッグ付きエクスポート" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "存在しないパスです。" +msgstr "指定されたパスは存在しません。" #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "パッケージファイルを開けませんでした、zip 形式ではありません。" +msgstr "" +"パッケージ ファイルを開くときにエラーが発生しました (ZIP形式ではありません)。" #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." msgstr "" -"無効な '.zip' プロジェクトファイルです。'project.godot' ファイルが含まれてい" +"無効な\".zip\"プロジェクトファイルです。\"project.godot\"ファイルが含まれてい" "ません。" #: editor/project_manager.cpp @@ -9597,14 +9598,12 @@ msgid "Please choose an empty folder." msgstr "空のフォルダーを選択してください。" #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "'project.godot' もしくは '.zip' ファイルを選択してください." +msgstr "\"project.godot\"または\".zip\"ファイルを選択してください。" #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." -msgstr "ディレクトリにはGodotプロジェクトがすでに含まれています。" +msgstr "このディレクトリにはすでにGodotプロジェクトが含まれています。" #: editor/project_manager.cpp msgid "New Game Project" @@ -10090,9 +10089,8 @@ msgid "Settings saved OK." msgstr "設定の保存に成功しました." #: editor/project_settings_editor.cpp -#, fuzzy msgid "Moved Input Action Event" -msgstr "入力アクションイベントを追加" +msgstr "入力アクションイベントを移動" #: editor/project_settings_editor.cpp msgid "Override for Feature" @@ -10299,9 +10297,8 @@ msgid "Suffix" msgstr "サフィックス" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "正規表現" +msgstr "正規表現を使用する" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10340,9 +10337,8 @@ msgstr "" "カウンタオプションを比較します。" #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" -msgstr "レベルごとのカウンタ" +msgstr "レベルごとのカウンター" #: editor/rename_dialog.cpp msgid "If set the counter restarts for each group of child nodes" @@ -10381,14 +10377,12 @@ msgid "Keep" msgstr "保持" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" -msgstr "キャメルケースをアンダースコアに" +msgstr "PascalCaseからsnake_caseへ" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" -msgstr "アンダースコアをキャメルケースに" +msgstr "snake_caseをPascalCaseへ" #: editor/rename_dialog.cpp msgid "Case" @@ -10407,14 +10401,12 @@ msgid "Reset" msgstr "リセット" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "正規表現" +msgstr "正規表現エラー" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "有効な文字:" +msgstr "文字 %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10774,7 +10766,7 @@ msgid "" "Children are not selectable.\n" "Click to make selectable." msgstr "" -"子を選択できません.\n" +"子を選択できません。\n" "クリックして選択可能にしてください。" #: editor/scene_tree_editor.cpp @@ -10867,20 +10859,19 @@ msgstr "スクリプトを開く" #: editor/script_create_dialog.cpp msgid "File exists, it will be reused." -msgstr "ファイルは存在します。再利用されます。" +msgstr "ファイルが既に存在します。そちらを再利用します。" #: editor/script_create_dialog.cpp msgid "Invalid class name." -msgstr "クラス名が無効です。" +msgstr "無効なクラス名。" #: editor/script_create_dialog.cpp msgid "Invalid inherited parent name or path." msgstr "継承された親の名前またはパスが無効です。" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "スクリプトは有効です。" +msgstr "スクリプトのパス/名前は有効です。" #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -10971,9 +10962,8 @@ msgid "Copy Error" msgstr "エラーをコピー" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" -msgstr "ビデオメモリー" +msgstr "ビデオRAM" #: editor/script_editor_debugger.cpp msgid "Skip Breakpoints" @@ -11101,12 +11091,11 @@ msgstr "カメラのFOVを変更" #: editor/spatial_editor_gizmos.cpp msgid "Change Camera Size" -msgstr "カメラのサイズを変更" +msgstr "カメラサイズを変更" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Notifier AABB" -msgstr "パーティクルの軸平行境界ボックスを変更" +msgstr "NotifierのAABBを変更" #: editor/spatial_editor_gizmos.cpp msgid "Change Particles AABB" @@ -11122,7 +11111,7 @@ msgstr "球形の半径を変更" #: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp msgid "Change Box Shape Extents" -msgstr "ボックスシェイプ範囲の変更" +msgstr "ボックスシェイプの範囲を変更" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Radius" @@ -11130,7 +11119,7 @@ msgstr "カプセルシェイプの半径を変更" #: editor/spatial_editor_gizmos.cpp msgid "Change Capsule Shape Height" -msgstr "カプセル形状の高さを変更する" +msgstr "カプセルシェイプの高さを変更" #: editor/spatial_editor_gizmos.cpp msgid "Change Cylinder Shape Radius" @@ -11297,14 +11286,12 @@ msgid "Grid Map" msgstr "グリッドマップ" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Snap View" -msgstr "上面図" +msgstr "スナップビュー" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clip Disabled" -msgstr "無効" +msgstr "クリップ無効" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clip Above" @@ -11363,9 +11350,8 @@ msgid "Clear Selection" msgstr "選択をクリア" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Fill Selection" -msgstr "すべて選択" +msgstr "選択部の塗り潰し" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -11376,9 +11362,8 @@ msgid "Pick Distance:" msgstr "距離を取得:" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Filter meshes" -msgstr "フィルタメッシュ" +msgstr "メッシュを絞り込む" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "Give a MeshLibrary resource to this GridMap to use its meshes." @@ -11428,7 +11413,7 @@ msgstr "移動可能な領域を作成中..." #: modules/recast/navigation_mesh_generator.cpp msgid "Partitioning..." -msgstr "パーティションを作成しています..." +msgstr "分割中..." #: modules/recast/navigation_mesh_generator.cpp msgid "Creating contours..." @@ -11505,7 +11490,7 @@ msgstr "引数名の変更" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "変数のデフォルト値を設定する" +msgstr "変数のデフォルト値を設定" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Type" @@ -11640,15 +11625,13 @@ msgid "Add Node(s) From Tree" msgstr "ツリーからノードを追加" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "" "Can't drop properties because script '%s' is not used in this scene.\n" "Drop holding 'Shift' to just copy the signature." msgstr "" -"スクリプト '%s' はこのシーンで使われていないため、ノードを落とすことができま" +"このシーンではスクリプト '%s'が使用されていないため、プロパティを削除できま" "せん。\n" -"'shift' キーを押しながらドロップすることでシグネチャをコピーすることができま" -"す。" +"「Shift」を押しながらドロップすると、署名がコピーされます。" #: modules/visual_script/visual_script_editor.cpp msgid "Add Getter Property" @@ -11832,7 +11815,7 @@ msgstr "パスがノードに達しません!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." -msgstr "ノード%sの不正なインデックスのプロパティ名'%s' ." +msgstr "ノード%sのインデックスのプロパティ名'%s'は無効です。" #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " @@ -12022,7 +12005,7 @@ msgstr "無効なエクスポート テンプレート:" #: platform/javascript/export/export.cpp msgid "Could not read custom HTML shell:" -msgstr "カスタムHTMLシェルを読み取ることができませんでした:" +msgstr "カスタムHTMLシェルを読み込めませんでした:" #: platform/javascript/export/export.cpp msgid "Could not read boot splash image file:" @@ -12062,37 +12045,39 @@ msgstr "Storeロゴの画像サイズが無効です(縦横50x50でないとい #: platform/uwp/export/export.cpp msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." -msgstr "無効な44X44四角ロゴイメージ(縦横44x44でないといけません)。" +msgstr "44X44の正方形ロゴの画像サイズが無効です(縦横44x44でないといけません)。" #: platform/uwp/export/export.cpp msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." -msgstr "無効な71x71四角ロゴイメージ(縦横71x71でないといけません)。" +msgstr "71x71の正方形ロゴの画像サイズが無効です(縦横71x71でないといけません)。" #: platform/uwp/export/export.cpp msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." -msgstr "無効な150X150四角ロゴイメージ(縦横150x150でないといけません)。" +msgstr "" +"150X150の正方形ロゴの画像サイズが無効です(縦横150x150でないといけません)。" #: platform/uwp/export/export.cpp msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." -msgstr "無効な310X310四角ロゴイメージ(縦横310x310でないといけません)。" +msgstr "" +"310X310の正方形ロゴの画像サイズが無効です(縦横310x310でないといけません)。" #: platform/uwp/export/export.cpp msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." -msgstr "無効な310X150ワイドロゴイメージ(縦横310x150でないといけません)。" +msgstr "" +"310X150のワイドロゴの画像サイズが無効です(縦横310x150でないといけません)。" #: platform/uwp/export/export.cpp msgid "Invalid splash screen image dimensions (should be 620x300)." msgstr "" -"無効なスプラッシュスクリーンイメージ(縦横620x300でないといけません)。" +"スプラッシュスクリーンの画像サイズが無効です(縦横620x300でないといけません)。" #: scene/2d/animated_sprite.cpp -#, fuzzy msgid "" "A SpriteFrames resource must be created or set in the \"Frames\" property in " "order for AnimatedSprite to display frames." msgstr "" -"SpriteFrames リソースを作成または AnimatedSprite フレームを表示するためには " -"'Frames' プロパティに設定する必要があります。" +"AnimatedSpriteでフレームを表示するには、\"Frames\"プロパティでSpriteFramesリ" +"ソースを作成または設定する必要があります。" #: scene/2d/canvas_modulate.cpp msgid "" @@ -12120,10 +12105,9 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" -"CollisionPolygon2D は、CollisionObject2D 派生ノードに衝突シェイプを提供するた" -"めにのみ機能します。2Dの形状(シェイプ)を付与するためには Area2D、" -"StaticBody2D、RigidBody2D、KinematicBody2D などの子オブジェクトとして利用して" -"ください。" +"CollisionPolygon2Dは、CollisionObject2D派生ノードにコリジョンシェイプを提供す" +"るためにのみ機能します。シェイプを追加する場合は、Area2D、StaticBody2D、" +"RigidBody2D、KinematicBody2Dなどの子として使用してください。" #: scene/2d/collision_polygon_2d.cpp msgid "An empty CollisionPolygon2D has no effect on collision." @@ -12135,9 +12119,9 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" -"CollisionShape2D は、CollisionObject2D派生ノードに衝突シェイプを提供する場合" -"にのみ機能します。Area2D、staticBody2D、RigidBody2D、KinematicBody2Dなどの子" -"として使用してください。" +"CollisionShape2Dは、CollisionObject2D派生ノードにコリジョンシェイプを提供する" +"場合にのみ機能します。シェイプを追加する場合は、Area2D、staticBody2D、" +"RigidBody2D、KinematicBody2Dなどの子として使用してください。" #: scene/2d/collision_shape_2d.cpp msgid "" @@ -12295,7 +12279,7 @@ msgstr "" #: scene/3d/arvr_nodes.cpp msgid "ARVRAnchor must have an ARVROrigin node as its parent." -msgstr "ARVRAnchorはARVROriginを親に持つ必要があります。" +msgstr "ARVRAnchorはARVROriginノードを親に持つ必要があります。" #: scene/3d/arvr_nodes.cpp msgid "" @@ -12307,7 +12291,7 @@ msgstr "" #: scene/3d/arvr_nodes.cpp msgid "ARVROrigin requires an ARVRCamera child node." -msgstr "ARVROriginはARVRCamera子ノードが必要です。" +msgstr "ARVROriginは子ノードにARVRCameraが必要です。" #: scene/3d/baked_lightmap.cpp msgid "%d%%" @@ -12350,9 +12334,9 @@ msgid "" "CollisionObject derived node. Please only use it as a child of Area, " "StaticBody, RigidBody, KinematicBody, etc. to give them a shape." msgstr "" -"CollisionPolygonは、CollisionObject派生ノードに衝突シェイプを提供する場合にの" -"み機能します。Area、StaticBody、RigidBody、KinematicBodyなどの子として使用し" -"てください。" +"CollisionPolygonは、CollisionObject派生ノードにコリジョンシェイプを提供する場" +"合にのみ機能します。シェイプを追加する場合は、Area、StaticBody、RigidBody、" +"KinematicBodyなどの子として使用してください。" #: scene/3d/collision_polygon.cpp msgid "An empty CollisionPolygon has no effect on collision." @@ -12364,9 +12348,9 @@ msgid "" "derived node. Please only use it as a child of Area, StaticBody, RigidBody, " "KinematicBody, etc. to give them a shape." msgstr "" -"CollisionShapeは、CollisionObject派生ノードに衝突シェイプを提供する場合にのみ" -"機能します。Area、StaticBody、RigidBody、KinematicBodyなどの子として使用して" -"ください。" +"CollisionShapeは、CollisionObject派生ノードにコリジョンシェイプを提供する場合" +"にのみ機能します。シェイプを追加する場合は、Area、StaticBody、RigidBody、" +"KinematicBodyなどの子として使用してください。" #: scene/3d/collision_shape.cpp msgid "" @@ -12454,13 +12438,12 @@ msgid "PathFollow only works when set as a child of a Path node." msgstr "PathFollow は、Path ノードの子として設定されている場合のみ動作します。" #: scene/3d/path.cpp -#, fuzzy msgid "" "PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its " "parent Path's Curve resource." msgstr "" -"PathFollow ROTATION_ORIENTEDでは、親パスのCurveリソースで \"Up Vector\"を有効" -"にする必要があります。" +"PathFollowのROTATION_ORIENTEDでは、親のPathのCurveリソースで\"Up Vector\"を有" +"効にする必要があります。" #: scene/3d/physics_body.cpp msgid "" @@ -12666,21 +12649,20 @@ msgid "" "Default Environment as specified in Project Settings (Rendering -> " "Environment -> Default Environment) could not be loaded." msgstr "" -"プロジェクト設定で指定されている既定の環境 (レンダリング -> 環境 -> 既定の環" -"境) を読み込めませんでした。" +"プロジェクト設定で指定されている既定の環境 (Rendering -> Environment -> " +"Default Environment) を読み込めませんでした。" #: scene/main/viewport.cpp -#, fuzzy msgid "" "This viewport is not set as render target. If you intend for it to display " "its contents directly to the screen, make it a child of a Control so it can " "obtain a size. Otherwise, make it a RenderTarget and assign its internal " "texture to some node for display." msgstr "" -"このビューポートは、レンダー ターゲットとして設定されていません。その内容を画" -"面に直接表示する場合は、サイズを得ることができるように、コントロールの子をつ" -"くります。それ以外の場合、レンダー ターゲットし、その内部のテクスチャ表示のい" -"くつかのノードに割り当てます。" +"このビューポートはレンダー ターゲットとして設定されていません。コンテンツを画" +"面に直接表示する場合は、サイズを取得できるようにコントロールの子にします。そ" +"れ以外の場合は、RenderTarget にして、その内部テクスチャを表示するノードに割り" +"当てます。" #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 16a2628500..3c9ab6c79e 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -3950,15 +3950,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/ko.po b/editor/translations/ko.po index 55bee75d3b..fc23015cf8 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -3943,6 +3943,11 @@ msgid "Saving..." msgstr "저장 중..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " 파일" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "'%s'을(를) 기본으로 설정" @@ -3951,10 +3956,6 @@ msgid "Clear Default for '%s'" msgstr "'%s'을(를) 기본에서 지우기" #: editor/import_dock.cpp -msgid " Files" -msgstr " 파일" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "다음 형식으로 가져오기:" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 5f8d87a7a5..60d2adc418 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -3923,15 +3923,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "Redaguoti Filtrus" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/lv.po b/editor/translations/lv.po index 84c4a0e584..9a6454d81b 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -3916,15 +3916,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "Nederīgs nosaukums." #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/mi.po b/editor/translations/mi.po index de68081972..2e6c563aec 100644 --- a/editor/translations/mi.po +++ b/editor/translations/mi.po @@ -3795,15 +3795,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/ml.po b/editor/translations/ml.po index b3deb29090..500a1d9156 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -3807,15 +3807,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/mr.po b/editor/translations/mr.po index 3803ad7731..ca97848940 100644 --- a/editor/translations/mr.po +++ b/editor/translations/mr.po @@ -3802,15 +3802,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/ms.po b/editor/translations/ms.po index ed332284c9..d7e9bd443a 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -3830,15 +3830,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 09bec2c4aa..9060ee7249 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -4196,6 +4196,10 @@ msgid "Saving..." msgstr "Lagrer..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Filer" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Sett som Standard for '%s'" @@ -4204,10 +4208,6 @@ msgid "Clear Default for '%s'" msgstr "Fjern Standard for '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Filer" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importer Som:" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 2f79bf52d9..cc5c2c978f 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -3997,6 +3997,10 @@ msgid "Saving..." msgstr "Opslaan..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Bestanden" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Stel in als Standaard voor '%s'" @@ -4005,10 +4009,6 @@ msgid "Clear Default for '%s'" msgstr "Wis Standaard voor '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Bestanden" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importeer als:" diff --git a/editor/translations/or.po b/editor/translations/or.po index 8645103d62..1e2acc1c86 100644 --- a/editor/translations/or.po +++ b/editor/translations/or.po @@ -3801,15 +3801,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 19ed399df1..48c51e8ea1 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -42,7 +42,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-01-27 07:10+0000\n" +"PO-Revision-Date: 2020-02-18 15:09+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" @@ -52,7 +52,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 3.11\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -721,9 +721,8 @@ msgid "Line Number:" msgstr "Numer linii:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Zamień..." +msgstr "%d zamieniono." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -3981,6 +3980,11 @@ msgid "Saving..." msgstr "Zapisywanie..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Pliki" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Ustaw jako domyślne dla \"%s\"" @@ -3989,10 +3993,6 @@ msgid "Clear Default for '%s'" msgstr "Usuń domyślne dla \"%s\"" #: editor/import_dock.cpp -msgid " Files" -msgstr " Pliki" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importuj jako:" @@ -5869,9 +5869,8 @@ msgid "Mesh is empty!" msgstr "Siatka jest pusta!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Utwórz sąsiadującą trójsiatkę kolizji" +msgstr "Nie udało się utworzyć kształtu trójsiatki." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5888,29 +5887,29 @@ msgstr "Utwórz statyczny kształt trójsiatki" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." msgstr "" +"Nie można utworzyć pojedynczego wypukłego kształtu kolizji dla korzenia " +"sceny." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Nie udało się utworzyć pojedynczego wypukłego kształtu kolizji." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Utwórz kształt wypukły" +msgstr "Utwórz pojedynczy wypukły kształt" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." msgstr "" +"Nie można utworzyć wielu wypukłych kształtów kolizji dla korzenia sceny." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "Nie można utworzyć katalogu." +msgstr "Nie udało się utworzyć żadnego kształtu kolizji." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Utwórz kształt wypukły" +msgstr "Utwórz wiele wypukłych kształtów" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -10394,14 +10393,12 @@ msgid "Keep" msgstr "Bez zmian" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" -msgstr "CamelCase na under_scored" +msgstr "PascalCase na snake_case" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" -msgstr "under_scored na CamelCase" +msgstr "snake_case na PascalCase" #: editor/rename_dialog.cpp msgid "Case" @@ -10420,14 +10417,12 @@ msgid "Reset" msgstr "Resetuj" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Wyrażenia regularne" +msgstr "Błąd wyrażenia regularnego" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Dopuszczalne znaki:" +msgstr "Przy znaku %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10892,9 +10887,8 @@ msgid "Invalid inherited parent name or path." msgstr "Nieprawidłowa nazwa lub ścieżka klasy bazowej." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "Skrypt jest prawidłowy." +msgstr "Ścieżka/nazwa skryptu jest prawidłowa." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -10985,9 +10979,8 @@ msgid "Copy Error" msgstr "Kopiuj błąd" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" -msgstr "Pamięć wideo" +msgstr "Wideo RAM" #: editor/script_editor_debugger.cpp msgid "Skip Breakpoints" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index 8baec6f376..2be9100ab8 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -3927,15 +3927,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "Edit yer Variable:" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index e8e94eced4..8fc0ef4f39 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -48,7 +48,7 @@ # joel silva <joelgbsilva@gmail.com>, 2019. # Heitor Novais Pereira <heitornovais394@outlook.com>, 2019. # Joel Landgraf Filho <joel.landgraf@gmail.com>, 2019. -# Alan Valmorbida <alanvalmorbida@gmail.com>, 2019. +# Alan Valmorbida <alanvalmorbida@gmail.com>, 2019, 2020. # João Vitor Ferreira Cavalcante <jvfecav@gmail.com>, 2019. # Thiago Amendola <amendolathiago@gmail.com>, 2019. # Raphael Nogueira Campos <raphaelncampos@gmail.com>, 2019. @@ -61,7 +61,7 @@ # Ivo Nascimento <iannsp@gmail.com>, 2019. # Klaus Dellano <klausdell@hotmail.com>, 2019. # Esdras Tarsis <esdrastarsis@gmail.com>, 2019. -# Douglas Fiedler <dognew@gmail.com>, 2019. +# Douglas Fiedler <dognew@gmail.com>, 2019, 2020. # Rarysson Guilherme <r_guilherme12@hotmail.com>, 2019. # Gustavo da Silva Santos <gustavo94.rb@gmail.com>, 2019. # Rafael Roque <rafael.roquec@gmail.com>, 2019. @@ -86,8 +86,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2020-02-06 09:45+0000\n" -"Last-Translator: Leonardo Dimano <leodimano@live.com>\n" +"PO-Revision-Date: 2020-02-18 15:09+0000\n" +"Last-Translator: Douglas Fiedler <dognew@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -95,7 +95,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 3.11\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -763,9 +763,8 @@ msgid "Line Number:" msgstr "Número da Linha:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Substituir..." +msgstr "%d substituído." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -4036,6 +4035,10 @@ msgid "Saving..." msgstr "Salvando..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Arquivos" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Definir como Padrão para '%s'" @@ -4044,10 +4047,6 @@ msgid "Clear Default for '%s'" msgstr "Limpar Padrão para '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Arquivos" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importar como:" @@ -5927,9 +5926,8 @@ msgid "Mesh is empty!" msgstr "Mesh está vazia!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Criar Colisão Trimesh Irmã" +msgstr "Não foi possível criar uma forma de colisão Trimesh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5945,30 +5943,27 @@ msgstr "Criar Forma Estática Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." -msgstr "" +msgstr "Não foi possível criar forma de colisão convexa para a cena raiz." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Não foi possível criar uma forma de colisão convexa simples." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Criar Forma(s) Convexa(s)" +msgstr "Criar Forma(s) Convexa(s) Simples" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." -msgstr "" +msgstr "Não foi possível criar uma forma de colisão convexa para a cena raiz." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "Impossível criar a pasta." +msgstr "Não foi possível criar nenhuma forma de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Criar Forma(s) Convexa(s)" +msgstr "Criar Múltiplas Forma(s) Convexa(s)" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -6024,6 +6019,9 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Criar um Staticbody e atribuir uma forma de colisão baseado em polígono para " +"isto automaticamente.\n" +"Esta é a opção mais precisa (mas lenta) para detecção de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -6034,28 +6032,32 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Criar uma forma de colisão baseada em polígono.\n" +"Este é a opção mais precisa (mas lenta) para detecção de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "Criar Colisão Convexa Irmã(s)" +msgstr "Criar Simples Colisão Convexa Irmã(s)" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Criar uma simples forma convexa de colisão.\n" +"Esta é a opção mais rápida (mas menos precisa) para detecção de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Criar Colisão Convexa Irmã(s)" +msgstr "Criar Múltipla Colisão Convexa Irmã(s)" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Cria um polígono base de colisão forma.\n" +"Este é um meio-termo entre as duas opções acima." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -6068,6 +6070,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"Cria uma malha de contorno estática. A malha de contorno pode ter suas " +"normals viradas automaticamente.\n" +"Isso pode ser usado em vez da propriedade SpatialMaterial Grow quando o uso " +"dessa propriedade não for possível." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -9645,33 +9651,27 @@ msgid "Export With Debug" msgstr "Exportar Com Depuração" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "O caminho não existe." +msgstr "O caminho especificado não existe." #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "Erro ao abrir arquivo compactado, não está no formato ZIP." +msgstr "Erro ao abrir arquivo compactado (não está em formato ZIP)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." -msgstr "" -"Projeto '.zip' inválido, o projeto não contém um arquivo 'project.godot'." +msgstr "Projeto '.zip' inválido; não contém um arquivo 'project.godot'." #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "Por favor, escolha uma pasta vazia." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "Por favor, escolha um arquivo 'project.godot' ou '.zip'." +msgstr "Por favor, escolha um arquivo 'project.godot' ou arquivo '.zip'." #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." msgstr "O diretório já contém um projeto Godot." @@ -10371,9 +10371,8 @@ msgid "Suffix" msgstr "Sufixo" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "Expressões regulares" +msgstr "Utilize Expressões Regulares" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10412,7 +10411,6 @@ msgstr "" "Compare as opções do contador." #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" msgstr "Contador de nível" @@ -10453,14 +10451,12 @@ msgid "Keep" msgstr "Manter" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" -msgstr "CamelCase para under_scored" +msgstr "PascalCase para snake_case" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" -msgstr "under_scored para CamelCase" +msgstr "snake_case para PascalCase" #: editor/rename_dialog.cpp msgid "Case" @@ -10479,14 +10475,12 @@ msgid "Reset" msgstr "Recompor" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Expressões regulares" +msgstr "Erro de Expressão Regular" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Caracteres válidos:" +msgstr "Para caractere %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10951,9 +10945,8 @@ msgid "Invalid inherited parent name or path." msgstr "Nome ou caminho do pai herdado inválido." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "Script válido." +msgstr "O caminho/nome do script é válido." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -11044,9 +11037,8 @@ msgid "Copy Error" msgstr "Copiar Erro" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" -msgstr "Mem. de Vídeo" +msgstr "Memória de Vídeo" #: editor/script_editor_debugger.cpp msgid "Skip Breakpoints" diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index 8f8c1476fb..6bd8da8610 100644 --- a/editor/translations/pt_PT.po +++ b/editor/translations/pt_PT.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-01-27 07:10+0000\n" +"PO-Revision-Date: 2020-02-18 15:09+0000\n" "Last-Translator: João Lopes <linux-man@hotmail.com>\n" "Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_PT/>\n" @@ -28,7 +28,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 3.11\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -37,7 +37,7 @@ msgstr "Tipo de argumento inválido para convert(), use constantes TYPE_*." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp msgid "Expected a string of length 1 (a character)." -msgstr "Esperado um string de comprimento 1 (um caráter)." +msgstr "Esperado um string de comprimento 1 (um carácter)." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/mono/glue/gd_glue.cpp @@ -428,7 +428,7 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "Não é possível adicionar nova pista sem uma raíz" +msgstr "Não é possível adicionar nova pista sem uma raiz" #: editor/animation_track_editor.cpp msgid "Invalid track for Bezier (no suitable sub-properties)" @@ -444,7 +444,7 @@ msgstr "Caminho da pista é inválido, não se consegue adicionar uma chave." #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "Pista não do tipo Spatial, impossível inserir chave" +msgstr "Pista não é do tipo Spatial, não consigo inserir chave" #: editor/animation_track_editor.cpp msgid "Add Transform Track Key" @@ -456,7 +456,7 @@ msgstr "Adicionar Chave da Pista" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." -msgstr "Caminho da pista é inválido, impossível adicionar uma chave método." +msgstr "Caminho da pista é inválido, não consigo adicionar uma chave método." #: editor/animation_track_editor.cpp msgid "Add Method Track Key" @@ -698,9 +698,8 @@ msgid "Line Number:" msgstr "Numero da linha:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Substituir..." +msgstr "%d substituído." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -765,7 +764,7 @@ msgstr "Números de Linha e Coluna." #: editor/connections_dialog.cpp msgid "Method in target node must be specified." -msgstr "Método no Nó alvo deve ser especificado." +msgstr "Método no nó alvo deve ser especificado." #: editor/connections_dialog.cpp msgid "" @@ -773,7 +772,7 @@ msgid "" "target node." msgstr "" "Método alvo não encontrado. Especifique um método válido ou anexe um script " -"ao Nó de destino." +"ao nó de destino." #: editor/connections_dialog.cpp msgid "Connect to Node:" @@ -789,7 +788,7 @@ msgstr "Do Sinal:" #: editor/connections_dialog.cpp msgid "Scene does not contain any script." -msgstr "A Cena não contém qualquer script." +msgstr "A cena não contém qualquer script." #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp @@ -845,7 +844,7 @@ msgstr "Desconecta o sinal após a primeira emissão." #: editor/connections_dialog.cpp msgid "Cannot connect signal" -msgstr "Impossível conectar sinal" +msgstr "Não consigo conectar sinal" #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp @@ -977,7 +976,7 @@ msgid "" "Scene '%s' is currently being edited.\n" "Changes will only take effect when reloaded." msgstr "" -"A Cena '%s' está a ser editada.\n" +"A cena '%s' está a ser editada.\n" "As alterações só terão efeito quando recarregar." #: editor/dependency_editor.cpp @@ -1048,7 +1047,7 @@ msgstr "" #: editor/dependency_editor.cpp msgid "Cannot remove:" -msgstr "Impossível remover:" +msgstr "Não consigo remover:" #: editor/dependency_editor.cpp msgid "Error loading:" @@ -1208,7 +1207,7 @@ msgstr "%s (Já Existe)" #: editor/editor_asset_installer.cpp msgid "Uncompressing Assets" -msgstr "A descompactar Ativos" +msgstr "A Descomprimir Ativos" #: editor/editor_asset_installer.cpp editor/project_manager.cpp msgid "The following files failed extraction from package:" @@ -1416,7 +1415,7 @@ msgstr "Nome inválido." #: editor/editor_autoload_settings.cpp msgid "Valid characters:" -msgstr "Carateres válidos:" +msgstr "Caracteres válidos:" #: editor/editor_autoload_settings.cpp msgid "Must not collide with an existing engine class name." @@ -1502,7 +1501,7 @@ msgstr "Instância única" #: editor/editor_data.cpp msgid "Updating Scene" -msgstr "Atualizando a Cena" +msgstr "A atualizar Cena" #: editor/editor_data.cpp msgid "Storing local changes..." @@ -1510,7 +1509,7 @@ msgstr "Armazenando alterações locais..." #: editor/editor_data.cpp msgid "Updating scene..." -msgstr "Atualizando a Cena..." +msgstr "A atualizar cena..." #: editor/editor_data.cpp editor/editor_properties.cpp msgid "[empty]" @@ -1544,7 +1543,7 @@ msgstr "Nome:" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp #: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp msgid "Could not create folder." -msgstr "Não foi possível criar pasta." +msgstr "Não consegui criar pasta." #: editor/editor_dir_dialog.cpp msgid "Choose" @@ -1633,7 +1632,7 @@ msgstr "Importar Doca" #: editor/editor_feature_profile.cpp msgid "Node Dock" -msgstr "Nó Doca" +msgstr "Doca de Nó" #: editor/editor_feature_profile.cpp msgid "FileSystem and Import Docks" @@ -2185,7 +2184,7 @@ msgstr "Guardar Recurso Como..." #: editor/editor_node.cpp msgid "Can't open file for writing:" -msgstr "Impossível abrir o Ficheiro para escrita:" +msgstr "Não consigo abrir o ficheiro para escrita:" #: editor/editor_node.cpp msgid "Requested file format unknown:" @@ -2197,7 +2196,7 @@ msgstr "Erro ao guardar." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." -msgstr "Impossível abrir '%s'. O ficheiro pode ter sido movido ou apagado." +msgstr "Não consigo abrir '%s'. O ficheiro pode ter sido movido ou apagado." #: editor/editor_node.cpp msgid "Error while parsing '%s'." @@ -2217,7 +2216,7 @@ msgstr "Erro ao carregar '%s'." #: editor/editor_node.cpp msgid "Saving Scene" -msgstr "A guardar a Cena" +msgstr "A guardar Cena" #: editor/editor_node.cpp msgid "Analyzing" @@ -2245,7 +2244,7 @@ msgid "" "Couldn't save scene. Likely dependencies (instances or inheritance) couldn't " "be satisfied." msgstr "" -"Impossível guardar Cena. Provavelmente, as dependências (instâncias ou " +"Não consigo guardar cena. Provavelmente, as dependências (instâncias ou " "heranças) não puderam ser satisfeitas." #: editor/editor_node.cpp editor/scene_tree_dock.cpp @@ -2254,7 +2253,7 @@ msgstr "Não se consegue sobrescrever cena ainda aberta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" -msgstr "Impossível carregar MeshLibrary para fundir!" +msgstr "Não consigo carregar MeshLibrary para combinar!" #: editor/editor_node.cpp msgid "Error saving MeshLibrary!" @@ -2262,7 +2261,7 @@ msgstr "Erro ao guardar MeshLibrary!" #: editor/editor_node.cpp msgid "Can't load TileSet for merging!" -msgstr "Impossível carregar TileSet para fundir!" +msgstr "Não consigo carregar TileSet para combinar!" #: editor/editor_node.cpp msgid "Error saving TileSet!" @@ -2290,9 +2289,8 @@ msgid "" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" -"Este recurso pertence a uma Cena que foi importado, portanto, não é " -"editável.\n" -"Por favor, leia a documentação relevante sobre importação de Cenas, para um " +"Este recurso pertence a uma cena que foi importado, não sendo editável.\n" +"Por favor, leia a documentação relevante sobre importação de cenas, para um " "melhor entendimento deste fluxo de trabalho." #: editor/editor_node.cpp @@ -2337,15 +2335,15 @@ msgstr "" #: editor/editor_node.cpp msgid "There is no defined scene to run." -msgstr "Não existe nenhuma Cena definida para executar." +msgstr "Não existe cena definida para execução." #: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." -msgstr "A Cena atual nunca foi guardada, por favor guarde-a antes de executar." +msgstr "A cena atual nunca foi guardada, por favor guarde-a antes de executar." #: editor/editor_node.cpp msgid "Could not start subprocess!" -msgstr "Não foi possível iniciar o subprocesso!" +msgstr "Não consegui iniciar o subprocesso!" #: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" @@ -2361,7 +2359,7 @@ msgstr "Abertura rápida..." #: editor/editor_node.cpp msgid "Quick Open Scene..." -msgstr "Abrir Cena de forma rápida..." +msgstr "Abrir Cena Rapidamente..." #: editor/editor_node.cpp msgid "Quick Open Script..." @@ -2381,11 +2379,11 @@ msgstr "Guardado(s) %s recurso(s) modificado(s)." #: editor/editor_node.cpp msgid "A root node is required to save the scene." -msgstr "É necessário um Nó Raiz para guardar a cena." +msgstr "É necessário um nó raiz para guardar a cena." #: editor/editor_node.cpp msgid "Save Scene As..." -msgstr "Guardar Cena como..." +msgstr "Guardar Cena Como..." #: editor/editor_node.cpp msgid "No" @@ -2397,11 +2395,11 @@ msgstr "Sim" #: editor/editor_node.cpp msgid "This scene has never been saved. Save before running?" -msgstr "Esta Cena nunca foi guardada. Guardar antes de executar?" +msgstr "Esta cena nunca foi guardada. Guardar antes de executar?" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "This operation can't be done without a scene." -msgstr "Esta operação não pode ser efetuada sem uma Cena." +msgstr "Esta operação não pode ser efetuada sem uma cena." #: editor/editor_node.cpp msgid "Export Mesh Library" @@ -2409,7 +2407,7 @@ msgstr "Exportar Biblioteca de Malhas" #: editor/editor_node.cpp msgid "This operation can't be done without a root node." -msgstr "Esta operação não pode ser efetuada sem um Nó raiz." +msgstr "Esta operação não pode ser efetuada sem um nó raiz." #: editor/editor_node.cpp msgid "Export Tile Set" @@ -2417,15 +2415,15 @@ msgstr "Exportar conjunto de Tiles" #: editor/editor_node.cpp msgid "This operation can't be done without a selected node." -msgstr "Esta operação não pode ser efetuada sem um Nó selecionado." +msgstr "Esta operação não pode ser efetuada sem um nó selecionado." #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "A Cena atual não foi guardada. Abrir na mesma?" +msgstr "A cena atual não foi guardada. Abrir na mesma?" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." -msgstr "Impossível recarregar uma Cena que nunca foi guardada." +msgstr "Não consigo recarregar uma cena que nunca foi guardada." #: editor/editor_node.cpp msgid "Revert" @@ -2437,7 +2435,7 @@ msgstr "Esta acção não pode ser desfeita. Reverter na mesma?" #: editor/editor_node.cpp msgid "Quick Run Scene..." -msgstr "Executar Cena de forma rápida..." +msgstr "Executar Cena Rapidamente..." #: editor/editor_node.cpp msgid "Quit" @@ -2457,12 +2455,12 @@ msgstr "Guardar & Sair" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" -msgstr "Guardar alterações da(s) seguinte(s) Cena(s) antes de sair?" +msgstr "Guardar alterações da(s) seguinte(s) cena(s) antes de sair?" #: editor/editor_node.cpp msgid "Save changes the following scene(s) before opening Project Manager?" msgstr "" -"Guardar alterações da(s) seguinte(s) Cena(s) antes de abrir o Gestor de " +"Guardar alterações da(s) seguinte(s) cena(s) antes de abrir o Gestor de " "Projeto?" #: editor/editor_node.cpp @@ -2524,19 +2522,19 @@ msgid "" "To make changes to it, a new inherited scene can be created." msgstr "" "Cena '%s' foi importada automaticamente, não podendo ser alterada.\n" -"Para fazer alterações, pode ser criada uma nova Cena herdada." +"Para fazer alterações, pode ser criada uma nova cena herdada." #: editor/editor_node.cpp msgid "" "Error loading scene, it must be inside the project path. Use 'Import' to " "open the scene, then save it inside the project path." msgstr "" -"Erro ao carregar a Cena, tem de estar no Caminho do Projeto. Use 'Importar' " -"para abrir a Cena, e guarde-a dentro do Caminho do Projeto." +"Erro ao carregar cena, tem de estar no caminho do projeto. Use 'Importar' " +"para abrir a cena, e guarde-a dentro do caminho do projeto." #: editor/editor_node.cpp msgid "Scene '%s' has broken dependencies:" -msgstr "A Cena '%s' tem dependências não satisfeitas:" +msgstr "Cena '%s' tem dependências não satisfeitas:" #: editor/editor_node.cpp msgid "Clear Recent Scenes" @@ -2548,7 +2546,7 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" -"Não foi definida nenhuma Cena principal. Selecionar uma?\n" +"Não foi definida nenhuma cena principal. Selecionar uma?\n" "Poderá alterá-la depois nas \"Definições do Projeto\", na categoria " "'aplicação'." @@ -2558,8 +2556,8 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" -"A Cena selecionada '%s' não existe, selecionar uma válida?\n" -"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria de " +"A cena selecionada '%s' não existe, selecionar uma válida?\n" +"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria " "'aplicação'." #: editor/editor_node.cpp @@ -2568,7 +2566,7 @@ msgid "" "You can change it later in \"Project Settings\" under the 'application' " "category." msgstr "" -"A Cena selecionada '%s' não é um Ficheiro de Cena, selecione um Ficheiro " +"A cena selecionada '%s' não é um ficheiro de cena, selecione um ficheiro " "válido?\n" "Poderá alterá-la depois em \"Configurações de Projeto\", na categoria " "'aplicação'." @@ -2593,7 +2591,7 @@ msgstr "Mostrar no Sistema de Ficheiros" #: editor/editor_node.cpp msgid "Play This Scene" -msgstr "Executar esta Cena" +msgstr "Executar Esta Cena" #: editor/editor_node.cpp msgid "Close Tab" @@ -2617,7 +2615,7 @@ msgstr "Fechar Todos os Separadores" #: editor/editor_node.cpp msgid "Switch Scene Tab" -msgstr "Trocar Tab de Cena" +msgstr "Trocar Aba de Cena" #: editor/editor_node.cpp msgid "%d more files or folders" @@ -2645,7 +2643,7 @@ msgstr "Alternar modo livre de distrações." #: editor/editor_node.cpp msgid "Add a new scene." -msgstr "Adicionar nova Cena." +msgstr "Adicionar nova cena." #: editor/editor_node.cpp msgid "Scene" @@ -2653,7 +2651,7 @@ msgstr "Cena" #: editor/editor_node.cpp msgid "Go to previously opened scene." -msgstr "Ir para Cena aberta anteriormente." +msgstr "Ir para cena aberta anteriormente." #: editor/editor_node.cpp msgid "Copy Text" @@ -2673,7 +2671,7 @@ msgstr "Filtrar Ficheiro..." #: editor/editor_node.cpp msgid "Operations with scene files." -msgstr "Operações com Ficheiros de Cena." +msgstr "Operações com ficheiros de cena." #: editor/editor_node.cpp msgid "New Scene" @@ -2727,7 +2725,7 @@ msgstr "Reverter Cena" #: editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." -msgstr "Ferramentas diversas de Projeto ou Cena." +msgstr "Ferramentas diversas de projeto ou cena." #: editor/editor_node.cpp editor/project_manager.cpp #: editor/script_create_dialog.cpp @@ -2819,7 +2817,7 @@ msgid "" "Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " "running game if this option is turned on." msgstr "" -"Com esta opção ativa, formas de colisão e Nós raycast (para 2D e 3D) serão " +"Com esta opção ativa, formas de colisão e nós raycast (para 2D e 3D) serão " "visíveis no jogo em execução." #: editor/editor_node.cpp @@ -2844,10 +2842,10 @@ msgid "" "When used remotely on a device, this is more efficient with network " "filesystem." msgstr "" -"Com esta opção ativa, alterações da Cena no Editor serão replicadas no jogo " +"Com esta opção ativa, alterações da cena no editor serão replicadas no jogo " "em execução.\n" -"Quando usada num dispositivo remoto, é mais eficiente com um Sistema de " -"Ficheiros em rede." +"Quando usada num dispositivo remoto, é mais eficiente com um sistema de " +"ficheiros em rede." #: editor/editor_node.cpp msgid "Sync Script Changes" @@ -2962,11 +2960,11 @@ msgstr "Pausar a execução da cena para depuração." #: editor/editor_node.cpp msgid "Pause Scene" -msgstr "Pausar a Cena" +msgstr "Pausar Cena" #: editor/editor_node.cpp msgid "Stop the scene." -msgstr "Para a Cena." +msgstr "Para a cena." #: editor/editor_node.cpp msgid "Play the edited scene." @@ -2974,11 +2972,11 @@ msgstr "Executa a cena editada." #: editor/editor_node.cpp msgid "Play Scene" -msgstr "Executar a Cena" +msgstr "Executar Cena" #: editor/editor_node.cpp msgid "Play custom scene" -msgstr "Executa a cena personalizada" +msgstr "Executa cena personalizada" #: editor/editor_node.cpp msgid "Play Custom Scene" @@ -3081,7 +3079,7 @@ msgstr "Exportar Biblioteca" #: editor/editor_node.cpp msgid "Merge With Existing" -msgstr "Fundir com o Existente" +msgstr "Combinar com o Existente" #: editor/editor_node.cpp msgid "Open & Run a Script" @@ -3266,7 +3264,7 @@ msgstr "" "Não se consegue criar Textura Viewport neste recurso porque não está " "definido na cena como local.\n" "Ative a sua propriedade 'local to scene' (e em todos os recursos que o " -"contêm até a um Nó)." +"contêm até a um nó)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" @@ -3349,11 +3347,11 @@ msgstr "Escreva a sua lógica no Método _run()." #: editor/editor_run_script.cpp msgid "There is an edited scene already." -msgstr "Já existe uma Cena editada." +msgstr "Já existe uma cena editada." #: editor/editor_run_script.cpp msgid "Couldn't instance script:" -msgstr "Não foi possível instanciar o Script:" +msgstr "Não consegui instanciar o script:" #: editor/editor_run_script.cpp msgid "Did you forget the 'tool' keyword?" @@ -3361,7 +3359,7 @@ msgstr "Esqueceu-se da palavra chave 'tool'?" #: editor/editor_run_script.cpp msgid "Couldn't run script:" -msgstr "Não foi possível executar o Script:" +msgstr "Não consegui executar o script:" #: editor/editor_run_script.cpp msgid "Did you forget the '_run' method?" @@ -3369,7 +3367,7 @@ msgstr "Esqueceu-se do médodo '_run'?" #: editor/editor_sub_scene.cpp msgid "Select Node(s) to Import" -msgstr "Selecionar Nó(s) para importar" +msgstr "Selecionar Nó(s) para Importar" #: editor/editor_sub_scene.cpp editor/project_manager.cpp msgid "Browse" @@ -3424,7 +3422,7 @@ msgstr "Remover versão '%s' do Modelo?" #: editor/export_template_manager.cpp msgid "Can't open export templates zip." -msgstr "Impossível abrir o zip de Modelos." +msgstr "Não consigo abrir zip de modelos de exportação." #: editor/export_template_manager.cpp msgid "Invalid version.txt format inside templates: %s." @@ -3466,12 +3464,12 @@ msgstr "" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve." -msgstr "Impossível resolver." +msgstr "Não consigo resolver." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect." -msgstr "Impossível conectar." +msgstr "Não consigo conectar." #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3497,7 +3495,7 @@ msgstr "Download Completo." #: editor/export_template_manager.cpp msgid "Cannot remove temporary file:" -msgstr "Impossível remover ficheiro temporário:" +msgstr "Não consigo remover ficheiro temporário:" #: editor/export_template_manager.cpp msgid "" @@ -3525,7 +3523,7 @@ msgstr "A resolver" #: editor/export_template_manager.cpp msgid "Can't Resolve" -msgstr "Impossível resolver" +msgstr "Não consigo Resolver" #: editor/export_template_manager.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -3534,7 +3532,7 @@ msgstr "A ligar..." #: editor/export_template_manager.cpp msgid "Can't Connect" -msgstr "Impossível conetar" +msgstr "Não consigo Conectar" #: editor/export_template_manager.cpp msgid "Connected" @@ -3609,7 +3607,7 @@ msgstr "" #: editor/filesystem_dock.cpp msgid "Cannot move/rename resources root." -msgstr "Não foi possível mover/renomear raíz dos recursos." +msgstr "Não consegui mover/renomear raiz dos recursos." #: editor/filesystem_dock.cpp msgid "Cannot move a folder into itself." @@ -3633,7 +3631,7 @@ msgstr "Nome não fornecido." #: editor/filesystem_dock.cpp msgid "Provided name contains invalid characters." -msgstr "O nome fornecido contém carateres inválidos." +msgstr "O nome fornecido contém caracteres inválidos." #: editor/filesystem_dock.cpp msgid "A file or folder with this name already exists." @@ -3641,7 +3639,7 @@ msgstr "Um Ficheiro ou diretoria já existe com este nome." #: editor/filesystem_dock.cpp msgid "Name contains invalid characters." -msgstr "O nome contém carateres inválidos." +msgstr "O nome contém caracteres inválidos." #: editor/filesystem_dock.cpp msgid "Renaming file:" @@ -3872,7 +3870,7 @@ msgstr "Nós fora do Grupo" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp #: editor/scene_tree_editor.cpp msgid "Filter nodes" -msgstr "Filtrar Nós" +msgstr "Filtrar nós" #: editor/groups_editor.cpp msgid "Nodes in Group" @@ -3892,7 +3890,7 @@ msgstr "Gerir Grupos" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" -msgstr "Importar como Cena única" +msgstr "Importar como Cena Única" #: editor/import/resource_importer_scene.cpp msgid "Import with Separate Animations" @@ -3928,7 +3926,7 @@ msgstr "Importar como Cenas Múltiplas" #: editor/import/resource_importer_scene.cpp msgid "Import as Multiple Scenes+Materials" -msgstr "Importar como Cenas e Materiais Múltiplos" +msgstr "Importar como Cenas Múltiplas + Materiais" #: editor/import/resource_importer_scene.cpp #: editor/plugins/mesh_library_editor_plugin.cpp @@ -3968,6 +3966,10 @@ msgid "Saving..." msgstr "A guardar..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Ficheiros" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Definir como Padrão para '%s'" @@ -3976,10 +3978,6 @@ msgid "Clear Default for '%s'" msgstr "Limpar Padrão para '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Ficheiros" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importar Como:" @@ -4089,7 +4087,7 @@ msgstr "As alterações podem ser perdidas!" #: editor/multi_node_edit.cpp msgid "MultiNode Set" -msgstr "Conjunto MultiNode" +msgstr "Conjunto MultiNó" #: editor/node_dock.cpp msgid "Select a single node to edit its signals and groups." @@ -4527,7 +4525,7 @@ msgstr "Posição da Animação (em segundos)." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Scale animation playback globally for the node." -msgstr "Escalar globalmente a reprodução da Animação para o Nó." +msgstr "Escalar globalmente a reprodução da animação para o nó." #: editor/plugins/animation_player_editor_plugin.cpp msgid "Animation Tools" @@ -4671,7 +4669,7 @@ msgstr "Viagem" #: editor/plugins/animation_state_machine_editor.cpp msgid "Start and end nodes are needed for a sub-transition." -msgstr "Nodos de início e fim são necessários para uma sub-transição." +msgstr "Nós de início e fim são necessários para uma sub-transição." #: editor/plugins/animation_state_machine_editor.cpp msgid "No playback resource set at path: %s." @@ -4863,7 +4861,7 @@ msgstr "Importar Animações..." #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Edit Node Filters" -msgstr "Editar filtros de Nó" +msgstr "Editar Filtros de Nó" #: editor/plugins/animation_tree_player_editor_plugin.cpp msgid "Filters..." @@ -4883,7 +4881,7 @@ msgstr "Erro de ligação, tente novamente." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't connect to host:" -msgstr "Impossível ligar ao host:" +msgstr "Não consigo ligar ao host:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "No response from host:" @@ -4891,7 +4889,7 @@ msgstr "Sem resposta do host:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Can't resolve hostname:" -msgstr "Impossível resolver hostname:" +msgstr "Não consigo resolver hostname:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Request failed, return code:" @@ -4903,7 +4901,7 @@ msgstr "Pedido falhado." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Cannot save response to:" -msgstr "Impossível guardar resposta para:" +msgstr "Não consigo guardar resposta para:" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Write error." @@ -5076,8 +5074,8 @@ msgid "" "Save your scene (for images to be saved in the same dir), or pick a save " "path from the BakedLightmap properties." msgstr "" -"Impossível determinar um caminho para guardar imagens lightmap.\n" -"Guarde a sua Cena (para as imagens serem guardadas na mesma diretoria), ou " +"Não consigo determinar um caminho para guardar imagens lightmap.\n" +"Guarde a sua cena (para as imagens serem guardadas na mesma diretoria), ou " "escolha um caminho nas propriedades BakedLightmap." #: editor/plugins/baked_lightmap_editor_plugin.cpp @@ -5195,7 +5193,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." -msgstr "Pré-definições para âncoras e margens de um Nó Control." +msgstr "Pré-definições para âncoras e margens de um nó Control." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5491,7 +5489,7 @@ msgstr "Ajustar às Guias" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock the selected object in place (can't be moved)." -msgstr "Bloquear a posição do Objeto selecionado (não pode ser movido)." +msgstr "Bloquear a posição do objeto selecionado (não pode ser movido)." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5640,7 +5638,7 @@ msgstr "A adicionar %s..." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Cannot instantiate multiple nodes without root." -msgstr "Impossível instanciar nós múltiplos sem raiz." +msgstr "Não consigo instanciar nós múltiplos sem raiz." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp @@ -5650,7 +5648,7 @@ msgstr "Criar Nó" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "Error instancing scene from %s" -msgstr "Erro a instanciar Cena de %s" +msgstr "Erro a instanciar cena de %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Change Default Type" @@ -5661,8 +5659,8 @@ msgid "" "Drag & drop + Shift : Add node as sibling\n" "Drag & drop + Alt : Change node type" msgstr "" -"Arrastar & largar + Shift : Adiciona Nó como irmão\n" -"Arrastar & largar + Alt : Altera o tipo de Nó" +"Arrastar & largar + Shift : Adiciona nó como irmão\n" +"Arrastar & largar + Alt : Altera o tipo de nó" #: editor/plugins/collision_polygon_editor_plugin.cpp msgid "Create Polygon3D" @@ -5849,9 +5847,8 @@ msgid "Mesh is empty!" msgstr "A Malha está vazia!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Criar irmão de colisão Trimesh" +msgstr "Não consegui criar uma forma de colisão Trimesh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5859,7 +5856,7 @@ msgstr "Criar corpo estático Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "This doesn't work on scene root!" -msgstr "Não funciona na raiz da Cena!" +msgstr "Isto não funciona na raiz da cena!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Shape" @@ -5867,30 +5864,28 @@ msgstr "Criar Forma Estática Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." -msgstr "" +msgstr "Não consigo criar uma única forma convexa para a raiz da cena." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Não consegui criar uma forma única de colisão convexa." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Criar Forma(s) Convexa(s)" +msgstr "Criar Forma Convexa Simples" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." msgstr "" +"Não consigo criar múltiplas formas de colisão convexas para a raiz da cena." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "Impossível criar pasta." +msgstr "Não consegui criar qualquer forma de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Criar Forma(s) Convexa(s)" +msgstr "Criar Múltiplas Formas Convexas" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -5946,38 +5941,45 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Cria um StaticBody e atribui-lhe automaticamente uma forma de colisão " +"baseada em polígonos.\n" +"Esta é a mais precisa (mas mais lenta) opção para deteção de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" -msgstr "Criar irmão de colisão Trimesh" +msgstr "Criar Irmão de Colisão Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Cria uma forma de colisão baseada em polígonos.\n" +"Esta é a mais precisa (mas mais lenta) opção para deteção de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "Criar Irmão(s) de Colisão Convexa" +msgstr "Criar Irmãos Únicos de Colisão Convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Cria uma única forma de colisão convexa.\n" +"Esta é a mais rápida (mas menos precisa) opção para deteção de colisão." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Criar Irmão(s) de Colisão Convexa" +msgstr "Criar Vários Irmãos de Colisão Convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Cria uma forma de colisão baseada em polígonos.\n" +"Esta uma opção de desempenho intermédio entre as duas opções acima." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5990,6 +5992,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"Cria uma malha de contorno estática. A malha de contorno terá as suas " +"normais automaticamente invertidas.\n" +"Pode ser usada no lugar da propriedade Aumentar de SpatialMaterial quando " +"não é possível usar essa propriedade." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -6046,11 +6052,11 @@ msgstr "Importar da Cena" #: editor/plugins/mesh_library_editor_plugin.cpp msgid "Update from Scene" -msgstr "Atualizar da Cena" +msgstr "Atualizar a partir da Cena" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." -msgstr "Fonte da Malha não especificada (nem MultiMesh no Nó)." +msgstr "Fonte da Malha não especificada (nem MultiMesh no nó)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and MultiMesh contains no Mesh)." @@ -6558,7 +6564,7 @@ msgstr "Sincronizar Ossos com Polígono" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" -msgstr "ERRO: Não foi possível carregar recurso!" +msgstr "ERRO: Não consegui carregar recurso!" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "Add Resource" @@ -6628,7 +6634,7 @@ msgstr "Erro ao escrever TextFile:" #: editor/plugins/script_editor_plugin.cpp msgid "Could not load file at:" -msgstr "Impossível carregar ficheiro em:" +msgstr "Não consigo carregar ficheiro em:" #: editor/plugins/script_editor_plugin.cpp msgid "Error saving file!" @@ -6664,7 +6670,7 @@ msgstr "Guardar Ficheiro Como..." #: editor/plugins/script_editor_plugin.cpp msgid "Can't obtain the script for running." -msgstr "Não é possível obter o script para executar." +msgstr "Não consigo obter o script para executar." #: editor/plugins/script_editor_plugin.cpp msgid "Script failed reloading, check console for errors." @@ -6927,7 +6933,7 @@ msgstr "Só podem ser largados recursos do Sistema de Ficheiros ." #: editor/plugins/script_text_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Can't drop nodes because script '%s' is not used in this scene." -msgstr "Impossível largar nós porque o script '%s' não é usado neste cena." +msgstr "Não consigo largar nós porque o script '%s' não é usado neste cena." #: editor/plugins/script_text_editor.cpp msgid "Lookup Symbol" @@ -7100,7 +7106,7 @@ msgstr "Shader" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "This skeleton has no bones, create some children Bone2D nodes." -msgstr "Este esqueleto não tem ossos, crie alguns nós Bone2D filhos." +msgstr "Este esqueleto não tem ossos, crie alguns nós filhos Bone2D." #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Create Rest Pose from Bones" @@ -7276,7 +7282,7 @@ msgstr "Sem parente para criar instância de filho." #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "This operation requires a single selected node." -msgstr "Esta operação requer um único Nó selecionado." +msgstr "Esta operação requer um único nó selecionado." #: editor/plugins/spatial_editor_plugin.cpp msgid "Lock View Rotation" @@ -7608,7 +7614,7 @@ msgstr "Sprite está vazia!" #: editor/plugins/sprite_editor_plugin.cpp msgid "Can't convert a sprite using animation frames to mesh." -msgstr "Impossível converter sprite com frames de animação para malha." +msgstr "Não consigo converter sprite com frames de animação para malha." #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't replace by mesh." @@ -7620,7 +7626,7 @@ msgstr "Converter para Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create polygon." -msgstr "Geometria inválida, impossível criar polígono." +msgstr "Geometria inválida, não consigo criar polígono." #: editor/plugins/sprite_editor_plugin.cpp msgid "Convert to Polygon2D" @@ -7628,19 +7634,19 @@ msgstr "Converter para Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create collision polygon." -msgstr "Geometria inválida, impossível criar polígono de colisão." +msgstr "Geometria inválida, não consigo criar polígono de colisão." #: editor/plugins/sprite_editor_plugin.cpp msgid "Create CollisionPolygon2D Sibling" -msgstr "Criar irmão de CollisionPolygon2D" +msgstr "Criar Irmão de CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't create light occluder." -msgstr "Geometria inválida, impossível criar oclusor de luz." +msgstr "Geometria inválida, não consigo criar oclusor de luz." #: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" -msgstr "Criar irmão de LightOccluder2D" +msgstr "Criar Irmão de LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite" @@ -8083,7 +8089,7 @@ msgstr "Criar a partir da Cena" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from Scene" -msgstr "Fundir a partir da Cena" +msgstr "Combinar a partir da Cena" #: editor/plugins/tile_set_editor_plugin.cpp msgid "New Single Tile" @@ -8223,11 +8229,11 @@ msgstr "Não selecionou uma textura para remover." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene? This will overwrite all current tiles." -msgstr "Criar a partir de cena? Irá substituir todos os Tiles atuais." +msgstr "Criar a partir de cena? Irá substituir todos os tiles atuais." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Merge from scene?" -msgstr "Fundir a partir da Cena?" +msgstr "Combinar a partir da cena?" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Remove Texture" @@ -9437,7 +9443,7 @@ msgstr "Exportar todos os recursos do Projeto" #: editor/project_export.cpp msgid "Export selected scenes (and dependencies)" -msgstr "Exportar Cenas (e dependências) selecionadas" +msgstr "Exportar cenas (e dependências) selecionadas" #: editor/project_export.cpp msgid "Export selected resources (and dependencies)" @@ -9489,7 +9495,7 @@ msgstr "Personalizado (separados por vírgula):" #: editor/project_export.cpp msgid "Feature List:" -msgstr "Lista de características:" +msgstr "Lista de Características:" #: editor/project_export.cpp msgid "Script" @@ -9556,35 +9562,31 @@ msgid "Export With Debug" msgstr "Exportar com Depuração" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "O Caminho não existe." +msgstr "O caminho especificado não existe." #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "Erro ao abrir ficheiro comprimido, não está no formato ZIP." +msgstr "Erro ao abrir ficheiro comprimido (não está no formato ZIP)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." msgstr "" -"Ficheiro de projeto '.zip' inválido, não contém um ficheiro 'project.godot'." +"Ficheiro de projeto \".zip\" inválido, não contém um ficheiro \"project.godot" +"\"." #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "Por favor escolha uma pasta vazia." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "Escolha um ficheiro 'project.godot' ou '.zip'." +msgstr "Escolha um ficheiro \"project.godot\" ou \".zip\"." #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." -msgstr "A pasta já contém um projeto Godot." +msgstr "Esta diretoria já contém um projeto Godot." #: editor/project_manager.cpp msgid "New Game Project" @@ -9600,7 +9602,7 @@ msgstr "Nome do Projeto Inválido." #: editor/project_manager.cpp msgid "Couldn't create folder." -msgstr "Impossível criar pasta." +msgstr "Não consigo criar pasta." #: editor/project_manager.cpp msgid "There is already a folder in this path with the specified name." @@ -9619,16 +9621,16 @@ msgid "" "Couldn't load project.godot in project path (error %d). It may be missing or " "corrupted." msgstr "" -"Não foi possível carregar o project.godot no caminho do projeto (erro %d). " +"Não consegui carregar o project.godot no caminho do projeto (erro %d). " "Poderá estar em falta ou corrompido." #: editor/project_manager.cpp msgid "Couldn't edit project.godot in project path." -msgstr "Impossível editar project.godot no Caminho do Projeto." +msgstr "Não consigo editar project.godot no caminho do projeto." #: editor/project_manager.cpp msgid "Couldn't create project.godot in project path." -msgstr "Impossível criar project.godot no Caminho do Projeto." +msgstr "Não consigo criar project.godot no caminho do projeto." #: editor/project_manager.cpp msgid "Rename Project" @@ -9709,7 +9711,7 @@ msgstr "" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" -"O Renderizador pode ser alterado mais tarde, mas as cenas poderão ter de ser " +"O renderizador pode ser alterado mais tarde, mas as cenas poderão ter de ser " "ajustadas." #: editor/project_manager.cpp @@ -9726,7 +9728,7 @@ msgstr "Erro: Projeto inexistente no sistema de ficheiros." #: editor/project_manager.cpp msgid "Can't open project at '%s'." -msgstr "Impossível abrir Projeto em '%s'." +msgstr "Não consigo abrir projeto em '%s'." #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -9788,8 +9790,8 @@ msgid "" "Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" -"Impossível executar o Projeto: Cena principal não definida.\n" -"Edite o Projeto e defina a Cena principal em Definições do Projeto dentro da " +"Não consigo executar o projeto: cena principal não definida.\n" +"Edite o projeto e defina a cena principal em Definições do Projeto dentro da " "categoria \"Aplicação\"." #: editor/project_manager.cpp @@ -9797,8 +9799,8 @@ msgid "" "Can't run project: Assets need to be imported.\n" "Please edit the project to trigger the initial import." msgstr "" -"Impossível executar o Projeto: Ativos têm de ser importados.\n" -"Edite o Projeto para desencadear a importação inicial." +"Não consigo executar o projeto: Ativos têm de ser importados.\n" +"Edite o projeto para desencadear a importação inicial." #: editor/project_manager.cpp msgid "Are you sure to run %d projects at once?" @@ -9883,7 +9885,7 @@ msgstr "Reiniciar agora" #: editor/project_manager.cpp msgid "Can't run project" -msgstr "Impossível executar o Projeto" +msgstr "Não consigo executar o Projeto" #: editor/project_manager.cpp msgid "" @@ -10282,9 +10284,8 @@ msgid "Suffix" msgstr "Sufixo" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "Expressões Regulares" +msgstr "Usar Expressões Regulares" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10296,15 +10297,15 @@ msgstr "Substituto" #: editor/rename_dialog.cpp msgid "Node name" -msgstr "Nome do Nó" +msgstr "Nome do nó" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" -msgstr "Nome do parente do Nó, se disponível" +msgstr "Nome do parente do nó, se disponível" #: editor/rename_dialog.cpp msgid "Node type" -msgstr "Tipo de Nó" +msgstr "Tipo de nó" #: editor/rename_dialog.cpp msgid "Current scene name" @@ -10312,7 +10313,7 @@ msgstr "Nome da cena atual" #: editor/rename_dialog.cpp msgid "Root node name" -msgstr "Nome do Nó raiz" +msgstr "Nome do nó raiz" #: editor/rename_dialog.cpp msgid "" @@ -10323,7 +10324,6 @@ msgstr "" "Comparar opções do contador." #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" msgstr "Contador por nível" @@ -10364,14 +10364,12 @@ msgid "Keep" msgstr "Manter" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" -msgstr "CamelCase para under_scored" +msgstr "PascalCase para snake_case" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" -msgstr "under_scored para CamelCase" +msgstr "snake_case para PascalCase" #: editor/rename_dialog.cpp msgid "Case" @@ -10390,14 +10388,12 @@ msgid "Reset" msgstr "Repor" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Expressões Regulares" +msgstr "Erro em Expressão Regular" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Carateres válidos:" +msgstr "No carácter %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10421,35 +10417,35 @@ msgstr "Modo Execução:" #: editor/run_settings_dialog.cpp msgid "Current Scene" -msgstr "Cena atual" +msgstr "Cena Atual" #: editor/run_settings_dialog.cpp msgid "Main Scene" -msgstr "Cena principal" +msgstr "Cena Principal" #: editor/run_settings_dialog.cpp msgid "Main Scene Arguments:" -msgstr "Argumentos da Cena principal:" +msgstr "Argumentos da Cena Principal:" #: editor/run_settings_dialog.cpp msgid "Scene Run Settings" -msgstr "Configurações de execução da Cena" +msgstr "Configurações de Execução da Cena" #: editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." -msgstr "Nenhum parente para instanciar a Cena." +msgstr "Nenhum parente para instância das cenas." #: editor/scene_tree_dock.cpp msgid "Error loading scene from %s" -msgstr "Erro ao carregar a Cena de %s" +msgstr "Erro ao carregar a cena de %s" #: editor/scene_tree_dock.cpp msgid "" "Cannot instance the scene '%s' because the current scene exists within one " "of its nodes." msgstr "" -"Impossível instanciar a Cena '%s' porque a Cena atual existe dentro de um " -"dos seus Nós." +"Não consigo instanciar a cena '%s' porque a cena atual existe dentro de um " +"dos seus nós." #: editor/scene_tree_dock.cpp msgid "Instance Scene(s)" @@ -10461,7 +10457,7 @@ msgstr "Substituir com Cena-Ramo" #: editor/scene_tree_dock.cpp msgid "Instance Child Scene" -msgstr "Instanciar Cena filha" +msgstr "Instanciar Cena Filha" #: editor/scene_tree_dock.cpp msgid "Clear Script" @@ -10485,15 +10481,16 @@ msgstr "Duplicar Nó(s)" #: editor/scene_tree_dock.cpp msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." -msgstr "Impossível mudar nó em cenas herdadas, a ordem dos nós não pode mudar." +msgstr "" +"Não consigo mudar nó em cenas herdadas, a ordem dos nós não pode mudar." #: editor/scene_tree_dock.cpp msgid "Node must belong to the edited scene to become root." -msgstr "O nó deve pertencer à cena editada para se tornar root." +msgstr "O nó deve pertencer à cena editada para se tornar raiz." #: editor/scene_tree_dock.cpp msgid "Instantiated scenes can't become root" -msgstr "Cenas instantâneas não se podem tornar root" +msgstr "Cenas instanciadas não se podem tornar raízes" #: editor/scene_tree_dock.cpp msgid "Make node as Root" @@ -10501,38 +10498,38 @@ msgstr "Tornar Nó Raiz" #: editor/scene_tree_dock.cpp msgid "Delete %d nodes?" -msgstr "Apagar %d Nós?" +msgstr "Apagar %d nós?" #: editor/scene_tree_dock.cpp msgid "Delete the root node \"%s\"?" -msgstr "Apagar Nó raiz \"%s\"?" +msgstr "Apagar nó raiz \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\" and its children?" -msgstr "Apagar Nó \"%s\" e filhos?" +msgstr "Apagar nó \"%s\" e filhos?" #: editor/scene_tree_dock.cpp msgid "Delete node \"%s\"?" -msgstr "Apagar Nó \"%s\"?" +msgstr "Apagar nó \"%s\"?" #: editor/scene_tree_dock.cpp msgid "Can not perform with the root node." -msgstr "Impossível executar com o Nó raiz." +msgstr "Não consigo executar com o nó raiz." #: editor/scene_tree_dock.cpp msgid "This operation can't be done on instanced scenes." -msgstr "Esta operação não pode ser feita numa Cena instanciada." +msgstr "Esta operação não pode ser feita numa cena instanciada." #: editor/scene_tree_dock.cpp msgid "Save New Scene As..." -msgstr "Guardar nova Cena como..." +msgstr "Guardar Nova Cena Como..." #: editor/scene_tree_dock.cpp msgid "" "Disabling \"editable_instance\" will cause all properties of the node to be " "reverted to their default." msgstr "" -"Desativar \"editable_instance\" irá reverter todas as propriedades do Nó " +"Desativar \"editable_instance\" irá reverter todas as propriedades do nó " "para os seus valores padrão." #: editor/scene_tree_dock.cpp @@ -10549,7 +10546,7 @@ msgstr "Tornar Local" #: editor/scene_tree_dock.cpp msgid "New Scene Root" -msgstr "Nova Raiz de Cena" +msgstr "Nova Raiz da Cena" #: editor/scene_tree_dock.cpp msgid "Create Root Node:" @@ -10573,11 +10570,11 @@ msgstr "Outro Nó" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" -msgstr "Impossível operar em Nós de uma Cena externa!" +msgstr "Não consigo operar em nós de uma cena externa!" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes the current scene inherits from!" -msgstr "Impossível operar em Nós herdados pela Cena atual!" +msgstr "Não consigo operar em nós herdados pela cena atual!" #: editor/scene_tree_dock.cpp msgid "Attach Script" @@ -10596,16 +10593,16 @@ msgid "" "Couldn't save new scene. Likely dependencies (instances) couldn't be " "satisfied." msgstr "" -"Impossível guardar nova Cena. Provavelmente dependências (instâncias) não " +"Não consigo guardar nova cena. Provavelmente dependências (instâncias) não " "foram satisfeitas." #: editor/scene_tree_dock.cpp msgid "Error saving scene." -msgstr "Erro ao guardar Cena." +msgstr "Erro ao guardar cena." #: editor/scene_tree_dock.cpp msgid "Error duplicating scene to save it." -msgstr "Erro ao duplicar Cena para guardar." +msgstr "Erro ao duplicar cena para guardar." #: editor/scene_tree_dock.cpp msgid "Sub-Resources" @@ -10629,7 +10626,7 @@ msgstr "Abrir documentação" #: editor/scene_tree_dock.cpp msgid "Add Child Node" -msgstr "Adicionar Nó filho" +msgstr "Adicionar Nó Filho" #: editor/scene_tree_dock.cpp msgid "Expand/Collapse All" @@ -10645,15 +10642,15 @@ msgstr "Recolocar o Novo Nó" #: editor/scene_tree_dock.cpp msgid "Make Scene Root" -msgstr "Tornar Nó Raiz" +msgstr "Tornar Raiz da Cena" #: editor/scene_tree_dock.cpp msgid "Merge From Scene" -msgstr "Fundir a partir da Cena" +msgstr "Combinar a partir da Cena" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Save Branch as Scene" -msgstr "Guardar ramo como Cena" +msgstr "Guardar Ramo como Cena" #: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" @@ -10672,16 +10669,16 @@ msgid "" "Instance a scene file as a Node. Creates an inherited scene if no root node " "exists." msgstr "" -"Instanciar Ficheiro de Cena como Nó. Cria uma Cena herdada se não existir Nó " -"raiz." +"Instanciar um ficheiro de cena como um Nó. Cria uma cena herdada se não " +"existir nó raiz." #: editor/scene_tree_dock.cpp msgid "Attach a new or existing script for the selected node." -msgstr "Anexar Script novo ou existente ao Nó selecionado." +msgstr "Anexar script novo ou existente ao nó selecionado." #: editor/scene_tree_dock.cpp msgid "Clear a script for the selected node." -msgstr "Limpar Script do Nó selecionado." +msgstr "Limpar script do nó selecionado." #: editor/scene_tree_dock.cpp msgid "Remote" @@ -10713,7 +10710,7 @@ msgstr "(A Ligar de)" #: editor/scene_tree_editor.cpp msgid "Node configuration warning:" -msgstr "Aviso de configuração do Nó:" +msgstr "Aviso de configuração do nó:" #: editor/scene_tree_editor.cpp msgid "" @@ -10773,7 +10770,7 @@ msgstr "" #: editor/scene_tree_editor.cpp msgid "Invalid node name, the following characters are not allowed:" -msgstr "Nome de Nó inválido, os carateres seguintes não são permitidos:" +msgstr "Nome de nó inválido, os caracteres seguintes não são permitidos:" #: editor/scene_tree_editor.cpp msgid "Rename Node" @@ -10785,7 +10782,7 @@ msgstr "Árvore de Cena (Nós):" #: editor/scene_tree_editor.cpp msgid "Node Configuration Warning!" -msgstr "Aviso de configuração de Nó!" +msgstr "Aviso de Configuração de Nó!" #: editor/scene_tree_editor.cpp msgid "Select a Node" @@ -10825,7 +10822,7 @@ msgstr "Erro ao carregar Modelo '%s'" #: editor/script_create_dialog.cpp msgid "Error - Could not create script in filesystem." -msgstr "Erro - Impossível criar Script no Sistema de Ficheiros." +msgstr "Erro - Não consigo criar script no sistema de ficheiros." #: editor/script_create_dialog.cpp msgid "Error loading script from %s" @@ -10860,9 +10857,8 @@ msgid "Invalid inherited parent name or path." msgstr "Nome ou Caminho de parente herdado inválido." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "Script é válido." +msgstr "Caminho/nome de Script é válido." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -10953,7 +10949,6 @@ msgid "Copy Error" msgstr "Copiar Erro" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" msgstr "Memória Vídeo" @@ -11035,7 +11030,7 @@ msgstr "Tipo de controlo clicado:" #: editor/script_editor_debugger.cpp msgid "Live Edit Root:" -msgstr "Raiz de edição ao vivo:" +msgstr "Raiz de Edição ao Vivo:" #: editor/script_editor_debugger.cpp msgid "Set From Tree" @@ -11220,8 +11215,8 @@ msgstr "Formato de dicionário de instância inválido (falta @path)" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (can't load script at @path)" msgstr "" -"Formato de dicionário de instância inválido (não foi possível carregar o " -"Script em @path)" +"Formato de dicionário de instância inválido (não consigo carregar o script " +"em @path)" #: modules/gdscript/gdscript_functions.cpp msgid "Invalid instance dictionary format (invalid script at @path)" @@ -11436,7 +11431,7 @@ msgid "" "A node yielded without working memory, please read the docs on how to yield " "properly!" msgstr "" -"Um Nó fez yield sem memória para usar, por favor leia os documentos para " +"Um nó fez yield sem memória para usar, por favor leia os documentos para " "saber como fazer yield corretamente!" #: modules/visual_script/visual_script.cpp @@ -11444,7 +11439,7 @@ msgid "" "Node yielded, but did not return a function state in the first working " "memory." msgstr "" -"O Nó fez yield, mas não retornou um estado de Função na primeira memória de " +"O nó fez yield, mas não retornou um estado de função na primeira memória de " "trabalho." #: modules/visual_script/visual_script.cpp @@ -11453,15 +11448,15 @@ msgid "" "your node please." msgstr "" "O valor de retorno deve ser atribuído ao primeiro elemento da memória de " -"trabalho de Nós! Corrija o seu Nó por favor." +"trabalho de nós! Corrija o seu nó por favor." #: modules/visual_script/visual_script.cpp msgid "Node returned an invalid sequence output: " -msgstr "O Nó retornou uma sequência de saída (output) incorreta: " +msgstr "O nó retornou uma sequência de saída (output) incorreta: " #: modules/visual_script/visual_script.cpp msgid "Found sequence bit but not the node in the stack, report bug!" -msgstr "Foi encontrada o bit da sequência mas não o Nó na pilha, relate o bug!" +msgstr "Foi encontrada o bit da sequência mas não o nó na pilha, relate o bug!" #: modules/visual_script/visual_script.cpp msgid "Stack overflow with stack depth: " @@ -11589,11 +11584,11 @@ msgstr "" #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a simple reference to the node." -msgstr "Pressione %s para largar uma referência simples no Nó." +msgstr "Pressione %s para largar uma referência simples no nó." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a simple reference to the node." -msgstr "Pressione Ctrl para largar uma referência simples no Nó." +msgstr "Pressione Ctrl para largar uma referência simples no nó." #: modules/visual_script/visual_script_editor.cpp msgid "Hold %s to drop a Variable Setter." @@ -11601,7 +11596,7 @@ msgstr "Pressione %s para largar um Setter variável." #: modules/visual_script/visual_script_editor.cpp msgid "Hold Ctrl to drop a Variable Setter." -msgstr "Pressione Ctrl para largar um Setter variável." +msgstr "Pressione Ctrl para largar um Setter Variável." #: modules/visual_script/visual_script_editor.cpp msgid "Add Preload Node" @@ -11609,14 +11604,15 @@ msgstr "Adicionar Nó de Pré-carregamento" #: modules/visual_script/visual_script_editor.cpp msgid "Add Node(s) From Tree" -msgstr "Adicionar Nó da Árvore" +msgstr "Adicionar Nó(s) da Árvore" #: modules/visual_script/visual_script_editor.cpp msgid "" "Can't drop properties because script '%s' is not used in this scene.\n" "Drop holding 'Shift' to just copy the signature." msgstr "" -"Impossível largar propriedades porque o script '%s' não é usado neste cena.\n" +"Não consigo largar propriedades porque o script '%s' não é usado neste " +"cena.\n" "Largue com 'Shift' para copiar apenas a assinatura." #: modules/visual_script/visual_script_editor.cpp @@ -11649,11 +11645,11 @@ msgstr "Desconectar Nós" #: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Data" -msgstr "Conectar Dados de Nó" +msgstr "Conectar Dados do Nó" #: modules/visual_script/visual_script_editor.cpp msgid "Connect Node Sequence" -msgstr "Conectar Sequência de Nós" +msgstr "Conectar Sequência do Nó" #: modules/visual_script/visual_script_editor.cpp msgid "Script already has function '%s'" @@ -11669,7 +11665,7 @@ msgstr "Redimensionar Comentário" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." -msgstr "Impossível copiar o Nó Função." +msgstr "Não consigo copiar o nó função." #: modules/visual_script/visual_script_editor.cpp msgid "Clipboard is empty!" @@ -11681,11 +11677,11 @@ msgstr "Colar Nós VisualScript" #: modules/visual_script/visual_script_editor.cpp msgid "Can't create function with a function node." -msgstr "Impossível criar função com um nó função." +msgstr "Não consigo criar função com um nó função." #: modules/visual_script/visual_script_editor.cpp msgid "Can't create function of nodes from nodes of multiple functions." -msgstr "Impossível criar função de nós com nós de várias funções." +msgstr "Não consigo criar função de nós a partir de nós de várias funções." #: modules/visual_script/visual_script_editor.cpp msgid "Select at least one node with sequence port." @@ -11801,7 +11797,7 @@ msgstr "Caminho não conduz Nó!" #: modules/visual_script/visual_script_func_nodes.cpp msgid "Invalid index property name '%s' in node %s." -msgstr "Nome de Propriedade índice '%s' inválido em Nó %s." +msgstr "Nome de propriedade índice '%s' inválido no nó %s." #: modules/visual_script/visual_script_nodes.cpp msgid ": Invalid argument of type: " @@ -11821,15 +11817,16 @@ msgstr "VariableSet não encontrado no script: " #: modules/visual_script/visual_script_nodes.cpp msgid "Custom node has no _step() method, can't process graph." -msgstr "Impossível processar gráfico, Nó personalizado sem método _step()." +msgstr "" +"Nó personalizado não tem método _step(), não podendo processar um gráfico." #: modules/visual_script/visual_script_nodes.cpp msgid "" "Invalid return value from _step(), must be integer (seq out), or string " "(error)." msgstr "" -"Valor de retorno de _step() inválido, tem de ser inteiro (seq out), ou " -"string (error)." +"Retorno de valor inválido a partir do _step(), tem de ser inteiro (seq out), " +"ou string (error)." #: modules/visual_script/visual_script_property_selector.cpp msgid "Search VisualScript" @@ -11854,15 +11851,16 @@ msgstr "Os segmentos de pacote devem ser de comprimento diferente de zero." #: platform/android/export/export.cpp msgid "The character '%s' is not allowed in Android application package names." msgstr "" -"O caráter '%s' não é permitido em nomes de pacotes de aplicações Android." +"O carácter '%s' não é permitido em nomes de pacotes de aplicações Android." #: platform/android/export/export.cpp msgid "A digit cannot be the first character in a package segment." -msgstr "Um dígito não pode ser o primeiro caráter num segmento de pacote." +msgstr "Um dígito não pode ser o primeiro carácter num segmento de pacote." #: platform/android/export/export.cpp msgid "The character '%s' cannot be the first character in a package segment." -msgstr "O caráter '%s' não pode ser o primeiro caráter num segmento de pacote." +msgstr "" +"O carácter '%s' não pode ser o primeiro carácter num segmento de pacote." #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." @@ -11957,13 +11955,13 @@ msgstr "Falta o identificador." #: platform/iphone/export/export.cpp msgid "The character '%s' is not allowed in Identifier." -msgstr "O caráter \"%s\" não é permitido no Identificador." +msgstr "O carácter \"%s\" não é permitido no Identificador." #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." msgstr "" -"ID da equipa da App Store não especificado - não é possível configurar o " -"projecto." +"ID da equipa da App Store não especificado - não consigo configurar o " +"projeto." #: platform/iphone/export/export.cpp msgid "Invalid Identifier:" @@ -11987,11 +11985,11 @@ msgstr "Executar HTML exportado no Navegador padrão do sistema." #: platform/javascript/export/export.cpp msgid "Could not write file:" -msgstr "Impossível escrever Ficheiro:" +msgstr "Não consigo escrever ficheiro:" #: platform/javascript/export/export.cpp msgid "Could not open template for export:" -msgstr "Impossível abrir Modelo para exportar:" +msgstr "Não consigo abrir modelo para exportação:" #: platform/javascript/export/export.cpp msgid "Invalid export template:" @@ -11999,11 +11997,11 @@ msgstr "Modelo de exportação inválido:" #: platform/javascript/export/export.cpp msgid "Could not read custom HTML shell:" -msgstr "Impossível ler Shell HTML personalizado:" +msgstr "Não consigo ler shell HTML personalizado:" #: platform/javascript/export/export.cpp msgid "Could not read boot splash image file:" -msgstr "Impossível ler Ficheiro de imagem do ecrã de inicialização:" +msgstr "Não consigo ler ficheiro de imagem do ecrã de inicialização:" #: platform/javascript/export/export.cpp msgid "Using default boot splash image." @@ -12090,8 +12088,7 @@ msgid "" "Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " "define its shape." msgstr "" -"Este nó não tem forma, não conseguindo assim colidir ou interagir com outros " -"objetos.\n" +"Este nó não tem forma, não podendo colidir ou interagir com outros objetos.\n" "Considere adicionar nós CollisionShape2D ou CollisionPolygon2D como filhos " "para definir a sua forma." @@ -12101,7 +12098,7 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" -"CollisionPolygon2D serve apenas para fornecer uma forma de colisão a um Nó " +"CollisionPolygon2D serve apenas para fornecer uma forma de colisão a um nó " "derivado de CollisionObject2D. Use-o apenas como um filho de Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. para lhes dar uma forma." @@ -12115,7 +12112,7 @@ msgid "" "CollisionObject2D derived node. Please only use it as a child of Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." msgstr "" -"CollisionShape2D serve apenas para fornecer uma forma de colisão a um Nó " +"CollisionShape2D serve apenas para fornecer uma forma de colisão a um nó " "derivado de CollisionObject2D. Use-o apenas como um filho de Area2D, " "StaticBody2D, RigidBody2D, KinematicBody2D, etc. para lhes dar uma forma." @@ -12159,22 +12156,22 @@ msgid "" "A NavigationPolygon resource must be set or created for this node to work. " "Please set a property or draw a polygon." msgstr "" -"Um recurso NavigationPolygon tem de ser definido ou criado para este Nó " -"funcionar. Defina a Propriedade ou desenhe o Polígono." +"Um recurso NavigationPolygon tem de ser definido ou criado para este nó " +"funcionar. Defina a propriedade ou desenhe o polígono." #: scene/2d/navigation_polygon.cpp msgid "" "NavigationPolygonInstance must be a child or grandchild to a Navigation2D " "node. It only provides navigation data." msgstr "" -"NavigationPolygonInstance tem de ser filho ou neto de um Nó Navigation2D. " +"NavigationPolygonInstance tem de ser filho ou neto de um nó Navigation2D. " "Apenas fornece dados de navegação." #: scene/2d/parallax_layer.cpp msgid "" "ParallaxLayer node only works when set as child of a ParallaxBackground node." msgstr "" -"O Nó ParallaxLayer só funciona quando definido como filho de um Nó " +"O nó ParallaxLayer só funciona quando definido como filho de um nó " "ParallaxBackground." #: scene/2d/particles_2d.cpp @@ -12184,7 +12181,7 @@ msgid "" "CPUParticles\" option for this purpose." msgstr "" "Partículas baseadas em GPU não são suportadas pelo driver de vídeo GLES2.\n" -"Use o Nó CPUParticles2D. Pode usar a opção \"Converter em CPUParticles\" " +"Use o nó CPUParticles2D. Pode usar a opção \"Converter em CPUParticles\" " "para este efeito." #: scene/2d/particles_2d.cpp scene/3d/particles.cpp @@ -12206,7 +12203,7 @@ msgstr "" #: scene/2d/path_2d.cpp msgid "PathFollow2D only works when set as a child of a Path2D node." msgstr "" -"PathFollow2D apenas funciona quando definido como filho de um Nó Path2D." +"PathFollow2D apenas funciona quando definido como filho de um nó Path2D." #: scene/2d/physics_body_2d.cpp msgid "" @@ -12214,14 +12211,14 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" -"Mudanças no tamanho do RigidBody2D (em modos caráter ou rígido) serão " +"Mudanças no tamanho do RigidBody2D (em modos carácter ou rígido) serão " "reescritas pelo motor de física na execução.\n" "Mude antes o tamanho das formas de colisão filhas." #: scene/2d/remote_transform_2d.cpp msgid "Path property must point to a valid Node2D node to work." msgstr "" -"Para funcionar, a Propriedade Caminho tem de apontar para um Nó Node2D " +"Para funcionar, a Propriedade Caminho tem de apontar para um nó Node2D " "válido." #: scene/2d/skeleton_2d.cpp @@ -12253,15 +12250,15 @@ msgid "" "as parent." msgstr "" "VisibilityEnabler2D funciona melhor quando usado diretamente como parente na " -"Cena raiz editada." +"cena raiz editada." #: scene/3d/arvr_nodes.cpp msgid "ARVRCamera must have an ARVROrigin node as its parent." -msgstr "ARVRCamera precisa de um Nó ARVROrigin como parente." +msgstr "ARVRCamera precisa de um nó ARVROrigin como parente." #: scene/3d/arvr_nodes.cpp msgid "ARVRController must have an ARVROrigin node as its parent." -msgstr "ARVRController precisa de um Nó ARVROrigin como parente." +msgstr "ARVRController precisa de um nó ARVROrigin como parente." #: scene/3d/arvr_nodes.cpp msgid "" @@ -12273,7 +12270,7 @@ msgstr "" #: scene/3d/arvr_nodes.cpp msgid "ARVRAnchor must have an ARVROrigin node as its parent." -msgstr "ARVRAnchor precisa de um Nó ARVROrigin como parente." +msgstr "ARVRAnchor precisa de um nó ARVROrigin como parente." #: scene/3d/arvr_nodes.cpp msgid "" @@ -12285,7 +12282,7 @@ msgstr "" #: scene/3d/arvr_nodes.cpp msgid "ARVROrigin requires an ARVRCamera child node." -msgstr "ARVROrigin exige um Nó filho ARVRCamera." +msgstr "ARVROrigin exige um nó filho ARVRCamera." #: scene/3d/baked_lightmap.cpp msgid "%d%%" @@ -12317,8 +12314,7 @@ msgid "" "Consider adding a CollisionShape or CollisionPolygon as a child to define " "its shape." msgstr "" -"Este nó não tem forma, não conseguindo assim colidir ou interagir com outros " -"objetos.\n" +"Este nó não tem forma, não podendo colidir ou interagir com outros objetos.\n" "Considere adicionar nós CollisionShape ou CollisionPolygon como filhos para " "definir a sua forma." @@ -12328,7 +12324,7 @@ msgid "" "CollisionObject derived node. Please only use it as a child of Area, " "StaticBody, RigidBody, KinematicBody, etc. to give them a shape." msgstr "" -"CollisionPolygon serve apenas para fornecer uma forma de colisão a um Nó " +"CollisionPolygon serve apenas para fornecer uma forma de colisão a um nó " "derivado de CollisionObject. Use-o apenas como um filho de Area, StaticBody, " "RigidBody, KinematicBody, etc. para lhes dar uma forma." @@ -12342,7 +12338,7 @@ msgid "" "derived node. Please only use it as a child of Area, StaticBody, RigidBody, " "KinematicBody, etc. to give them a shape." msgstr "" -"CollisionShape serve apenas para fornecer uma forma de colisão a um Nó " +"CollisionShape serve apenas para fornecer uma forma de colisão a um nó " "derivado de CollisionObject. Use-o apenas como um filho de Area, StaticBody, " "RigidBody, KinematicBody, etc. para lhes dar uma forma." @@ -12393,7 +12389,7 @@ msgstr "Uma SpotLight com ângulo superior a 90 graus não cria sombras." #: scene/3d/navigation_mesh.cpp msgid "A NavigationMesh resource must be set or created for this node to work." msgstr "" -"Um recurso NavigationMesh tem de ser definido ou criado para este Nó " +"Um recurso NavigationMesh tem de ser definido ou criado para este nó " "funcionar." #: scene/3d/navigation_mesh.cpp @@ -12401,7 +12397,7 @@ msgid "" "NavigationMeshInstance must be a child or grandchild to a Navigation node. " "It only provides navigation data." msgstr "" -"NavigationMeshInstance tem de ser filho ou neto de um Nó Navigation. Apenas " +"NavigationMeshInstance tem de ser filho ou neto de um nó Navigation. Apenas " "fornece dados de navegação." #: scene/3d/particles.cpp @@ -12411,7 +12407,7 @@ msgid "" "\" option for this purpose." msgstr "" "Partículas baseadas em GPU não são suportadas pelo driver de vídeo GLES2.\n" -"Use o Nó CPUParticles. Pode usar a opção \"Converter em CPUParticles\" para " +"Use o nó CPUParticles. Pode usar a opção \"Converter em CPUParticles\" para " "este efeito." #: scene/3d/particles.cpp @@ -12430,7 +12426,7 @@ msgstr "" #: scene/3d/path.cpp msgid "PathFollow only works when set as a child of a Path node." -msgstr "PathFollow apenas funciona quando definido como filho de um Nó Path." +msgstr "PathFollow apenas funciona quando definido como filho de um nó Path." #: scene/3d/path.cpp msgid "" @@ -12446,7 +12442,7 @@ msgid "" "by the physics engine when running.\n" "Change the size in children collision shapes instead." msgstr "" -"Mudanças no tamanho do RigidBody (em modos caráter ou rígido) serão " +"Mudanças no tamanho do RigidBody (em modos carácter ou rígido) serão " "reescritas pelo motor de física na execução.\n" "Mude antes o tamanho das formas de colisão filhas." @@ -12455,7 +12451,7 @@ msgid "" "The \"Remote Path\" property must point to a valid Spatial or Spatial-" "derived node to work." msgstr "" -"Para funcionar, a Propriedade \"Caminho Remoto\" tem de apontar para um Nó " +"Para funcionar, a Propriedade \"Caminho Remoto\" tem de apontar para um nó " "Spatial válido ou seu derivado." #: scene/3d/soft_body.cpp @@ -12500,7 +12496,7 @@ msgstr "" msgid "" "Only one WorldEnvironment is allowed per scene (or set of instanced scenes)." msgstr "" -"Apenas um WorldEnvironment é permitido por Cena (ou grupo de cenas " +"Apenas um WorldEnvironment é permitido por cena (ou grupo de cenas " "instanciadas)." #: scene/3d/world_environment.cpp @@ -12533,7 +12529,7 @@ msgstr "Nada conectado à entrada '%s' do nó '%s'." #: scene/animation/animation_tree.cpp msgid "No root AnimationNode for the graph is set." -msgstr "Não foi definida uma raíz AnimationNode para o gráfico." +msgstr "Não foi definida uma raiz AnimationNode para o gráfico." #: scene/animation/animation_tree.cpp msgid "Path to an AnimationPlayer node containing animations is not set." @@ -12547,11 +12543,11 @@ msgstr "" #: scene/animation/animation_tree.cpp msgid "The AnimationPlayer root node is not a valid node." -msgstr "O Nó raiz de AnimationPlayer não é um Nó válido." +msgstr "O nó raiz de AnimationPlayer não é um nó válido." #: scene/animation/animation_tree_player.cpp msgid "This node has been deprecated. Use AnimationTree instead." -msgstr "Este nó foi depreciado. Use AnimationTree em vez disso." +msgstr "Este nó foi descontinuado. Use antes AnimationTree." #: scene/gui/color_picker.cpp msgid "" @@ -12591,7 +12587,7 @@ msgid "" msgstr "" "Por si só um Contentor não tem utilidade, a não ser que um script configure " "a disposição dos seu filhos.\n" -"Se não pretende adicionar um script, use antes um simples Nó Control." +"Se não pretende adicionar um script, use antes um simples nó Control." #: scene/gui/control.cpp msgid "" @@ -12656,7 +12652,7 @@ msgstr "" "Esta vista não está definida como alvo de Renderização. Se pretende " "apresentar o seu conteúdo diretamente no ecrã, torne-a um filho de um " "Control de modo a que obtenha um tamanho. Caso contrário, torne-a um " -"RenderTarget e atribua a sua textura interna a outro Nó para visualizar." +"RenderTarget e atribua a sua textura interna a outro nó para visualizar." #: scene/resources/visual_shader_nodes.cpp msgid "Invalid source for preview." diff --git a/editor/translations/ro.po b/editor/translations/ro.po index 464f5ba57a..7bd5c90156 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -3996,6 +3996,11 @@ msgid "Saving..." msgstr "Se Salvează..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Fișiere" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Setează ca Implicit pentru '%s'" @@ -4004,10 +4009,6 @@ msgid "Clear Default for '%s'" msgstr "Curăță setarea Implicită pentru '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Fișiere" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importă Ca:" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index f21dc93c64..d4efabc2cd 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -4013,6 +4013,11 @@ msgid "Saving..." msgstr "Сохранение..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Файлы" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Установить по умолчанию для '%s'" @@ -4021,10 +4026,6 @@ msgid "Clear Default for '%s'" msgstr "Очистить по умолчанию для '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Файлы" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Импортировать как:" diff --git a/editor/translations/si.po b/editor/translations/si.po index 98432aea62..15bc5975ef 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -3828,15 +3828,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 995ab69e47..709d2964ca 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -3942,6 +3942,11 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr "Súbor:" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "" @@ -3950,11 +3955,6 @@ msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp -#, fuzzy -msgid " Files" -msgstr "Súbor:" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index b2f7a70afa..3a30fcac1a 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -4125,6 +4125,11 @@ msgid "Saving..." msgstr "Shranjevanje..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Datoteke" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Nastavi kot Privzeto za '%s'" @@ -4133,10 +4138,6 @@ msgid "Clear Default for '%s'" msgstr "Počisti privzeto za '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Datoteke" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Uvozi Kot:" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index 07f9b1dc46..65ea4fdb56 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -4036,6 +4036,11 @@ msgid "Saving..." msgstr "Duke Ruajtur..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Skedarët" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Vendos si të Parazgjedhur për '%s'" @@ -4044,10 +4049,6 @@ msgid "Clear Default for '%s'" msgstr "Pastro të Parazgjedhurat për '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Skedarët" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importo Si:" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index ecc96cf02e..7b6f9a73b1 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -4151,6 +4151,11 @@ msgid "Saving..." msgstr "Чување..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Датотеке" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Постави као уобичајено за „%s“" @@ -4159,10 +4164,6 @@ msgid "Clear Default for '%s'" msgstr "Обриши уобичајено за „%s“" #: editor/import_dock.cpp -msgid " Files" -msgstr " Датотеке" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Увези као:" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index ecccf23b27..3bbd854cb0 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -3845,15 +3845,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 6166371e03..0c35991d32 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -4110,6 +4110,10 @@ msgid "Saving..." msgstr "Sparar..." #: editor/import_dock.cpp +msgid "%d Files" +msgstr "%d Filer" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Ange som Standard för '%s'" @@ -4118,10 +4122,6 @@ msgid "Clear Default for '%s'" msgstr "Rensa Standarden för '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr "" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Importera Som:" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index f4c9950079..ae6b41bf5c 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -3832,15 +3832,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/te.po b/editor/translations/te.po index 5306a32fb5..836675db64 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -3803,15 +3803,15 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" +msgid "%d Files" msgstr "" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/th.po b/editor/translations/th.po index e1553b1bb0..30dba54a16 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -4080,6 +4080,11 @@ msgid "Saving..." msgstr "กำลังบันทึก..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " ไฟล์" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "กำหนดเป็นค่าเริ่มต้นของ '%s'" @@ -4088,10 +4093,6 @@ msgid "Clear Default for '%s'" msgstr "ลบค่าเริ่มต้นของ '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " ไฟล์" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "นำเข้าเป็น:" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 2573383f5e..207c91e7c3 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -3985,6 +3985,11 @@ msgid "Saving..." msgstr "Kaydediliyor..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Dosyalar" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "'%s' için Varsayılanı Ayarla" @@ -3993,10 +3998,6 @@ msgid "Clear Default for '%s'" msgstr "'%s' İçin Varsayılanı Temizle" #: editor/import_dock.cpp -msgid " Files" -msgstr " Dosyalar" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Şu Şekilde İçe Aktar:" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 944a73ea67..32cb1e33cd 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-01-27 07:10+0000\n" +"PO-Revision-Date: 2020-02-16 15:20+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -702,9 +702,8 @@ msgid "Line Number:" msgstr "Номер рядка:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "Замінити..." +msgstr "%d замінено." #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -3974,6 +3973,11 @@ msgid "Saving..." msgstr "Збереження..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Файли" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Встановити як типове для '%s'" @@ -3982,10 +3986,6 @@ msgid "Clear Default for '%s'" msgstr "Очистити типове для '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Файли" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Імпортувати як:" @@ -5865,9 +5865,8 @@ msgid "Mesh is empty!" msgstr "Сітка порожня!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "Створити увігнуту область зіткнення" +msgstr "Не вдалося створити форму зіткнення Trimesh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5883,30 +5882,27 @@ msgstr "Створити трисіткову статичну форму" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." -msgstr "" +msgstr "Не вдалося створити єдину опуклу форму зіткнення для кореня сцени." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "Не вдалося створити єдину опуклу форму зіткнення." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "Створити вигнуті форми" +msgstr "Створити єдину опуклу форму" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." -msgstr "" +msgstr "Не вдалося створити декілька опуклих форм зіткнення для кореня сцени." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "Неможливо створити теку." +msgstr "Не вдалося створити жодних форм зіткнення." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "Створити вигнуті форми" +msgstr "Створити декілька опуклих форм" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -5962,6 +5958,9 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Створює StaticBody і автоматично пов'язує з ним засновану на багатокутниках " +"форму зіткнення.\n" +"Це найточніший (але найповільніший) варіант для виявлення зіткнення." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -5972,28 +5971,32 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"Створює засновану на багатокутниках форму зіткнення.\n" +"Цей найточніший (але найповільніший) варіант для виявлення зіткнень." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "Створити опуклу області зіткнення" +msgstr "Створити єдині опуклі області зіткнення" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"Створює єдину опуклу форму зіткнення.\n" +"Цей найшвидший (але найменш точний) варіант для виявлення зіткнень." #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "Створити опуклу області зіткнення" +msgstr "Створити декілька опуклих областей зіткнення" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"Створює засновану на багатокутниках форму зіткнення.\n" +"Цей проміжний за швидкістю варіант між наведеними вище двома варіантами." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -6006,6 +6009,10 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"Створює статичну контурну сітку. Нормалі контурної сітки " +"віддзеркалюватимуться автоматично.\n" +"Цим можна скористатися замість властивості Grow SpatialMaterial, якщо " +"використання цієї властивості є неможливим." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -9594,17 +9601,14 @@ msgid "Export With Debug" msgstr "Експортувати із діагностикою" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "Шляху не існує." +msgstr "Вказаного шляху не існує." #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "Помилка під час спроби відкрити файл пакунка — дані не у форматі zip." +msgstr "Помилка під час спроби відкрити файл пакунка (дані не у форматі ZIP)." #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." msgstr "Некоректний файл проєкту «.zip»: у ньому немає файла «project.godot»." @@ -9614,14 +9618,12 @@ msgid "Please choose an empty folder." msgstr "Будь ласка, виберіть порожню теку." #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." msgstr "Будь ласка, виберіть файл «project.godot» або «.zip»." #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." -msgstr "У каталозі вже міститься проєкт Godot." +msgstr "У цьому каталозі вже міститься проєкт Godot." #: editor/project_manager.cpp msgid "New Game Project" @@ -10319,9 +10321,8 @@ msgid "Suffix" msgstr "Суфікс" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "Формальні вирази" +msgstr "Використовувати формальні вирази" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10360,7 +10361,6 @@ msgstr "" "Порівняйте параметри лічильника." #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" msgstr "Лічильник на рівень" @@ -10403,12 +10403,10 @@ msgid "Keep" msgstr "Не змінювати" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" msgstr "ГорбатийРегістр у під_креслювання" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" msgstr "під_креслювання у ГорбатийРегістр" @@ -10429,14 +10427,12 @@ msgid "Reset" msgstr "Скинути" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "Формальні вирази" +msgstr "Помилка у формальному виразі" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "Припустимі символи:" +msgstr "На символі %s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10901,9 +10897,8 @@ msgid "Invalid inherited parent name or path." msgstr "Некоректна назва або шлях до успадкованого батьківського елемента." #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "Скрипт є коректним." +msgstr "Шлях до скрипту і назва скрипту є коректними." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -10994,7 +10989,6 @@ msgid "Copy Error" msgstr "Помилка копіювання" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" msgstr "Відеопам'ять" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index 13e42dc0d1..00c647fba1 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -3878,15 +3878,16 @@ msgid "Saving..." msgstr "" #: editor/import_dock.cpp -msgid "Set as Default for '%s'" -msgstr "" +#, fuzzy +msgid "%d Files" +msgstr "اثاثہ کی زپ فائل" #: editor/import_dock.cpp -msgid "Clear Default for '%s'" +msgid "Set as Default for '%s'" msgstr "" #: editor/import_dock.cpp -msgid " Files" +msgid "Clear Default for '%s'" msgstr "" #: editor/import_dock.cpp diff --git a/editor/translations/vi.po b/editor/translations/vi.po index 868a2f2ad8..9c81e2b063 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -3944,6 +3944,11 @@ msgid "Saving..." msgstr "Đang lưu ..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " Tệp tin" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "Gán Mặc định cho '%s'" @@ -3952,10 +3957,6 @@ msgid "Clear Default for '%s'" msgstr "Dọn Mặc định cho '%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " Tệp tin" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "Nhập vào với:" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index a2c33ea918..e984a05e3a 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -64,7 +64,7 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Godot Engine)\n" "POT-Creation-Date: 2018-01-20 12:15+0200\n" -"PO-Revision-Date: 2020-02-14 03:19+0000\n" +"PO-Revision-Date: 2020-02-16 15:21+0000\n" "Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" @@ -733,9 +733,8 @@ msgid "Line Number:" msgstr "行号:" #: editor/code_editor.cpp -#, fuzzy msgid "%d replaced." -msgstr "替换..." +msgstr "已替换%d处。" #: editor/code_editor.cpp editor/editor_help.cpp msgid "%d match." @@ -3930,6 +3929,11 @@ msgid "Saving..." msgstr "保存中..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " 文件" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "设置为“%s”的默认值" @@ -3938,10 +3942,6 @@ msgid "Clear Default for '%s'" msgstr "清除默认'%s'" #: editor/import_dock.cpp -msgid " Files" -msgstr " 文件" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "导入为:" @@ -5789,9 +5789,8 @@ msgid "Mesh is empty!" msgstr "网格为空!" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create a Trimesh collision shape." -msgstr "创建三角网格碰撞同级" +msgstr "无法创建Trimesh碰撞形状。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5807,30 +5806,27 @@ msgstr "创建三维网格静态形状" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create a single convex collision shape for the scene root." -msgstr "" +msgstr "无法为场景根节点创建单一凸碰撞形状。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Couldn't create a single convex collision shape." -msgstr "" +msgstr "无法创建单一凸碰撞形状。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Shape" -msgstr "创建凸形" +msgstr "创建单一凸形状" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Can't create multiple convex collision shapes for the scene root." -msgstr "" +msgstr "无法为场景根节点创建多个凸碰撞形状。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Couldn't create any collision shapes." -msgstr "无法创建文件夹。" +msgstr "无法创建碰撞形状。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Shapes" -msgstr "创建凸形" +msgstr "创建多个凸形状" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" @@ -5886,6 +5882,8 @@ msgid "" "automatically.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"创建StaticBody并自动为其分配基于多边形的碰撞形状。\n" +"这是最准确(但是最慢)的碰撞检测手段。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" @@ -5896,28 +5894,32 @@ msgid "" "Creates a polygon-based collision shape.\n" "This is the most accurate (but slowest) option for collision detection." msgstr "" +"创建基于多边形的碰撞形状。\n" +"这是最准确(但是最慢)的碰撞检测手段。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Single Convex Collision Siblings" -msgstr "创建凸型碰撞同级" +msgstr "创建单一凸碰撞同级" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a single convex collision shape.\n" "This is the fastest (but least accurate) option for collision detection." msgstr "" +"创建单一凸碰撞形状。\n" +"这是最快(但是最不精确)的碰撞检测手段。" #: editor/plugins/mesh_instance_editor_plugin.cpp -#, fuzzy msgid "Create Multiple Convex Collision Siblings" -msgstr "创建凸型碰撞同级" +msgstr "创建多个凸碰撞同级" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "" "Creates a polygon-based collision shape.\n" "This is a performance middle-ground between the two above options." msgstr "" +"创建基于多边形的碰撞形状。\n" +"这是性能位于上述两种之间的碰撞检测手段。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5930,6 +5932,8 @@ msgid "" "This can be used instead of the SpatialMaterial Grow property when using " "that property isn't possible." msgstr "" +"创建一个静态轮廓网格。轮廓网格会自动翻转法线。\n" +"可以用来在必要时代替SpatialMaterial的Grow属性。" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -9446,34 +9450,29 @@ msgid "Export With Debug" msgstr "使用调试导出" #: editor/project_manager.cpp -#, fuzzy msgid "The path specified doesn't exist." -msgstr "该路径不存在。" +msgstr "指定的路径不存在。" #: editor/project_manager.cpp -#, fuzzy msgid "Error opening package file (it's not in ZIP format)." -msgstr "打开压缩文件时出错,非zip格式。" +msgstr "打开包文件时出错(非ZIP格式)。" #: editor/project_manager.cpp -#, fuzzy msgid "" "Invalid \".zip\" project file; it doesn't contain a \"project.godot\" file." -msgstr "无效的“.zip”项目文件,没有包含一个“project.godot”文件。" +msgstr "无效的“.zip”项目文件;没有包含“project.godot”文件。" #: editor/project_manager.cpp msgid "Please choose an empty folder." msgstr "请选择空文件夹。" #: editor/project_manager.cpp -#, fuzzy msgid "Please choose a \"project.godot\" or \".zip\" file." -msgstr "请选择一个“project.godot”或者“.zip”文件。" +msgstr "请选择“project.godot”或“.zip”文件。" #: editor/project_manager.cpp -#, fuzzy msgid "This directory already contains a Godot project." -msgstr "文件夹已经包含了一个Godot项目。" +msgstr "该目录已经包含Godot项目。" #: editor/project_manager.cpp msgid "New Game Project" @@ -10154,9 +10153,8 @@ msgid "Suffix" msgstr "后缀" #: editor/rename_dialog.cpp -#, fuzzy msgid "Use Regular Expressions" -msgstr "正则表达式" +msgstr "使用正则表达式" #: editor/rename_dialog.cpp msgid "Advanced Options" @@ -10195,7 +10193,6 @@ msgstr "" "比较计数器的选项。" #: editor/rename_dialog.cpp -#, fuzzy msgid "Per-level Counter" msgstr "各级单独计数" @@ -10236,12 +10233,10 @@ msgid "Keep" msgstr "保持" #: editor/rename_dialog.cpp -#, fuzzy msgid "PascalCase to snake_case" msgstr "驼峰式转为下划线式" #: editor/rename_dialog.cpp -#, fuzzy msgid "snake_case to PascalCase" msgstr "下划线式转为驼峰式" @@ -10262,14 +10257,12 @@ msgid "Reset" msgstr "重置" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expression Error" -msgstr "正则表达式" +msgstr "正则表达式出错" #: editor/rename_dialog.cpp -#, fuzzy msgid "At character %s" -msgstr "有效字符:" +msgstr "位于字符%s" #: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp msgid "Reparent Node" @@ -10723,9 +10716,8 @@ msgid "Invalid inherited parent name or path." msgstr "所继承父类的名称或路径无效。" #: editor/script_create_dialog.cpp -#, fuzzy msgid "Script path/name is valid." -msgstr "脚本有效。" +msgstr "脚本路径/名称有效。" #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9, _ and ." @@ -10816,7 +10808,6 @@ msgid "Copy Error" msgstr "复制错误信息" #: editor/script_editor_debugger.cpp -#, fuzzy msgid "Video RAM" msgstr "显存" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 1264617142..23b5c90459 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -4149,6 +4149,11 @@ msgid "Saving..." msgstr "儲存中..." #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr "檔案" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "" @@ -4158,11 +4163,6 @@ msgstr "" #: editor/import_dock.cpp #, fuzzy -msgid " Files" -msgstr "檔案" - -#: editor/import_dock.cpp -#, fuzzy msgid "Import As:" msgstr "導入" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index eaea30d310..9678b2f8cb 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -4124,6 +4124,11 @@ msgid "Saving..." msgstr "儲存中……" #: editor/import_dock.cpp +#, fuzzy +msgid "%d Files" +msgstr " 資料夾" + +#: editor/import_dock.cpp msgid "Set as Default for '%s'" msgstr "設定為“%s”的預設值" @@ -4132,10 +4137,6 @@ msgid "Clear Default for '%s'" msgstr "清除“%s”的預設值" #: editor/import_dock.cpp -msgid " Files" -msgstr " 資料夾" - -#: editor/import_dock.cpp msgid "Import As:" msgstr "導入為:" |