Commit graph

253 commits

Author SHA1 Message Date
Gilles Roudière
ba1344408f Implement Navigation layers 2021-03-10 11:23:06 +01:00
reduz
b9b68b755c Improved Inspector Sub-Resource Editing
-Better margins
-Colors to delimit subresources better.
2021-02-12 09:31:47 -03:00
reduz
1aa2823fa3 Removed _change_notify
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap.
-For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed()
-Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-10 19:31:24 -03:00
kobewi
962610bbaa Make Rect2 properties show in 2x2 layout 2021-02-04 20:53:29 +01:00
kobewi
a00ac12ae9 Emit changed signal from Color Picker when changed 2021-01-09 14:17:33 +01:00
Rémi Verschelde
c7b45141de
Merge pull request #44980 from RandomShaper/fix_res_lifetime
Fix cases of resources destroyed too early
2021-01-07 14:19:52 +01:00
Rémi Verschelde
6583ac32ce
Revert "Fixed EditorPropertyText change signal emission."
This reverts commit ed1f208ec4.

This caused a regression: #44854.

Another PR will re-apply these changes while handling the regression: #44982.

Fixes #44854.
2021-01-07 10:32:03 +01:00
Pedro J. Estébanez
6fbe0a494b Fix cases of resources destroyed too early 2021-01-06 23:40:50 +01:00
Rémi Verschelde
8158d17edf
Merge pull request #44971 from nekomatata/fix-string-property-update
Update String property field only when text has changed
2021-01-06 19:55:38 +01:00
PouleyKetchoupp
c064378f95 Update String property field only when text has changed
Avoids resetting the cursor position when the inspector updates while
editing a string property.

Fixes #42488
2021-01-06 11:35:05 -07:00
kobewi
a22b2f86e7 Don't emit changed signal on Color Picker close 2021-01-03 18:12:00 +01:00
Rémi Verschelde
96aff740fe
Merge pull request #44809 from Calinou/physics-render-layers-zero-index
Use zero-indexing for physics and render layer names
2021-01-01 23:37:37 +01: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
Hugo Locurcio
f87d42f4ca
Use zero-indexing for physics and render layer names
The first layer is now Layer 0 instead of Layer 1, and the last
layer is now Layer 19 instead of Layer 20.

This helps reference physics and render layers from scripts since
layers start from 0 there.
2020-12-30 16:03:11 +01:00
Pedro J. Estébanez
d2d29c42f2 Fix instantiation of resource as property value 2020-12-29 13:14:39 +01:00
Marcel Admiraal
5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
Marcel Admiraal
4b8b803931 Rename Control margin to offset 2020-12-23 06:25:56 +00:00
Andrea Catania
ed1f208ec4
Fixed EditorPropertyText change signal emission. 2020-12-12 19:22:47 +01:00
bruvzg
99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
Rémi Verschelde
9d2e8f2f27
Variant: Rename Type::_RID to Type::RID
The underscore prefix was used to avoid the conflict between the `RID` class
name and the matching enum value in `Variant::Type`.

This can be fixed differently by prefixing uses of the `RID` class in `Variant`
with the scope resolution operator, as done already for `AABB`.
2020-11-09 16:29:04 +01:00
Nathan Franke
98c46cbf26
Collapse Resource Preview Properly 2020-10-28 05:26:02 -05:00
David Sichma
6acd450328 fix toggle mask bit 0 2020-10-26 02:08:39 +01:00
David Sichma
5d33cd94c8 Shader globals bugfixes
- shader globals editor displays properties correctly
- fixed some errors how globals were transferred
2020-10-21 01:34:25 +02:00
Marcel Admiraal
f98acd5cfb Ensure grid index is valid before trying to change value. 2020-10-12 08:53:09 +01:00
Tomasz Chabora
b5fe41988b Accept DynamicFontData for Fonts 2020-08-25 18:12:35 +02:00
Eric M
7cc1b0f7eb Added ability to unfold editor sections when dragging and dropping.
Also added editor setting to control the delay used before unfold occurs.
2020-08-25 19:58:42 +10:00
Rémi Verschelde
4ee779e6d3
Merge pull request #41103 from Calinou/editor-improve-easing-inspector
Improve the inspector easing editor
2020-08-15 16:22:36 +02:00
Hugo Locurcio
028de11db8
Improve the inspector easing editor
- Make it possible to drag a negative easing or an easing of 0 back to
  a positive value.
