Commit Graph

435 Commits

Author SHA1 Message Date
Matthew Newall ed2280528f Corrected Save Scene and Save All Scenes not working when the scene's dir no longer exists 2021-09-11 14:39:46 +00:00
Vincent 70108fd850 implement individual mesh transform for meshlibrary items 2021-09-09 16:40:16 +02:00
Fabio Alessandrelli 58c30b2626
Merge pull request #51639 from Ev1lbl0w/gsoc21-dap
Implement more advanced features for DAP
2021-09-01 16:17:32 +02:00
Ev1lbl0w 292ed61c18 Implemented advanced features of DAP
Respect client "supportsVariableType" capability

Implement "breakpointLocations" request

Implement "restart" request

Implement "evaluate" request

Fix error messages not being shown, and improved wrong path message

Removed thread option and behavior

Implemented detailed inspection of complex variables

Fix "const"ness of functions

Added a configurable timeout for requests

Implement Godot custom data request/event

Implement syncing of breakpoints

Added support for debugging native platforms
2021-08-31 15:17:58 +01:00
Nathan Franke 9954544be8
Make default main screen plugin work even if 2D and 3D are disabled 2021-08-31 00:17:22 -05:00
kobewi baf2f374f4 Sort palette commands by last use 2021-08-31 02:07:52 +02:00
bruvzg 4c3f7d1290 Makes FontData importable resource.
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
Juan Linietsky eb940ca2a0
Merge pull request #51928 from reduz/extension-loader
Implement Extension Loader
2021-08-26 10:24:25 -03:00
reduz 5cecdfa8af Entirely removes BIND_VMETHOD in favor of GDVIRTUAL
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions.
* Everything else converted to GDVIRTUAL
* BIND_VMETHOD is gone, always use the new syntax from now on.

Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-23 08:10:13 -03:00
reduz 542e6e8ca6 Implement Extension Loader
* Extensions are now scanned and loaded on demand.
* Extensions found are cached into a file that is used to load them (which is also exported).
* Editor will ask to restart when an extension requires core functionality.
* Editor will attempt to load extensions always before importing or loading scenes. This ensures extensions can register the relevant types.
2021-08-20 16:02:24 -03:00
Bhuvan Vemula a0205e4f34 command palette improvements 2021-08-15 11:40:44 +05:30
Bhuvan Vemula a0a019a998 Added EditorCommandPalette 2021-08-09 17:41:50 +05:30
reduz 6639cc9853 Addes ability to load build sources from file.
* If not present, the dialog asks to load build sources from a file.
* The export templates check now also verifies that build sources are installed and skips the template check.

This makes Android development easier.
2021-07-15 10:14:08 -03:00
Eric M 2296b57739 Added 'Select Current' option when user is prompted to select main scene after clicking play 2021-07-07 00:27:00 +10:00
Rémi Verschelde 9996cd2a16
Merge pull request #49636 from LightningAA/add-feedback-button-4.0
Add "Suggest a Feature" to the help dialog.
2021-06-29 12:47:17 +02:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Lightning_A 70fb239a25 Add "Suggest a Feature" to the help dialog.
Links to Godot Proposals's readme.
2021-06-15 18:37:27 -06:00
Rémi Verschelde fbdb1e0bab
Merge pull request #49108 from LightningAA/reload-current-project-4.0
Add the ability to reload the current project
2021-06-15 15:40:52 +02:00
Rémi Verschelde 1074017f04
Refactor editor paths validation in EditorPaths and EditorSettings
- EditorSettings: Ensure that `create()` makes a valid singleton.
  Fixes #49179, fixes #49450.
- EditorPaths: Cleanup code, properly set `paths_valid`.
- EditorPaths: Move more paths validation (check, mkdir) from
  EditorSettings for a better separation of concerns.
- EditorPaths: Move EditorFileSystem creation of `.godot/imported`
  next to other paths.
2021-06-14 19:56:20 +02:00
Rémi Verschelde f0aa4e597a
Merge pull request #49178 from YeldhamDev/remove_dim_option 2021-05-31 12:27:01 +02:00
reduz 0d2e02945b Implement shader caching
* Shader compilation is now cached. Subsequent loads take less than a millisecond.
* Improved game, editor and project manager startup time.
* Editor uses .godot/shader_cache to store shaders.
* Game uses user://shader_cache
* Project manager uses $config_dir/shader_cache
* Options to tweak shader caching in project settings.
* Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled).
* Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated).
* Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-31 10:13:09 +02:00
Michael Alexsander 38e635bb1d Remove `dim_editor_on_dialog_popup` from editor settings 2021-05-28 21:04:38 -03:00
Lightning_A a6984f8d28 Add the ability to reload the current project 2021-05-26 09:37:37 -06:00
Hugo Locurcio 3eae2f9c6d
Add "Support Godot Development" option to the editor's Help menu 2021-05-15 01:58:29 +02:00
Daniel Lungaro 2bae31a4df Remove plugin from enabled if there's an error
inform user in warning message

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>

Refactor remove plugin from enabled
2021-05-09 13:51:09 -07:00
Gilles Roudière a3dda2df85 Rework the TileSet resource and TileMap nodes:
- Move most properties from TileMap to TileSet,
- Make TileSet more flexible, supporting more feature (several
  collision layers, etc...),
