Commit Graph

158 Commits

Author SHA1 Message Date
reduz 6631f66c2a Optimize StringName usage
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.

This is part of ongoing work to optimize GUI and the editor.
2021-07-18 21:20:02 -03:00
Rémi Verschelde aab6dc301c
Merge pull request #50086 from Geometror/label-improve-layout-options
Improvements to Label's layout options
2021-07-13 13:10:42 +02:00
Hendrik Brucker 56a8d3f30c Improvements to Label's layout options
- Added options to trim the text in case it overruns
- Added more autowrap modes
- Improved line breaking, which ignores trailing spaces
2021-07-04 16:43:55 +02:00
Michael Alexsander 7df1bc426e Minor cleanup of the "New Script" dialog 2021-07-04 00:06:46 -03:00
Michael Alexsander e4f9fa7e53 Make contents of "Create Script" dialog expand with the window size 2021-06-29 20:20:34 -03:00
Gregory Basile 8ab13f8ace Documentation search fixes
Updates rich_text_label so that the built-in documentation can be searched
Previously, it would only find the first result and would not select other results
Renames "_entered" functions to "_submitted"
2021-06-16 09:43:34 -07:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Hugo Locurcio 60b70c77e0
Improve the editor theme
The editor theme now makes use of rounded corners and less borders
to follow modern visual trends.

The default theme's colors were also tweaked to make the blue hue
more subtle (similar to the Arc theme, which was removed as a
consequence). The Alien theme was replaced by a Breeze Dark theme,
which should blend in well with the KDE theme.
2021-04-27 22:38:26 +02:00
Marcel Admiraal 86822b187e Rename LineEdit caret_* properties getters and setters to match property 2021-04-17 12:41:23 +01:00
Aaron Franke 5a9037f828
Warn when creating a script with the same name as the parent class 2021-04-06 22:43:00 -04: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
Marcel Admiraal 5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
Vedat Günel 13da314a64 Fix incorrect title and button text in Inherit dialog 2020-12-26 20:22:20 +03:00
Marcel Admiraal 8509c8c8fc Rename AcceptDialog get_ok() to get_ok_button()
Also renames:
- AcceptDialog add_cancel() to add_cancel_button()
- ConfirmationDiaglog get_cancel() to get_cancel_button()
2020-12-14 18:43:52 +00: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
Michael Alexsander fb17743ecc Fix being able to create invalid scripts by pressing enter inside "Path" 2020-08-31 22:24:09 -03:00
SkyJJ 280d4e2965 Fix TTR misuse 2020-07-24 15:15:23 +02:00
Stijn Hinlopen 526e060b73 Resize dialogs (FileDialog, EditorFileDialog, Reparent, SceneTreeDialog and resource depency dialogs). 2020-07-14 14:35:22 +02:00
Stijn Hinlopen 929b98d24b Remove String::find_last (same as rfind) 2020-07-03 15:26:22 +02:00
Andrii Doroshenko (Xrayez) 52f3cfca6f Prevent crash attaching a script with no languages registered 2020-05-31 21:01: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
Rémi Verschelde e956e80c1f Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
Part of #33027, also discussed in #29848.

Enforcing the use of brackets even on single line statements would be
preferred, but `clang-format` doesn't have this functionality yet.
2020-05-10 13:12:16 +02:00
Hugo Locurcio ac210e196c
Warn about built-in script limitations in the script creation dialog
This partially addresses #31758.
2020-04-04 13:44:13 +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
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 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 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 867d073b98 Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr. 2020-02-15 08:36:04 -03:00
SkyJJ 032b0e5899 Fix script icon not showing at startup bug 2020-02-15 00:37:04 +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
Michael Alexsander f7374cef84 Fix built-in script creation loading existing scripts by mistake 2020-02-03 13:07:17 -03:00
Michael Alexsander 14e36c72b0 Make ScriptCreateDialog's script valid message a bit more clearer 2020-01-10 20:14:45 -03:00
Michael Alexsander 8708d44a50 Add option to disable loading scripts in ScriptCreateDialog 2020-01-09 13:09:23 -03:00
Michael Alexsander f9d11120f7 Minor fixes for ScriptCreateDialog 2020-01-08 02:02:34 -03:00
dankan1890 51c601d2e3 [Mono]: the C# script icon is now visible in the editor. 2020-01-03 22:49:22 +01:00
Rémi Verschelde a4936e500f
Merge pull request #34721 from dankan1890/ext_fix
ScriptCreateDialog: Suggested language extension now matches the selected language.
2020-01-01 11:32:12 +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
dankan1890 99efc93419 ScriptCreateDialog: Suggested language extension now matches the selected language.
Fixes #34711
2020-01-01 01:09:50 +01:00
Rafał Mikrut 99d8626f4a Fix some overflows and unitialized variables 2019-11-20 16:22:16 +01:00
Michael Alexsander Silva Dias 3333d447c0 Cleanup the "Attach Node Script" dialog 2019-09-27 00:49:20 -03:00
Bojidar Marinov 6c4407bae4
Add overriden properties to the documentation
Fixes #31855
2019-09-04 15:21:40 +03:00
Andrii Doroshenko (Xrayez) f013596760 Allow to define and load script templates per project
Previously it was only possible to create custom script templates per
editor instance which could lead to certain name collisions, but now one
can create such templates per project tailored for specific use cases.

