summaryrefslogtreecommitdiff
path: root/editor/scene_tree_editor.h
AgeCommit message (Collapse)Author
2022-09-09Improve Scene Tree Dock's Node filter (Allow multiple terms & more)Micky
- Allows more than one parameter to be passed in the "Filter Node" search box, each term separated by spaces. - Grays out any parent Node not matching the search, but still having to be there because a child is. - Adds a `group:` filter. It matches any Node belonging to the passed group. If no argument is passed, it matches all Nodes belonging to any group. It also ignores groups used internally, and its alias is `g`.
2022-08-29Revert "Remove NOTIFICATION_ENTER_TREE when paired with ↵Rémi Verschelde
NOTIFICATION_THEME_CHANGED" This reverts commit 4b817a565cab8af648c88cfc7ab6481e86ee3625. Fixes #64988. Fixes #64997. This caused several regressions (#64988, #64997, https://github.com/godotengine/godot/issues/64997#issuecomment-1229970605) which point at a flaw in the current logic: - `Control::NOTIFICATION_ENTER_TREE` triggers a *deferred* notification with `NOTIFCATION_THEME_CHANGED` as introduced in #62845. - Some classes use their `THEME_CHANGED` to cache theme items in member variables (e.g. `style_normal`, etc.), and use those member variables in `ENTER_TREE`, `READY`, `DRAW`, etc. Since the `THEME_CHANGE` notification is now deferred, they end up accessing invalid state and this can lead to not applying theme properly (e.g. for EditorHelp) or crashing (e.g. for EditorLog or CodeEdit). So we need to go back to the drawing board and see if `THEME_CHANGED` can be called earlier so that the previous logic still works? Or can we refactor all engine code to make sure that: - `ENTER_TREE` and similar do not depend on theme properties cached in member variables. - Or `THEME_CHANGE` does trigger a general UI update to make sure that any bad theme handling in `ENTER_TREE` and co. gets fixed when `THEME_CHANGE` does arrive for the first time. But that means having a temporary invalid (and possibly still crashing) state, and doing some computations twice which might be heavy (e.g. `EditorHelp::_update_doc()`).
2022-08-27Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGEDAaron Record
2022-08-22Add per-scene UndoRedokobewi
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-14Disable the OK button when no node is selected.Chia-Hsiang Cheng
2022-05-24Optimize SceneTreeEditor filteringkobewi
2022-05-21Add the button pressed to some signals in Treetrollodel
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-04-25Implement Scene Unique Nodesreduz
Implements https://github.com/godotengine/godot-proposals/issues/4096 * Nodes can be marked unique to the scene in the editor (or via code). * Unique nodes can be accessed via the **%** prefix at any point in the path. From that point in the path (depending on whether the scene of the path is), the unique node will be fetched. * Implementation is very optimal, as these nodes are cached.
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-03-12Initialize bools in the headers in editorAaron Franke
2022-02-12Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker
2022-01-16Fix theming update in several editor classesYuri Roubinsky
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-10-21Remove unimplemented methodsMarcel Admiraal
2021-08-12Add option to not expand tree on node selectkobewi
2021-07-23Revert "Fix duplicate selection in SceneTree"Silc 'Tokage' Renew
This reverts commit 7d20d78847b24586b3f25beb23b41d015a25fb0a. # Conflicts: # editor/scene_tree_editor.cpp
2021-07-17Fix duplicate selection in SceneTreereduz
* It seems both cell_selected and multi_selected were being triggered, * This caused inspector updating twice. * cell_selected connection and callback were removed. This may be a bug in Godot 3.x too, recommend checking.
2021-04-30Implement Particle Trailsreduz
-Enable the trails and set the length in seconds -Provide a mesh with a skeleton and a skin -Or, alternatively use one of the built-in TubeTrailMesh/RibbonTrailMesh -Works deterministically -Fixed particle collisions (were broken) -Not working in 2D yet (that will happen next)
2021-04-26Remove uses of `auto` for better readability and online code reviewsHugo Locurcio
The current code style guidelines forbid the use of `auto`. Some uses of `auto` are still present, such as in UWP code (which can't be currently tested) and macros (where removing `auto` isn't easy).
2021-03-19Make Animation's SceneTreeDialog filter nodes properlyDominik 'dreamsComeTrue' Jasiński
2021-02-18Refactor Process Modereduz
Implements https://github.com/godotengine/godot-proposals/issues/1835#issuecomment-727186192 * PauseMode is now ProcessMode, containing the following states: ``` PROCESS_MODE_INHERIT, // same as parent node PROCESS_MODE_NORMAL, // process only if not paused PROCESS_MODE_PAUSE_ONLY, // process only if paused PROCESS_MODE_ALWAYS, // process always PROCESS_MODE_DISABLED, // never process ``` * NOTIFICATION_PAUSED and NOTIFICATION_UNPAUSED are received effectively when the node is paused and unpaused (not any longer when pause mode is set in SceneTree). * Renamed some nodes that used ProcessMode/process_mode to specify a callback type to ProcessCallback to avoid clashes.
2021-02-08Keep selected node visible after filter changePedro J. Estébanez
(Implemented both for the local and remote scene tree docks.)
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-09Cleanup unused engine codeTomasz Chabora
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-07-14Resize dialogs (FileDialog, EditorFileDialog, Reparent, SceneTreeDialog and ↵Stijn Hinlopen
resource depency dialogs).
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-08-12Remove redundant author doc commentsIAmActuallyCthulhu
2019-07-06Added filter to SceneTreeDialogunknown
2019-06-06Improve conections dialogMichael Alexsander Silva Dias
2019-05-24Fixed scene tree update after changing node name in tool scriptPouleyKetchoupp
2019-04-11Reorganized connection dialog for much improved ease of use.Juan Linietsky
-Removed dest path field -Added a "Source" signal -Added an "Advanced" button to hide complexity -Fix bug on Tree to make sure "ensure visible" works on hidden trees -Fix bug on TextEdit to ensure signals created with script not open sill focus the right line
2019-03-06Cleanup relationship line coding after 5f079e2Michael Alexsander Silva Dias
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-06-27Changes to how node paths are selected from property, allowing setting a hint.Juan Linietsky
2018-06-07Entirely new (and much improved) animation editor.Juan Linietsky
2018-05-15Respect visibility change by Scene dock when using Sync Scene Changesvolzhs
Fix #18757 with keeping a feature introduced at 8343c9fbd
2018-02-18Merge pull request #15235 from sersoong/master-batchtoggleRémi Verschelde
Enhanced Toggle Visibility button in scene tree editor
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
2018-01-04Enhanced Toggle Visibility buttonsersoong
2018-01-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-11-26Scene Tree Dock: added ability to deselect items when clicking on empty spaceDmitry Koteroff
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-08-12Updated function argument namesWilson E. Alvarez
2017-07-03Clicking on subscene icon will open itJakub Grzesik
All options are moved into RMB menu