- Fusion both the TileMap and TileSet editor,
- Implement TileSetSources, and thus a new way to index tiles in the TileSet,
- Rework the TileSet and TileMap editors completely,
- Implement an editor zoom widget (and use it in several places)
2021-05-07 18:06:17 +02:00
Hugo Locurcio be01025376
Make it possible to copy the Godot version identifier by clicking it
This closes #24317.
2021-04-28 17:35:57 +02:00
Juan Linietsky 97a3a66220 Improved 3D Scene Importer
* Added option for importers to show an Advanced settings dialog
* Created advanced settings dialog for Scene Importer
* Cleaned up importers (remove many old/unused options)
* Added the ability to customize every node, material, mesh and animation individually
* Saving to animations and meshes to files is now a manual process, making it more predictable
* Added the ability for materials to be replaced by external files (or to be made external, up to you).
* When doubleclicking an impoted scene in the filesystem dock, it automatically shows the import settings instead of asking to open it.

WARNING: Lightmap UV unwrap is not working, it needs to be re-made.
2021-03-22 12:16:40 -03:00
Rémi Verschelde 310496a89f
Merge pull request #45617 from RandomShaper/modernize_atomics
Modernize atomics (and fix `volatile`)
2021-02-18 19:40:31 +01:00
Pedro J. Estébanez 8e128726f0 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
Rémi Verschelde 72f74eb29e
Merge pull request #45943 from KoBeWi/YEEEET
Remove Merge From Scene
2021-02-18 15:15:19 +01:00
reduz 288540a690 Fix editor always redrawing
-Only update rendering settings when project settings change
-Fixes the update spinner (and editor rendering) updating all the time.
-Added a "project_settings_changed" signal to EditorNode and EditorPlugin
2021-02-13 14:57:28 -03:00
kobewi 6b4faa355c Remove Merge From Scene 2021-02-13 01:35:03 +01:00
Rémi Verschelde b1c60c757f
Merge pull request #31747 from KoBeWi/scene_stalking
Detect external modification of scenes
2021-02-10 14:31:29 +01:00
kobewi c390c82014 Detect external modification of project.godot 2021-02-09 14:44:44 +01:00
Pedro J. Estébanez 99fe462452 Modernize Thread
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
2021-01-29 12:02:13 +01:00
Tomasz Chabora 412125f191 Detect external modification of scenes 2021-01-16 23:33:04 +01:00
Rémi Verschelde a7baf01352
Merge pull request #44950 from reduz/shader-debugger
Added ability to visualize native shaders
2021-01-06 16:28:45 +01:00
reduz cdb216f4e4 Added ability to visualize native shaders 2021-01-06 09:40:09 -03:00
Eric M a54110ba60 Made save dialog open immediately when running unsaved scene.
Previously there was an unneeded confirmation dialog.
2021-01-06 12:29:52 +10:00
Rémi Verschelde b5334d14f7
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Rémi Verschelde 76d4fab3f3
Merge pull request #44524 from madmiraal/rename-editor-viewport
Rename EditorInterface get_editor_viewport to get_editor_main_control
2020-12-28 14:54:50 +01:00
Marcel Admiraal 5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
Marcel Admiraal e1128431de Rename EditorInterface get_editor_viewport to get_editor_main_control 2020-12-19 14:17:42 +00:00
kobewi 889f5e44ef Make tool menu plugins use Callables for callback 2020-12-16 20:23:51 +01:00
Hugo Locurcio 57dcc83152
Rename the TextureProgress node to TextureProgressBar
Advantages:

- When searching for "progressbar", you'll see both nodes in the
  search results.
- More consistent with Button/TextureButton.
2020-12-14 21:35:13 +01:00
Rémi Verschelde 114f97ff11
Merge pull request #44128 from KoBeWi/🧹
Cleanup unused engine code
2020-12-09 13:01:50 +01:00
Tomasz Chabora 2c048ea164 Cleanup unused engine code 2020-12-09 12:12:36 +01:00
Rémi Verschelde 9a8e123593
Fix connections to CanvasItem and Tabs signals
Follow-up to #44188 and #44189.
2020-12-09 12:04:02 +01:00
Rafał Mikrut e1811b689b Initialize class/struct variables with default values in platform/ and editor/ 2020-12-02 16:09:11 +01:00
Yuri Sizov 49f6dc5004 Expose methods to play scene from plugin code 2020-07-06 17:39:16 +03:00
Stijn Hinlopen c3d9f12a10 Remove unused class PaneDrag 2020-07-02 13:50:31 +02:00
rileylyman 4285211f40 implement generic filename disambiguation
A static function is added to EditorNode which allows for filename
disambiguation given a list of filenames and the corresponding list of
absolute paths for those files. This function is then used to
disambiguate scene and script tabs in the editor.
2020-06-26 16:12:08 -07:00
Hugo Locurcio 31b7f02a29
Remove ToolButton in favor of Button
ToolButton has no redeeming differences with Button;
it's just a Button with the Flat property enabled by default.
Removing it avoids some confusion when creating GUIs.

Existing ToolButtons will be converted to Buttons, but the Flat
property won't be enabled automatically.

This closes https://github.com/godotengine/godot-proposals/issues/1081.
2020-06-19 20:49:49 +02:00
Hugo Locurcio cc1859efed
Add a getter and property for the editor distraction-free mode 2020-06-03 22:18:49 +02:00
Rémi Verschelde 0ee0fa42e6 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
Rémi Verschelde 0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde 1c18be1cc9
Merge pull request #38637 from Calinou/editor-rename-revert-scene-bind
Rename the editor action "Revert Scene" to "Reload Saved Scene"
2020-05-13 12:58:40 +02:00
Fabio Alessandrelli d79e28c302 Support multiple debug protocols. 2020-05-12 15:09:13 +02:00
Hugo Locurcio 2962819d1c Rename the editor action "Revert Scene" to "Reload Saved Scene"
This option can be used to workaround various issues with stuff
not reloading properly when changes are made.
The option was renamed to clarify the fact that it actually
reloads the scene saved on the filesystem.
2020-05-12 14:42:09 +02:00
Hugo Locurcio 2f6f029a75 Remove Request Docs button in the script editor due to various issues
The Request Docs button is partly responsible for layout overflow
issues on narrow displays, such as #31133.

