Commit graph

502 commits

Author SHA1 Message Date
Nathan Franke
49403cbfa0
Replace String comparisons with "", String() to is_empty()
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
Paulb23
bfe2cd2f03 Optimise TextEdit base operations 2021-12-08 18:23:07 +00:00
jmb462
083ff9a133 Fix bad mouse offset with Control::wrap_mouse() 2021-12-07 20:55:12 +01:00
Rémi Verschelde
75ac048e4b
Merge pull request #55662 from KoBeWi/update_minimum_size_changed_to_update_minimum_size 2021-12-06 18:28:46 +01:00
jmb462
81efebb3a1
Fix bad popups offset in editor with single window off
Co-authored-by: Gil Arasa Verge <gilarasaverge@gmail.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2021-12-06 14:29:48 +01:00
kobewi
ea7cc1dea9 Rename minimum_size_changed() method 2021-12-06 14:02:34 +01:00
Rémi Verschelde
76aa1d0a43
Merge pull request #55151 from Chaosus/control_reset_size 2021-11-22 16:22:57 +01:00
Yuri Roubinsky
eabf8f5edf Added reset_size method to Control and Window classes 2021-11-22 16:55:21 +03:00
ConteZero
2b1787b446 Fix drag and drop on LineEdit 2021-11-15 17:10:56 +01:00
Rémi Verschelde
3b11e33a09
clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 15:19:35 +02:00
bruvzg
ebbc25e89c Ignore empty Font resources as theme override.
Add range hint to font_size properties.
Remove excessive `base_size` Font property.
2021-10-25 14:05:37 +03:00
Zae
924c2078da Fix unexpected crashes in notification 2021-10-23 13:01:52 +08:00
Gilles Roudière
1a95f893c4 Implement TileMap patterns palette 2021-10-19 11:57:37 +02:00
Rémi Verschelde
b85dfd990e
GDScript completion: Handle quote style ad-hoc to remove editor dependency
`core` and `scene` shouldn't depend on `editor`, so they can't query this style
setting in `get_argument_options`. But we can handle it after the fact in
GDScript's completion code.

