Commit graph

711 commits

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