It also tended to attract spam and low-effort issues that were
difficult to act upon. A "Send Docs Feedback" menu option has been added
to replace it.
2020-04-02 14:07:03 +02:00
Juan Linietsky eaae4b6408 Renamed 2D and 3D nodes to make their types explicit
Fixes #30736.
2020-03-27 14:54:04 +01:00
bruvzg 15a9f94346 Add macOS DisplayServer implementation.
Change global menu to use Callable, add support for check items and submenus.
2020-03-26 16:24:05 +01:00
Juan Linietsky 4758057f20 Working multiple window support, including editor 2020-03-26 15:49:40 +01:00
Juan Linietsky 9e08742de8 Added a Window node, and made it the scene root.
Still a lot of work to do.
2020-03-26 15:49:38 +01:00
Rémi Verschelde cb282c6ef0 Style: Set clang-format Standard to Cpp11
For us, it practically only changes the fact that `A<A<int>>` is now
used instead of the C++03 compatible `A<A<int> >`.

Note: clang-format 10+ changed the `Standard` arguments to fully
specified `c++11`, `c++14`, etc. versions, but we can't use `c++17`
now if we want to preserve compatibility with clang-format 8 and 9.
`Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-17 07:36:24 +01:00
Fabio Alessandrelli 4d623b70d7 Move Debug menu logic to DebuggerEditorPlugin 2020-03-08 22:57:48 +01:00
Pedro J. Estébanez 18fbdbb456 Reimplement Mutex with C++'s <mutex>
Main:
- It's now implemented thanks to `<mutex>`. No more platform-specific implementations.
- `BinaryMutex` (non-recursive) is added, as an alternative for special cases.
- Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
- Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts.
- A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this.
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- Thread-safe utilities are therefore simpler now.

Misc.:
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
- Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
- `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
2020-02-26 20:40:10 +01:00
Fabio Alessandrelli cbc450c0e5 Huge Debugger/EditorDebugger refactor. 2020-02-21 11:12:03 +01:00
Juan Linietsky 3205a92ad8 PoolVector is gone, replaced by Vector
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
2020-02-18 10:10:36 +01:00
Juan Linietsky 3f335ce3d4 Texture refactor
-Texture renamed to Texture2D
-TextureLayered as base now inherits 2Darray, cubemap and cubemap array
-Removed all references to flags in textures (they will go in the shader)
-Texture3D gone for now (will come back later done properly)
-Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11 11:53:26 +01:00
Rémi Verschelde a565c93aeb Export: Properly disable resource preview thread
Fixes #26857.
Fixes #34433.
Fixes #34826.
2020-01-14 11:34:02 +01:00
Rémi Verschelde 7c29ce4375 Export: Add dedicated --export-pack option to export data pack
The previous behavior relying on the provided extension was problematic
on macOS since .zip is the main extension used for the full project
export (binary + data pack).

We add a dedicated `--export-pack` command line option to define when
only the data pack should be exported. Its extension will still be
inferred from the path.

Fixes #23073.
2020-01-08 14:57:46 +01:00
Rémi Verschelde 5011afcb6a Export: Improve usability of command line interface
I'm barely scratching the surface of the changes needed to make the
--export command line interface easy to use, but this should already
improve things somewhat.

- Streamline `can_export()` templates check in all platforms, checking
  first for the presence of official templates, then of any defined
  custom template, and reporting on the absence of any.
  Shouldn't change the actual return value much which is still true if
  either release or debug is usable - we might want to change that
  eventually and better validate against the requested target.

- Fix discrepancy between platforms using `custom_package/debug` and
  `custom_template/debug` (resp. `release`).
  All now use `custom_template`, which will break compatibility for
  `export_presets.cfg` with earlier projects (but is easy to fix).

- Use `can_export()` when attempting a command line export and report
  the same errors that would be shown in the editor.

- Improve error reporting after a failed export attempt, handling
  missing template and invalid path more gracefully.

- Cleanup of unused stuff in EditorNode around the export workflow.

- Improve --export documentation in --help a bit.

Fixes #16949 (at least many of the misunderstandings listed there).
Fixes #18470.
2020-01-07 14:25:56 +01:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Haoyu Qiu 078c0d75f2 Cleans up headers included in editor_node.h 2019-12-24 21:46:05 +08:00
Haoyu Qiu 0693718164 Makes more editor strings translatable
* "Add" button text in Groups Editor
* "Receiver Method" in Connect Signal Dialog
* "Play Mode" in Animation State Machine Editor
* "Mesh Library" button text in Mesh Library editor plugin
* Compose Array node button texts in Visual Script
* Various button texts in TileSet Editor
* Various Run Script errors
2019-12-21 20:58:17 +08:00
Michael Alexsander 36c4fd8935 Make the editor dimming smarter 2019-10-31 16:58:53 -03:00
volzhs 9131f70d8a Resize custom class icon 2019-10-24 03:55:56 +09:00
Rémi Verschelde 4967f303f5
Merge pull request #31461 from IronicallySerious/add-vcs-integration
VCS integration for Godot Editor
2019-09-04 01:09:24 +02:00
Twarit d98e944a19 Add VCS editor plugin UI elements to editor 2019-09-03 20:16:30 +05:30
Hugo Locurcio ef9f234d2b
Tweak the editor window dimming intensity, remove dim fade animation
The fade animation tended to give the editor a "sluggish" feel
when running at lower FPS (which is common in heavy 3D scenes),
so it's probably a good idea to remove it.

