Commit Graph

12467 Commits

Author SHA1 Message Date
yedpodtrzitko
c01d2902d9 optimize blend position search 2023-04-08 18:49:06 +07:00
Juan Linietsky
ab5fc22f67 Optimize Node children management
* Adding and removing child nodes is now constant time, speed up should be huge.
* Searching for node paths as in ("path/to/node") should be far faster too.

This changes the children management and makes it a hashmap, optimizing most StringName based operations.
Most operations should be severe speed up without breaking compatibility.

This should fix many issues regarding to node access performance, and may also speed up editor start/end, but benchmarks are needed. So if you want to test, please make some benchmarks!

Further performance improvements will be done in the future by removing NOTIFICATION_MOVED_IN_PARENT and replacing by something less laborious.
2023-04-08 10:54:28 +02:00
jeffVenancius
97c2133548 Add an option to show a TextEdit caret when editable is disabled
Update doc/classes/TextEdit.xml
2023-04-07 22:27:01 -03:00
smix8
1549aeaef8 Add Mesh ConvexDecompositionSettings wrapper
Adds wrapper MeshConvexDecompositionSettings to control parameters for Mesh ConvexDecomposition operations.
2023-04-07 22:39:25 +02:00
3deathtoll
3841c4a4b4 Make SyntaxHighlighter::get_text_edit a const function 2023-04-07 23:46:50 +05:30
Rémi Verschelde
c151d3231f
Merge pull request #75760 from reduz/optimize-node-add-child-validation
Optimize Node::add_child validation
2023-04-07 18:20:28 +02:00
Yuri Sizov
f38b540273
Merge pull request #75756 from smix8/fix_obstacle_avoidance_sim_4.x
Fix NavigationObstacles not being added to avoidance simulation
2023-04-07 15:11:40 +02:00
Yuri Sizov
b5f532094e
Merge pull request #56671 from Rgtemze/warn_if_concave
Warn when a concave polygon is assigned to ConvexPolygonShape2D
2023-04-07 14:39:41 +02:00
Yuri Sizov
a13635cdf8
Merge pull request #70901 from timothyqiu/tree-scroll-offset
Add scrollbar offset theme constants to Tree
2023-04-07 13:24:01 +02:00
Juan Linietsky
223ce4fcb9 Optimize Node::add_child validation
Adding 10k nodes is almost twice as fast.
2023-04-07 13:18:47 +02:00
Yuri Sizov
f1f0e5f91d
Merge pull request #75728 from smix8/fix_audiostreamplayer2d_crash_4.x
Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread
2023-04-07 12:46:53 +02:00
Samuele Panzeri
404f24b5c4 Update sibling indices after a node is removed.
With change 104392e the code to update node indices on removal was erronously removed.
The out of date indices would cause crashes while selecting nodes in a graph editor (e.g. animation tree) and selected nodes are oftern pushed to beginning or end of the child list for the parent.
2023-04-06 20:47:57 +02:00
smix8
aadf33efd8 Fix NavigationObstacles not being added to avoidance simulation
Fixes NavigationObstacles not being added to avoidance simulation.
2023-04-06 16:32:49 +02:00
Rémi Verschelde
92b7a9603a
Merge pull request #75701 from reduz/notification-moved-in-parent
Remove NOTIFICATION_MOVED_IN_PARENT
2023-04-06 14:35:04 +02:00
Juan Linietsky
104392ef4e Remove NOTIFICATION_MOVED_IN_PARENT
* This notification makes node children management very inefficient.
* Replaced by a NOTIFICATION_CHILDREN_CHANGED (and children_changed signal).
* Changed Canvas code (and similar) to use the above signal, to perform more efficiently.

