Commit graph

14564 commits

Author SHA1 Message Date
Rémi Verschelde
fa48a51183
Merge pull request #87688 from AThousandShips/what_is_this
Remove unnecessary `this->` expressions
2024-01-29 13:18:09 +01:00
Rémi Verschelde
75d2cf3075
Merge pull request #87616 from ryevdokimov/cancel-transformation-2d
Add cancel transformation shortcut to 2D to match 3D
2024-01-29 13:17:33 +01:00
Rémi Verschelde
ef9cb3dfa5
Merge pull request #87535 from Mickeon/scene-tree-configuration-warnings-cleanup
Improve appearance of Node configuration warnings
2024-01-29 13:17:17 +01:00
Rémi Verschelde
061c776228
Merge pull request #87381 from YuriSizov/core-sneaky-properties
Better hide internal properties from users
2024-01-29 13:16:55 +01:00
Rémi Verschelde
8febe50797
Merge pull request #85448 from mxaddict/master
Update `blender_path` behavior to require exact path to executable instead of trying to guess it
2024-01-29 13:16:05 +01:00
Rémi Verschelde
0796d08b8f
Merge pull request #84515 from Calinou/editor-multi-window-unavailable-disable-buttons
Disable multi-window buttons instead of hiding them when support is unavailable
2024-01-29 13:16:01 +01:00
Rémi Verschelde
07d290e67e
Merge pull request #83747 from Riteo/gdext-doc
GDExtension: Add an interface for loading extra documentation
2024-01-29 13:15:57 +01:00
Rémi Verschelde
e2c5d2fada
Merge pull request #82113 from nongvantinh/fix-50163
Allow Editor to reload external changes of scripts
2024-01-29 13:15:53 +01:00
Rémi Verschelde
f220d46cdc
Merge pull request #80231 from romlok/input-key-location
Support detecting and mapping ctrl/alt/shift/meta by their left/right physical location
2024-01-29 13:15:42 +01:00
Yuri Sizov
d644b9b640 Better hide internal properties from users 2024-01-29 12:35:10 +01:00
A Thousand Ships
15369fdb1d
Remove unnecessary this-> expressions 2024-01-29 09:59:18 +01:00
Hugo Locurcio
04a930d9a6
Disable multi-window buttons instead of hiding them when support is unavailable
This is more explicit as for why this functionality isn't available
depending on editor settings and current platform.

This also exposes a `EditorInterface.is_multi_window_enabled()` method
so that editor plugins can easily query whether the editor is able and
expected to create multiple windows.
2024-01-27 19:38:39 +01:00
Micky
3e4e0f08c4 Improve appearance of Node configuration warnings 2024-01-27 13:03:07 +01:00
Hugo Locurcio
341ca31be8
Change scene drag-and-drop modifier behavior in the 2D and 3D editors
Behavior is now consistent across 2D and 3D editors.

- By default, drag-and-dropping adds the scene as a child of the selected
  node. Hold Alt when releasing the mouse to add the scene as a child
  of the root node, or Shift to add the scene as a sibling of the selected
  node.
- To choose a different node type in the 2D editor when drag-and-dropping
  a texture resource, hold Alt + Shift (instead of just Alt).
- If multiple nodes are selected, only the first one is taken into account.
  This was previously the behavior in 2D, but not in 3D (an error dialog
  appeared instead). This makes the UI more forgiving.
2024-01-26 18:05:58 +01:00
mxaddict
ad106a283b Update blender_path behavior to require exact path to executable instead of trying to guess it 2024-01-27 00:41:53 +08:00
Nông Văn Tình
c051c44df9 Allow Editor to reload external changes of scripts 2024-01-26 21:05:36 +07:00
Mel Collins
8406e60522 Add InputEventKey.location to tell left from right
This adds a new enum `KeyLocation` and associated property
`InputEventKey.location`, which indicates the left/right location of key
events which may come from one of two physical keys, eg. Shift, Ctrl.

It also adds simulation of missing Shift KEYUP events for Windows.
When multiple Shifts are held down at the same time, Windows natively
only sends a KEYUP for the last one to be released.
2024-01-26 14:42:28 +01:00
Robert Yevdokimov
d9057c8b56 Add cancel transformation shortcut to 2D 2024-01-26 08:30:13 -05:00
Riteo
f468e59efd GDExtension: add an interface for loading extra documentation
Adds two new GDExtension interface methods:
 - `editor_help_load_xml_from_utf8_chars`
 - `editor_help_load_xml_from_utf8_chars_and_len`