This also makes dimming less intense (50% instead of 60%).
2019-08-29 15:54:08 +02:00
bruvzg db6d4352ea
[macOS] Add methods to modify global and dock menus. Add ability to open multiple editor/project manager instances, recent/favourite project list to project manager dock menu and opened scene list to editor dock menu. 2019-08-26 16:45:49 +03:00
Tomasz Chabora cedee8281b Allow to create scene from FileSystem dock 2019-08-15 19:47:21 +02:00
Rémi Verschelde 6c607c3564
Merge pull request #31266 from IAmActuallyCthulhu/pr/remove-redundant-author-comments
Remove redundant author doc comments
2019-08-14 13:45:54 +02:00
Rémi Verschelde 8995d95da0
Merge pull request #31347 from neikeq/monodevelop-addin
C#: Add Ide Connection library and server for the editor
2019-08-14 11:39:41 +02:00
IAmActuallyCthulhu 82b9557803
Remove redundant author doc comments 2019-08-12 04:26:38 -05:00
Will Nations 2e3264259b Let EditorPlugins set editor/distraction-free mode 2019-08-06 08:48:00 -05:00
Ignacio Etcheverry 0b94203a79 C#: Add Ide Connection library and server for the editor
This will be used for communicating between the Godot editor and external IDEs/editors, for things like opening files, triggering hot-reload and running the game with a debugger attached.
2019-08-04 01:57:53 +02:00
Kanabenki a8ac739a5e Add Undo Close Tab option in tabs context menu 2019-07-27 16:51:24 +02:00
Hugo Locurcio dee9e9dc62
Display version information in the editor at all times
This closes #27811.
2019-07-25 21:05:36 +02:00
Bojidar Marinov 4f72178868
Make custom types more subtle and more useful
Implements #6067 (aaronfranke's idea)
Fixes #26980
2019-07-19 22:33:58 +03:00
Bojidar Marinov eed2251f17
Add a way to copy the text of warnings shown in the editor
Closes #20662
2019-07-09 21:11:31 +03:00
Rémi Verschelde 595763e0a0
Revert "Add editor menu to open the project data "user://" location." 2019-07-05 12:37:42 +02:00
Rémi Verschelde 3676100964
Merge pull request #30336 from fire/open_project_data
Add editor menu to open the project data "user://" location.
2019-07-05 11:40:28 +02:00
K. S. Ernest (iFire) Lee 44df7c8b9b Add editor menu to open the project data "user://" location. 2019-07-05 01:07:11 -07:00
Hugo Locurcio acbd0fea97
Use CheckBoxes in the editor instead of CheckButtons when applicable
CheckButtons should only be used if toggling them has an
immediate effect. Otherwise, CheckBoxes should be used.
2019-07-04 17:32:59 +02:00
K. S. Ernest (iFire) Lee 05de0eafab Add editor screenshot on control - f12. 2019-07-01 13:39:21 -07:00
Thomas ten Cate 05b67514a6 Make visibility of update spinner editor-wide, hidden by default
- Make visibility of the spinner and "update always" option editor-wide,
  rather than per-project metadata.
- Add options "Show Update Spinner" and "Update Continuously" under
  Editor Settings > Interface > Editor. Both options are false by
  default.
- Rename some variables and constants to be more consistent and clearer:
  "update always" -> "update continuously", "update changes" -> "update
  when changed", "update menu" -> "update spinner", "circle" -> "update
  spinner".

Fixes #23738.
2019-06-25 14:57:44 +02:00
Rémi Verschelde 30383a1cdc
Merge pull request #29376 from hilfazer/editor_layouts_dialog
Saving/deleting editor layouts dialog with layout list
2019-06-23 23:56:52 +02:00
hilfazer 9986cf7005 editor save/delete layout dialog with layout list 2019-06-21 19:38:04 +02:00
Luka Dornhecker ad504b926f Add option to toggle console window on Windows
This is an editor setting and its value can also be toggled
using an entry in the Editor toolbar. The console will still
appear briefly when starting the project manager or editor,
as it's still compiled as console application.

Does not impact exported games, which will still run without
console in release and with console in debug mode.

A project setting or export option could be added to disable
it in debug mode if there's demand for it, but that would
greatly reduce the usefulness of debug builds if Windows users
can no longer report error and crash messages.

Fixes #17889.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2019-06-20 16:55:52 +02:00
Hein-Pieter van Braam-Stewart 0ac7715a27 Fix moving and renaming files
This commit fixes several issues related to moving scenes and resources
in an open project.

* Don't try to reload scenes while not all scenes are updated yet.
* Don't use the UndoRedo system to update non-user initiated editor
state.
* Resave scenes after moving files and updating resource path(s).
2019-06-04 16:24:32 +02:00
Rémi Verschelde a69436aa4e
Merge pull request #27309 from KoBeWi/main_scene_on_android
Ensure main scene is set when running on device
2019-05-31 16:55:46 +02:00
Tomasz Chabora 9e18e94dc1 Ensure main scene is set when running on device 2019-05-31 16:02:57 +02:00
Rémi Verschelde 80f7a19569
Merge pull request #28789 from mitchcurtis/quick-open
Add Quick Open dialog
2019-05-28 20:45:52 +02:00
Mitch Curtis ffb6aab1f4 Add Quick Open dialog
This dialog searches every Resource-derived file in the project, making
it extremely useful for searching everything from audio files to scripts.

Unlike the Quick Open Script and Quick Open Scene dialogs, you don't need
to think about the type of file you're opening, just its name.

