Commit Graph

1643 Commits

Author SHA1 Message Date
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
Yuri Sizov 21c5f86d5d Check the native base of scripts when resolving icons 2023-09-06 15:20:07 +02:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Rémi Verschelde 60422759fa
Merge pull request #80849 from KoBeWi/edit_NOTHING
Unedit nodes early when closing scene tab
2023-09-02 14:29:00 +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
bitsawer 836705d7a9 Reset SDFGI when changing editor scene tabs 2023-08-30 19:50:05 +03:00
Rémi Verschelde 91c5273ec5
Merge pull request #75656 from YuriSizov/core-iconic-builtins
Add a script method to get its class icon
2023-08-29 12:41:03 +02:00
kobewi cbd01043f0 Fix Quick Open not opening binary resources 2023-08-28 12:57:14 +02:00
Rémi Verschelde 0655a7d7d3
Merge pull request #80517 from YuriSizov/tsa-randomly-picked-you-for-mandatory-inspection-i-think-not
Avoid unnecessary inspector updates when loading or switching scenes
2023-08-28 12:05:06 +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 e21ded8f8f Merge pull request #80450 from KoBeWi/settings_freeze,_no_more_changes
Deprecate `project_settings_changed` signal
2023-08-25 14:58:32 +02:00
Yuri Sizov 2c77f07aaa Add a script method to get its class icon
Co-authored-by: Danil Alexeev <danil@alexeev.xyz>
2023-08-24 13:05:41 +02:00
Yuri Sizov 6ab34005ad Extract editor scene tabs into their own component 2023-08-24 12:24:29 +02:00
kobewi dd7152a311 Unedit nodes early when closing scene tab 2023-08-21 14:12:26 +02:00
Rémi Verschelde c7356c795b
Merge pull request #80647 from jsjtxietian/CollisionShape3D-Shape-Size-handles-missing-when-Script-editor-floating
Fix 2D/3D viewport context switching issues when script editor is floating
2023-08-17 11:27:04 +02:00
Rémi Verschelde 678c89aa1a
Merge pull request #79382 from MewPurPur/better-prepare-scene-context-menu
Disable irrelevant scene tab context menu items
2023-08-17 11:20:57 +02:00
Tomasz Chabora 3dd881b4e4 Add option to allow echo events in menu shortcuts 2023-08-16 16:59:17 +02:00
jsjtxietian fec0396cac fix CollisionShape3D Shape Size handle will missing
when Script editor floating
2023-08-15 12:41:20 +08:00
Yuri Sizov 2445414aa0 Avoid unnecessary inspector updates when loading or switching scenes
This should result in some noticeable performance improvements,
aside from fixing bugs due to conflicts in logic.
This also simplifies some related code identified while debugging.
2023-08-12 13:32:59 +02:00
kobewi fca3ab5564 Deprecate project_settings_changed signal 2023-08-10 15:07:25 +02:00
Rémi Verschelde 1b132b7c23
Merge pull request #80377 from YuriSizov/importers-are-made-to-be-alone
Register and cleanup resource importer singletons in a predictable way
2023-08-09 17:46:33 +02:00
Rémi Verschelde 8375f73680
Merge pull request #80355 from jcovin293/issue/80347/fix-missing-ellipsis
Fix menu items that trigger secondary interface missing ellipsis
2023-08-09 17:46:26 +02:00
RandomWalrus13 585633ea85 Fix menu items that trigger secondary interface missing ellipsis
fix #80347
2023-08-09 08:30:35 -05:00
Rémi Verschelde f6b9d445b5
Merge pull request #80285 from YeldhamDev/just_a_little_bit
Further separate icon from text of buttons in both editor and default themes
2023-08-09 15:20:25 +02:00
Rémi Verschelde 1163dac9e3
Merge pull request #80215 from clayjohn/HDR-2D
Add option to enable HDR rendering in 2D
2023-08-08 16:57:33 +02:00
Michael Alexsander 98bdb56815
Further separate icon from text of buttons in both editor and default themes 2023-08-07 13:22:39 -03:00
Yuri Sizov 237515d0ed Register and cleanup resource importer singletons in a predictable way 2023-08-07 17:49:33 +02:00
Rémi Verschelde 5413b185f1
Merge pull request #79971 from Calinou/editor-filesystem-dock-expand-favorites
Uncollapse favorites by default in the editor FileSystem dock
2023-08-07 14:49:58 +02:00
clayjohn 57eb762bae Add option to enable HDR rendering in 2D
This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance

Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear.
This is necessary for proper HDR screen support in the future.
2023-08-07 11:24:03 +02:00
MewPurPur 4b0ee492ae Disable irrelevant scene tab context menu items 2023-08-04 19:04:18 +03:00
Pedro J. Estébanez b3a5e10f4a Avoid crash on exiting due to late prints 2023-08-02 13:38:58 +02:00
Rémi Verschelde f8ead6d5b6
Merge pull request #80089 from AThousandShips/editor_settings_fix
Fix API hash related crash in `EditorSettings`
2023-08-02 12:20:47 +02:00
Yuri Sizov 77785c340d Merge pull request #79852 from YeldhamDev/that_was_getting_annoying
Fix usability issues with scene tabs
2023-08-01 17:25:33 +02:00
Yuri Sizov fbe7602bd3 Merge pull request #79945 from hvarga/fix-current-scene-update
Fix out of bounds access when updating current scene
2023-07-31 21:01:43 +02:00
Yuri Sizov f15898161a Merge pull request #79917 from hvarga/fix-scene-tab-close
Fix crash when using "Close All Tabs"
2023-07-31 21:01:40 +02:00
Ninni Pipping e2a91309d0 Fix API hash related crash in `EditorSettings` 2023-07-31 16:35:41 +02:00
Michael Alexsander 3e539fff78
Fix some issues with scene tabs
- Stop scene creation on double-click when hovering the offset buttons.
- Fix the "Add Scene" button's position on RTL mode.
2023-07-30 01:13:36 -03:00
Hugo Locurcio 075bd4b281
Uncollapse favorites by default in the editor FileSystem dock 2023-07-28 01:09:14 +02:00
Yuri Sizov 6535b7475d Merge pull request #79908 from YeldhamDev/output_icon_space
Fix spacing between icon and "Output" button
2023-07-27 15:22:44 +02:00
Hrvoje Varga ba2850759d Fix current-scene update 2023-07-27 07:45:53 +02:00
Hrvoje Varga 51923fc528 Fix scene tab close 2023-07-27 07:38:40 +02:00
Michael Alexsander 2883a40aa1
Fix spacing between icon and "Output" button 2023-07-26 15:22:44 -03:00
Yuri Sizov 921776f0a5 Merge pull request #79203 from KoBeWi/visible_confusion
Don't grab theme icons for scripts
2023-07-26 18:39:52 +02:00
Yuri Sizov bc0e646076 Merge pull request #78827 from Rindbee/fix-history-mismatch
Fix history mismatch
2023-07-26 18:39:32 +02:00
Yuri Sizov 92960b7a22 Merge pull request #78615 from RandomShaper/fix_doc_cache
Re-enable docs cache with fixes
2023-07-26 18:39:22 +02:00
Yuri Sizov fc1b392e08 Merge pull request #79793 from trollodel/hide_make_floating_swm
Make the single window mode check more strict
2023-07-25 21:51:31 +02:00
Yuri Sizov 623787061a Merge pull request #79492 from dsnopek/gdextension-remove-editor-plugins-at-shutdown
Prevent GDExtensions from trying to remove editor plugins at shutdown
2023-07-25 21:25:58 +02:00
trollodel 0f6327b59b Make the single window mode check more strict
Check the "interface/editor/single_window_mode" editor settings.
2023-07-22 17:24:47 +02:00
Yuri Sizov 547f88aa8c Merge pull request #79396 from Sauermann/fix-systeminfo-displayserver
Include display server type in "Copy System Info"
2023-07-21 17:54:30 +02:00
kobewi 51f92d1100 Don't grab theme icons for scripts 2023-07-21 02:13:07 +02:00
Fredia Huya-Kouadio d17811c814 Re-architect how Android plugins are packaged and handled at export time
The previous packaging format for Godot Android plugins consisted of the plugin's `gdap` config file accompanied by binaries defined in the `gdap` file.
This format is now deprecated (starting with Godot 4.2), and instead Godot Android plugins are now packaged as `EditorExportPlugin` plugins.