This PR breaks compatibility (although this notification was very rarely used, even within the engine), but provides an alternate way to do the same.
It is required for the changes in #75627 to be entirely effective.
2023-04-06 13:57:13 +02:00
Haoyu Qiu
498d538578 Add scrollbar offset theme constants to Tree 2023-04-06 15:04:28 +08:00
smix8
a5351086b0 Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread
Fixes AudioStreamPlayer2D crash when PhysicsServer2D runs on thread due to empty PhysicsSpace
2023-04-06 03:29:09 +02:00
Rémi Verschelde
5cf878c090
Merge pull request #75113 from m4gr3d/fix_2d_editor_dragging_main
Fix the issue preventing dragging in the 2D editor
2023-04-05 20:21:09 +02:00
Rémi Verschelde
e0bff2fa06
Merge pull request #75610 from aaronfranke/sus-travel-m
Change VehicleWheel3D suspension travel to use meters internally
2023-04-05 12:03:23 +02:00
Rémi Verschelde
4f4b5a2785
Merge pull request #73475 from YuriSizov/theme-is-busy-plz-come-back-later
Add a warning when accessing theme prematurely and fix surfaced issues
2023-04-05 12:03:15 +02:00
Johan Aires Rastén
9a60c4affb GraphNode ignore non-visible children for minimum size. 2023-04-05 09:05:52 +02:00
Aaron Franke
dd0eb1ab47
Change VehicleWheel3D suspension travel to use meters internally 2023-04-03 12:34:05 -07:00
Yuri Sizov
e401540264 Implement theme item cache in ColorPicker and friends 2023-04-03 18:01:11 +02:00
Yuri Sizov
db2f99cdc0 Implement theme item cache in TextEdit and CodeEdit 2023-04-03 18:01:10 +02:00
Yuri Sizov
91ff34b5b5 Add a warning when trying to access theme items too early 2023-04-03 18:01:10 +02:00
Rémi Verschelde
5b775282b7
Merge pull request #74654 from YuriSizov/gui-cause-you-re-hi-and-you-re-lo-you-re-yes-and-you-re-no
Prevent crash in `ItemList` when checking for visible items
2023-04-03 17:08:44 +02:00
Rémi Verschelde
b85fc4aa6d
Merge pull request #73646 from KoBeWi/squish
Prevent off-screen controls in editor
2023-04-03 17:07:54 +02:00
Rémi Verschelde
8a02d3817d
Merge pull request #73180 from KoBeWi/pretty_tweens
Various Tween code improvements
2023-04-03 17:07:29 +02:00
Rémi Verschelde
57e3651763
Merge pull request #72028 from kilojool/option_button_reselection
OptionButton: allow reselection of selected item
2023-04-03 17:06:36 +02:00
Rémi Verschelde
1db9de5406
Merge pull request #75597 from bruvzg/tx_block
[TextEdit] Fix block caret size at the end of the line.
2023-04-03 16:06:02 +02:00
Rémi Verschelde
f8e0880623
Merge pull request #75595 from Geometror/fix-graphedit-rect-scaling
Fix several GraphEdit operations at zoom levels other than 100%
2023-04-03 16:05:38 +02:00
Rémi Verschelde
a9855a3a4c
Merge pull request #75494 from MewPurPur/line-edit-get-selected-text
Implement LineEdit.get_selected_text()
2023-04-03 16:03:58 +02:00
Rémi Verschelde
3c225c19c1
Merge pull request #75487 from Rindbee/improve_update_remote_in_RemoteTransform2D
Fix RemoteTransform2D could fail to update AnimatableBody2D's position or rotation
2023-04-03 16:03:34 +02:00
Rémi Verschelde
9c492204ca
Merge pull request #75340 from Barugon/tree_colunm_title_alignment
Implement column title alignment for `Tree`
2023-04-03 16:03:10 +02:00
Rémi Verschelde
b237df8cea
Merge pull request #75326 from smix8/navigationagent_expose_parameters_4.x
Expose NavigationAgent path postprocessing and pathfinding algorithm options
2023-04-03 16:02:21 +02:00
Rémi Verschelde
4779d4f695
Merge pull request #75298 from KoBeWi/supersonic_filesystem
Refresh filesystem when saving remote branch
2023-04-03 16:01:57 +02:00
Rémi Verschelde
420ea5c0ad
Merge pull request #73074 from M4rYu5/capslock-editor-completion-fix
Editor: Ignore CapsLock when pressed alone
2023-04-03 15:58:11 +02:00
kobewi
20f03884f2 Various Tween code improvements 2023-04-03 15:40:02 +02:00
bruvzg
efe04af446
[TextEdit] Fix block caret size at the end of the line. 2023-04-02 20:53:13 +03:00
Rémi Verschelde
ec0a6dcdda
Merge pull request #75544 from Pingar5/master
Fixed property hint for platform layers on 3D physics body
2023-04-02 17:34:15 +02:00
Rémi Verschelde
d22e9effa2
Merge pull request #75532 from kleonc/texture-progress-bar-update-on-texture-changes
`TextureProgressBar` Update upon texture changes
2023-04-02 17:33:27 +02:00
Hendrik Brucker
49587fd6d9 Fix several GraphEdit operations at zoom levels other than 100% 2023-04-02 16:40:10 +02:00
Brennen Shaughnessy
2d16fe681d Fixed property hint for platform layers on 3D physics body 2023-03-31 19:40:45 -04:00
kleonc
cdc63214fe TextureProgressBar Update upon texture changes 2023-04-01 00:16:43 +02:00
Yuri Sizov
1522762dc9 Make icons of scripted and custom classes fit the editor UI
Also:
- Add an option to limit the icon size in PopupMenu.
This is similar to how this works in Tree and TreeItem.
- Add the same option to TabBar.
- Add a theme constant for Tree, PopupMenu, Button, and
TabBar to apply this limit on the control level.