Shift + Alt + O was chosen to match the existing shortcuts for
Quick Open Scene and Quick Open Script.
2019-05-28 18:27:18 +02:00
Michael Alexsander Silva Dias dcf27c71b7 Make possible to create inherited scenes via the RMB menu in the FileSystem dock 2019-05-11 05:13:29 -03:00
Michael Alexsander Silva Dias 699140000c Revert "Merge pull request #28715 from YeldhamDev/inherent_scene_close_empty"
This reverts commit 0f8356d439, reversing
changes made to 7b7a664a97.
2019-05-08 00:46:40 -03:00
Michael Alexsander Silva Dias 648cc7c0f5 Make editor close empty scene when creating an inherited one
Fixes #28654.
2019-05-06 02:01:01 -03:00
Rémi Verschelde f05dce3ee2
Merge pull request #28262 from KoBeWi/gotta_close_them_all
Add Close Others/Right/All for scene tabs
2019-04-25 22:46:46 +02:00
Tomasz Chabora 6169e755aa Add Close Others/Right/All for scene tabs 2019-04-25 18:14:36 +02:00
Juan Linietsky a20235aeb0 Add ability to edit editor feature profiles
Allows enabling/disabling parts of the editor and storing/loading profiles for that.
2019-04-08 19:18:51 -03:00
Juan Linietsky dd03dcbd5a Android now (optionally) builds the template when exporting
Added new way to create add-ons
Removed old way to create add-ons
2019-04-07 15:46:52 -03:00
Rémi Verschelde 5881c6505b
Merge pull request #27414 from KoBeWi/drop_the_dir
Allow to drop folders onto editor
2019-04-22 12:01:32 +02:00
Tomasz Chabora c0da243f04 Allow to drop folders onto editor 2019-03-26 13:33:38 +01:00
Pedro J. Estébanez 9c3ddf05cb Revert accidental commits
This reverts commit fb37284c02.
This reverts commit 4db0f51b9a.
2019-03-20 21:43:55 +01:00
Pedro J. Estébanez 4db0f51b9a Create live view dock [wip] 2019-03-20 20:44:43 +01:00
Juan Linietsky 472c94ce3e Remove the "Open Editor" button, it will open automatically. 2019-03-04 16:50:21 -03:00
Juan Linietsky 9ca6ffa341 Save resources even if no scene is present, closes #26273 2019-02-27 20:00:40 -03:00
Eric Rybicki 747b9ac870 Fix editor crash after disabling plugin that used forward_spatial_gui_input
Fixes #26124.
2019-02-25 17:11:04 +01:00
Juan Linietsky 7f63b0e8cd Added a workaround to avoid crashes due to how TileSet editor works, fixes #23672
Also fixed a few uninitialized memory variables.
2019-02-22 17:42:29 -03:00
Michael Alexsander Silva Dias 3a70020c98 Cleanup editor's top bar of old nodes 2019-02-11 02:18:54 -02:00
Juan Linietsky 5bd3f72878 Properly warn about the effects of changing an import type, as well as force editor restart. Fixes #23874 2019-01-25 17:23:56 -03:00
Juan Linietsky e8d31cc765 Perform a cleaner exit for resource preview, fixes #24206 2019-01-17 09:09:39 -03:00
Rémi Verschelde b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Rémi Verschelde 9df7ed59fb
Merge pull request #19501 from Zylann/custom_loaders
Added basic support for custom resource savers and loaders
2018-12-16 14:26:56 +01:00
Marc Gilleron 065e2670af Added basic support for custom resource savers and loaders 2018-12-15 05:34:53 +00:00
Michael Alexsander Silva Dias bc9cb0e6cd Cleanup some unused controls in the editor's top bar 2018-12-09 17:51:30 -02:00
Rémi Verschelde e4a2003b98
Merge pull request #22323 from williamd1k0/ignore-main-scene
Editor: Skip loading main scene if restore_scenes_on_load is used
2018-12-07 15:08:34 +01:00
Juan Linietsky ab9bbce311 Disable progress dialog on export from command line, stab at fixing #24031 2018-11-28 08:46:26 -03:00
Juan Linietsky 616b91b498 Added test to avoid saving cyclic scene instancing, fixes #9686 2018-11-27 18:56:31 -03:00
Rémi Verschelde da31d63f76
Merge pull request #23680 from YeldhamDev/unified_help_search_revived
Unified Class and Reference Search 2: Resurrection
2018-11-22 16:16:52 +01:00
Juan Linietsky da0ec37aa9 Reworked how non-imported resources are reloaded on change, fixes #19852 2018-11-20 21:48:48 -03:00
Ray Koopa fddffa9eb8 Unify editor class and reference search
Co-authored-by: Michael Alexsander Silva Dias <michaelalexsander@protonmail.com>
2018-11-20 20:52:27 -02:00
JFonS dbca3b81ba Add Save option to resource property menu 2018-11-18 15:17:04 +01:00
Juan Linietsky f2e54057ae -Moved EditorDefaultValue to ClassDB, made it core
-Removed one and zero hints for properties, replaced by default value
2018-11-08 11:30:59 -03:00
Pedro J. Estébanez d2b0f69a64 Let user fix dependencies in resources 2018-11-02 04:44:40 +01:00
Juan Linietsky 4761c6bb7b Automatically unfold sections of properties that someone else edited (no local info exists). 2018-10-29 17:39:17 -03:00
Juan Linietsky e647342140 Moved folding outside the resource files, now saved outside the project. 2018-10-29 16:37:09 -03:00
Juan Linietsky 6cc116d415 Ability to revert any property, not just from inherited scenes or scripts. 2018-10-29 12:25:56 -03:00
William Tumeo 62218ea41b Editor: Skip loading main scene if restore_scenes_on_load is used 2018-10-02 15:41:16 -03:00
Juan Linietsky f2ed26d71e Reflection probe support in GLES2 back-end. 2018-09-28 16:42:47 -03:00
Rémi Verschelde 76ca46d1f4
Merge pull request #22225 from groud/fix_draw_on_viewport
Fixes drawing of the 2D plugins on the 3D view
2018-09-20 21:45:16 +02:00
Rémi Verschelde c884b55ff0 EditorNode: Reorder and cleanup initial dock setup 2018-09-20 18:35:38 +02:00
Rémi Verschelde 69ee33896a
Merge pull request #21426 from groud/add_files_to_tree_view
Add files to tree view
2018-09-20 18:32:13 +02:00
groud 5172642c32 Fixes drawing of the 2D plugins on the 3D view 2018-09-18 20:00:07 +02:00
willnationsdev 5436abefe4 Refactor editor icon retrieval 2018-09-14 09:27:56 -05:00
groud d7b638ed32 Replace the -show in filesystem- button by a RMB entry 2018-09-14 10:22:13 +02:00
groud b2633a97b9 Add thumnails to the tree view 2018-09-14 10:14:33 +02:00
Rémi Verschelde 2f20836e52
Merge pull request #19837 from willnationsdev/plugin-utilities
Add PluginConfigDialog.
2018-08-15 11:42:51 +02:00
Juan Linietsky 0fcc28b6f3
Merge pull request #15269 from ianb96/context_menu_improvements
Context Menu Improvements
2018-07-29 12:31:20 -03:00
Will Nations ff604414a4 Add PluginConfigDialog, EditorPluginSettings GUI 2018-07-26 10:12:05 -05:00
Ian 1bb13e95a8 context menu improvements 2018-07-26 08:58:35 -04:00
Hugo Locurcio b4f6b20273
Add menu buttons to open the project and editor data folders 2018-07-25 23:41:35 +02:00
Juan Linietsky c69de2ba46 -Project/Editor settings now use new inspector
-Project/Editor settings now show tooltips properly
-Settings thar require restart now will show a restart warning
-Video driver is now visible all the time, can be changed easily
-Added function to request current video driver
2018-07-19 19:02:04 -03:00
Rémi Verschelde 13239cd4cc Export: Properly reload preset when opening dialog
Fixes #20119 where newly installed templates were not detected.