Both of these methods parse the XML passed into an extra documentation
container which, when needed, is merged into the main doc container.

Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
2024-01-26 13:53:33 +01:00
Rémi Verschelde
c26a338430
Merge pull request #87356 from jsjtxietian/connection-error
Check if the ref shader is valid in visual shader's `_update_option_menu`
2024-01-26 11:44:13 +01:00
jsjtxietian
ff089f8cea Check is the ref shader valid in visual shader's update_option_menu 2024-01-25 11:54:23 +08:00
Yuri Sizov
07132860dc Remove incorrect C# rename from the project converter 2024-01-24 16:36:11 +01:00
Yuri Sizov
10945f752c Merge pull request #87510 from adamscott/make-text-editor-consistent-with-script-editor
Make the text editor consistent with the script editor
2024-01-24 14:08:57 +01:00
Yuri Sizov
a32a2eaedc Merge pull request #87417 from AThousandShips/tree_clear
Use callable for `TreeItem` custom draw
2024-01-24 14:08:36 +01:00
Yuri Sizov
adcfe3d1a0 Merge pull request #87252 from ajreckof/Fix-renaming-a-node-to-the-name-of-its-siblings-breaking-NodePath
Fix renaming a node to the name of its siblings breaking NodePath
2024-01-24 14:08:20 +01:00
Yuri Sizov
6d2a827f73 Merge pull request #79374 from raulsntos/ignore-directories-in-tpz
Ignore directory entries in TPZ
2024-01-24 14:07:30 +01:00
Adam Scott
12c84836b7
Make the text editor consistent with the script editor 2024-01-23 11:27:00 -05:00
A Thousand Ships
257d03681c
Use callable for TreeItem custom draw
Deprecating old functionality
2024-01-23 12:07:43 +01:00
Yuri Sizov
6fea273ed3 Merge pull request #87476 from AThousandShips/search_fix
Fix selection regression in `EditorHelpSearch`
2024-01-22 20:39:40 +01:00
Yuri Sizov
b5f033476c Merge pull request #87470 from AThousandShips/tile_thread_fix
[Editor] Fix threading problems with `TileMap` preview
2024-01-22 20:39:32 +01:00
Yuri Sizov
8f51117445 Merge pull request #87343 from ryevdokimov/fix-2d-top-level-2
Update the viewport if CanvasItem top level is changed
2024-01-22 20:39:11 +01:00
Yuri Sizov
3755b7286c Merge pull request #87332 from AThousandShips/scene_saved
[Editor] Add `EditorPlugin::scene_saved` signal
2024-01-22 20:39:07 +01:00
Yuri Sizov
bbfad3d7a5 Merge pull request #87200 from passivestar/dock-shortcuts
Add support for search shortcut to all docks
2024-01-22 20:38:59 +01:00
Yuri Sizov
feb1157276 Merge pull request #83510 from Geometror/vs-connection-ops
Add connection related functionality to VisualShader (deleting, dropping/inserting a node)
2024-01-22 20:38:30 +01:00
passivestar
97a77c5193 Add support for search shortcut to all docks 2024-01-22 22:37:59 +04:00
Robert Yevdokimov
3bed6b1cb0 Update the viewport if CanvasItem top level is changed 2024-01-22 13:10:54 -05:00
A Thousand Ships
97b469c46d
[Editor] Add EditorPlugin::scene_saved signal
Matches the `EditorNode` one for parity with the exposed
`resource_saved` signal
2024-01-22 17:51:12 +01:00
A Thousand Ships
3b7b484300
Fix selection regression in EditorHelpSearch 2024-01-22 17:06:42 +01:00
A Thousand Ships
dbcd82ba67
[Editor] Fix threading problems with TileMap preview 2024-01-22 13:44:36 +01:00
Hendrik Brucker
f59419bfe0 Add connection-related VisualShader operations
- Insert a node in a connection
- Drop an unconnected node on a connection to insert it
- Delete a connection
2024-01-19 11:38:59 +01:00
Rémi Verschelde
bf5b877636
Merge pull request #87345 from ryevdokimov/removed-unused-prev-rot-variable
Remove unused `prev_rot` variable
2024-01-19 10:19:29 +01:00
Yuri Sizov
66b0bd9203 Merge pull request #86158 from Geometror/ge-connection-rework
Rework `GraphEdit` connections (drawing, API, optimizations)
2024-01-18 19:26:56 +01:00
Yuri Sizov
de95a3effe Merge pull request #85117 from BastiaanOlij/openxr_runtime_select
OpenXR: Add runtime selection dropdown
2024-01-18 19:26:52 +01:00
Robert Yevdokimov
ecc8493e17 Remove unused prev_rot variable 2024-01-18 11:24:22 -05:00
Hendrik Brucker
9d7c2978f4 Rework GraphEdit connections (drawing, API, optimizations)
- GraphEdit now uses Line2D nodes to draw connection lines and uses a dedicated canvas item shader for them
2024-01-18 16:53:15 +01:00
Rémi Verschelde
33f3511241
Merge pull request #87293 from YuriSizov/editor-theme-a-rehashed-follow-up
Improve editor theme generation after the refactor
2024-01-18 16:34:50 +01:00
Rémi Verschelde
f3fd668a02
Merge pull request #87266 from YuriSizov/pm-gets-a-chris-hemsworth-treatment
Reorganize project manager code
2024-01-18 16:34:26 +01:00
Rémi Verschelde
d3003c48b3
Merge pull request #67132 from KoBeWi/This_commit_message_is_auto-generated._Do_not_modify_it-
Add UID support to GDScript files
2024-01-18 16:33:14 +01:00
Bastiaan Olij
afd1dcf1b1 OpenXR: Add runtime selection dropdown 2024-01-18 15:59:22 +01:00
Rémi Verschelde
fa81059b9d
Merge pull request #85939 from adamscott/single-threaded-godot-4
Add `THREADS_ENABLED` macro in order to compile Godot to run on the main thread
2024-01-18 09:33:52 +01:00
kobewi
c7f68a27ec Add UID support to GDScript files 2024-01-17 22:30:56 +01:00
Adam Scott
bd70b8e1f6
Add THREADS_ENABLED macro in order to compile Godot to run on the main thread 2024-01-17 13:58:29 -05:00
Yuri Sizov
e61cae06c6 Merge pull request #87280 from KoBeWi/all_paths_lead_to_Resource
Display path in tooltips of sub-resource list
2024-01-17 18:53:29 +01:00
Yuri Sizov
788aab3a96 Merge pull request #87115 from groud/tilemap_layers_as_nodes
Make TileMapLayers extend Node2D and work as children of TileMap
2024-01-17 18:53:12 +01:00
Yuri Sizov
c027aecc2e Merge pull request #86676 from rune-scape/sparse-script-reload
GDScript: Hot-reload changed scripts only
2024-01-17 18:52:54 +01:00
Yuri Sizov
d92d8a49aa Merge pull request #86064 from jsjtxietian/fix-sort-by-type
Fix "Class name cannot be empty" error when sorting no import files sort by type
2024-01-17 18:52:35 +01:00
Yuri Sizov
a0fec566ef Merge pull request #82821 from Madalaski/connections_delete_key
Allow to remove signal connections using `Delete`
2024-01-17 18:52:22 +01:00
Gilles Roudière
48bed5050b Make TileMapLayers extend Node2D and work as children of TileMap 2024-01-17 16:05:50 +01:00
Yuri Sizov
45eedba1fa Improve editor theme generation after the refactor 2024-01-17 15:16:53 +01:00
Madalaski
3b9fc45f8c Fixing a usability issue where the DEL key does not delete connections 2024-01-17 00:51:43 +00:00
kobewi
60e88f2def Display path in tooltips of sub-resource list 2024-01-16 23:51:57 +01:00
Yuri Sizov
691450bc08 Reorganize project manager code
- Extract individual components to their own files.
- Improve order of declarations and definitions within those files.
- ProjectDialog is only extracted as there are upcoming
PRs touching on it.
2024-01-16 19:57:36 +01:00
A Thousand Ships
2920a875dc
Cache TreeItems between runs in EditorHelpSearch 2024-01-16 16:50:45 +01:00
ajreckof
2f697926b0 Fix renaming a node to the name of its siblings breaking NodePath
Also fix cases where node name was not visually updated because name was not changed

