1
0
Fork 0
Commit Graph

608 Commits

Author SHA1 Message Date
Thaddeus Crews 01fc9aee6c
Core: Modernize C headers with C++ equivalents 2025-05-02 08:23:01 -05:00
lawnjelly f8f350a32a Add `GLOBAL_GET` cached macros.
GLOBAL_GET is an expensive operation which should not be used each frame / tick.
This PR adds macros which do a cheaper revision check, and only call the expensive GLOBAL_GET when project settings have changed.

Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-04-30 15:08:50 +01:00
dugramen eb973015d6 Tree multiselect with shift up & down arrow keys 2025-04-25 21:47:16 -04:00
Thaddeus Crews 8aaae4f4f3
Merge pull request #98560 from Koyper/tree_relationship_line_fix
[Tree] Fix relationship lines 1px width draw bug when MSAA anti aliasing is enabled
2025-04-21 08:24:06 -05:00
Koyper 4766e32419 Fix Tree relationship line 1px width draw bug. 2025-04-14 18:07:03 -05:00
Thaddeus Crews 94282d88f9
Core: Use `Math` namespace for constants 2025-04-10 16:29:30 -05:00
Thaddeus Crews 3e9f624b0b
Merge pull request #103791 from BrotherShort/scenetree_item_text_display
Fix SceneTree Item text display bug in Right-to-Left
2025-04-10 10:18:15 -05:00
Thaddeus Crews 504036466b
Merge pull request #102878 from Giganzo/tree-jiggle
Fix Tree buttons jiggle on horizontal scrolling
2025-04-10 10:18:11 -05:00
Pāvels Nadtočajevs b106dfd4f9
Base accessibility API. 2025-04-08 20:14:28 +03:00
Thaddeus Crews e471465d39
Merge pull request #104370 from BrotherShort/no-arrow-no-root-offset
Tree: Fix offset relationship lines with Hide Folding
2025-03-30 09:06:02 -05:00
Thaddeus Crews bc5c739ff8
Merge pull request #104708 from Alex2782/tree_cleanup
`Tree`: apply comment style guidelines and remove unused variables.
2025-03-30 09:06:00 -05:00
Alexander Hartmann b96e8d5886 Tree: apply comment style guidelines and remove unused variables.
Co-Authored-By: Tomasz Chabora <2223172+KoBeWi@users.noreply.github.com>
Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-03-28 18:03:39 +01:00
BrotherShort f660cdb7cf
Tree: Fix offset relationship lines with Hide Folding 2025-03-28 15:05:24 +01:00
Rémi Verschelde 0251fc4476
Merge pull request #104399 from scgm0/Improve-Popup-content_scale_factor
Improve Popup `content_scale_factor`
2025-03-28 14:32:58 +01:00
Rémi Verschelde 1116fc7b0f
Merge pull request #104201 from BrotherShort/folding-move-to-2nd-col
Fix folding arrow and relationship lines move to 2nd column.
2025-03-28 14:32:35 +01:00
scgm0 27438a1b9d Improve Popup content_scale_factor 2025-03-26 23:47:40 +08:00
Thaddeus Crews fe3aa047c9
Merge pull request #104241 from Macksaur/tree-item-button-drag
Prevent clicking of TreeItem buttons when letting go outside of the button
2025-03-24 15:27:30 -05:00
Thaddeus Crews a76c1ac1d6
Merge pull request #104141 from BrotherShort/treeitem-rename-edit-offset
Fix the TreeItem rename LineEdit is offset
2025-03-19 17:46:08 -05:00
kobewi 10f6c01b9c Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
Mack 146fa48a4a Prevent clicking of TreeItem buttons when letting go outside of the button. 2025-03-16 16:35:29 +00:00
Pāvels Nadtočajevs 2bbf0f2317
Add properties to configure space trimming on line break. 2025-03-16 16:15:37 +02:00
BrotherShort 3c9c0006b4 Fix folding arrow and relationship lines move to 2nd column. 2025-03-16 05:20:42 +08:00
BrotherShort 08f93fcf1e Fix the TreeItem rename LineEdit is offset 2025-03-15 02:39:23 +08:00
Thaddeus Crews d190cc6d6f
Merge pull request #100412 from havi05/tree-hover-on-selected
`Tree` highlight selected items on hover
2025-03-13 08:57:18 -05:00
Aryombre eeb46b7c70 Fix : drag unselected tree item when 2+ tree items selected now correctly drag the pointed item 2025-03-13 00:48:51 +01:00
BrotherShort b1938c41bb Fix SceneTree Item text display bug 2025-03-09 23:02:34 +08:00
BrotherShort 7d7b773147 Fix SceneTree's rename LineEdit's offset position 2025-03-06 23:36:08 +08:00
Thaddeus Crews 8171c06036
Merge pull request #102865 from Giganzo/tree-keyboard-nav-rtl
Fix Tree keyboard navigation in RTL direction
2025-03-05 12:08:05 -06:00
BrotherShort 571cd4de7d Keep editor SceneTree buttons attached to the cell in Right-To-Left
Update tree.cpp.
Fix #102191.

Update scene/gui/tree.cpp

Co-Authored-By: Tomasz Chabora <kobewi4e@gmail.com>
2025-03-04 03:38:41 +08: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
Giganzo d687f375bb Fix Tree buttons jiggle on horizontal scrolling 2025-02-14 22:59:20 +01:00
Giganzo bd63123835 Fix Tree keyboard navigation in RTL direction 2025-02-14 16:35:44 +01: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
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
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
havi05 03caf44f57 Tree - highlight selected items 2025-01-24 08:07:02 +01: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
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
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
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
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