The `EditorExportPlugin` class has been updated with the following methods to provide the necessary set of functionality:
- `_supports_platform`: returns true if the plugin supports the given platform
- `_get_android_dependencies`: retrieve the set of android dependencies (e.g: `org.godot.example:my-plugin:0.0.0`) provided by the plugin
- `_get_android_dependencies_maven_repos`: retrieve the urls of the maven repos for the provided android dependencies
- `_get_android_libraries`: retrieve the local paths of the android libraries (AAR files) provided by the plugin
- `_get_android_manifest_activity_element_contents`: update the contents of the `<activity>` element in the generated Android manifest
- `_get_android_manifest_application_element_contents`: update the contents of the `<application>` element in the generated Android manifest
- `_get_android_manifest_element_contents`: update the contents of the `<manifest>` element in the generated Android manifest
2023-07-18 19:14:53 +02:00
kobewi b883f32188 Check for unsaved changes when closing a scene 2023-07-18 14:27:56 +02:00
kobewi 6dc5dc3479 Add `_get_unsaved_status()` method to EditorPlugin 2023-07-18 14:18:36 +02:00
Yuri Sizov 79a9e79561 Merge pull request #79416 from sepTN/fix-copy-system-info
Fix rendering driver in Copy System Info for the Compatibility rendering method
2023-07-18 13:28:30 +02:00
Septian c4b878ccb3 Fix Copy System Info to copy the correct rendering driver for the Compatibility rendering method 2023-07-18 06:16:15 +07:00
kobewi de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
Markus Sauermann 1712b78e18 Include Display Server Type in Copy System Info
Add info about X11 or Wayland to System Information on LinuxBSD.
2023-07-16 10:32:54 +02:00
David Snopek 62af007aa0 Prevent GDExtensions from trying to remove editor plugins at shutdown 2023-07-14 17:48:14 -05:00
Hendrik Brucker 7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
WiseNoodle d1c70cf7d4 Add missing word to text of the alert dialog 2023-07-12 11:53:31 -04:00
Rindbee 28db5e7649 Fix history mismatch
Set the properties of the resource's proxy instead of setting the resource's
properties directly. (For action "Set ...")