Co-authored-by: Daylily-Zeleen <daylily-zeleen@foxmail.com>
2023-03-31 21:39:02 +02:00
VolTer
1856ceeb76 Implement LineEdit.get_selected_text() 2023-03-30 22:58:12 +02:00
bruvzg
efa647bb17
[RTL] Fix fill align and trim with enabled dropcap. 2023-03-30 22:23:39 +03:00
Rindbee
100b4b1f28 Fix RemoteTransform2D could fail to update AnimatableBody2D's position or rotation
Configure the transform per condition, and then only set it once to
prevent multiple `NOTIFICATION_LOCAL_TRANSFORM_CHANGED` notifications
from being sent.
2023-03-30 16:00:35 +08:00
RedworkDE
aa604c5c47 Do not clamp non-embedded window size to embedder 2023-03-29 22:35:07 +02:00
Yuri Sizov
1222d35cdd
Merge pull request #75398 from newobj/issue-75218
Update GPUParticles2D/3D speed scale on ENTER_TREE
2023-03-28 16:34:58 +02:00
Yuri Sizov
f818d2b98f
Merge pull request #75141 from rcorre/rrc/dialog-pos 2023-03-28 10:54:37 +02:00
Brian Long
4652fbd09e Update GPUParticles2D/3D speed scale on ENTER_TREE
Fix for https://github.com/godotengine/godot/issues/75218

Pause notifications are not sent when a node is added as a child. So GPUParticles2D should also obey its can_process status on ENTER_TREE, not just PAUSED/UNPAUSED.
2023-03-27 13:24:59 -07:00
Barugon
c56ff437ae Implement column title alignment for Tree 2023-03-27 09:23:46 -07:00
Haoyu Qiu
5a5fd33e42 More i18n improvements
* Make placeholder in editor layout dialog translatable.
* Make messages in scene import settings dialog translatable.
* Mark theme override property categories for translation.
2023-03-27 22:24:01 +08:00
Yuri Sizov
61e4f91ea1
Merge pull request #75384 from timothyqiu/cultural-heritage
Auto translate popup menus of MenuButton and OptionButton
2023-03-27 15:54:21 +02:00
Yuri Sizov
2659fc1a34
Merge pull request #75266 from rburing/shapecast2d_disconnect
Port robust signal (dis)connection to `ShapeCast2D`
2023-03-27 13:08:58 +02:00
Ryan Roden-Corrent
894ce41180
Apply clamp_to_embedder on parent resize and popup.
Fixes #75084.

The clamp_to_embedder setting was added in 8be16e0704,
but was not set on any of the in-editor dialogs.

