Age | Commit message (Collapse) | Author |
|
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()`).
|
|
|
|
|
|
|
|
Add a way to filter nodes by type in scene tree dock.
|
|
|
|
Add a way to filter nodes by type.
Usage: type:NodeType or t:NodeType
Co-Authored-By: Haoyu Qiu <timothyqiu@users.noreply.github.com>
|
|
|
|
A number of dots is present next to the node configuration icon
warning when there is more than 1 warning.
Co-authored-by: Hendrik Brucker <hendrik.brucker@mail.de>
|
|
|
|
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
|
|
|
|
|
|
Update editor/scene_tree_editor.cpp
Add a comment to explain why
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
|
|
* 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!
|
|
|
|
|
|
Make editable children use warning color instead of disabled color
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
Removes some unnecessary includes from `editor_node.h`, and instead add
those where they're used.
Removes unnecessary `editor_node.h` includes in various editor classes.
Renames `dynamicfont` to `dynamic_font` in a couple files.
Misc cleanup while jumping through that rabbit hole.
|
|
|
|
This reverts commit a988fad9a092053434545c32afae91ccbdfbe792.
As discussed in #57725 and clarified in #57788, `SNAME` is not meant to be used
everywhere but only in critical code paths. For theme methods specifically, it
was by design that only getters use `SNAME` and not setters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Happy new year to the wonderful Godot community!
|
|
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
|
|
Co-authored-by: Gil Arasa Verge <gilarasaverge@gmail.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
|
|
|
|
Implement Skeleton Editor Gizmo
|
|
Co-authored-by: Lyuma <xn.lyuma@gmail.com>
|
|
|
|
|
|
jmb462/missing-sname-macro-optimization-in-some-functions
|
|
|
|
This makes long node names previewable without having to rename them.
|