Co-Authored-By: Nông Văn Tình <53887662+nongvantinh@users.noreply.github.com>
2024-01-16 15:18:30 +01:00
A Thousand Ships
dc86483e3a
Add inheriting classes to DocTools 2024-01-16 14:42:36 +01:00
Yuri Sizov
dc3b07e551 Introduce editor theme spacing presets
This change adds a new editor setting related to theming
which controls base and additional spacing used in the
generated editor theme. These values can also be changed
manually by the user to customize their experience.

Limited effort was applied to make sure both Compact and
Spacious presets work and look fine, but further tuning
and adjustments are totally expected. Some controls will
require layout changes or additional fixes to their constants.
2024-01-16 11:57:45 +01:00
Yuri Sizov
635b8a1474 Split theme generation logic into several subroutines
This change introduces a new theme configuration struct to be
passed to the aforementioned routines to better control reuse
of styles and definitions in the generator.

Everything not passed and not explicitly shared is scoped so it
is not automatically accessible throughout the routine. This
should ensure that the decision to share styles is a conscious one.

In the future we will try to reduce the number of unique definitions
and share most of it. This PR is a stepping stone on this path.

This also puts the effort into separating redefinitions of
default theme items vs custom types introduced only by the editor.
In a few cases where editor-specific definitions need to reference
default definitions we simply fetch them from the theme. It's not
ideal and hides the dependency a bit, but hopefully these cases
will be abstracted properly in due time.
2024-01-16 11:57:45 +01:00
Yuri Sizov
95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
Rémi Verschelde
6bb89c71ff
Merge pull request #87229 from RandomShaper/gl_preview_goodboy
Run resource previewer on the main thread if using GL compatibility
2024-01-16 10:39:37 +01:00
Rémi Verschelde
a69e23b23b
Merge pull request #87216 from Calinou/editor-print-rich-handle-meta
Handle clickable `[url]` tags in `print_rich()` editor output log
2024-01-16 10:38:26 +01:00
Rémi Verschelde
db7175458a
Merge pull request #87143 from ajreckof/fix-icon-corrupted-on-nested-arrays
Fix icon corrupted when nested array editors are opened before opening main array editor.
2024-01-16 10:36:01 +01:00
Rémi Verschelde
039379d272
Merge pull request #84193 from kitbdev/dock-manager-extract
Extract `EditorDockManager` from `EditorNode`
2024-01-16 10:35:11 +01:00
Pedro J. Estébanez
e5454cd660 Run resource previewer on the main thread if using GL compatibility 2024-01-16 10:01:41 +01:00
kit
2323f040e9 Extract editor dock manager 2024-01-15 15:15:42 -05:00
Hugo Locurcio
4a11d48420
Handle clickable [url] tags in print_rich() editor output log
Since this uses `OS.shell_open()`, this allows the use of any standard URL
including `file://` paths, `mailto:`, custom protocols set up by the user, etc.
2024-01-15 14:54:13 +01:00
Rémi Verschelde
9e65c5c0f4
Merge pull request #87183 from hakro/where-is-my-tooltip
Add tooltips to the export buttons
2024-01-15 13:31:29 +01:00
Rémi Verschelde
fe76b61743
Merge pull request #87160 from kleonc/tilemap-fix-debug-drawing-truncations-to-ints
Fix some `TileMap` debug drawing truncating to ints
2024-01-15 13:31:04 +01:00
Rémi Verschelde
85a918d5a2
Merge pull request #87121 from jsjtxietian/fix-thumbnail-disappear
Fix thumbnail disappears if FileSystemDock is floated
2024-01-15 13:30:40 +01:00
Rémi Verschelde
73ca286df2
Merge pull request #87108 from YuriSizov/editor-capitalize-oidn
Capitalize OIDN in editor settings and properties
2024-01-15 13:29:51 +01:00
Rémi Verschelde
a2d61a9ac4
Merge pull request #86979 from alessandrofama/editor-resource-picker-icons
Fix missing icons for custom resources in EditorResourcePicker
2024-01-15 13:26:14 +01:00
Rémi Verschelde
fa3477f2be
Merge pull request #86878 from YeldhamDev/tabcontainer_pot_generation
Parse the names of children of `TabContainer`s on POT generation
2024-01-15 13:25:49 +01:00
Rémi Verschelde
03767fbf3b
Merge pull request #86446 from reduz/transient-to-focused
Implement a `transient_to_focused` Window mode
2024-01-15 13:25:00 +01:00
Rémi Verschelde
a2b94fe8d8
Merge pull request #86145 from Rindbee/set-a-suitable-size-for-labels-with-AUTOWRAP_WORD_SMART
Set an appropriate minimum size for labels in windows that display incorrectly
2024-01-15 13:24:06 +01:00
Rémi Verschelde
c981e30848
Merge pull request #84619 from quirkylemon/favorite-node-tooltip
Add tooltip for toggling favorite nodes
2024-01-15 13:22:52 +01:00
Rémi Verschelde
fb5ad1af3d
Merge pull request #83014 from Chubercik/window_method_duplicate_fix
Add deprecation notice to a duplicate method of class `Window`
2024-01-15 13:22:02 +01:00
Rémi Verschelde
9c91fbedfb
Merge pull request #81905 from ckaiser/feature/project_settings_add_consistency
Improve "Add" button consistency in Project Settings
2024-01-15 13:21:34 +01:00
Hakim
6dfc36d661 Add some tooltips to the export buttons
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-15 12:14:09 +01:00
Juan Linietsky
15144c24bd Implement a transient_to_focused mode
This intends to be the correct way to handle non-child windows becoming covered by the current window when becoming focused.
Enabling this property on select windows, they will become transient to the currently focused one when becoming visible.

