Commit Graph

597 Commits

Author SHA1 Message Date
Spartan322
b5e34ce34e Merge commit godotengine/godot@4d7c448a0a 2025-04-19 04:51:06 -04:00
Rémi Verschelde
539e071afa Revert "Fix SceneTree's rename LineEdit's offset position"
This reverts commit 87f75e7785.

This caused a regression (#104138) so let's wait for it to be properly
resolved and tested before attempting a cherry-pick.
2025-03-18 14:06:16 +01:00
BrotherShort
87f75e7785 Fix SceneTree's rename LineEdit's offset position
(cherry picked from commit 7d7b773147)
2025-03-12 23:15:34 +01:00
Giganzo
642c82a1d8 Fix Tree keyboard navigation in RTL direction
(cherry picked from commit bd63123835)
2025-03-12 14:59:04 +01:00
Spartan322
a68eb8a076 Merge commit godotengine/godot@4c311cbee6 2025-03-04 03:35:45 -05:00
Spartan322
70b41e3288 Merge commit godotengine/godot@394508d26d 2025-02-22 02:02:27 -05:00
Giganzo
00527d0588 Fix Tree hover position with multiple columns 2025-02-19 17:09:38 +01:00
Hilderin
26cbaca446 Fix Tree Mouse hover position 2025-02-16 08:45:09 -05:00
Rémi Verschelde
f418603522 Merge pull request #102749 from timothyqiu/tree-buttons-offset
Fix TreeItem button tooltip trigger area offset
2025-02-12 11:21:15 +01:00
Haoyu Qiu
387d0e7100 Fix TreeItem button tooltip trigger area offset 2025-02-12 14:26:13 +08:00
Spartan322
e2d0cc2ded Merge commit godotengine/godot@ad9abe841d 2025-02-11 21:06:34 -05:00
Giganzo
5bfc4a5b06 Fix tree selecting hidden items 2025-02-10 02:41:16 +01:00
Rémi Verschelde
7f4097a83a Merge pull request #102116 from Giganzo/tree-get_item_rect
Fix `get_item_area_rect` when tree is scrolled
2025-02-05 11:33:58 +01:00
Spartan322
35e289fa5e Merge commit godotengine/godot@0b6a717ac1 2025-02-04 11:38:32 -05:00
kobewi
886e5d8084 Don't return Tree items outside visible rect 2025-02-02 00:17:41 +01:00
Giganzo
bde87db443 Fix get_item_area_rect when tree is scrolled 2025-01-30 12:27:03 +01:00
Thaddeus Crews
0dc6b7c056 Merge pull request #101280 from Sauermann/fix-focus-rect-meta-access
Fix `__focus_rect` meta access error when resizing `Tree`
2025-01-27 09:46:23 -06:00
Spartan322
94949a2769 Merge commit godotengine/godot@a7146ef807 2025-01-21 17:08:38 -05:00
Thaddeus Crews
672fd7b0bb Merge pull request #101842 from havi05/tree-fix-ui_select
Tree - fix `ui_select`
2025-01-21 11:55:28 -06:00
Thaddeus Crews
7ad545e091 Merge pull request #101160 from havi05/tree-fix-cursor-selection
Tree - fix cusor selection in `multi` selection-mode
2025-01-20 16:25:46 -06:00
havi05
522d6fed70 Tree - fix ui_select 2025-01-20 17:23:37 +01:00
Spartan322
5e6a04e752 Merge commit godotengine/godot@5b52b4b5c4 2025-01-12 13:06:53 -05:00
Aarni Koskela
f134769506 Fix various typos
* Add TODO notes for typos that should be fixed for 5.0

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
Markus Sauermann
2a72f78427 Fix __focus_rect meta access when resizing Tree
`NOTIFICATION_RESIZED` outputs errors, if `select_mode == SELECT_ROW`.
This PR unifies the access to the item focus rect.
2025-01-08 10:53:46 +01:00
havi05
ab5176dfa5 Tree - fix cusor selection in multi selection-mode 2025-01-05 22:23:51 +01:00
Spartan322
4ffc9ac18b Merge commit godotengine/godot@bdf625bd54 2025-01-04 00:55:26 -05:00
A Thousand Ships
a1846b27ea Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
Spartan322
fa0b4af786 Merge commit godotengine/godot@a7a2a12bfd 2024-12-21 05:32:01 -05:00
Rémi Verschelde
08508d2e01 Merge pull request #99700 from hpvb/scene_tree_editor_performance
Improve Scene Tree editor performance
2024-12-16 17:16:00 +01:00
Spartan322
9d47e1e39e Merge commit godotengine/godot@b9437c3938 2024-12-15 09:24:31 -05:00
HP van Braam
6f7525c396 Improve Scene Tree editor performance
We now cache the Node*<>TreeItem* mapping in the SceneTreeEditor. This
allows us to make targeted updates to the Tree used to display the scene
tree in the editor.

Previously on almost all changes to the scene tree the editor would
rebuild the entire widget, causing a large number of deallocations an
allocations. We now carefully manipulate the Tree widget in-situ saving
a large number of these allocations.

In order to know what Nodes need to be updated we add a
editor_state_changed signal to Node, this is a TOOLS_ENABLED,
editor-only signal fired when changes to Node happen that are relevant
to editor state.

We also now make sure that when nodes are moved/renamed we don't check
expensive properties that cannot contain NodePaths. This saves a lot of
time when SceneTreeDock renames a node in a scene with a lot of
MeshInstances. This makes renaming nodes go from ~27 seconds to ~2
seconds on large scenes.

SceneTreeEditor instances will now also not do all of the potentially
expensive update work if they are invisible. This behavior is turned off
by default so it won't affect existing users. This change allows the
editor to only update SceneTreeEditors that actually in view. In
practice this means that for most changes instead of updating 6
SceneTreeEditors we only update 1 instantly, and the others only when
they become visible.

There is definitely more that could be done, but this is already a
massive improvement. In complex scenes we see an improvement of 10x,
things that used to take ~30 seconds now only take 2.

This fixes #83460

I want to thank KoBeWi, TokisanGames, a-johnston, aniel080400 for
their tireless testing. And AeioMuch for their testing and providing a
fix for the hover issue.
2024-12-12 22:47:05 +01:00
Rémi Verschelde
9d10e42a41 Merge pull request #98766 from Calinou/tree-drag-and-drop-use-process
Fix Tree drag-and-drop scrolling having low FPS at low Physics Ticks per Second
2024-12-12 14:09:55 +01:00
Spartan322
c3314b0ab0 Merge commit godotengine/godot@1f47e4c4e3 2024-12-04 20:11:58 -05:00
Rémi Verschelde
e6125ef51b Merge pull request #98763 from AThousandShips/more_sname_uses
Use `SceneStringName` in more places
2024-12-02 15:50:44 +01:00
Rémi Verschelde
d2c82a8ffc Merge pull request #97378 from rune-scape/less-const-cast
Get rid of easily removable uses of `const_cast`
2024-12-02 15:50:06 +01:00
A Thousand Ships
af56d6e8e8 Use SceneStringName in more places 2024-12-02 14:39:16 +01:00
rune-scape
d58b2e879f Get rid of easily removable uses of const_cast 2024-12-01 17:50:13 -08:00
A Thousand Ships
77549dd1f3 [Tree] Allow disabling auto generated tooltip for TreeItem 2024-12-01 14:39:51 +01:00
Spartan322
62fbec9f6f Merge commit godotengine/godot@0f5f3bc954 2024-11-11 09:08:01 -05:00
Thaddeus Crews
1cad5525d6 Merge pull request #96841 from maidopi-usagi/tree_item_height_cache
[Tree] Improve Tree Performance by replacing computed height with TreeItem's cached minimum size
2024-11-10 12:12:45 -06:00
MaidOpi
07b7af0c81 replace computed height with cached item minimum size 2024-11-07 03:28:08 +08:00
Adam Scott
49f918e596 Fix issue where scrolling to item center would overflow on top 2024-11-05 12:50:34 -05:00
Hugo Locurcio
bb813ba7bc Fix Tree drag-and-drop scrolling having low FPS at low Physics Ticks per Second
Scrolling is now performed in process instead of physics process.
This makes scrolling much smoother if Physics Ticks per Second is lower
than the rendered FPS.
2024-11-02 18:45:28 +01:00
Spartan322
82de309d58 Merge commit godotengine/godot@8004c7524f 2024-10-30 05:22:24 -04:00
Thaddeus Crews
b7a0971ad2 Merge pull request #97934 from adamscott/give-AThousandShips-a-break
[Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
2024-10-29 19:25:36 -05:00
George L. Albany
77eaec766e Merge pull request #818 from Spartan322/fixup/copyright-headers
Fix copyright headers referring to Godot
2024-10-27 18:22:19 +00:00
Spartan322
6beb1eef9a Fix copyright headers referring to Godot 2024-10-27 11:17:29 -04:00
Spartan322
953af98c79 Merge commit godotengine/godot@61accf0605 2024-10-26 22:41:20 -04:00
Thaddeus Crews
4aad050067 Merge pull request #97157 from pafuent/fixing_tree_item_get_prev_wrap
Fix `TreeItem` `get_prev*` methods when `p_wrap` is `true`
2024-10-25 13:03:42 -05:00
Adam Scott
0d350e7108 Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00