Also fix a bug with preset deletion where it would attempt to
edit an already removed preset. For this I made it so that
ItemList::deselect_all() also resets `current` to -1, as a manual
ItemList::deselect(idx) already does.
2018-07-18 13:49:34 +02:00
Juan Linietsky af7d8fb844 Added small icon to expand the bottom panel (and shortcut too) 2018-07-15 22:38:14 -03:00
Max Hilbrunner dacd9c51b1
Merge pull request #19849 from willnationsdev/expose-script-create-dialog
Expose ScriptCreateDialog to EditorPlugin
2018-07-04 22:37:27 +02:00
willnationsdev 2a6c591957 Expose ScriptCreateDialog to EditorPlugin 2018-07-04 09:41:12 -05:00
Max Hilbrunner fb838bf1b4
Merge pull request #19192 from marcelofg55/undo_redo_msg
Add a message when there is nothing to Undo or Redo
2018-07-03 17:32:16 +02:00
Juan Linietsky 0a1c1c660f -Added AnimationGraphPlayer (still missing features)
-Added ability to edit resources from built-in inspector (wip, needs testing and feedback)
2018-06-18 22:12:08 -03:00
Rémi Verschelde 3f09cac267 Fix shortcuts using KEY_MASK_CTRL instead of KEY_MASK_CMD
KEY_MASK_CMD is automatically replaced by KEY_MASK_CTRL on non-OSX
and KEY_MASK_META (Command key) on OSX, so it should be used for all
Ctrl/Cmd + key shortcuts.

Also de-hacked the macOS shortcut replacements with proper conditional
definition. Not tested on macOS, cannot judge if they are good shortcuts.

Fixes #10761.
2018-06-11 07:53:28 +02:00
Juan Linietsky b659fd6d74 Entirely new (and much improved) animation editor. 2018-06-07 12:52:00 -03:00
Marcelo Fernandez e9db8964e3 Add a message when there is nothing to Undo or Redo 2018-05-27 12:53:52 -03:00
Daniel J. Ramirez 9a365a1216 Moved inspector functionality from EditorNode to InspectorDock. 2018-05-17 16:29:26 -05:00
Juan Linietsky 005b69cf6e -New inspector.
-Changed UI resizing code, gained huge amount of speed.
-Reorganized timer sync to clean up behavior (sorry forgot commit this before)