The default path to search for custom script templates is defined in
project settings via `editor/script_templates_search_path` setting as
`res://script_templates` path, yet this can be configured per project.

Templates have at most two origins now:

1. Project-specific, defined in `ProjectSettings`, for instance:
    - res://script_templates/
2. Editor script templates, for instance:
    - %APPDATA%/Godot/script_templates/

As script templates can have the same name over different paths,
the override mechanism was also added, enabling project-specific
templates over the editor ones.
2019-08-22 20:51:30 +03:00
Andrii Doroshenko (Xrayez) bd9852b982 Display language icons in script create dialog 2019-08-12 15:31:03 +03:00
Ev1lbl0w 1994111037
Allow dots for class name in popup dialog
Signed-off-by: Ev1lbl0w <ricasubtil@gmail.com>
2019-07-10 13:44:52 +01:00
Hugo Locurcio acbd0fea97
Use CheckBoxes in the editor instead of CheckButtons when applicable
CheckButtons should only be used if toggling them has an
immediate effect. Otherwise, CheckBoxes should be used.
2019-07-04 17:32:59 +02:00
LikeLakers2 4961db8e88 ScriptCreateDialog should emit the script_changed signal first 2019-06-29 23:18:37 -04:00
James Buck 2d28e393d6 Fix script create dialog
- Correctly validate parent/class names
- Trigger parent validation when selecting from buttons
- Fix enabling/disabling parent buttons
- Clear class name if not supported
- Minor cleanup
2019-06-11 16:05:24 -05:00
Michael Alexsander Silva Dias 3eb5d1b525 Hide "Built-in Script" option in the script creation dialog when not possible 2019-05-02 13:42:21 -03:00
Michael Alexsander Silva Dias 73d95f1006 Make small changes to the script dialog 2019-05-02 12:04:33 -03:00
Michael Alexsander Silva Dias 6cb4ef1c55 Fix script dialog asking for correct inheritance when not needed 2019-05-02 12:04:05 -03:00
DrNochi 23fd2a9175 Fix script dialog path validation to handle spaces correctly 2019-04-30 16:06:43 +02:00
Rémi Verschelde 8a7cf6f0d1
Merge pull request #25708 from SeleckyErik/issue-25611-script_dialog_cursor
Moves cursor to and selects "new_script" in Create Script dialog
2019-04-30 13:57:14 +02:00
Rémi Verschelde 9591e587fe
Merge pull request #26022 from lupoDharkael/create-script
Add class tree selection to script inheritance selection
2019-04-30 13:43:53 +02:00
Hugo Locurcio 35a0162167
Improve wording of various messages and make casing more consistent
This also adds the number of selected projects to the confirmation
dialog that appears before removing projects.
2019-04-21 14:37:14 +02:00
marxin 8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
lupoDharkael 76560c8afa Add class tree selection to script inheritance selection 2019-02-18 19:16:09 +01:00
Erik a83877a8e8 Moves cursor to and selects "new_script" in Create Script dialog
When Create Script dialog pops up, the cursor in the Path LineEdit is
moved to the "new_script" name placeholder and it is selected.
2019-02-08 18:42:05 +01: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
volzhs d072d5ed14 Create built-in script properly 2018-12-16 18:31:43 +09:00
DualMatrix 6dc0120c60 Prevent built-in-scripts from being made from FileSystem dock
Prevent built-in-scripts from being made from FileSystem dock
2018-09-23 17:38:59 +02:00
Michael Alexsander Silva Dias 75d5d81b8a Remove unnecessary "OK"s text settings 2018-09-15 21:40:50 -03:00
Rémi Verschelde fb77cdf2f2 Fix default script name in ScriptCreateDialog
It would default either to '.gd' when created from the script editor,
or to 'res:///NodeName.gd' (three '/') when created from the scene tree dock.
2018-09-12 12:29:50 +02: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
willnationsdev 69c09ab2fd Fix ScriptCreateDialog passing script w/ no filename 2018-09-08 15:04:55 -05:00
willnationsdev 2a6c591957 Expose ScriptCreateDialog to EditorPlugin 2018-07-04 09:41:12 -05:00
Rémi Verschelde 99c1323a08
Merge pull request #17388 from Hinsbart/mono_class_name
Mono: Avoid invalid class names.
2018-03-15 19:47:39 +01:00
Andreas Haas 700d07cf7c
Mono: Avoid invalid class names.
Disallow reserved keywords as class names and prefix base class with the Godot
namespace if it's the same as the class name.

