Commit Graph

540 Commits

Author SHA1 Message Date
Rémi Verschelde ea26272075
Merge pull request #93800 from EAinsley/fix#92929
Fix incorrect size calculation when position is set on resized
2024-08-28 00:11:25 +02:00
Rémi Verschelde e3695423b2
Merge pull request #93363 from kitbdev/pass-propagate
Clarify Mouse Filter Pass in the Inspector
2024-08-28 00:11:06 +02:00
Rémi Verschelde 588cf16630
Merge pull request #84840 from kleonc/control-get-transform-simplification
Simplify `Control` internal transform calculation
2024-08-26 23:28:08 +02:00
Rémi Verschelde 091212b4f1
Merge pull request #93602 from aaronp64/inspector_latency
Improve Editor Inspector/Theme item lookup performance
2024-08-22 00:10:26 +02:00
aaronp64 7593e55527 Improve Editor Inspector/Theme item lookup performance
Changes to reduce the latency between changing node selection in the editor and seeing the new node reflected in the Inspector tab

- Use Vector instead of List for ThemeOwner::get_theme_type_dependencies and related functions
- Use Vector instead of List for ThemeContext::themes, set_themes(), and get_themes()
- Add ClassDB:get_inheritance_chain_nocheck to get all parent/ancestor classes at once, to avoid repeated ClassDB locking overhead
- Update BIND_THEME_ITEM macros and ThemeDB::update_class_instance_items to use provided StringNames for call to ThemeItemSetter, instead of creating a new StringName in each call

These changes reduce the time taken by EditorInspector::update_tree by around 30-35%
2024-08-20 13:39:40 -04:00
kleonc 5be4eb9fc6 Simplify Control internal transform calculation 2024-08-19 12:14:41 +02:00
Haoyu Qiu 7343dc3a5d Split TranslationServer into its own file 2024-08-15 15:00:47 +08:00
Rémi Verschelde 5da03541a1
Merge pull request #93749 from alvinhochun/gui-snap-to-pixel-round-halfway-to-positive
Change GUI controls pixel snap to round halfway towards positive infinity (`floor(x + 0.5)`)
2024-07-17 15:44:43 +02:00
Hendrik Brucker 1c47fd7089 Fix Control nodes emitting unnecessary resized signals 2024-07-05 01:41:21 +02:00
Ainsley Su 819c392ca3
Notify item_rect_changed before resized. 2024-07-01 11:54:07 +08:00
Alvin Wong cc45c2cdd3 Change GUI controls pixel snap to round halfway to +ve infinity 2024-06-30 00:33:37 +08:00
kit a3b944c41d Clarify Mouse Filter Pass in the Inspector 2024-06-19 14:43:06 -04:00
kleonc 22b6f962d9 Invalidate Control global transform before notifying about resize / rect change 2024-05-30 10:10:24 +02:00
Haoyu Qiu 8652e9914f Fix theme StyleBox override parameter completion
Also added completion for remove_theme_*_override.
2024-05-24 08:12:53 +08:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
kobewi 82b6f9d7a7 Fetch argument options from ThemeDB 2024-05-07 15:02:50 +02:00
Silc Lizard (Tokage) Renew 57cd00aee9 Avoid incorrect computing anchor of Control node when reset on save 2024-05-05 08:33:37 +09:00
A Thousand Ships 308dbb8c63
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Haoyu Qiu 48f1e5b561 Don't store deprecated auto-translate property 2024-04-15 14:23:24 +08:00
kobewi c3d2fab1e5 Remove Control z-index warning 2024-04-04 17:22:04 +02:00
Rémi Verschelde cd4e4c0fcc
Merge pull request #89111 from AThousandShips/vec_use
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-24 01:14:51 +01:00
Ricardo Buring 2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
A Thousand Ships 79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable 2024-03-20 13:47:42 +01:00
kleonc f08e782916 Fix Control::set_global_position for rotated/scaled transforms 2024-03-15 04:19:52 +01:00
Rémi Verschelde c1377920cd
Merge pull request #86743 from Mickeon/autocompletion-optimise-object
Optimise comparisons for Object's `get_argument_options`
2024-03-01 14:56:06 +01:00
Micky cd2032a90b Optimise Object's `get_argument_options` 2024-02-29 18:00:54 +01:00
Rémi Verschelde 810a0dbff1
Don't access Node3D/Node2D/Control global transform in `reparent` unless needed
Fixes #89002.