-
2018-05-15 17:14:31 -03:00
ianb96 9ac3c474b8 Drag to rearrange Tabs and TabContainer 2018-04-08 20:23:37 -04:00
Rémi Verschelde 74382dbfbb
Merge pull request #17576 from Mr-Slurpy/master
Allow users to add items to Tool menu
2018-03-23 11:08:03 +01:00
Mr-Slurpy 9da18f3974 Added tool menu functions in EditorPlugin 2018-03-17 14:41:50 -04:00
Poommetee Ketson 2de1dfa42f Update icons when theme changed 2018-02-25 23:04:16 +07:00
Nathan Warden 4bfb504c2f Added an auto quit and auto build flag to the command line options. 2018-02-19 16:22:55 -05:00
Will Nations dd6313710e Enable EditorPlugin to add/remove autoloads 2018-02-14 20:15:57 -06:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Juan Linietsky f3ad14224e -Add lightmapper
-Fixes to unwrapper (remove degenerates), makes Thekla not crash
-Added optional cancel button in EditorProgress
-Added function to force processing of events (needed for cancel button)
2017-12-14 09:01:27 -03:00
Rémi Verschelde f041d2e8ec
Merge pull request #13233 from Krakean/add_eidtorinspector_collapseexpand_v2
Inspector: Implemented a collapse/expand all (v2)
2017-11-26 20:57:59 +01:00
Rémi Verschelde dc3509b2aa
Merge pull request #13259 from Paulb23/restore_scenes_on_startup_issue_2385
Restore scenes on startup, issue 2385
2017-11-26 20:16:06 +01:00
Paulb23 76a53aa328 Restore scenes on startup, issue 2385 2017-11-24 23:32:54 +00:00
Pedro J. Estébanez 3f31925b18 Universalize draw-over API for EditorPlugins
- Now it is usable from both `CanvasItem` and `Spatial` editors.
- `EditorPlugin` API changes:
 - `forward_draw_over_canvas()` becomes `forward_draw_over_viewport()`.
 - `update_canvas()` becomes `update_overlays()`, which now triggers the update of every overlay on top of any 2D or 3D viewports present. Also now it returns the number of such viewports, which is useful whenever you need to know the number of draw-over calls you'll get.
 - New: `[set/is]_force_draw_over_forwarding_enabled()` to force overlaying regardless it handles the current object type, in a similar fashion as `[set/is]_input_event_forwarding_always_enabled`. This kind of overlay is also on top of those for regular handled node types.
 - New: `forward_force_draw_over_canvas()`, which is the callback that gets called for plugins that enable forced overlaying.