- Clamp the value between -1000000 and 1000000 to avoid issues
  related to infinity.
- Display more decimals for numbers closer to 0, less for large numbers.
- Display trailing zeroes in decimals to avoid flickering when dragging.

This closes #18712 and closes #22079.
2020-08-07 14:51:55 +02:00
Antoine Félix
f3626364fc Modify the scene only when color changed
Editor now changes a color in the inspector only when it is different
from the current one.

Solves fake unsaved changes in editor after using the ColorPicker.

Resolves: #40879
2020-08-03 19:46:44 +02:00
Aaron Franke
56e2c6c704
Make all String float conversion methods be 64-bit 2020-07-27 18:38:53 -04:00
Tomasz Chabora
fb8b399ddf Convert some resource types in the inspector 2020-07-20 13:22:22 +02:00
Stijn Hinlopen
526e060b73 Resize dialogs (FileDialog, EditorFileDialog, Reparent, SceneTreeDialog and resource depency dialogs). 2020-07-14 14:35:22 +02:00
Marcel Admiraal
26fcf2b04c Add override keywords. 2020-07-10 13:56:54 +01:00
Riley Lyman
ab0fe13efb Make Resource properties accept SE plugin scripts 2020-07-02 18:58:33 -07:00
Rémi Verschelde
a8a2769bb6
Merge pull request #38713 from aaronfranke/string-64bit
Make all String integer conversion methods be 64-bit
2020-07-01 16:01:05 +02: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
TwistedTwigleg
24905becb2 Made low level changes to the Skeleton3D class and Skeleton3D inspector. Changes listed below:
* Added helper functions to Skeleton3D for converting transforms from bone space to global space, and vice versa.
* Updated the Skeleton3D class reference.
* Changed the icon used for bones in the Skeleton3D inspector to use BoneAttachement3D's icon.
* Changed the Skeleton3D inspector to use EditorPropertyTransform and EditorPropertyVector3 when possible.
* Placed the Transform/Matrix for each bone in a sub-section, so it is visually similar to the Node3D inspector.
2020-06-15 17:18:06 -04:00
Hugo Locurcio
bbc435624f
Add visual feedback when hovering layer checkboxes in the Inspector
This also changes how checkboxes are selected, which makes it possible
to click in the small area between two checkboxes and
still toggle a value successfully (which is arguably less frustrating).
2020-06-03 23:15:59 +02:00
Aaron Franke
bb8aa107fd
Remove 32-bit String to_int method 2020-06-03 00:03:34 -04: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
07bc4e2f96 Style: Enforce separation line between function definitions
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
  -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
  -o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```

This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.

This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.

Part of #33027.
2020-05-14 16:54:55 +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
94721f5ab8 Revert "Renamed plane's d to distance"
This reverts commit ec7b481170.

This was wrong, `d` is not a distance but the `d` constant in the
parametric equation `ax + by + cz = d` describing the plane.
2020-05-10 16:47:11 +02:00
Rémi Verschelde
69de7ce38c Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
Part of #33027.
2020-05-10 13:13:54 +02:00
Marcus Elg
ec7b481170 Renamed plane's d to distance 2020-05-10 12:12:51 +02:00
Juan Linietsky
0e1c66d9fc Implement global and per instance shader uniforms.
Adds two keywords to shader language for uniforms:
-'global'
-'instance'

This allows them to reference values outside the material.
2020-04-17 12:35:41 -03:00
Tomasz Chabora
c1023157eb Remove Node.get_position_in_parent() 2020-04-06 01:19:20 +02:00
lupoDharkael
95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Juan Linietsky
441f1a5fe9 Popups are now windows also (broken!) 2020-03-26 15:49:42 +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
Rémi Verschelde
f742dabafe Signals: Manually port most of remaining connect_compat uses
It's tedious work...

Some can't be ported as they depend on private or protected methods
of different classes, which is not supported by callable_mp (even if
it's a class inherited by the current one).
2020-02-28 14:24:09 +01:00
Rémi Verschelde
01afc442c7 Signals: Port connect calls to use callable_mp
Remove now unnecessary bindings of signal callbacks in the public API.
There might be some false positives that need rebinding if they were
meant to be public.

No regular expressions were harmed in the making of this commit.
(Nah, just kidding.)
2020-02-28 14:24:09 +01:00
Rémi Verschelde
6c8f2ae53a Update docs and bindings for new integer vector types 2020-02-25 15:27:29 +01:00
Juan Linietsky
33b5c57199 Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.
- Renames PackedIntArray to PackedInt32Array.
- Renames PackedFloatArray to PackedFloat32Array.
- Adds PackedInt64Array and PackedFloat64Array.
- Renames Variant::REAL to Variant::FLOAT for consistency.

Packed arrays are for storing large amount of data and creating stuff like
meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of
memory. That said, many users requested the ability to have 64 bits packed
arrays for their games, so this is just an optional added type.

For Variant, the float datatype is always 64 bits, and exposed as `float`.

We still have `real_t` which is the datatype that can change from 32 to 64
bits depending on a compile flag (not entirely working right now, but that's
the idea). It affects math related datatypes and code only.

Neither Variant nor PackedArray make use of real_t, which is only intended
for math precision, so the term is removed from there to keep only float.
2020-02-25 12:55:53 +01:00
Juan Linietsky
3c0059650d Added StringName as a variant type.
Also changed all relevant properties defined manually to StringName.
2020-02-21 14:25:29 +01:00
Juan Linietsky
69c95f4b4c Reworked signal connection system, added support for Callable and Signal objects and made them default. 2020-02-20 08:24:50 +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
cf8c679a23 ObjectID converted to a structure, fixes many bugs where used incorrectly as 32 bits. 2020-02-12 14:24:54 -03:00
Juan Linietsky
e1b3444415 Bugfixes and ability to better specify filter and repeat modes everywhere.
Removes antialiased flag for draw_* methods.
2020-02-11 11:53:28 +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
Aaron Franke
5e1dad3b28
Use int64_t for EditorPropertyInteger and warn when out of double range 2020-01-15 23:39:49 -05: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
Rafał Mikrut
ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
Rémi Verschelde
8e76c5701b
Merge pull request #32997 from Calinou/editor-color-picker-add-tooltip
Add a tooltip to Color properties in the editor inspector
2019-11-07 13:18:27 +01:00
Hugo Locurcio
66bfa92e84
Add a tooltip to Color properties in the editor inspector
This makes it possible to view a color's raw R/G/B/A values
without clicking the ColorPickerButton.
2019-10-22 23:22:20 +02:00
Anubhab Ghosh
4972ef801a Add clear menu entries for extending and replacing scripts 2019-10-23 01:57:17 +05:30
Michael Alexsander
a0866716ed Make the the resource menu button fallback to the Object icon instead of Node 2019-10-21 11:26:58 -03:00
Michael Alexsander
22b9510558 Make resource editor fallback to Object icon if none is found 2019-10-14 16:36:00 -03:00
David Sichma
f7d9f070e1 Increased step precision
Results in nicer numbers for float properties like 20.0 instead of
20.000001
2019-10-13 00:29:53 +02:00
Joe Morton
c017f3405e Set tooltip to an empty string when clearing
Format


Remove string conversion
2019-10-06 17:29:11 +01: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
qarmin
17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
Hugo Locurcio
21222fb478
Make editor inspector easing lines use the accent color when dragged
This makes their visual feedback more consistent with other controls.

This also makes easing lines slightly more subtle by decreasing
their opacity by 10%.
2019-09-06 16:11:26 +02:00
Bhupendra Aole
1de3ec911f Default ColorPicker color mode setting
There is a new setting for Default ColorPicker color mode in Editor Settings->Interface->Inspector. Initially this setting will be RGB. Editor ColorPicker will always start with mode defined in this settiing.
Fixes #30755 and #30754
2019-08-31 00:34:33 -04:00
merumelu
e2459479de Editor: remove TOOLS_ENABLED guards
For code  inside editor/ `#ifdef TOOLS_ENABLED`
is always true so those checks are redundant.
2019-08-30 19:02:46 +02:00
Rémi Verschelde
73f1f9b44f
Merge pull request #31586 from SonerSound/issue_31533
Export path is the only path to be saved as a relative path
2019-08-23 08:34:03 +02:00
SonerSound
326f856006 Export path is the only path to be saved as a relative path
Also reverts 90b2415343
2019-08-22 22:20:15 +01:00
Hugo Locurcio
ca42541020
Tweak the size of the multiline text edit popup dialog
This caps its size on large displays. This in turn prevents lines from
becoming very long, which could hamper text readability.
2019-08-09 22:03:25 +02:00
Rémi Verschelde
d844e30614 Inspector: Make default float step configurable
Also allow lifting the decimal step formatting with a hint range step
of 0. A new `range_step_decimals()` is added for this to avoid breaking
compatibility on the general purpose `step_decimals()` (which still
returns 0 for an input step of 0).

