Ensures that closure of Polygon2D in the editor takes into account
Grid Snap if enabled. Does this by comparing the polygon start with
grid snap applied to mouse click location. Note: transformation is
applied in order to deal with different editor zoom levels.
(cherry picked from commit b8d55b244a)
The existing theme editor icon could be unintentionally set for any
global class with matching name (`Group` icon, `Group` class_name etc),
which would only show up in the "Create Dialog" context, but not the
scene tree dock.
This change prevents this behavior, and ensures that the icon can be
actually overidden by explicit icon path in `class_name`, if there's any
custom icon to begin with.
The correct built-in type's icon is fetched for child classes if there
are no custom icons detected throughout base classes as well, so it
isn't left empty for those cases.
(cherry picked from commit c177308f80)
`get_global_class_name` for `GDScriptLanguage` is slow because
it forces to parse an entire script each time. This patch ensures
that the icon is actually fetched from the EditorData where they
are loaded beforehand.
This change also makes the behavior consistent with the existing
`get_object_icon` method in EditorNode.
(cherry picked from commit 4a86e2bb76)
Modifies polygon auto-completion based on UV editor scale, in order
to enable finer grained control for the user. Enables selection of
points closer than the current threshold of 8 pixels.
(cherry picked from commit 69d0d89214)
Ensures that behavior when export_presets.cfg file is edited manually
while editor is running remains identical to before commit 44094b0.
(cherry picked from commit 4a7c19e719)
Ensures no error is issued when attempting to preview a resource that
may be scaled down to <1 pixel when resizing to fit the thumbnail.
(cherry picked from commit c7a8dc7bb9)
Occurred when selecting polygon collision mode, then drawing a single point, then selecting rectangle mode, and finally trying to select a rectangle.
(cherry picked from commit 7850d0316f)
Ensures that when the `Selection Only` option is selected, the Replace
tool replaces occurrences of the search phrase only within the selected
region, and in order of occurrence.
(cherry picked from commit 2be3a33cc3)
Now that the 3D editor grid is infinite and adjusts its step automatically,
this helps people get a better sense of scale when moving around in the
3D viewport.
This also fixes the indicator bar drawing on hiDPI displays.
(cherry picked from commit eaae50fe4a)
Reduce repeated iteration through the full text
when counting the number of occurrences of whole
words while searching a file in the editor.
(cherry picked from commit 2433287871)
Ensure that presets are updated with the latest files when
starting up or opening the Project Export dialog. Fixes the
error where Godot would attempt to export deleted files that
were previously selected.
(cherry picked from commit 44094b082d)
Configured for a max line length of 120 characters.
psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:
- Manually wrapped strings will be reflowed, so by using a line length
of 120 for the sake of preserving readability for our long command
calls, it also means that some manually wrapped strings are back on
the same line and should be manually merged again.
- Code generators using string concatenation extensively look awful,
since black puts each operand on a single line. We need to refactor
these generators to use more pythonic string formatting, for which
many options are available (`%`, `format` or f-strings).
- CI checks and a pre-commit hook will be added to ensure that future
buildsystem changes are well-formatted.
(cherry picked from commit cd4e46ee65)
The crash happens further down when setting an invalid owner in
`Node::_set_owner_nocheck` but I couldn't figure out how to fix it.
But here the proper fix is to catch the invalid scene file early on
and fail loading it.
Part of #17372.
(cherry picked from commit c080ec5da2)