Fixes #12483
2018-03-15 19:25:06 +01:00
Poommetee Ketson 2de1dfa42f Update icons when theme changed 2018-02-25 23:04:16 +07:00
Anish 1fdb8251d2 Godot now allows built-in irrespective of the filepath.
Since the file in the filepath is irrelevant when setting the file
as built-in, changes have been made to allow setting to built-in
even if the file in the path exists.

Fixes #16425
2018-02-21 14:47:23 +05:30
Rémi Verschelde 8fcbba9326
Merge pull request #15544 from YeldhamDev/script_dialog_label_fix
Fixed "Attach Script" dialog's file dialog labeling
2018-02-14 16:44:39 +01:00
Michael Alexsander Silva Dias 2b45d721f9 Some small fixes for the "Attach Script" dialog. 2018-01-10 21:43:35 -02:00
Michael Alexsander Silva Dias 4b8387dd92 Fixed "Attach Script" dialog's file dialog labeling. 2018-01-10 00:36:07 -02:00
Rémi Verschelde 29ae3e5f33 Revert "Fix "Attach Node Script" inherits popup type"
This reverts commit 227238b424.

This dialog is used to both open and create scripts, so it needs to have
the features of the save dialog.
2018-01-09 16:15:22 +01:00
Jerome67000 227238b424 Fix "Attach Node Script" inherits popup type 2018-01-08 21:33:51 +01:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde d65ac7378c Fix crash in OS::execute on FreeBSD
As spotted by @robfram, closes #15288.
Also reviewed other uses of `if (String.find(.*))` for potential similar mistakes, found a wrong (and useless) one in ScriptEditorDialog.
2018-01-04 01:20:20 +01:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Rémi Verschelde a5db25bd27
Merge pull request #14551 from volzhs/ok-alert-confirm
Pressing Enter key creates or loads script on Attach script window
2017-12-16 01:17:45 +01:00
Rémi Verschelde ef1e2df86d
Merge pull request #14645 from volzhs/focus-after-select
Focus path field after seleting file browser on Attach script window
2017-12-16 00:47:15 +01:00
Andreas Haas 0de3cde6fc
ScriptCreateDialog: Fix loading scripts with named classes.
We only need to validate the class name when creating a new script, existing scripts already have one.

Fixes #14643
Supersedes/Closes #14684
2017-12-15 19:40:36 +01:00
volzhs ac411c9f48 Focus path field after seleting file browser on Attach script window 2017-12-14 11:25:00 +09:00
volzhs 47182a01c3 Pressing Enter key creates or loads script on Attach script window 2017-12-11 23:20:25 +09:00
Rémi Verschelde 6e3f2f44af Use new XDG folders to dehardcode paths 2017-11-19 20:54:26 +01:00
Rémi Verschelde ad199c3964 EditorSettings: Rename settings_path to settings_dir
Also to prepare for upcoming refactoring for XDG support.
2017-11-17 20:55:09 +01:00
Daniel J. Ramirez 8cf0d6ceb4 Some fixes and improvements.
Changed FileDialogs for EditorFileDialogs in EditorNode.
Updated CheckButton.
2017-11-10 16:45:08 -06:00
Ignacio Etcheverry e218a13a64 Add ScriptLanguage::supports_builtin_mode and improve ScriptCreateDialog
- Make ScriptCreateDialog disable the built-in script checked button if the language does not support it.
- ScriptLanguage's get_template and make_template now receive the script path as class name if the the script language does not have named classes.
2017-10-24 15:48:58 +02:00
Jakob Sinclair d9d371fb53 File names for scripts can include '-'
Fixes #12261

Signed-off-by: Jakob Sinclair <sinclair.jakob@mailbox.org>
2017-10-21 17:28:53 +02:00
Juan Linietsky 5f8df8bc11 Fix detectin of existing file being a dir in new script creation, closes #9958 2017-09-01 14:25:01 -03:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Wilson E. Alvarez 1577f41653 Fixed several memory leaks 2017-08-25 08:47:05 -04:00
Wilson E. Alvarez 738d2ab969 Removed unnecessary assignments 2017-08-21 15:15:55 -04:00
Daniel J. Ramirez cd8feed0df Some theme and usability improvements
Fixed create script editor dialog not changing extension
Options menu for inspector element is bigger
2017-07-31 13:19:45 -05:00
Juan Linietsky 25678b1876 -Renamed GlobalConfig to ProjectSettings, makes more sense.
-Added system for feature overrides, it's pretty cool :)
2017-07-19 17:06:03 -03:00
Poommetee Ketson 9ef0d0f96e ScriptCreateDialog: Fix regressions from #9536 2017-07-09 13:36:57 +07:00
Poommetee Ketson a94ea0b9fe ScriptCreateDialog: fix open error crash, remember template 2017-07-07 20:42:39 +07:00
Andreas Haas 8e8e4b30e5
Script create diag: Show extensions for currently selected language only. 2017-07-01 15:19:34 +02:00
Andreas Haas cc2cd20870
Capitalize template names in script dialog. 2017-06-24 15:37:27 +02:00