Supersedes #25470.
Partial fix for #18251.
2019-07-23 17:31:38 +02:00
Rémi Verschelde
d15cf7b672
Merge pull request #30576 from qarmin/lgtm_coverage
Changed some code reported by LGTM and Coverity
2019-07-20 12:00:13 +02:00
qarmin
6cbaf7662f Changed some code showed in LGTM and Coverage 2019-07-20 08:09:57 +02:00
Michael Alexsander Silva Dias
df9c890022 Make multiline text edit grab focus when popping up 2019-07-19 14:32:23 -03:00
SonerSound
90b2415343 Export path may now be written as a relative path
If the target directory does not exist, it will be recursively created.

Export paths are now saved as a relative to the projects base directory

Renamed relative_to function to final_path_from_relative which takes a relative path and outputs the final path from a string that represents a directory.
Added relative_path_from_final which takes in a final path and outputs a relative path if possible. If not possible it outputs the relative path that represents the current directory.
If the target directory does not exist when exporting the project, then it is recursively created.

Removed final_path_from_relative function

Changed DirAccess into DirAccessRef for automatic object destruction
2019-06-30 19:13:49 +01:00
Rémi Verschelde
f8df412512
Merge pull request #24156 from AnaDenisa/master
Add option to input value in EditorPropertyEasing. Fixes #8449
2019-06-29 15:34:24 +02:00
LikeLakers2
facafeb19a Fix an EditorPropertyResource bug where clicking on the flat buttons would not select the property in the inspector 2019-06-28 19:23:57 -04:00
AnaDenisa
13279a7da7 Add option to input value manually in EditorPropertyEasing
Double-clicking on the EditorPropertyEasing widget (e.g. for the Light
Attenuation parameter) shows an EditorSpinSlider to set the value manually.