This deprecates the "unparent_when_invisible" function introduced by #76025.
2024-01-14 18:51:44 +01:00
A Thousand Ships
595c6248a3
Fix reloading current scene forgetting path
Scene was stopped before running which cleared the last run scene,
forcing it to run the currently edited scene instead
2024-01-14 12:17:32 +01:00
kleonc
baa5504700 Fix some TileMap debug drawing truncating to ints 2024-01-14 02:02:46 +01:00
ajreckof
b75fb4603b Fix icon corrupted when nested array editors are opened before opening main array editor. 2024-01-13 09:20:38 +01:00
QuirkyLemon
14b2533ef6 add tooltip for toggling favorite nodes 2024-01-12 15:26:13 -06:00
Jakub Marcowski
06534f8ad5 Add deprecation notice to a duplicate method of class Window 2024-01-12 18:18:28 +01:00
jsjtxietian
57751b1917 Fix thumbnail disappears if FileSystemDock is floated 2024-01-13 01:15:37 +08:00
风青山
f932c6548e Set an appropriate minimum size for labels in windows that display incorrectly
When the label's `autowrap_mode` is `AUTOWRAP_WORD_SMART` and the initial `text`
is set at the same time, it may have a higher height.

Set an appropriate minimum size for labels in windows that display incorrectly
so that these controls display properly.
2024-01-12 23:08:38 +08:00
Alessandro Famà
2cfdb27c81 Fix missing icons for custom resources in EditorResourcePicker
The icons of custom resources created with `class_name` and annotated with `@icon` or GDExtensionen resources that have an icon specified in the .gdextension file are not appearing in the `EditorResourcePicker`.  The problem is that the `EditorResourcePicker` retrieves the editor theme icon for the resource type and defaults to the `Object` icon if the type wasn't found. This will apply both to `class_name` and GDExtension resources.

