Commit graph

461 commits

Author SHA1 Message Date
Hugo Locurcio
6f9586443a
Add a V-Sync editor setting
The editor setting makes it possible to tweak V-Sync status
independently of the project setting.

Use cases:

- Decrease input lag and increase editor responsiveness when editing
  a project that has V-Sync enabled.
- Avoid tearing when editing a project that has V-Sync disabled.
2024-02-05 22:14:20 +01:00
kobewi
4ad74a5663 Some editor code cleanup 2024-01-30 21:33:31 +01:00
Juan Linietsky
000367893a Ability to move FileSystem dock to bottom
* Allows moving the filesystem dock to the bottom
* Added ability to drag resources across bottom docks
2024-01-29 15:15:38 +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
kit
2323f040e9 Extract editor dock manager 2024-01-15 15:15:42 -05:00
Yuri Sizov
644e236e5c Merge pull request #83987 from bruvzg/macos_window_and_help
[macOS] Add default Window and Help menus, allow special menu customization.
2023-12-18 18:17:41 +01:00
Yuri Sizov
4269a57b0c Merge pull request #85387 from jsjtxietian/fix-forward-plus-crash
Use render method from OS instead of project settings in compositor RD
2023-12-14 17:38:43 +01:00
jsjtxietian
453c2246b6 Use render method from OS in compositor RD; Update related UI 2023-12-14 11:38:46 +08:00
bruvzg
0d44b50520
[macOS] Add default Window and Help menus, allow special menu customization. 2023-12-13 23:20:05 +02:00
Rémi Verschelde
8f2b5cc109
Merge pull request #82899 from aaronfranke/import-settings-dialogs
Rename ImportSettings dialogs to have "Dialog" in the name
2023-12-12 00:15:59 +01:00
Yuri Sizov
9dce1a45a0 Merge pull request #85819 from Malcolmnixon/export-android-build-template
Add option to install android build template for export
2023-12-08 16:58:54 +01:00
Yuri Sizov
6c86974022 Merge pull request #84122 from kitbdev/fix-dock-visibility
Fix dock visibility issues
2023-12-08 15:23:09 +01:00
Malcolm Nixon
988c1bf298 Add option to install android build template for export
This PR adds a new "--install-android-build-template" command-line option which causes the android build template to be installed before exporting the project.
2023-12-08 09:00:25 -05:00
kobewi
0b172742cf Save external data even without scene 2023-11-29 16:19:17 +01:00
bruvzg
27ca31f359 [Editor] Save and restore previous window mode when toggling full-screen. 2023-11-27 12:44:30 +02:00
Aaron Franke
a8dc34b8f0
Rename ImportSettings dialogs to have "Dialog" in the name 2023-11-26 22:59:01 -06:00
Yuri Sizov
10b70e2498 Rework the surface upgrade tool to inform users without blocking
This removes the immediate confirmation dialog and insteads prints the
message to the editor log (and it also appears as a toast). The immediate dialog
is a devil's plaything, and it cannot be used in this scenario (if it can be used
anywhere at all). The condition that triggers the SUT can happen during any
attempt by the rendering server to read a mesh. This means it will conflict
with a number of editor processes, like loading, importing, preview
generation, export, CLI mode, etc.