Co-authored-by: Tamás Gálffy <ezittgtx@gmail.com>
2024-02-29 14:07:48 +01:00
Raul Santos 5ba92e5a57
Fix some DEFVALs to use the right type
- Use `StringName()` in DEFVAL for StringNames.
- Use `Variant()` in DEFVAL for Variants.
2024-02-23 01:50:18 +01:00
Rémi Verschelde 21f0529aa9
Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
Michael Alexsander 7b42c24550
Make auto translation inheritable 2024-02-15 16:51:19 -03:00
A Thousand Ships 684752e75b
Replace error checks against `size` with `is_empty` 2024-02-09 12:50:15 +01:00
RedMser d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
Rémi Verschelde 6c2f412cc7
Merge pull request #84760 from KoBeWi/ultimate_get_property_list_reloaded
Fetch override list from ThemeDB
2024-01-29 21:32:10 +01:00
kobewi 7d6ded2027 Fetch override list from ThemeDB 2024-01-29 16:41:57 +01:00
A Thousand Ships 15369fdb1d
Remove unnecessary `this->` expressions 2024-01-29 09:59:18 +01:00
风青山 0c6b6fe749 Fix issue where `set_global_position(global_position)` in `Control` resulted in a different result than `global_position`
Previously, the case where the pivot point was not at the origin was ignored.
2024-01-23 00:05:11 +08:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Micky ca2f340384 Fix missing autocompletion for inheriting classes 2024-01-03 00:13:04 +01:00
bruvzg 932174fedf
[Editor] Add option to override editor UI layout direction. 2023-11-17 14:56:45 +02:00
Rémi Verschelde f7a701587e
Merge pull request #84662 from YuriSizov/gui-warn-about-autowrapping
Warn about autowrapped labels in containers
2023-11-09 18:09:25 +01:00
Yuri Sizov 58a3cfa192 Warn about autowrapped labels in containers 2023-11-09 16:33:46 +01:00
kit d24d73ba31 Make mouse-enter/exit notifications match mouse event propagation
`NOTIFICATION_MOUSE_ENTER` and `NOTIFICATION_MOUSE_EXIT` now includes
the areas of children control nodes if the mouse filters allow it.

In order to check if a Control node itself was entered/exited, the newly
introduced `NOTIFICATION_MOUSE_ENTER_SELF` and
`NOTIFICATION_MOUSE_EXIT_SELF` can be used.

Co-authored-by: Markus Sauermann <6299227+Sauermann@users.noreply.github.com>
2023-11-09 09:11:59 -05:00
Yuri Sizov 53172d9860 Add more context to some `Window` errors 2023-09-30 21:44:05 +02:00
Rémi Verschelde e4cfd4e26a
Merge pull request #82195 from AThousandShips/radian_fix
Replace `radians` range hint with `radians_as_degrees`
2023-09-25 17:18:38 +02:00
Rémi Verschelde 3408aab7c6
Merge pull request #76027 from AThousandShips/focus_direction
Expose finding valid focus neighbors of a `Control` by side
2023-09-25 17:17:33 +02:00
A Thousand Ships e45927b2f2 Replace `radians` range hint with `radians_as_degrees` 2023-09-25 08:50:19 +02:00
Yuri Sizov 2924bfd4d3 Register theme properties with ThemeDB 2023-09-11 13:45:23 +02:00
Yuri Sizov 58126e479c Introduce the concept of global theme contexts
This commit adds the default theme context, which replaces
the need to manually check the project and the default theme
all the time; simplifies related code.

It also adds framework for custom theme contexts, to be used
by the editor. Custom contexts can be attached to any node,
and not necessarily a GUI/Window node. Contexts do no break
theme inheritance and only define which global themes a node
uses as a fallback.

Contexts propagate NOTIFICATION_THEME_CHANGED when one of their
global themes changes. This ensures that global themes act just
like themes assigned to individual nodes and can be previewed
live in the editor.
2023-09-06 19:40:43 +02:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00