This solution addresses the issue by replacing the usage of `Control::get_editor_theme_icon` with `EditorNode::get_class_icon` to ensure the correct icon is retrieved for the resource. Additionally, this fix removes the `custom_resources` lookup above that call, as these resources, added through `EditorPlugin::add_custom_type`, were not being included in the allowed types within `_add_allowed_type` in the `EditorResoucePicker`. Currently, these particular custom resources are never displayed in the picker. The related issue is logged here: #75245.

Fixes #86072.
2024-01-12 15:39:33 +01:00
Yuri Sizov
4975619018 Capitalize OIDN in editor settings and properties 2024-01-12 13:45:20 +01:00
Christian Kaiser
1910f91f17 Improve "Add" button consistency in Project Settings
* Adds an icon to all the input-adjacent add/remove buttons
 * Adds a separator next to the action map "add" button
 * Changes the Shader Globals editor to be consistent with the others
 * Adds a clear button to the shader global name input
2024-01-11 17:13:23 -03:00
A Thousand Ships
4b7ea9fe47
Fix invalid 3-to-4 renames of add_animation to add_animation_library
This rename breaks `SpriteFrames` and also isn't valid as the new method
takes an `AnimationLibrary`, not an `Animation`
2024-01-11 18:35:29 +01:00
Rémi Verschelde
a3765274fb
Merge pull request #87048 from Mickeon/scene-string-names-are-a-mess
Use SceneStringNames in Skeleton3DEditorPlugin
2024-01-11 17:42:14 +01:00