This patch sets `clamp_to_embedder` on editor dialogs so they cannot be dragged out of the frame.
This also modifies `clamp_to_embedder` so a window is clamped to the bounds of an embedder when
it pops up and when the parent is resized.
2023-03-27 07:08:29 -04:00
Yuri Sizov
c95b88cbe9
Merge pull request #75238 from kleonc/canvas-item-fix-notifications-order-on-enter-tree
`CanvasItem` Fix `ENTER_CANVAS` / `VISIBILITY_CHANGED` notifications order when entering tree
2023-03-27 13:00:41 +02:00
Yuri Sizov
c0301b74a1
Merge pull request #71405 from marzecdawid/deselect-root-in-deselect_all
Fix `Tree::deselect_all` not deselecting root
2023-03-27 12:26:41 +02:00
Haoyu Qiu
150f89352b Auto translate popup menus of MenuButton and OptionButton
Currently, `auto_translate` property of a `MenuButton` or `OptionButton`
won't affect its popup menu. It's okay if you want to auto translate,
but requires extra setup if you don't.
2023-03-27 18:09:24 +08:00
RedMser
ed960453b7 Make solving project setting errors easier
Show full project setting path in error messages.
Force filtering for advanced settings if filter is not empty.
2023-03-27 08:10:35 +02:00
Hugo Locurcio
496a2ee1c7
Make MarginContainer available with disable_advanced_gui=yes
Comparatively more advanced GUI nodes such as FlowContainer and
AspectRatioContainer are already available when building with
`disable_advanced_gui=yes`.

This increases binary size by about 8 KB for binaries compiled with
`disable_advanced_gui=yes` (Linux release export template with LTO enabled).
2023-03-26 20:44:09 +02:00
smix8
6e324bb341 Expose NavigationAgent path postprocessing and pathfinding algorithm options
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.
2023-03-25 21:37:18 +01:00
Michael Alexsander
fc3d9d9d46 Defer invalidation on FileDialog nodes 2023-03-25 14:24:46 -03:00
Dawid Marzec
45930e95e9 Fix Tree::deselect_all not deselecting root 2023-03-25 16:02:49 +01:00
Yuri Sizov
82814f42b9
Merge pull request #74454 from Pennycook/get_loops_left
Add get_loops_left() function to Tween
2023-03-25 15:04:26 +01:00
Yuri Sizov
2be7a9be59
Merge pull request #75235 from AThousandShips/gradient_sort
Make `Gradient` resort points on `reverse`
2023-03-25 14:59:32 +01:00
Yuri Sizov
32c65c92a2
Merge pull request #75258 from AThousandShips/autoplay
Fix `AnimatedSprite2D` autoplay warning
2023-03-25 14:28:27 +01:00
Yuri Sizov
8f2c41b4dd
Merge pull request #73818 from kilojool/virtual_get_tooltip
Add missing virtual bind for control::get_tooltip
2023-03-25 14:14:10 +01:00
Yuri Sizov
800d445073
Merge pull request #75012 from KoBeWi/english_do_you_speak_it
Fix auto-translations in editor
2023-03-25 14:10:40 +01:00
Yuri Sizov
553fd238cf
Merge pull request #73897 from TheSecondReal0/camera-line-width
Draw Camera2D outlines as 2 point primitives instead of 4 (consistent with how origin is drawn in 2D editor)
2023-03-25 13:49:12 +01:00
kobewi
f289e74966 Refresh filesystem when saving remote branch 2023-03-24 19:38:08 +01:00
Ricardo Buring
5bed055cdd Port robust signal (dis)connection to ShapeCast2D
Ported from ShapeCast3D.
2023-03-24 09:23:03 +01:00
Asa Sprow
574293532d Draw Camera2D outlines as 2 point primitives instead of 4 2023-03-23 15:19:32 -07:00
Ninni Pipping
4d4342e018 Fix AnimatedSprite2D autoplay warning
Changing of autoplay when changing `SpriteFrames` is not done by the
user and warning is unhelpful
2023-03-23 14:31:46 +01:00
kobewi
8f8178bda6 Fix auto-translations in editor 2023-03-22 23:57:12 +01:00
kleonc
6e3820fd4d CanvasItem Fix ENTER_CANVAS / VISIBILITY_CHANGED notifications order when entering tree 2023-03-22 20:01:22 +01:00
Ninni Pipping
3795677f3d Make Gradient resort points on reverse 2023-03-22 19:32:00 +01:00
kilojool
a95cd3872a Add missing virtual bind for control::get_tooltip 2023-03-21 17:39:51 +01:00
Yuri Sizov
ce90d77a18
Merge pull request #73800 from YeldhamDev/graph_resize_fix
Fix `GraphNode` resizing when its bottom border is too thin
2023-03-21 16:00:07 +01:00
John Pennycook
4cb2085543 Add get_loops_left() function to Tween
Implements godotengine/godot-proposals#5141.