Update the path of the edited scene when saving the scene. (For action "Add
atlas source")
2023-07-11 05:45:37 +08:00
kobewi 59ae7e2445 Collapse bottom panel if there is no active tab 2023-07-05 23:07:12 +02:00
Pedro J. Estébanez cac4d44cde Re-enable docs cache with fixes 2023-07-05 10:44:58 +02:00
kobewi 0458ac4b81 Improve script icon cache 2023-06-26 14:03:21 +02:00
Yuri Sizov f623509086 Handle contextual editors gracefully when restoring layout 2023-06-23 15:46:06 +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
Michael Alexsander 41a75cfa4f
Allow exporting release Android builds without a debug keystore 2023-06-19 01:00:13 -03:00
Rémi Verschelde ad85ecef8d
Merge pull request #77750 from RandomShaper/tidy_shader_data_items
Let editor workaround a case of inconsistency in compound scenes
2023-06-13 13:52:51 +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
Alex Drozd 454befc880 Prevent non-existent scene from being saved to persistent editor config 2023-06-12 22:49:49 +02:00
Rémi Verschelde c3e5e4ed4b
Merge pull request #68599 from Rindbee/update-edited_scene_root-in-time
Update the edit scene root in time after it is replaced
2023-06-12 17:08:50 +02:00
Rindbee eb74079dfb Update the edit scene root in time after it is replaced
When changing the type of the edited scene root node, it may be necessary
to update edited scene root in time for the child nodes to work properly.
2023-06-12 21:49:30 +08:00
kobewi 0a4d0506d1 Fix problems reloading MeshLibrary 2023-06-11 19:42:24 +02:00
Rémi Verschelde a08aa9627c
Merge pull request #75226 from AThousandShips/file_dialog_default
Do not use editor setting for FileDialog hidden files
2023-06-09 15:30:48 +02:00
MJacred 2c5e2196bd Replace get_rendering_device() call to prevent crashes on OpenGL.
And make OpenGL video adapter info align with Vulkan.
2023-06-06 23:29:36 +02:00
lawnjelly b69c8b4791 Single Compilation Unit build.
Adds support for simple SCU build (DEV_ENABLED only).
This speeds up compilation by compiling multiple cpp files within a single translation unit.
2023-06-06 15:36:51 +01:00
kobewi 53a15d85be Get rid of mouse wheel switch in scene tabs 2023-05-31 22:21:40 +02:00
David Giardi a8fc343f80 Make main editor window border margin controllable by theme 2023-05-30 19:19:39 +02:00
Rémi Verschelde 60871fd4b7
Merge pull request #77574 from MJacred/editor/system_info_single_line
Make system information for issue reports single-line
2023-05-30 09:33:13 +02:00
MJacred ca1ee316b5 Make system information for issue reports single-line
Additionally:
* for custom builds, add commit hash
* added a tooltip to help mitigate potential/understandable confusion whether the single-line output might be a bug
* prettify driver name
2023-05-29 22:20:40 +02:00
Yuri Sizov fd5faae29c
Merge pull request #75983 from timothyqiu/dialog-rebase
Fix theme of editor VCS dialogs
2023-05-29 17:42:16 +02:00
Yuri Sizov 4c5c7cbb58 Fix auto-reparenting logic in the `ProgressDialog`
* Make sure `Popup` signals are disconnected when unparented.
* Remove a fail condition from `Window::is_embedded` when
not in tree.
2023-05-29 17:02:16 +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
kobewi 8eb076a630 Uncollapse res:// by default 2023-05-26 13:25:09 +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
Aaron Franke b4129680fb
Sort the list of addons before saving them 2023-05-11 13:39:26 -05:00
Hendrik Brucker dc46163b12 Improve editor state persistence 2023-05-11 04:17:03 +02:00
Rémi Verschelde 5271186f2f
Merge pull request #75901 from reduz/refactor-node-processing
Refactor Node Processing to allow Scene Multithreading
2023-05-10 12:46:44 +02:00