So while this is less on the nose as far as informing users goes, it's also
our best option to use the log and the toaster.
2023-11-22 19:03:14 +01:00
kobewi
d84ba48d8f Avoid saving scene while already saving the scene 2023-11-20 21:57:21 +01:00
Yuri Sizov
fdaee9ee89 Prevent the surface upgrade tool from running during export
Also add an explicit way to trigger the tool manually
at user's will.
2023-11-20 15:36:45 +01:00
Fredia Huya-Kouadio
136b7f9c52
Preserve the output from the gradle build command
Updates `EditorNode#execute_and_show_output(...)` to return the output of the executed command.
2023-11-12 12:07:04 +01:00
clayjohn
be386e1876 Overhaul the SurfaceUpgradeTool
This defers the update to a fresh restart of the editor (to ensure we aren't mid way through loading scenes anymore.

It also ensures that the popup can't be used by multiple threads at once

Co-authored-by: Yuri Sizov <yuris@humnom.net>
2023-11-01 15:32:54 +01:00
Rémi Verschelde
8f0b742a9a
Merge pull request #83576 from raulsntos/fix-80883
Enable new addon after hiding ProjectSettings
2023-10-30 17:47:23 +01:00
kit
a2674463fa fix dock visibility issues 2023-10-30 10:52:07 -04:00
Saracen
4b671eec0e Reimport bone attachment fixes:
Assign bone_idx to GLTF importer to fix serialization.
Notifies Skeletons and BoneAttachments when reimporting.
Removes usage of NOTIFICATION_NODE_RECACHE_REQUESTED
2023-10-27 20:34:01 +01:00
Jordyfel
50b7387a3f Use Hashset for dependency list when moving 2023-10-25 21:05:53 +03:00
clayjohn
318ef8461f Implementation of tool to automatically upgrade and re-save meshes 2023-10-23 22:39:48 +02:00
Raul Santos
7b34fa8dd2
Enable new addon after hiding ProjectSettings
- Enabling newly created addons can show a warning dialog, doing so before hiding the `ProjectSettingsEditor` dialog causes rendering glitches.
- Remove unused `PuginConfigDialog` in `EditorNode`. The one actually being used is an instance in `EditorPluginSettings`.
2023-10-18 20:20:46 +02:00
kobewi
a6de7a8a3f Allow contextual plugins to persist temporarily 2023-10-06 15:58:50 +02:00
David Snopek
2733a6f762 Implement reloading of GDExtensions 2023-09-25 22:10:17 -05:00
Yuri Sizov
8ecc0c4f47 Fix accessing editor theme items throughout the UI
This also exposes `EditorInterface::get_editor_theme`.
2023-09-15 14:51:01 +02:00
Yuri Sizov
fc01e2e7f6 Add a theme preview switcher to the 2D viewport
This commit adds a new View submenu that allows switching
between the project theme (default), the editor theme, and
the default theme. The last selected option is stored per
project and is restored when reloading the project.
2023-09-06 19:40:43 +02:00
Yuri Sizov
512182f147 Add theme contexts to various parts of the editor
This change defines additional theme contexts for editor
branches to prevent theme leaking between the default
theme, the project theme, and the editor theme.

- Both editor window and EditorNode define an editor-specific
context with the editor theme and the default theme.
- The 2D viewport defines a project-specific context with
the project theme and the default theme.
- Theme editor preview tabs define the default-only context
with the default theme.

Additionally, the default theme context now only includes
the project theme for running projects (both export and debug).
This prevents the project theme from leaking into the editor.

This commit also does a little clean up on the theming aspects
of the EditorNode.
2023-09-06 19:40:43 +02:00
Rémi Verschelde
5588980e47
Merge pull request #80184 from MewPurPur/gray=abstract
Use the gray color for all abstract classes
2023-09-01 16:00:58 +02:00
MewPurPur
398ca4e71a Use the gray color for all abstract classes 2023-08-31 12:59:18 +03:00
Hugo Locurcio
3ba031602b
Display time of last save in the unsaved changes confirmation editor dialog
When multitasking, this makes it clearer whether closing a window with unsaved
changes is potentially dangerous or not.
2023-08-31 00:47:11 +02:00
Rémi Verschelde
2967084fe3
Merge pull request #80490 from YuriSizov/editor-scene-tabs-unchained
Extract editor scene tabs into their own component
2023-08-28 12:04:41 +02:00
Yuri Sizov
6ab34005ad Extract editor scene tabs into their own component 2023-08-24 12:24:29 +02:00
kobewi
fca3ab5564 Deprecate project_settings_changed signal 2023-08-10 15:07:25 +02:00
kobewi
51f92d1100 Don't grab theme icons for scripts 2023-07-21 02:13:07 +02:00
kobewi
6dc5dc3479 Add _get_unsaved_status() method to EditorPlugin 2023-07-18 14:18:36 +02:00
Yuri Sizov
8cfbc6bda2 Revert "Remember only permanent bottom tabs"
This reverts commit 5dde57e958.
2023-06-23 15:23:36 +02:00
kobewi
5dde57e958 Remember only permanent bottom tabs 2023-06-23 10:53:39 +02:00
Pedro J. Estébanez
96c469a138 Let editor workaround a case of inconsistency in compound scenes 2023-06-13 11:05:57 +02:00
Haoyu Qiu
b30a332009 Fix theme of editor VCS dialogs
These dialogs were added to the plugin itself so theme can't be
propagated.

Also moved initialization of the VCS menu after the creation of
EditorInterface.
2023-05-29 21:25:31 +08:00
Yuri Sizov
c670c4334a
Merge pull request #65902 from MJacred/editor/copysysteminfo
Add an editor option to copy system info to clipboard
2023-05-27 20:11:54 +02:00
MJacred
9e5bf3d589 Copy system info to clipboard + Update bug_report.yml
plus minor static-related fixes
* linuxbsd: get_systemd_os_release_info_value() -> static breaks usage if used multiple times
* windows/linuxbsd: get_video_adapter_driver_info() writes info into static
* linuxbsd: get_distribution_name() + get_version() -> write bsd fallback into static variable
* windows/uwp/android: remove unnecessary use of static
2023-05-27 18:21:23 +02:00
Rémi Verschelde
699b66b62d
Merge pull request #77010 from dsnopek/gdextension-editor-plugins
Allow GDExtensions to add editor plugins
2023-05-26 11:00:32 +02:00
David Snopek
3007163210 Allow GDExtensions to add editor plugins 2023-05-25 09:14:29 -05:00
Fredia Huya-Kouadio
831b4a5366 Improve startup benchmarking
Move the benchmarking measuring methods from `Engine` to `OS` to allow for platform specific overrides (e.g: can be used to hook into platform specific benchmarking and tracing capabilities).
2023-05-23 13:22:35 -07:00
Pedro J. Estébanez
2648232fe8 Make certain editor callbacks thread-safe 2023-05-20 11:17:41 +02:00
Yuri Sizov
17f492fb82 Expose dialog parent-and-popup logic to the API 2023-05-15 19:49:28 +02:00
Pedro J. Estébanez
45d0b38076 Enhance thread safety of loaders and importers 2023-05-12 17:44:48 +02:00
Pedro J. Estébanez
7537a0521f Simplify ResourceLoader error callbacks 2023-05-12 17:44:48 +02:00
Hendrik Brucker
dc46163b12 Improve editor state persistence 2023-05-11 04:17:03 +02:00
trollodel
b4d6b47c17 Add multi window code and shader editors 2023-05-10 09:14:21 +02:00
Yuri Sizov
8a74d8438f Extract editor run toolbar into its own component
- Simplify and update its logic.
- Simplify EditorScript.
- Improve EditorNode and other relevant includes.
- Fix scene-based path in the movie writer when
reloading a scene.
2023-04-19 17:12:28 +02:00
Yuri Sizov
49d7041d34 Decouple EditorInterface from EditorPlugin
- Simplify some includes in the process.
- Also exposes EditorInterface.movie_maker_enabled as a property.
2023-04-17 21:59:09 +02:00
Yuri Sizov
4154039832 Improve includes of EditorNode (and everything else)
Also start organizing editor-specific GUI components
into a dedicated folder, `editor/gui`.
Also move `editor_file_server` next to the rest of debugger classes.
2023-04-07 18:59:49 +02:00
kobewi
ddc8567022 Scene tab closing refactor 2023-04-03 22:19:07 +02:00
Yuri Sizov
9fae65404a Streamline class icon resolution in the editor 2023-03-31 21:17:59 +02:00
Yuri Sizov
496bd94c21 Prevent cache corruption when saving resources in the editor 2023-03-08 19:46:55 +01:00
Rémi Verschelde
0885e4b931
Merge pull request #73365 from bruvzg/no_transient_children
Automatically reparent editor message dialogs to avoid error spam.
2023-03-02 11:41:17 +01:00
SaracenOne
7bbd7833de Fix ownership bug on ancestor nodes when scene is reimported. 2023-02-22 18:21:14 +00:00
bruvzg
921f3b7589
Automatically reparent editor message dialogs to avoid error spam. 2023-02-21 12:32:11 +02:00
Rémi Verschelde
09b2c5fd05
Merge pull request #72552 from m4gr3d/cleanup_custom_build_main
Rename Godot's 'custom build' to 'gradle build' to better reflect the underlying build process
2023-02-06 22:50:22 +01:00
kobewi
50297a9cef More fixes to over plugin handling 2023-02-06 15:35:33 +01:00
Fredia Huya-Kouadio
ca593f2f89 Rename Godot's 'custom build' to 'gradle build' to better reflect the underlying build process. 2023-02-02 07:17:31 -08:00
kobewi
360c71c3f6 Prevent wrong unedit when clicking editor viewport 2023-02-01 00:50:34 +01:00
Silc Renew
fc22583b34 Fix broken bottom panel switching 2023-01-31 19:34:26 +09:00
Rémi Verschelde
11e2278844
Merge pull request #57606 from SaracenOne/update_on_reimport
Update instances of scenes which have been reimported.
2023-01-23 15:35:44 +01:00
Rémi Verschelde
bda87300e8
Merge pull request #71770 from KoBeWi/better_editing_or_something
Rework EditorPlugin editing logic
2023-01-22 11:07:39 +01:00
kobewi
4ae168eb04 Rework EditorPlugin editing logic 2023-01-22 00:20:45 +01:00
Rémi Verschelde
906ee0b219
Merge pull request #67253 from KoBeWi/PICKER_USAGE_NO_EDITOR
Remove editor dependencies from ColorPicker
2023-01-21 20:52:16 +01:00
SaracenOne
4628736894 Update instances of scenes which have been reimported. 2023-01-16 13:46:33 -08:00
Rémi Verschelde
0f0b853c98
Merge pull request #70668 from KoBeWi/never_give_up
Retry loading addons after filesystem scan
2023-01-16 09:47:17 +01:00
kobewi
b58111588a Add EditorUndoRedoManager singleton 2023-01-16 01:11:52 +01:00
bruvzg
5406b001ca
Move remote debug buttons to a single menu. 2023-01-14 22:25:35 +02:00
Eric M
8256b4ea23 Fix Undo/Redo not working until Scene menu is opened. 2023-01-08 20:35:30 +10:00
Yuri Sizov
82c00c21e6 Simplify some editor plugin logic and remove dead code 2023-01-05 21:04:54 +03:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
kobewi
f2367e0782 Retry loading addons after filesystem scan 2022-12-28 15:40:45 +01:00
reduz
e93d991329
Add a dialog for customizing FBX import
* If FBX files are found, a dialog will pop up asking to configure FBX2glTF.
* Dialog can also be accessed by going Editor -> Configure FBX Import.
* The dialog also shows a link to click to download the converter, which
  should contain instructions.
2022-12-18 01:08:54 +01:00
trollodel
c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
Rémi Verschelde
a66fc4cf7e
Merge pull request #60686 from trollodel/move_editor_registration
Move editor class and plugin registrations to a dedicated file
2022-11-18 23:07:48 +01:00
trollodel
75177455d9 Move editor class and plugin registrations to a dedicated file 2022-11-18 08:02:08 +01:00
Rémi Verschelde
6d2a7cb46d
Merge pull request #68709 from MewPurPur/instance-begone-part3
Remove more instances of 'instance' being used as a verb
2022-11-16 14:41:42 +01:00
VolTer
3b4f5f8a04 Remove more instances of 'instance' being used as a verb 2022-11-16 14:01:53 +01:00
kobewi
c89100e571 Allow to disable History Dock via feature profile 2022-11-07 13:06:59 +01:00
Rémi Verschelde
778ffce1e3
Merge pull request #62416 from Calinou/movie-maker-request-attention-on-finish
Request attention on the editor window when done recording a movie
2022-10-31 23:03:21 +01:00
Guilherme Sousa
5d06843fcf Added custom node export 2022-10-14 17:31:00 +02:00
kobewi
a3661ad079 Remove editor dependencies from ColorPicker 2022-10-11 16:09:27 +02:00
Micky
ae5771e1b1 Rename remaining "Spatial" in Plugins to "Node3D"
For EditorNode3DGizmo:
- `get_spatial_node` -> `get_node_3d`
- `set_spatial_node` -> `set_node_3d`

For EditorPlugin:
- `add_spatial_gizmo_plugin` -> `add_node_3d_gizmo_plugin`
- `remove_spatial_gizmo_plugin` -> `remove_node_3d_gizmo_plugin`

Also renames some internal methods for consistency (`forward_3d_draw_over_viewport` & `forward_3d_force_draw_over_viewport` ...). Basically, Spatial has been completely eradicated.
2022-10-04 16:27:29 +02:00
Rémi Verschelde
73f5683c34 Merge pull request #58049 from jmb462/fix-distraction-mode-docks-tab
Prevent docks to be reset to first tab when switching dock visibility
2022-09-28 00:16:08 +02:00
bruvzg
0dab11afa4
[macOS extend-to-title] Add scene/project name to the editor title, fix incorrect window button position/order when system primary language is RTL. 2022-09-22 23:09:56 +03:00
Rémi Verschelde
7da532275b Merge pull request #65541 from clayjohn/renderer-setting
Split rendering driver project setting into renderer_name and rendering_driver
2022-09-20 09:43:59 +02:00
clayjohn
4a1c7de57c Split rendering driver project setting into renderer_name and rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer). 2022-09-19 10:26:10 -07:00
Rémi Verschelde
e5594c26b1
Merge pull request #44143 from KoBeWi/callable_multiplayer 2022-09-18 13:47:04 +02:00
Tomasz Chabora
882a4f8906 Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
Rémi Verschelde
c6e5c76536 Merge pull request #65561 from ryburnj/inconsistent-cap-scene-file-name
Fix inconsistent scene file name casing
2022-09-18 10:49:00 +02:00
ryburnj
9d6af9323a Fix inconsistent scene file name casing by moving existing Name_Casing code to separate function in editor_node, and adding a call from both editor_node and scene_tree_dock. 2022-09-18 11:17:22 +10:00