Commit graph

17138 commits

Author SHA1 Message Date
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
Yuri Rubinsky
a40fc2354a
Merge pull request #100036 from Chaosus/hover_sname
[Scene] Add `SceneStringName::hover`
2024-12-11 12:24:09 +03:00
Chaosus
9a8d6628de [Scene] Add SceneStringName::hover 2024-12-11 11:11:25 +03:00
Chaosus
7adb986e15 Fix orphan strings in AnimationNodeStateMachine 2024-12-11 11:08:23 +03:00
Thaddeus Crews
15aa18bc92
Merge pull request #98675 from YeldhamDev/dont_be_shy_plugin
Fix certain editor plugins not showing when they should
2024-12-10 14:16:09 -06:00
Thaddeus Crews
ba89529390
Merge pull request #99695 from peterdang1502/error-calling-deferred-method-99571
Fix argument error when restarting project by executing Project -> Tools -> Upgrade Mesh Surface
2024-12-10 14:16:05 -06:00
Thaddeus Crews
b789935a13
Merge pull request #100049 from Chaosus/flat_button_sname
[Scene] Add `SceneStringName::FlatButton`
2024-12-10 14:16:01 -06:00
Thaddeus Crews
6cbf7c77c2
Merge pull request #100150 from ArchercatNEO/homeless-export
Use temp dirs instead of cache dirs for export
2024-12-10 14:15:54 -06:00
Thaddeus Crews
8f16f864a6
Merge pull request #99765 from dalexeev/core-fix-json-from-to-native
Core: Fix `JSON.{from,to}_native()` issues
2024-12-10 14:15:53 -06:00
Thaddeus Crews
b26f9f0380
Merge pull request #85275 from TheSofox/anchors-undo-fix
Correctly restore Control position on undoing an Anchors Preset
2024-12-10 14:15:47 -06:00
Thaddeus Crews
14b2f62d04
Merge pull request #100247 from BlueCube3310/tex-preview-all
Consider all texture types for resource thumbnail generation
2024-12-10 14:15:44 -06:00
Thaddeus Crews
bfc1d2f95f
Merge pull request #96773 from tetrapod00/resource-save-popup
[Editor] Use toast (notification) instead of dialog when saving with no open scene
2024-12-10 14:15:42 -06:00
BlueCube3310
ab0a2517b1 Consider all texture types for resource thumbnail generation 2024-12-10 14:57:10 +01:00
Chaosus
ba39b078f5 [Scene] Add SceneStringName::FlatButton 2024-12-10 11:12:26 +03:00
Thaddeus Crews
e9679a28ff
Merge pull request #91604 from nongvantinh/implement-7946
Save color palette as resources to reuse later
2024-12-09 14:33:29 -06:00
Thaddeus Crews
94711acfe1
Merge pull request #87375 from limbonaut/instantiate_property_editor
Export `EditorInspector::instantiate_property_editor` for use by plugins
2024-12-09 14:33:28 -06:00
Thaddeus Crews
a607bca2fd
Merge pull request #100024 from Ivorforce/optimize-string-single-char
Optimize string single char contains calls.
2024-12-09 14:33:24 -06:00
Thaddeus Crews
fb4d401933
Merge pull request #81714 from CreepGin/navigation_feel
Add 3D translation sensitivity to Editor Settings
2024-12-09 14:33:21 -06:00
Thaddeus Crews
2654dbaf5c
Merge pull request #99984 from KoBeWi/negative_diff_but_it's_deleting_whole_files
Move singleton StringName definitions to header
2024-12-09 14:33:11 -06:00
Michael Alexsander
b397add456
Fix certain editor plugins not showing when they should 2024-12-09 15:23:23 -03:00
ArchercatNEO
00a791f04e Use temp dirs instead of cache dirs for export
Fixes #95897
During CI scenarios $HOME may be set to an invalid value (such as
`/var/empty`).
Using temp dirs fits better with godot's usage of these paths and is
independent from the user's $HOME.
2024-12-08 12:07:17 +00:00
Serhii Snitsaruk
803fa8f2e8
Export EditorInspector::instantiate_property_editor for use by plugins
And export useful properties and methods in the `EditorProperty` class.
2024-12-07 14:07:04 +01:00
Lukas Tenbrink
b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
Nông Văn Tình
e6a49ab6ac Save color palette as resources to reuse later
Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>
2024-12-06 20:16:06 +07:00
kobewi
d3c9bee653 Move singleton StringName definitions to header 2024-12-06 13:43:31 +01:00
David
174e659a48
Add 3D translation sensitivity to Editor Settings 2024-12-05 22:50:52 +01:00
Thaddeus Crews
c153f963ce
Merge pull request #99947 from Meorge/ignore-macosx-in-zip
Ignore `__MACOSX` directory for export template and project ZIPs
2024-12-05 14:12:22 -06:00
Thaddeus Crews
30b32396de
Merge pull request #100053 from bruvzg/font_change
Change default Arabic font to Vazirmatn.
2024-12-05 14:12:14 -06:00
Thaddeus Crews
370e5f3b0e
Merge pull request #99920 from lander-vr/reflection-probe-ui-improvements
Clean up UI of ReflectionProbe
2024-12-05 14:12:12 -06:00
Thaddeus Crews
09cbe05485
Merge pull request #76231 from Calinou/inspector-text-show-tooltip
Show String properties' text in a tooltip in the inspector
2024-12-05 14:12:09 -06:00
Thaddeus Crews
ef22b6fe82
Merge pull request #100030 from passivestar/mainmenu-valign
Fix vertical alignment of the main menu bar
2024-12-05 14:12:06 -06:00
Thaddeus Crews
68cd7f2e97
Merge pull request #100027 from timothyqiu/efd-improve
Fix UI inconsistencies in `EditorFileDialog`'s toolbar
2024-12-05 14:12:04 -06:00
Thaddeus Crews
df94c00f6d
Merge pull request #100010 from KoBeWi/directory_compass_for_navigating_sea_of_directories
Don't rebuild tree when navigating to path
2024-12-05 14:11:53 -06:00
Thaddeus Crews
9951743adf
Merge pull request #97822 from stdmnpkg/loongarch
Add loongarch64 support for Linux/*BSD
2024-12-05 14:11:44 -06:00
Thaddeus Crews
4adf4bf58f
Merge pull request #99987 from KoBeWi/preferred_mess
Fix extensions when saving resource as
2024-12-05 14:11:42 -06:00
Thaddeus Crews
e9cbfd3dad
Merge pull request #99982 from hakro/quiet_tiptool
Ignore custom tooltip if its text is empty in signals tab
2024-12-05 14:11:40 -06:00
Student Main
e0693f8ad8 Add loongarch64 support 2024-12-06 00:18:26 +08:00
Pāvels Nadtočajevs
06cae04b87 Change default Arabic font to Vazirmatn. 2024-12-05 16:26:52 +02:00
Haoyu Qiu
1ef3bd5768 Fix UI inconsistencies in EditorFileDialog's toolbar
- Sort button has different stylebox compared to others
- The top toolbar has a separator on the right side when in open mode
- Update fav up/down buttons when fav list changes
2024-12-05 16:56:59 +08:00
passivestar
73f7e1379c Fix vertical alignment of the main menu bar 2024-12-05 05:27:34 +04:00
Malcolm Anderson
2336415623 Ignore __MACOSX directory in export template collection ZIP file and project import ZIP file
Update editor/export/export_template_manager.cpp

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-04 13:31:26 -08:00
Thaddeus Crews
1f47e4c4e3
Merge pull request #99990 from KoBeWi/update_tree_after_updating_tree
Fix FileSystem dock filter reset when tree rebuilds
2024-12-04 11:02:11 -06:00
kobewi
113621dd89 Don't rebuild tree when navigating to path 2024-12-04 15:21:27 +01:00
kobewi
6e490dadcd Don't navigate to path when file is double-clicked 2024-12-04 15:19:01 +01:00
Hugo Locurcio
e4106f8d61 Show String properties' text in a tooltip in the inspector
This allows previewing single-line or multipline strings
that are too long too fit within the box in the inspector.
2024-12-04 01:24:14 +01:00
kobewi
cc5be8507c Fix FileSystem dock filter reset when tree rebuilds 2024-12-03 23:36:51 +01:00
kobewi
b0cee57d81 Fix extensions when saving resource as 2024-12-03 22:54:54 +01:00
Thaddeus Crews
44cda51110
Merge pull request #98812 from bruvzg/macos_bundles_as_file
[macOS] Handle bundles as files in the embedded file dialogs.
2024-12-03 14:41:07 -06:00
Thaddeus Crews
e5d62fa120
Merge pull request #99957 from StaydMcMuffin/preview_environment_sky_fix
Editor: Fix default preview environment sky's horizon and brightness.
2024-12-03 14:41:04 -06:00
Thaddeus Crews
156bc92282
Merge pull request #98397 from adamscott/add-tmp-support
Add temp utilities (alias `OS::get_temp_dir()`, `FileAccess::create_temp()`, and `DirAccess::create_temp()`)
2024-12-03 14:40:59 -06:00