Adds a new get_loops_left() function to Tween, allowing developers to
reason about how many times a tweening sequence will repeat and whether
to expect finished or loop_finished as the next signal.

Co-authored-by: Tomek <kobewi4e@gmail.com>
2023-03-20 20:49:31 -07:00
kobewi
36141dc469 Fix get_drag_data not overridable in some Controls 2023-03-20 21:42:13 +01:00
Yuri Sizov
05d373c64b
Merge pull request #75017 from bruvzg/rlt_list_bullet
[RTL] Add option to customize list bullet, use U+2022 by default.
2023-03-20 19:08:31 +01:00
Yuri Sizov
b6d033b0e6
Merge pull request #75080 from adamscott/set-vehiculewheel3d-reasonable-value
Set `VehiculeWheel3D` `suspension_travel` default value to a reasonable one
2023-03-20 19:04:44 +01:00
Yuri Sizov
c311490600
Merge pull request #74665 from YuriSizov/code-edit-is-a-complete-drag
Prevent passing events from CodeEdit to TextEdit when code completion is active
2023-03-20 16:47:45 +01:00
Yuri Sizov
b1c18f807b
Merge pull request #75116 from dsnopek/multiplayer-peer-extension-missing-docs
Add missing documentation for MultiplayerPeerExtension
2023-03-20 16:39:40 +01:00
Yuri Sizov
7ca4ad8647
Merge pull request #75079 from mihe/shape-margin
Update property/documentation of shape margins
2023-03-20 16:30:10 +01:00
David Snopek
4d13be3c5e Add missing documentation for MultiplayerPeerExtension 2023-03-20 08:08:59 -07:00
Yuri Sizov
cfe2a14ec3
Merge pull request #74537 from nongvantinh/fix-74458
Fixes gutter set width results in receiving only half of the desired size
2023-03-20 15:31:28 +01:00
bruvzg
09465f3fe6
Remove (or make verbose only) various debug prints. 2023-03-20 08:14:18 +02:00
Fredia Huya-Kouadio
2c7633dce5 Fix the issue preventing dragging in the 2D and visual shader editor 2023-03-19 12:36:36 -07:00
Nong Van Tinh
bb3d0fc6b7 Fixes  gutter set width results in receiving only half of the desired size 2023-03-20 00:14:16 +07:00
Adam Scott
fd1dfdb960 Set VehiculeWheel3D suspension_travel default value to a resonable one 2023-03-18 16:33:33 -04:00
Mikael Hermansson
ec6694ce3c Open up bounds of Shape3D.margin to support other physics engines 2023-03-18 20:52:13 +01:00
bruvzg
4793b6eee9
[RTL] Add option to customize list bullet, use U+2022 by default. 2023-03-17 09:34:28 +02:00
Yuri Sizov
98d95f3a0e
Merge pull request #74149 from bruvzg/get_char
[Font] Implement `get_char_from_glyph_index` function.
2023-03-16 13:07:11 +01:00
Yuri Sizov
21753b06a1
Merge pull request #74092 from KoBeWi/zero_reason_to_change
Add early return for changing TileMap properties
2023-03-16 13:04:31 +01:00
Yuri Sizov
a2a524df71 Prevent crash in ItemList when checking for visible items
Also some light code refactoring to make the drawing logic more manageable.
We also store each item's column for more reliable checks.
2023-03-16 12:25:11 +01:00
Yuri Sizov
bdefdc866b
Merge pull request #74910 from paddy-exe/fix-ndc-depth-gles3
Fix ndc calculation for LinearSceneDepth VS node in GLES3
2023-03-16 12:01:07 +01:00
Yuri Sizov
44cc6e5c86
Merge pull request #74976 from smix8/navagent_fix_debug_path_duplicates_4.x
Fix NavigationAgent3D debug path duplicated points
2023-03-16 11:45:10 +01:00