Commit graph

770 commits

Author SHA1 Message Date
Zak
c3cfb87548 Allow multiple editor instances to use different ports
Previously if more than one Godot editor was running then the debugger of one editor would not work because both editors were trying to connect on the same port.
This commit attempts to fix this by allowing the debugger to change the port at runtime in such cases.
2021-05-01 11:32:10 +02:00
lupoDharkael
a5842a8362
Save resource: implement extension priority
give .res less priority and .tres more priority as preferred
extensions.

(cherry picked from commit f2e906496b)
2021-04-29 11:27:56 +02:00
kobewi
645842e0e8
Save project after opening
(cherry picked from commit 76240515d8)
2021-04-26 13:15:28 +02:00
Hugo Locurcio
a989e08839
Improve error messages for missing export presets when using --export
- Display a specific error message if the project doesn't have an
  `export_presets.cfg` file.
- Display a list of detected export presets if an invalid export
  preset name is supplied.

(cherry picked from commit 09f38ea215)
2021-04-26 12:20:28 +02:00
Rémi Verschelde
60c36af6dc
Remove now unnecessary ResourceImporterCSV importer
Its only purpose was to prevent importing CSV files as translations, but it
would still import them as *nothing*, leading to workflow issues.

This is now properly fixed with #47268 which allows disabling the import for
specific files.