Also cleans up a couple extra unused invalid includes in `core`.
2021-10-04 16:16:05 +02:00
Yuri Sizov
4a42a66cd9 Add the base scale factor to the Theme resource 2021-10-04 15:25:07 +03:00
bruvzg
0c0b5c84b0 Implement TextServer GDExtension interface, remove TextServer GDNative interface. 2021-10-01 15:13:29 +03:00
Eric M
4baddc1126 Allow non-control Nodes to handle drag forwarding (e.g. Windows) 2021-10-01 18:03:51 +10:00
Awkor
3aa2a7fc18 Prevent editing properties managed by parent container 2021-09-05 23:23:53 +02: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
3682978aee Replace BIND_VMETHOD by new GDVIRTUAL syntax
* New syntax is type safe.
* New syntax allows for type safe virtuals in native extensions.
* New syntax permits extremely fast calling.

Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`.
These will require API rework on a separate PR as they work different than the rest of the functions.

Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-22 08:23:58 -03:00
Rémi Verschelde
14a2e59875
Merge pull request #51642 from akien-mga/cleanup-use_single_quotes 2021-08-13 21:49:06 +02:00
Rémi Verschelde
81512a3732
Style: Cleanup code using text_editor/completion/use_single_quotes 2021-08-13 21:27:57 +02:00
Paulb23
b73983340d Add bulk theme overrides to Control 2021-08-13 16:41:36 +01:00
Yuri Sizov
7137ebdaf6 Make theme item overrides more obvious in the Inspector 2021-07-31 23:46:24 +03:00
Michael Alexsander
b70b9c4ede Fix "Custom *" theme sections being inside "Auto Translate" 2021-07-30 13:55:07 -03:00
Michael Alexsander
94a64d557e Add auto_translate toggle for automatic translation 2021-07-29 18:30:34 -03:00
Rémi Verschelde
738205d923
Merge pull request #50835 from bruvzg/optimize_is_rtl
Optimise `is_layout_rtl`.
2021-07-25 12:55:46 +02:00
Rémi Verschelde
ff0b5f8fa1
Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
Rémi Verschelde
ac3322b0af
Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
luz paz
3564c16cb8
Fix various typos with codespell
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25 11:21:51 +02:00
bruvzg
9bb03e60d9 Optimise is_layout_rtl by caching its return value. 2021-07-25 10:33:00 +03:00
Aaron Franke
4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
Joan Fons
a6adb58493 Editor StringName and Viewport optimizations
* Added explicit return type to the SNAME macro.
* Add some extra SNAME usages.
* Change some ClassDB methods to use const StringName & arguments.
* Cache the Window parent in Control because it's used in
  is_layout_rtl(), which is called often.
* Only enable internal processing for viewports that need it.
* Change CanvasItem::group to be a StringName because it's only used as
  that.
2021-07-20 20:35:41 +02:00
Yuri Sizov
4ee0e6ddf5 Add type variations to Theme 2021-07-13 02:26:28 +03:00
Rémi Verschelde
a525e77740
Merge pull request #49468 from menip/FixGetScreenPosition
Fix Control::get_screen_position() not considering viewport scale
2021-07-03 14:29:20 +02:00
reduz
75688772b3 Fix editor suffixes and degrees conversion
* Functions to convert to/from degrees are all gone. Conversion is done by the editor.
* Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees.
* Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m"
* In general, can add suffixes for EditorSpinSlider
Not covered by this PR, will have to be addressed by future ones:

* Ability to switch radians/degrees in the inspector for angle properties (if actually wanted).
* Animations previously made will most likely break, need to add a way to make old ones compatible.
* Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes.
* Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-30 12:38:25 -03:00
Rémi Verschelde
8fb7a9f023
Merge pull request #49719 from LightningAA/rename-node-is-ancestor-of
Rename `is_a_parent_of()` to `is_ancestor_of()`
2021-06-29 12:07:25 +02:00
reduz
b1d15c51bc Implement native extension system
* Deprecates GDNative in favor of a simpler, lower level interface.
* New extension system allows registering core engine classes.
* Simple header interface in gdnative_interace.h
2021-06-25 17:32:45 -03:00
kobewi
452e10ba7b Remove clips_input() method and use clip_content 2021-06-25 15:46:37 +02:00
Lightning_A
899e5f8685 Rename is_a_parent_of() to is_ancestor_of() 2021-06-21 08:39:28 -06:00
Aaron Franke
8b692e8872
Add PROPERTY_USAGE_NONE and use it 2021-06-17 19:10:26 -04:00
kobewi
7ff135b015 Consistently prefix bound virtual methods with _ 2021-06-12 00:55:52 +02:00
menip
ae324444ba Fix Control::get_screen_position() not considering viewport scale 2021-06-09 12:05:04 -07:00
Rémi Verschelde
d7f1718742
Merge pull request #46482 from KoBeWi/size_warning_the_sequel
Warn about changing size only when it's relevant
2021-06-03 11:21:33 +02:00
Hugo Locurcio
87f503310b
Tweak dozens of editor property hints for consistency
- Update Viewport MSAA property hints to match the currently
  exposed values.
- Add some performance hints to property hints.
2021-05-25 02:50:35 +02:00
Yuri Sizov
9eaa139c1f Add theme_custom_type property to Control and Window 2021-05-17 17:20:42 +03:00
Andrii Doroshenko (Xrayez)
c9a3d13bd9 Fix variable names for "usage" flags in Control::_get_property_list()
Renamed incorrect "hint" variable names to "usage" in
`_get_property_list()`, as "hint" implies one of the PROPERTY_HINT_*
values, which is not the case here.
2021-05-13 12:51:38 +03:00
Yuri Sizov
980cf73bbc Fix autocompletion for Control's Theme properties 2021-04-30 20:47:01 +03:00
Nathan Franke
2a8c59c171
Use Array for node configuration warnings
Previously, the warnings were passed as a string and delimitation of which were hard coded at each implementation.
2021-04-11 23:25:38 -05:00
Rémi Verschelde
5d0cc7c15f Merge pull request #47252 from KoBeWi/themecide
Add methods to remove theme overrides
2021-03-31 20:52:19 +02:00
Rémi Verschelde
995ce158dd
Merge pull request #46702 from HaSa1002/fix-min-size-resize
Fix removal of `rect_min_size` not triggering resize
2021-03-30 20:46:04 +02:00
Johannes
c8868fcaab
Fix removal of rect_min_size not triggering resize
fixes #46672
2021-03-23 23:06:50 +01:00
kobewi
5950482b86 Remove the clearing behavior from add_override 2021-03-23 00:55:02 +01:00
kobewi
ecff5bc42f Add methods to remove theme overrides 2021-03-23 00:51:16 +01:00
Aaron Franke
6811a45b59
Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00
Kongfa Waroros
b80406770f Check if _edit_set_position and _edit_set_rect was used outside an editor 2021-03-15 14:34:24 +07:00
Anshul7sp1
91181c2086 Fixes small typos and grammar correction 2021-03-12 19:05:16 +05:30
sps1112
05f5a43cad Fix Control._edit_set_state crash 2021-03-05 21:52:34 +05:30
Rémi Verschelde
372b1b8f68 Revert "Add size check in Control._edit_set_state to prevent crash"
This reverts commit ef1d58f034.
2021-03-04 12:06:58 +01:00
sps1112
ef1d58f034 Add size check in Control._edit_set_state to prevent crash 2021-03-04 10:55:42 +05:30
Rémi Verschelde
ec7053259b
Merge pull request #41437 from KoBeWi/put_it_here
Allow to create a node at specific position
2021-03-01 15:48:53 +01:00
kobewi
5e4ab20296 Warn about changing size only when it's relevant 2021-02-27 19:24:59 +01:00
Tomasz Chabora
8df22a03c4 Allow to create a node at specific position 2021-02-26 14:40:28 +01:00
Tomasz Chabora
84da090a69 Warn when setting Control size inside ready() 2021-02-19 18:32:24 +01:00
reduz
64140eaf42 Reorganize Project Settings
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -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
Rémi Verschelde
eda5f4ea31
Merge pull request #44349 from KoBeWi/drop_the_data!
Allow to override drop data in LineEdit
2021-01-26 16:03:07 +01:00
Nils Reid
3e94c23fa5 Exposed find_next_valid_focus and find_prev_valid_focus. 2021-01-26 08:19:20 +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
Rémi Verschelde
891b1cdf28
Merge pull request #44607 from madmiraal/rename-control-rotation
Rename Control rotation to rotation_degrees
2020-12-28 14:42:06 +01:00
Marcel Admiraal
5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
Marcel Admiraal
b832003c6b Rename Control rotation to rotation_degrees 2020-12-23 07:06:30 +00:00
Marcel Admiraal
4b8b803931 Rename Control margin to offset 2020-12-23 06:25:56 +00:00
Rémi Verschelde
153c132a7e
Merge pull request #44300 from KoBeWi/🧹🧹
Move initialization of some classes to headers
2020-12-21 00:24:36 +01:00
Daniel Ting
aea7fde241 Rename neighbour in Control to neighbor
This keeps things consistent with the rest of Godot, which uses the
American English spelling of Color.
2020-12-15 16:42:21 -06:00
kobewi
a3a31591b5 Allow to override drop data in LineEdit 2020-12-13 20:16:56 +01:00
Tomasz Chabora
31cb04fbdd Move initialization of some classes to headers 2020-12-11 18:20:03 +01:00
Tomasz Chabora
2c048ea164 Cleanup unused engine code 2020-12-09 12:12:36 +01:00
Rémi Verschelde
1a001ad964
doc: Sync classref with current source
And fixups:
- Add missing bindings in RenderingServer
- Remove duplicate ArrayMesh enum bindings (they're in Mesh already)
- Remove redundant _unhandled_key_input binding in Control (it's in Node
  already)
2020-12-04 22:28:08 +01:00
Rémi Verschelde
a09846e015
Merge pull request #42109 from EricEzaM/PR/input-and-shortcuts-rework
Shortcuts rework - fixed issues with input propagation and triggering of unwanted shortcuts.
2020-11-28 09:04:25 +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
Eric M
efe5c250d5 Implement new shortcuts system.
unhandled_key_input changed to unhandled_button_input. Controls can set a 'shortcut_context' which they can then use to determine if their shortcuts should be triggered or not, based on if the viewport's focused GUI control is a child of their 'shortcut context'.
2020-11-23 21:14:26 +10:00
Aaron Franke
02161aad5a
Remove empty lines around braces with the formatting script 2020-11-16 23:38:11 -05:00
Rémi Verschelde
fc70f986b9
Merge pull request #42008 from Calinou/theme-rename-node-type
Rename the `type` parameter to `node_type` in Theme and Control
2020-11-16 13:20:24 +01:00
reduz
127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
Rémi Verschelde
c5d8dafec4
Tooltips: Improve code clarity and docs
The return type for `_make_custom_tooltip` is clarified as Control, and users
should make sure to return a visible node for proper size calculations.

Moreover in the current master branch, a PopupPanel will be added as parent
to the provided tooltip to make it a sub-window.

Clarifies documentation for `Control._make_custom_tooltip`, and shows how to
use the (until now undocumented) "TooltipPanel" and "TooltipLabel" theme types
to style tooltips.

Fixes #39677.
2020-11-03 09:19:03 +01:00
Hugo Locurcio
c3b246e6af
Rename the type parameter to node_type in Theme and Control
This makes it clearer that it expects a node type as a string
(such as "Label") instead of a type like "TYPE_ARRAY".
This is backwards-compatible since only the name of the parameter
is changed, not its order.
2020-10-27 14:58:52 +01:00
Duroxxigar
4834e14493 Updated getters and setters names for toplevel 2020-10-02 19:09:01 -04:00
Rémi Verschelde
19f72beebb
Merge pull request #42451 from Duroxxigar/rename-toplevel
Renamed toplevel to be top_level
2020-10-02 10:57:23 +02:00
Rémi Verschelde
12091b39d2
Merge pull request #38743 from arrowinaknee/node-config-warnings
Update all get_configuration_warning() to retrieve warnings from the parent
2020-10-01 14:03:29 +02:00
Duroxxigar
b687ace7f9 Renamed toplevel to be top_level 2020-10-01 03:17:33 -04:00
Jonah Stich
f6b14238c7 Fixed minor typo, gui_hid -> gui_hide. 2020-09-08 18:08:21 -07:00
Juan Linietsky
ac7e9479ce Fix content scale mode, closes #37941 2020-07-02 17:16:13 -03:00
Andrii Doroshenko (Xrayez)
69d5de632e Split Geometry singleton into Geometry2D and Geometry3D
Extra `_2d` suffixes are removed from 2D methods accoringly.
2020-05-27 14:28:34 +03:00
ArrowInAKnee
9fc2b0fddc Update all get_configuration_warning to retrieve warnings from the parent 2020-05-16 16:07:42 +03: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
Eric M
915ab50673 Updated editor spin slider to have better behaviour and adjusted control's size_flags_stretch_ratio value range 2020-05-06 17:43:31 +10:00
Tomasz Chabora
c1023157eb Remove Node.get_position_in_parent() 2020-04-06 01:19:20 +02:00
Rémi Verschelde
ea7b497065 Replace more occurrences of NULL with nullptr 2020-04-02 14:56:01 +02:00
lupoDharkael
95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Juan Linietsky
a6f3bc7c69 Renaming of servers for coherency.
VisualServer -> RenderingServer
PhysicsServer -> PhysicsServer3D
Physics2DServer -> PhysicsServer2D
NavigationServer -> NavigationServer3D
Navigation2DServer -> NavigationServer2D

Also renamed corresponding files.
2020-03-27 15:21:27 -03:00
Juan Linietsky
b3080bc2f4 Popups have also been converted to windows
Controls using the old modal API have been replaced to use popups.
2020-03-26 15:49:44 +01:00
Juan Linietsky
c7b4dcae2f Open sub-windows as embedded if the OS does not support them 2020-03-26 15:49:43 +01: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
8e6960a69e Refactored input, goes all via windows now.
Also renamed Input to InputFilter because all it does is filter events.
2020-03-26 15:49:39 +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
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
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
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
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
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
dc9774b17b
Merge pull request #32959 from georgwacker/control-node-anim-fix
Fix control node transform animation jitter with pivot offset
2020-02-05 17:06:49 +01:00
Ricardo Buring
40542b0b0f Fix Control::_window_find_focus_neighbor
Due to a typo, the size of a candidate neighbor was confused with the
size of the control itself.

Fixes #34936.
2020-01-19 23:38:50 +01:00
Rémi Verschelde
100f50b7df Control/Light2D: Preventing setting 0 as scale as for Node2D
Triggers errors in `Transform2D::affine_invert()`.

Fixes #26510.
Fixes https://github.com/godotengine/godot/issues/24997#issuecomment-457951639.
2020-01-13 12:20:15 +01:00
Gilles Roudière
b5251eb00f Don't compile editor-only function when tools=no 2020-01-09 22:15:48 +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
Jonas Bernemann
2f35cf4946 Fix issue with disconnecting events when font changes 2019-12-23 14:08:34 +01:00
Tomasz Chabora
32939ccd39 Prevent infinite loop when focus_next is invisible 2019-12-16 01:33:25 +01:00
PouleyKetchoupp
e3d4b96ba7 Fixed crashes when renaming a state in AnimationNodeStateMachineEditor
Recursive calls to Control::_modal_stack_remove could cause a crash because of the list element not being invalidated while being erased from the list.

It happens in the state machine case by hiding a line edit control when it loses focus.

Fixes #23808
2019-10-22 16:28:11 +02:00
Georg Wacker
dfb7d46a2a Fix control node transform animation jitter with pivot offset
The workaround for moving the pivot is not needed anymore, in fact it causes all transforms applied to control nodes to jitter while animating (if a pivot offset is set).

This can be observed via AnimationPlayer and Tween.

The fix is to remove the obsolete workaround that causes this bug.

Fixes #28804
2019-10-21 16:52:45 +02:00
qarmin
17344337a9 Fix crash in Control functions 2019-10-05 19:17:07 +02:00
Soumya Lahiri
a1b2364dba Altered rotation_degrees range 2019-09-30 20:43:57 +05:30
Rémi Verschelde
cefa56ef1f
Merge pull request #31935 from aole/Change-minimum-size-when-theme-changed
Change minimum size when theme changed
2019-09-24 11:13:44 +02:00
Tomasz Chabora
a28d18f554 Load overrides if getting style from current class 2019-09-20 13:48:24 +02:00
Bhupendra Aole
7a27abae49 Change minimum size when theme changed
Need to call minimum_size_changed on controls whenever the theme is changed.

Fixes godotengine#29816
2019-09-03 14:56:56 -04:00
shaderbeast
5e337b31eb Added is_inside_tree() check in both Timer and Tween
Tween now throws error and doesnt even execute.
2019-09-03 13:26:41 +02:00
toasteater
a919f5e614 Fix return type of Control::get_drag_data in API json
Control::get_drag_data is a virtual method that returns Variant, but have the
Object type in its MethodInfo.

This changes the MethodInfo of Control::get_drag_data
2019-08-26 16:38:16 +00:00
Cameron Reikes
5deb83e041 Increase control node's anchor precision 2019-08-22 11:04:24 -07:00
Tomasz Chabora
af5e0fff66 Remove ERR_EXPLAIN from scene/* code 2019-08-09 13:54:52 +02:00
qarmin
e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
Rémi Verschelde
f494d5f10b
Revert "Update Control margins when size is overridden by change to minsize" 2019-07-27 12:55:03 +02:00
Rémi Verschelde
4c74f50d1a
Merge pull request #30351 from bojidar-bg/30288-override-global-theme
Keep track of default theme and project custom default theme seperatelly
2019-07-25 14:54:27 +02:00
Hugo Locurcio
ff7184c5cb
Improve the node configuration warning display
- Refer to properties explicitly when possible
- When multiple warnings are returned, always separate them by one
  blank line to make them easier to distinguish
- Improve grammar and formatting
2019-07-09 00:18:00 +02:00
Bojidar Marinov
17901da1a8
Keep track of default theme and project custom default theme seperatelly
Fixes #30288
2019-07-05 23:32:52 +03:00
Hugo Locurcio
a0cc62f000
Add a configuration warning when using Ignore mouse filter with tooltip
This closes #30144.
2019-06-30 19:58:40 +02:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Rémi Verschelde
d61d1af64d
Merge pull request #29489 from groud/fixes_nan
Fixes NaN errors with anchors mode
2019-06-18 09:53:25 +02:00
Rémi Verschelde
84d969a42a Cleanup some unecessary editor/ includes in scene/
Part of #29730, handles false positives.
2019-06-12 22:48:43 +02:00
Gilles Roudière
df0a69bbac Fixes NaN errors with anchors mode 2019-06-04 21:58:21 +02:00
Rémi Verschelde
1d9bb73a15
Merge pull request #29040 from swarnimarun/fix_override_bug
Clear overrides on passing null
2019-05-21 15:23:18 +02:00
Swarnim Arun
6ab7fb4976 Clear overrides on passing null 2019-05-21 10:50:43 +05:30
Rémi Verschelde
8c95e1aaf8
Merge pull request #28952 from jbuck3/update-margins
Update Control margins when size is overridden by change to minsize
2019-05-20 22:40:35 +02:00
James Buck
5f5507cc62 Update Control margins when size is overridden by change to minsize 2019-05-16 21:56:17 -05:00
Gilles Roudiere
e875f05c3b Improve the anchors and margin workflow 2019-05-13 18:55:31 +02:00
Rémi Verschelde
9dc9434b1b
Merge pull request #24437 from mateusfccp/single_quotes_option
Add settings for single-quotes on completion
2019-04-30 14:58:33 +02:00
qarmin
8b391b9ab0 Fix inspector update after changing anchor via buttons 2019-03-19 18:37:28 +01:00
Justin Vesper
079ed007c8 Fixed wrong method binding in control
Control.get_parent_area_size() is now bound to
Control::get_parent_area_size() instead of Control::get_size()
2019-03-01 14:16:19 +01:00
Bojidar Marinov
8dad5f1e10
Update controls when a stylebox or icon override changes; change to CONNECT_REFERENCE_COUNTED
Also, cleanup unnessesary calls to update() and NOTIFICATION_THEME_CHANGED.

Fixes #25904.
2019-02-25 17:42:38 +02: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
Mateus Felipe C. C. Pinto
ca1935d6f7 Add settings for single-quotes on completion 2018-12-18 12:48:36 -02:00
Rémi Verschelde
41d1dba35f
Merge pull request #22431 from DualMatrix/pivot
Fixed pivot tool not setting position of Controls correctly
2018-12-07 23:18:27 +01:00
Juan Linietsky
5f4485d4ff Always use default theme for overrides, closes #13071 2018-11-14 21:21:51 -03:00
Juan Linietsky
88bfb27abf Show theme values from default theme always, fixes #16011, fixes #13071 2018-11-14 18:02:21 +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
Rémi Verschelde
ebdb374d80
Merge pull request #22844 from samgreen/fix_gui_dragging_spam
Fix spam when dragging in the editor
2018-10-11 17:48:19 +02:00
Sam Green
24a339245f Swap condition to prevent spam in editor. 2018-10-08 11:05:20 -07:00
Aaron Franke
37386f112b Remove redundant "== true" code
If it can be compared to a boolean, it can be evaluated as one in-place.
2018-10-06 16:12:36 -04:00
karroffel
a0f206aae8 fix enum cast warnings on clang 2018-10-04 09:17:59 +02:00
Hugo Locurcio
c4770a5b5d
Tweak some editor texts' capitalization, use "Go to" instead of "Goto"
This also fixes a typo in the `debugger/debug_with_external_editor`
shortcut.
2018-09-25 22:51:13 +02:00
DualMatrix
16cac24c9d Fixed pivot tool not setting position of Controls correctly
Fixed pivot tool not setting position of Controls correctly
2018-09-25 21:20:03 +02:00
Rémi Verschelde
1a16dabfb5
Merge pull request #21982 from luzpaz/misc-typos
Misc. typos
2018-09-13 10:59:00 +02:00
luz.paz
08bde5b2de Misc. typos
Found via `codespell -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"`
2018-09-12 21:39:17 -04:00
Rémi Verschelde
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
Juan Linietsky
f6fbf841d5 Show a warning if you try to grab focus when not allowed, closes #15388 2018-09-06 13:32:34 -03:00
Michael Alexsander Silva Dias
cf183efbcf Change some instances of args named "ev" to "event" 2018-09-01 17:03:41 -03:00
Juan Linietsky
683c3f2fcf Avoid misuse of set_drag_preview() function where it shouldn't be. Closes #20100 2018-08-24 10:30:11 -03:00
Rémi Verschelde
e22f0515c9 Drop old ShaderGraph code, obsoleted by VisualShader 2018-08-24 11:49:08 +02:00
Juan Linietsky
c752c26427 Expose _clips_input as a virtual function, closes #15358 2018-07-29 12:48:17 -03:00
Guilherme Felipe
d1f5deabd8 Opens the menu with the same parent on mouse focus 2018-07-24 19:59:40 -03:00
Juan Linietsky
336db8bcd1 -Fix tooltips in inspector, now they show as rich text. 2018-07-20 18:16:19 -03:00
Max Hilbrunner
43748f67be
Merge pull request #19351 from guilhermefelipecgs/fix_reversed_text
Fixes to the new inspector
2018-07-05 03:50:31 +02:00
Guilherme Felipe
709948aa5a Fixes to the new inspector
- Fix inspector dock not updating tree for main resource;
- Fixes the inspector input text reverted during typing;
- Add method bind for "refresh" used by MultiNodeEdit;
2018-07-04 20:08:45 -03:00
groud
560deda207 Fixes control nodes size not updated when outside the tree 2018-07-04 15:14:42 +02:00
Rémi Verschelde
3724f1562b
Merge pull request #19782 from Calinou/fix-control-pixel-snap-rounding
Fix control pixel snap rounding using floor() instead of round()
2018-07-04 15:11:08 +02:00
Max Hilbrunner
b21c1f64cd
Merge pull request #18634 from groud/fix_control_child_of_node2d
Fixes the bad calculation of margin & anchors when child of Node2D
2018-07-03 18:06:15 +02:00
Guilherme Felipe
b2e78e117c Fix performance for godot's interface 2018-07-01 09:48:03 -03:00
Juan Linietsky
eeab3502d5 Changes to how node paths are selected from property, allowing setting a hint. 2018-06-27 20:50:25 -03:00
Hugo Locurcio
88c23e243f
Fix control pixel snap rounding using floor() instead of round()
This resulted in small leftwards/upwards movement of controls being
faster than it should be.

