Commit graph

511 commits

Author SHA1 Message Date
Thaddeus Crews
7efe038eed
Merge pull request #97492 from Geometror/profiler-autostart-indicator
Add profiler autostart indicator to EditorRunBar
2024-12-16 12:09:59 -06: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
Hendrik Brucker
9f8bbe43ee Add profiler autostart indicator to EditorRunBar 2024-12-16 10:15:24 +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
Timo Schwarzer
11bf2da9de
Improve editor file dialog options 2024-12-11 15:11:34 +01:00
Chaosus
9a8d6628de [Scene] Add SceneStringName::hover 2024-12-11 11:11:25 +03:00
Chaosus
ba39b078f5 [Scene] Add SceneStringName::FlatButton 2024-12-10 11:12:26 +03:00
Lukas Tenbrink
b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01: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
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
bruvzg
d5e599f77e [macOS] Handle bundles as files in the embedded file dialogs. 2024-12-03 12:41:52 +02:00
Pāvels Nadtočajevs
6a331dafe1 Fix native file dialog filter selection in save dialogs. 2024-12-02 18:38:53 +02:00
Rémi Verschelde
aab12fd273
Merge pull request #99652 from bruvzg/fd_cd_win
[Windows] Fix root and current folder in native file dialog.
2024-12-02 17:20:27 +01:00
Rémi Verschelde
60e1490df1
Merge pull request #99644 from bruvzg/fd_all_name
Change file dialog all files filter name from `All Files (*)` to `All Files (*.*)`.
2024-12-02 17:20:23 +01:00
Pāvels Nadtočajevs
b248d66265 [macOS] Use native window drag for the custom editor title bars. 2024-12-02 17:40:27 +02:00
Rémi Verschelde
d05323793f
Merge pull request #98778 from jaydensipe/add-copy-to-toast
Add copy button to toast notification
2024-12-02 15:50:48 +01:00
A Thousand Ships
af56d6e8e8
Use SceneStringName in more places 2024-12-02 14:39:16 +01:00
Jayden Sipe
81a7a2c50c Add copy to toast notification 2024-11-30 14:51:50 -05:00
Rémi Verschelde
f668ecb875
Merge pull request #98745 from yahkr/fix-unique-icon-text
[Editor] Update SceneUniqueName button text for clarity
2024-11-29 22:46:46 +01:00
Rémi Verschelde
bfa38e463c
Merge pull request #98022 from vPumpking/editor_file_dialog_filter_master
Unify filter feature and improve space management for EditorFileDialog
2024-11-29 22:46:18 +01:00
Rémi Verschelde
8de2abd075
Merge pull request #85789 from DevilboxGames/FileDialogCaseSensitivity
Make `FileDialog` filtering case insensitive
2024-11-29 22:45:32 +01:00
Thaddeus Crews
9e259ef061
Merge pull request #97884 from passivestar/list-variations
Add theme type variations for secondary Trees and ItemLists
2024-11-27 10:47:14 -06:00
bruvzg
e0b4f3d314 [Windows] Fix root and current folder in native file dialog.
Co-authored-by: RedMser <redmser.jj2@gmail.com>
2024-11-25 15:00:25 +02:00
Pāvels Nadtočajevs
1d43fa9a64 Change file dialog all files filter name from All Files (*) to All Files(*.*). 2024-11-24 20:09:05 +02:00
yahkr
8f5b11ac25 [Editor] Update SceneUniqueName button text when disabled to clarify access. 2024-11-24 12:26:13 -05:00
vPumpking
0542bccee0 Improve space management for EditorFileDialog
Move buttons related to the file view on the container above so that they take less horizontal space and make search bar similar to the one in FileDialog
2024-11-22 18:59:03 +01:00
Thaddeus Crews
e4dbba94d9
Merge pull request #99324 from TokageItLab/fix-fpe-spinner
Fix spinner in AnimationTrackEdit in FPS mode
2024-11-19 15:20:10 -06:00
passivestar
0ff5d5fd04 Add theme type variations for secondary Trees and ItemLists 2024-11-19 18:33:30 +04:00
A Thousand Ships
68f638cf02
Use (r)find_char instead of (r)find for single characters 2024-11-17 10:02:18 +01:00
Silc Lizard (Tokage) Renew
e283fdfb59 Fix spinner in AnimationTrackEdit in FPS mode 2024-11-17 01:54:06 +09:00
Pāvels Nadtočajevs
f5fad7592f Use processed filter list for native dialogs. 2024-11-15 12:08:33 +02:00
Pāvels Nadtočajevs
932b2269f8 Fix missing native file dialog title translation. 2024-11-14 14:48:52 +02:00
kobewi
ad8ede2411 Restore original root name if renaming instance to empty 2024-11-12 20:29:10 +01:00
Thaddeus Crews
646cef2ca2
Merge pull request #98680 from jaydensipe/expose-toast-notification-methods
Expose `get_editor_toaster` method to `EditorInterface`
2024-11-12 12:13:22 -06:00
Thaddeus Crews
9374e8da32
Merge pull request #97946 from WhalesState/editor-spin-slider
Fix `EditorSpinSlider` grabber `TextureRect` doesn't follow parent when scrolling.
2024-11-12 09:27:42 -06:00
Jayden Sipe
722d932466 Expose toast notification methods 2024-11-11 19:39:33 -05:00
kit
32a5b5b558 Make bottom panel switch when pinned and removed 2024-11-11 18:22:33 -05:00
Thaddeus Crews
cea186af2a
Merge pull request #98797 from KoBeWi/toastkill_f
Close toasts instantly when Close button is pressed
2024-11-11 14:18:38 -06:00
Thaddeus Crews
563355637e
Merge pull request #97722 from dustdfg/fix_wrong_groups_tooltip
Fix tooltip message of button that opens groups/signals dock
2024-11-11 14:18:13 -06:00
Michael Alexsander
bb07b2d619
Add a lock toggle to prevent involuntary bottom editor switching 2024-11-11 12:09:57 -03:00
kobewi
cb7304662b Close toasts instantly when Close button is pressed 2024-11-10 21:23:48 +01:00
Thaddeus Crews
0f5f3bc954
Merge pull request #98558 from jasonmorgado/add-track-filter
Add type filters to AnimationPlayer's "Add Track"
2024-11-10 12:13:10 -06:00
Thaddeus Crews
297ceda96d
Merge pull request #98794 from KoBeWi/programming_a_toaster_aka_internet_of_things
Improve EditorToaster code
2024-11-10 12:13:00 -06:00
Thaddeus Crews
63838c936c
Merge pull request #98278 from a-johnston/fuzzy-search-rebase
Add fuzzy string matching to quick open search
2024-11-10 12:12:56 -06:00
Jason Morgado
d5176757c0 Add type filters to AnimationPlayer's "Add Track"
Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-Authored-By: Tomek <kobewi4e@gmail.com>
2024-11-09 10:14:06 -05:00
Felix Yuan
f491d2fe24 Don't try to move selection if there are no visible elements 2024-11-09 01:29:44 -08:00
Thaddeus Crews
89a311205f
Style: Apply clang-tidy fixes
• `modernize-use-default-member-init` and `readability-redundant-member-init`
• Minor adjustments to `.clang-tidy` to improve syntax & remove redundancies
2024-11-04 12:11:06 -06:00
kobewi
025976dc45 Improve EditorToaster code 2024-11-03 14:16:22 +01:00
Thaddeus Crews
696ca9db3c
Merge pull request #98039 from aaronfranke/button-icon
Rename internal Button `*_icon` functions to `*_button_icon` to match exposed methods
2024-10-29 19:25:59 -05: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