2017-11-24 21:24:15 +01:00
Dmitry Koteroff aa20a84aa9 Implemented a collapse/expand all feature request for Inspector (issue #9427) via popup of "Object properties" button.
Editor Settings->Interface->Editor: added "Expand All Properties" option. Off by default.

Cosmetics fixes due to @Reduz notes.
2017-11-24 14:08:44 +03:00
Ian f8e8b7d1a2 add scene button and tab scrolling 2017-11-18 20:31:51 -05:00
George Marques b96ee28acd
Add a print handler for the editor output panel 2017-11-16 21:57:02 -02:00
Daniel J. Ramirez 2932cc79ee Update meshes when reimporting,
Save scene preview even when not doing save and play.
2017-11-12 13:41:44 -06:00
Daniel J. Ramirez 8cf0d6ceb4 Some fixes and improvements.
Changed FileDialogs for EditorFileDialogs in EditorNode.
Updated CheckButton.
2017-11-10 16:45:08 -06:00
MillionOstrich f6ca9d34a2 Improve file/folder drag preview on filesystem dock
Added icons for files/folders in drag preview
Fixed folders getting an empty string label
Don't show "1 more file(s)" label instead of the file
Added "more folders" case if moving folders exclusively
Merged drag_files and drag_files_and_dirs to reduce code duplication
Simplified get_drag_data_fw and removed commented out code
2017-11-03 21:39:53 +00:00
Gilles Roudiere fc02605b49 Fixes snapping and replaces the _draw_canvas by forward_canvas_draw 2017-10-18 00:01:59 +02:00
Juan Linietsky 3237e05c36 Ability to convert from SpatialMaterial to ShaderMaterial 2017-09-22 09:20:52 -03:00
volzhs cd81ef4d38 Show button name always in main toolbar 2017-09-20 16:03:52 +09:00
Rémi Verschelde c74bab66aa Merge pull request #11274 from Rubonnek/keep-argument-names-consistent
Renamed function arguments to keep them consistent between declaration and implementation
2017-09-17 12:53:48 +02:00
Rémi Verschelde 2d4f6ef0bf Apply clang-format again to recent changes
Also add missing copyright headers.

[ci skip]
2017-09-16 19:48:45 +02:00
Wilson E. Alvarez 072e379ffe Renamed function arguments to keep them consistent between declaration and implementation 2017-09-14 13:49:15 -04:00
Juan Linietsky 7e3c5043c1 Warn the user that changes to resources will be lost when editing imported or instanced resources from scenes. 2017-09-14 10:39:47 -03:00
toger5 45d57ccf28 fixed hover line for menu button 2017-09-04 18:06:13 +02:00
Juan Linietsky d39e79e7ec Fix issues regarding reload of resources in imported scenes. Closes #10017 2017-08-31 18:57:44 -03:00
Juan Linietsky 6d41ceea99 Merge pull request #10771 from neikeq/pr-improve-build-callbacks
Improve build callbacks
2017-08-29 20:12:04 -03:00
Ignacio Etcheverry c18b7046c6 Improve build callbacks
- Build callbacks now return bool to determine if the build was successful. If the build fails, the editor won't run the game.
- Makes sure build callbacks are called after saving the scene ("Save Before Running" option).
2017-08-29 23:59:26 +02:00
Poommetee Ketson 6bb290f6a7 EditorNode: enhance open scene error dialog 2017-08-29 07:09:47 +07:00
Juan Linietsky d23f323cde -Moved script run to editor, removed from project
-fixed to code completion
-fix shader crash bug reported by tagcup
2017-08-27 19:04:19 -03:00
Rémi Verschelde 7ad14e7a3e Dead code tells no tales 2017-08-27 22:13:45 +02:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Rémi Verschelde 565600e844 Cleanup tons of obsolete commented out code
Mostly in EditorNode, dropping some obsolete editor plugins and also a
cleanup of ProjectSettings/EditorSettings.
2017-08-26 17:47:57 +02:00
Juan Linietsky dd7145b778 -Split EditorPlugin into EditorPlugin and EditorInterface
-Added EditorInterface to EditorScript
-Added functions to save the scene to EditorInterface
2017-08-26 10:33:07 -03:00
Rémi Verschelde 13f879587d Merge pull request #10254 from marcelofg55/master
Added notification const NOTIFICATION_WM_ABOUT
2017-08-22 00:56:31 +02:00
Marcelo Fernandez aae29c7a0e Added notification const NOTIFICATION_WM_ABOUT 2017-08-17 11:28:45 -03:00
Rémi Verschelde b1ecaaa22b Merge pull request #10307 from Rubonnek/update-argument-names
Updated function argument names
2017-08-16 17:17:56 +02:00
Ruslan Mustakov ad457976fc Enable command-line export
The syntax is identical to what it was in 2.1, but now you specify
preset name instead of platform name.
2017-08-14 20:15:06 +07:00
Wilson E. Alvarez 428f03cf06 Updated function argument names 2017-08-12 15:12:49 -04:00
Poommetee Ketson dd6cb0b404 Fix !save_each_scene saving scenes with no filename
When save_each_scene is false, only scenes that have been saved at
least once are saved. But EditorNode tries to save scenes with no
filename too (they're never saved), so it crashes.
2017-07-26 18:57:34 +07:00
Poommetee Ketson 20d36bf226 Move About dialog to editor_about.cpp 2017-07-23 00:14:44 +07:00
Juan Linietsky 25678b1876 -Renamed GlobalConfig to ProjectSettings, makes more sense.
-Added system for feature overrides, it's pretty cool :)
2017-07-19 17:06:03 -03:00
Poommetee Ketson 4c4969f639 EditorNode: remove obsolete comments in constructor 2017-07-18 20:04:20 +07:00
Jakub Grzesik 29c2aabdaf ability to reposition scene tabs with drag & drop 2017-07-10 10:31:15 +02:00
Poommetee Ketson da2de8932c About: add thirdparty license info 2017-07-06 14:42:47 +07:00
Poommetee Ketson a7ff7af8ae EditorNode: mark opened deleted scenes as unsaved 2017-06-30 00:55:29 +07:00
Poommetee Ketson a9367ce6bc EditorNode: enhance save/quit dialog 2017-06-27 03:04:47 +07:00
Poommetee Ketson 1453d67145 EditorNode: enhance quit dialog 2017-06-25 08:04:34 +07:00
Poommetee Ketson 14fa4190b3 EditorNode: add Save/Discard/Cancel dialog 2017-06-25 08:04:34 +07:00
Thomas Herzog 6b93455b6b Merge pull request #9099 from kubecz3k/plugin-camera-expose
EditorPlugin can request user inputs from editor 3d view
2017-06-19 22:43:33 +02:00
volzhs fc2fe7ebd1 Enhance scene tabs
- show scene thumbnail on hover
- resize if has many tabs
- show full scene file name with current edited scene
- can be customized EditorSettings > Interface > Scene Tab
- close scene with mouse middle button
2017-06-16 13:21:05 +09:00
Unknown d8b65b1657 EditorPlugin can request user inputs from editor 3d view 2017-06-12 17:55:15 +02:00
Juan Linietsky bb20f230ad -Added .hdr format support
-Added default environment editor setting
-Added environment created by default in new projects
-Removed default light and ambient from spatial editor, to make the editor more PBR compliant
2017-05-28 21:48:05 -03:00
Nuno Donato 7661cb5a62 Added an help menu
Also renamed the "tutorials" button in the script editor to be consistent with the help menu entry.
Fixed #8921
2017-05-26 16:20:33 +01:00
Nuno Donato 78781355ac Join text menus on the top-left, move shortcut buttons to new location 2017-05-24 22:08:07 +01:00
Juan Linietsky 5b3709d309 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Rémi Verschelde 231511b2a6 Merge pull request #8631 from volzhs/editor-theme-custom
New customizable editor theme
2017-05-20 07:16:11 +02:00
Andreas Haas 3be8a94868
Editor: Make "open 2d/3d/script editor" shortcuts configurable.
Also adds shortcuts for opening the AssetLib and for switching to the next/prev editor.
2017-05-18 18:36:16 +02:00
volzhs bb81293047 New customizable editor theme 2017-05-09 17:46:54 +09:00
Ramesh Ravone 204d3ccf5f
Separate fullscreen state for scene & script editor 2017-04-26 17:43:35 +05:30
Nuno Donato 2025672e7b Removed the deprecated Import menu from the main editor. 2017-04-12 13:32:22 +01:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Juan Linietsky b5a06cecff Export template management dialog.
Missing download (need to discuss this!)
2017-03-21 08:42:06 -03:00
Andreas Haas 9080232f17
Editor: Dim UI when a WindowDialog is shown.
Darkens the editor on WindowDialog popup.

This adds the following new Editor settings:

- interface/dim_editor_on_dialog_popup (true) # Enable/Disable editor dimming
- interface/dim_amount (0.6) # Percentage of how much the editor will be darkened (0-1)
- interface/dim_transition_time # The duration (in seconds) of the color blending effect (0-1), 0 is instant.

Please test this thoroughly, I haven't yet seen a case where it fails to work properly but I'm sure I didn't test all
windows of the editor :P
2017-03-06 20:14:41 +01:00
Rémi Verschelde 5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Rémi Verschelde 49c065d29c Refactoring: rename tools/editor/ to editor/
The other subfolders of tools/ had already been moved to either
editor/, misc/ or thirdparty/, so the hiding the editor code that
deep was no longer meaningful.
2017-03-05 14:21:25 +01:00