This closes #19763.
2018-06-26 17:55:23 +02:00
groud
4d78e16bc1 Fixes the bad calculation of margin & anchors when child of Node2D 2018-06-07 21:25:15 +02:00
Guilherme Felipe
7a3882723c Fix #16069, #19292, #19267 and #18940 2018-06-06 13:16:52 -03:00
Juan Linietsky
4b5227ff77 -Ability to open resources in the same window
-Plenty of fixes and improvements to new inspector
-Fixes that were needed to make inspector work better
2018-05-17 18:03:05 -03: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
Juan Linietsky
1d15c5d726
Merge pull request #17502 from groud/2Deditor_rect
Remove the rect surrounding 2D nodes in 2D editor when it's not pertinent
2018-04-13 10:21:44 -03:00
Rémi Verschelde
7e2782e177
Merge pull request #17081 from endragor/no-press-when-scroll
Make Button not emit press when container is scrolled
2018-04-10 07:56:37 +02:00
Ruslan Mustakov
dcf5be92a3 Make BaseButton not emit press when container is scrolled
This fixes the problem described in #13996 in a proper way.

This also adds "deadzone" property to ScrollContainer. It can be used
on mobile, where taps are not as precise as mouse clicks. Player could
slightly move their finger when tapping, in which case we still want
the button to be pressed rather than the container to be scrolled.
2018-04-09 20:34:52 +07:00
Juan Linietsky
24cf58f917
Merge pull request #16574 from isaacremnant/better_grow_direction
Added GROW_DIRECTION_BOTH for controls
2018-04-08 16:42:16 -03:00
Gilles Roudiere
72ed1e4244 Remove the selection rect for nodes that do not require it 2018-04-03 22:04:19 +02:00
Rémi Verschelde
b93d6a001b
Merge pull request #16566 from groud/gui_input_rework
2D Editor GUI input rework
2018-02-19 20:05:35 +01:00
isaacremnant
cc902cf9ab Force controls to save rect_clip_content since they do not all default to false. 2018-02-18 22:24:05 -05:00
Gilles Roudiere
8dad41e395 2D editor GUI input rework. Changes are:
- The input handling is done into several distinct functions, and the
  code is more consistent.
