Commit Graph

394 Commits

Author SHA1 Message Date
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
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