Fixes #8449.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2019-06-28 12:25:19 +02:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
JohnJLight
38d3bfe971 Made use of semicolons more consitent, fixed formatting 2019-06-19 15:24:31 +02:00
Rémi Verschelde
cce2e4b07c
Merge pull request #22301 from YeldhamDev/button_popup_highlight
Enable toggle behaviour for buttons that trigger popups
2019-04-25 17:47:23 +02:00
Juan Linietsky
04847ef5f9 Added ability for multiple images to be imported as an atlas
This adds support for groups in the import system, which point to a single file.
Add property hint for saving files in file field
2019-04-19 15:56:34 -03:00
Rémi Verschelde
c8994b56f9 Style: Apply new changes from clang-format 8.0
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02:00
Rémi Verschelde
b319168db2
Merge pull request #26122 from vixelz/allow-embedding-gdscript-defined-resources
Include global class resources in Resource property inspector
2019-04-06 13:11:00 +02:00
Rémi Verschelde
fc081ebe10
Merge pull request #26954 from willnationsdev/refresh
Add a getter for the EditorInspector
2019-04-05 16:41:02 +02:00
Anish
8ee31ace34 Prevents crash on loading unrecognized resources.
Editor crashes on trying to load resources with no loaders.
Simple check on the resource loader prevents using a null
resource loader.

Fixes: #27385
2019-03-25 02:32:21 +05:30
Will Nations
c1b247e4d5 Add EditorInspector getter. Update Sub-Inspectors. 2019-03-12 02:15:15 -05:00
George Marques
25f9aee005
Allow class_name scripts to have nested inheritance 2019-03-09 00:47:27 -03:00
Juan Linietsky
5f079e2ef9 -Make tileset and meshlibrary edit in a separate inspector, fixes #26671
-Made relationship lines appear based on theme settings, not previous hack
-Fix drawing of relationship lines (was broken)
-Fix double initialization of theme settings
2019-03-06 12:12:42 -03:00