- The actions' history is more precise ("Edited CanvasItem"
  is now "Rotated CanvasItem","Moved CanvasItem",etc...)
- Fixed a little bug about input key events not forwarded correctly to plugins
- IK is followed by default when you move a bone node, the alt-key allow
  you to move it normally
2018-02-16 10:14:52 +01:00
isaacremnant
4ef11eb3ed Implements #16546 by adding GROW_DIRECTION_BOTH which allows a control to grow from its center. 2018-02-12 01:39:18 -05:00
Rémi Verschelde
9f479f096c Fix typos in code and docs with codespell
Using v1.11.0 from https://github.com/lucasdemarchi/codespell
2018-01-18 22:01:42 +01:00
Ruslan Mustakov
0b632be4a9 Fix get_parent_range to return 0 when there is no parent
Fixes #15635
2018-01-13 16:48:07 +07:00
letheed
524ee14054 Small fix for Control bindings 2018-01-13 09:40:42 +01:00
Bojidar Marinov
9b8e8b2220
Bind many more properties to scripts
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
2018-01-12 00:58:14 +02:00
Gilles Roudiere
00473e0897 Fixes nodes being resized or moved when changing an anchor 2018-01-11 23:39:49 +01:00
Fabio Alessandrelli
a63a82d5e5 Fix theme inheritance 2018-01-05 18:30:40 +01:00