(cherry picked from commit 7ed2220928)
2021-03-24 10:29:16 +01:00
Rémi Verschelde
48708b8e3d
Merge pull request #46999 from bruvzg/mac_new_wnd
[macOS] Fix "New Window" opening copy of current project instead of Project Manager.
2021-03-14 18:21:27 +01:00
bruvzg
7273e0b51b
[macOS] Fix "New Window" opening copy of current project instead of Project Manager. 2021-03-14 17:56:02 +02:00
jmb462
4b2b45f72b
Fix crash on closing empty modified scene
(cherry picked from commit 49d5ec073f)
2021-03-14 12:03:17 +01:00
kobewi
56c0b39521 Don't check modified time if file doesn't exist
(cherry picked from commit af069109be)
2021-03-02 10:26:14 +01:00
Shatur95
eb98ddf2c7 Add additional plugin path checks (3.2)
Need for compatibility after #45316.
2021-02-24 21:13:13 +02:00
Shatur95
0a874101fd Handle old relative plugin paths 2021-02-22 22:23:22 +02:00
Danil Alexeev
baf4720fd3 Fix "editor/editor_help" shortcut (again)
(cherry picked from commit c6435e1d47)
2021-02-22 10:42:26 +01:00
Hein-Pieter van Braam
220f24c191
Merge pull request #45618 from RandomShaper/modernize_mt_3.2
Backport of all the multi-threading modernization (3.2)
2021-02-18 20:47:24 +01:00
Rémi Verschelde
341c3cb04a
Merge pull request #45316 from Shatur95/detect-plugins-recursively-3.2
Detect plugins recursively (3.2)
2021-02-18 20:36:33 +01:00
hoontee
f28c089d64 Improved Inspector Sub-Resource Editing 2021-02-18 05:43:19 -06:00
Pedro J. Estébanez
4485b43a57 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` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 12:23:25 +01:00
Pedro J. Estébanez
6d89f675b1 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-02-18 11:58:08 +01:00
Pedro J. Estébanez
4ddcdc031b Modernize Mutex
- Based on C++11's `mutex`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed
- Simpler for `NO_THREADS`
- `BinaryMutex` added for special cases as the non-recursive version
- `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`.
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
2021-02-18 11:58:08 +01:00
Ansraer
729a9c8a5e
Adjust auto scale on high res displays
(cherry picked from commit 466cf0b466)
2021-02-16 14:47:29 +01:00
kobewi
e7ee561ca0 Detect external modification of scenes 2021-02-11 01:08:49 +01:00
Danil Alexeev
1749cc4da8 Fix "editor/editor_help" shortcut overwriting when restarting editor
(cherry picked from commit 2105b6a070)
2021-02-05 09:28:35 +01:00
Tomasz Chabora
04ce4e6abb
Disable active editors when node gets deselected
(cherry picked from commit 958d23968d)
2021-02-02 13:02:46 +01:00
Hugo Locurcio
314dd32d88
Tweak the "Auto" editor setting hints to be more indicative
This affects the editor scale and font hinting settings which will now
display their automatically chosen value in parentheses.

(cherry picked from commit 57654508c9)
2021-01-26 17:00:15 +01:00
Dodoveloper
01acd46afc
Fix #33326 by reopening scenes
(cherry picked from commit c3abda0b13)
2021-01-26 17:00:09 +01:00
Shatur95
2443aba753 Detect plugins recursively 2021-01-19 18:46:55 +02:00
Rémi Verschelde
51bcc875ea
Merge pull request #45214 from arrowinaknee/3.2-fix-new-scene-save
[3.2] Remove unnecessary file existence check when saving scene
2021-01-16 12:45:16 +01:00
ArrowInAKnee
5d8a24d1a5 Remove unnecessary file existence check when saving scene 2021-01-15 20:33:12 +03:00
Eric M
db3e18b9c6
Made save dialog open immediately when running unsaved scene.
Previously there was an unneeded confirmation dialog.

(cherry picked from commit a54110ba60)
2021-01-13 16:17:07 +01:00
Rémi Verschelde
49646383f1
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 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Rémi Verschelde
188609e5ab
CI: Update to clang-format 11 and apply ternary operator changes
(cherry picked from commit af878716f2)
2021-01-13 16:14:35 +01:00
Leleat
5bda8fae38
creater user-dir, if non-existant and pressing 'Open Project Data Folder'
(cherry picked from commit 8cf9d09d61)
2021-01-08 10:26:30 +01:00
volzhs
bd3c2e96c3
Enhance editor file dialog
1. show valid directory path when opening editor file dialog
2. keep file name when changing path by entering path
3. add first extension in filter automatically if not given
4. remove directory in recent list if it's not valid anymore

(cherry picked from commit 1f4b1e1488)
2021-01-05 20:49:00 +01:00
Rémi Verschelde
688d422554
PVRTC: Move compress func to modules/pvr, drop obsolete PVRTexTool code
The code we had for PVRTexTool doesn't work as it's not compatible with current
PVRTexTool CLI options, and likely hasn't been for years.

Instead, we have our own vendored pvrtccompressor thirdparty library which all
users have thus de-facto been using. This commit moves the compress code to
`modules/pvr` where it belongs.

There's no proper compress function for PVRTC 2-bit format, that's a bug that
will need to be fixed (currently it's compressed as 4-bit format even if you
use Image::FORMAT_PVRTC2).

Fixes #28669.

(cherry picked from commit 1a31274855)
2020-12-29 15:12:06 +01:00
Hugo Locurcio
fe69bb262e
Bind the editor's Search Help function to F1 by default
Now that the F1 key is available, we can bind Search Help to the key
generally used in other applications to open the help menu.

(cherry picked from commit 42685f514f)
2020-11-26 09:38:46 +01:00
Fabio Alessandrelli
f32c878ef7
Fix CLI export when export_path is in preset.
Export presets contains the export_path option, to specify the default
export location, but the CLI export option disregarded that, and always
required and export path to be specified.
After this commit, if the export path is not specified in the command,
the one in the preset will be used, erroring only if it's not present or
invalid.

(cherry picked from commit 032a1c5dc3)
2020-11-17 22:23:09 +01:00
Rémi Verschelde
755ee76871
Revert "Add script class categories to EditorInspector."
This reverts commit 8a02f221b4.

This caused regression #43491.
2020-11-17 22:21:32 +01:00
Hugo Locurcio
fcab27878c
Require Ctrl for switching between editors, bind F2 to Rename Node
Switching between editors now requires holding Ctrl to avoid
conflicts with the new F2 shortcut.

The asset library can now be accessed by pressing Ctrl + F4
on Windows and Linux, or Alt + 4 on macOS.

This partially addresses #38139.

(cherry picked from commit 79e4e26738)
2020-11-17 16:24:06 +01:00
Hugo Locurcio
12681b497b
Improve messages related to overriding the default editor layout
This closes #33884.

(cherry picked from commit b324a929f6)
2020-11-17 12:01:59 +01:00
Hugo Locurcio
fc5e60f4cc
Use 75% editor scale on small displays automatically
This also makes borders always display in the editor theme,
even if the editor scale is below 100%. Otherwise, "focus" outlines
would vanish when using an editor scale below 100%,
which harms usability.
2020-11-17 11:17:41 +01:00
willnationsdev
8a02f221b4
Add script class categories to EditorInspector.
(cherry picked from commit 644de52ca9)
2020-11-11 15:12:00 +01:00
Fabio Alessandrelli
7a0710f91a
EditorNode now copies all drag and dropped files.
The editor used to only copy drag-dropped files in the File System pane
if the given file was a valid resource, or had a specific file format
(ttf, otf).
With this PR, all drag and dropped files are copied instead, no matter
their extension.

(cherry picked from commit 410b324740)
2020-10-19 16:10:00 +02:00
Hugo Locurcio
e4e4140c6f
Improve editor tooltips related to debugging
Some option names have also been made longer as we can afford using
more space to display them.

(cherry picked from commit a46802f07c)
2020-09-24 14:43:09 +02:00
Aaron Franke
76a8458753
Make the Import dock depend on the FileSystem dock
(cherry picked from commit de6f8f9d21)
2020-09-24 14:43:05 +02:00
Yuri Sizov
44ff9cdea5 Fix errors saving a 2D scene preview when the 2D editor was never opened
(cherry picked from commit e2b85b74a2)
2020-07-28 00:56:20 +02:00
Tomasz Chabora
2bcb9d2a04 Fix run project when current scene was never saved
(cherry picked from commit 9c84e34fd4)
2020-07-24 10:31:57 +02:00
Stijn Hinlopen
b7b8f8645f Open scene selected from Quick Open dialog.
(cherry picked from commit 1ce3a77a42)
2020-07-24 10:31:56 +02:00
rileylyman
582b4318f8 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.

(cherry picked from commit 4285211f40)
2020-07-24 10:31:56 +02:00
coldragon
a0f0aa1741 Fix crash on editor without a feature profile
(cherry picked from commit f2a01b0c6b)
2020-07-10 11:01:31 +02:00
Yuri Sizov
bd90f236d3 Improve scene preview generation for empty scenes and disabled features
(cherry picked from commit 6c8a9b7690)
2020-07-08 09:01:57 +02:00
bruvzg
e9ab41b71d
[macOS, 3.2] Implement seamless display scaling. 2020-07-07 22:54:33 +03:00
Yuri Sizov
2b4773f0cf Expose methods to play scene from plugin code
(cherry picked from commit 49f6dc5004)
2020-07-06 19:00:56 +02:00
Tomasz Chabora
7bd101b5c5 Generate inspector preview for Image resources
(cherry picked from commit eb6a367cb7)
2020-06-29 10:57:00 +02:00
Hugo Locurcio
8cc3d4bda6 Keep the bottom panel visible when enabling the distraction-free mode
- Document the `EditorInterface.distraction_free_mode` property.

This closes https://github.com/godotengine/godot-proposals/issues/951.

(cherry picked from commit e6352d1daa)
2020-06-29 10:46:05 +02:00
Andrii Doroshenko (Xrayez)
63523e56e1 Don't use arbitrary theme editor icons for scripts with the same name
The existing theme editor icon could be unintentionally set for any
global class with matching name (`Group` icon, `Group` class_name etc),
which would only show up in the "Create Dialog" context, but not the
scene tree dock.

This change prevents this behavior, and ensures that the icon can be
actually overidden by explicit icon path in `class_name`, if there's any
custom icon to begin with.

The correct built-in type's icon is fetched for child classes if there
are no custom icons detected throughout base classes as well, so it
isn't left empty for those cases.

(cherry picked from commit c177308f80)
2020-06-26 08:10:24 +02:00
Andrii Doroshenko (Xrayez)
6dee6477dd Optimize class icon loading
`get_global_class_name` for `GDScriptLanguage` is slow because
it forces to parse an entire script each time. This patch ensures
that the icon is actually fetched from the EditorData where they
are loaded beforehand.

This change also makes the behavior consistent with the existing
`get_object_icon` method in EditorNode.

(cherry picked from commit 4a86e2bb76)
2020-06-24 22:52:05 +02:00
Hugo Locurcio
317c9b5fe9 Tweak the invalid preset error message to mention export_presets.cfg
(cherry picked from commit a7b2f3d41a)
2020-06-10 15:30:52 +02:00
Rémi Verschelde
f3fcdfbdd0 PackedScene: Prevent crash when root node has parent attribute
The crash happens further down when setting an invalid owner in
`Node::_set_owner_nocheck` but I couldn't figure out how to fix it.

But here the proper fix is to catch the invalid scene file early on
and fail loading it.

Part of #17372.

(cherry picked from commit c080ec5da2)
2020-06-10 15:30:52 +02:00
Marcus Brummer
6ef0de3f23 Enable text selection in execute output of EditorNode
(cherry picked from commit 85175c67b8)
2020-06-05 12:46:16 +02:00
Hugo Locurcio
9e01a0cd28 Add a getter and property for the editor distraction-free mode
(cherry picked from commit cc1859efed)
2020-06-04 12:16:39 +02:00
Dominik 'dreamsComeTrue' Jasiński
fdf64b1898 Preserving "Sync Scene Changes' and "Sync Script Changes" with Project Settings
Fixes: #38739
(cherry picked from commit 72501ae104)
2020-06-04 12:09:40 +02:00
Eduardo Nunes Pereira
05cd3ff8ba Using command + comma on macOS as default shortcut for editor settings
(cherry picked from commit 75f77f751e)
2020-05-18 16:40:33 +02:00
Hugo Locurcio
0b6bcf90f5 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.

(cherry picked from commit 2962819d1c)
2020-05-13 16:09:38 +02:00
Hugo Locurcio
b5d41bb517 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.

(cherry picked from commit 2f6f029a75)
2020-04-16 11:16:08 +02:00
Ivan.Shakhov
d06ae167bf for third-party tools - editor_path is stored in project's editor settings
(cherry picked from commit 2f151068b5)
2020-03-25 11:38:54 +01:00
Haoyu Qiu
d25949dd49 Keeps the filename when marking scene as unsaved
(cherry picked from commit 9ed61a70cc)
2020-03-25 11:30:48 +01:00
Ignacio Etcheverry
110523fecc Expose FileSystemDock to the scripting API and fixed signals
Fixed FileSystemDock's `file_removed` and `folder_removed` signals not being
emitted because the emitted was using the wrong signal name.

(cherry picked from commit fe0b783e70)
2020-03-18 17:57:45 +01:00
Thakee Nathees
15057c9284 Fix EditorFolding crash when switching scenes
(cherry picked from commit 3275e8488b)
2020-03-06 23:51:26 +01:00
Haoyu Qiu
762578e7bc Fixes range hint for default_float_step
(cherry picked from commit dfe9825e00)
2020-02-14 16:32:33 +01:00
PouleyKetchoupp
9c4a6cf745 Fixed Inspector update when a node is renamed
Whenever any node is renamed, EditorNode::_edit_current() is called and it resets plugins used for current edited properties. This change forces the inspector to update even though the same object is edited, to make sure all plugins are restored properly from unfolded properties/resources/etc.

Fixes #32832
2020-01-24 18:12:05 +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
017b7de2df EditorNode: Delay addon init to NOTIFICATION_READY
Fixes #25635.
2020-01-13 15:02:11 +01:00
Haoyu Qiu
047d66cc6f Fixes the New Window option in macOS dock menu 2020-01-13 08:58:12 +08: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
Rémi Verschelde
86a732b136
Merge pull request #34680 from Calinou/editor-export-nonzero-exit-code-error
Exit the editor export process with a non-zero exit code on error
2019-12-30 18:07:36 +01:00
Rémi Verschelde
388318ad4c
Merge pull request #34614 from qarmin/dont_create_preview_of_empty_scene
Don't create preview of empty scene.
2019-12-30 17:13:07 +01:00
Hugo Locurcio
79494992e4
Exit the editor export process with a non-zero exit code on error
This closes #34672.
2019-12-30 14:34:06 +01:00
Rafał Mikrut
542945f5f0 Don't create preview of empty scene. 2019-12-26 09:15:36 +01:00
Haoyu Qiu
078c0d75f2 Cleans up headers included in editor_node.h 2019-12-24 21:46:05 +08:00
Haoyu Qiu
d53c392b34 Centers Dock Position text 2019-12-23 09:37:36 +08:00
Haoyu Qiu
7a9c337dfe Makes more strings in editor translatable
* File type names in file dialogs
* Layout option names
* Visual shader editor UI
2019-12-16 16:41:07 +08:00
Haoyu Qiu
6f178a2061 Fixes infinite loop when switching editor 2019-12-11 13:27:21 +08:00
Rémi Verschelde
2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Rafał Mikrut
ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
Haoyu Qiu
93f00c0303 Fixes prompt closes the wrong scene when exiting 2019-12-06 21:46:01 +08:00
PouleyKetchoupp
dd552494eb Debug menu in editor doesn't hide on checkbox toggle
Fixes #33850
2019-11-25 16:25:54 +01:00
Rémi Verschelde
41634199c8 EditorNode: Improve tooltip for pause button
Closes #14742.
2019-11-14 11:44:20 +01:00
PouleyKetchoupp
824bc3fed8 Keep focus on the top-most node for multi-selection in scene tree
Makes behavior consistent with selecting/deselecting single nodes and fixes a regression about the focused node being lost when multi-selecting.

Fixes #33332
2019-11-10 09:37:51 +01:00
PouleyKetchoupp
133014c3fb Fixed errors when saving scene with a shrunk viewport
Handle viewport size larger than preview size but very close, when the ratio was 1 the size ended up being 0.

Fixes #33497
2019-11-09 21:16:19 +01:00
Michael Alexsander
36c4fd8935 Make the editor dimming smarter 2019-10-31 16:58:53 -03:00
Rémi Verschelde
35944aebde
Merge pull request #33019 from volzhs/class_icon
Resize custom class icon
2019-10-23 21:48:40 +02:00
volzhs
9131f70d8a Resize custom class icon 2019-10-24 03:55:56 +09:00
Rémi Verschelde
2d6cf9cc56
Merge pull request #33009 from ebert83/fix_editor_save_layout
Fix layout saving error
2019-10-23 15:31:48 +02:00
Thomas Ebert Hansen
d62ab4ab10 Fix layout saving error
As a result of commit b49226e085 FileAccess::open no longer returns ERR_CANT_OPEN if the file cannot be found/opened.
Instead check against ERR_FILE_NOT_FOUND or ERR_FILE_CANT_OPEN.
2019-10-23 15:02:51 +02:00
Fabio Alessandrelli
2ae3631318 Fix EditorNode.get_editor_theme
EditorNode was not correctly setting the class memeber when creating the
theme, using a local variable instead.
Theme is now created before registering exporters (as they might need it).
2019-10-23 10:59:03 +02:00
Mark Riedesel
6a85614d86 expose EditorSpinSlider to GDScript 2019-10-20 11:54:35 -04:00
Michael Alexsander Silva Dias
4689ece741 Minor visual adjustment in drag preview of the scene and file tree editors 2019-09-30 13:36:49 -03:00
Ruslan Mullayanov
4d5298ed7d Fixed unable to open project data folder
Removed `default` case to prevent hiding such errors in the future.

Fixes #31939.
2019-09-26 08:17:07 +02:00
Rémi Verschelde
dec10dd776
Merge pull request #32051 from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00