Commit Graph

189 Commits

Author SHA1 Message Date
b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
b3ca2e1cfa Merge pull request #98914 from fuzzybinary/gdextension-editor-settings
Support extension icons in ScriptCreateDialog
2024-12-02 15:50:52 +01:00
5da3e81640 Support extension icons in ScriptCreateDialog
Attempt to grab the icon for a script type from the theme first, then ask the extension for the icon.
2024-12-01 20:57:33 -05:00
68f638cf02 Use (r)find_char instead of (r)find for single characters 2024-11-17 10:02:18 +01:00
28e5b213ae Create .uid file when creating new Resource 2024-11-13 00:40:31 +01:00
562c666e3d Rename internal Button icon to button_icon to match exposed methods 2024-10-29 16:23:03 -07:00
c8a0766930 Don't use EditorSettings metadata 2024-09-05 19:05:18 +02:00
8bf4ecc026 Add String.is_valid_unicode_identifier()
- Adds `is_valid_unicode_identifier()`
- Adds `is_valid_ascii_identifier()`
- Deprecates `is_valid_identifier()`
- Renames `validate_identifier()` to `validate_ascii_identifier()`
2024-08-27 11:34:08 +08:00
fbb879debd [Scene] Add SceneStringNames::text/value_changed 2024-06-19 09:44:38 +02:00
d9e2fc74c7 [Scene] Add SceneStringNames::item_selected 2024-06-19 09:39:05 +02:00
ee79386f7b [Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +02:00
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
d68ab7c874 Register text enter for script base class 2024-04-24 17:38:09 +02:00
a13b755b60 Fix ScriptCreateDialog to avoid selecting the file extension upon opening
Fixes: #89295

This is a regression from commit 2bd714e34e
2024-03-09 22:33:43 +07:00
2bd714e34e Allow configuring the script filename casing rule
Defaults to "Auto", which detects the casing based on the
preference of the currently selected language (C# for example
prefers PascalCase whereas GDScript prefers snake_case).
2024-03-05 09:43:29 +01:00
1638c1b28f Add const lvalue ref to editor/* container parameters 2024-02-26 15:28:15 -03:00
95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
a7fa34db1d Ignore path error for built-in scripts/shaders 2023-10-27 21:49:34 +02:00
c8db3f66ed Fix ScriptCreateDialog not accepting on submit 2023-09-25 22:25:19 +02:00
26ce861910 Editor: Remove unused Class Name field from Create Script dialog 2023-09-12 12:49:56 +03:00
119f379a3d Merge pull request #81075 from SekoiaTree/prevent-leading-dot
Prevent creating any type of file with a leading dot
2023-09-08 09:10:59 +02:00
bbeb2f98f5 Prevent creating any type of file with a leading dot
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: gotnospirit <gotnospirit@gmail.com>
2023-09-07 22:13:02 +02:00
d2cc6897d4 Merge pull request #81299 from jsjtxietian/Reload-built_in-script-after-create-to-allow-drag-nodes-into-it
Fix an error when dragging nodes into built-in scripts because script does not inherit Node
2023-09-06 14:49:24 +02:00
d32348c686 Reload built-in script after create to allow dropping nodes into it 2023-09-06 10:03:27 +08:00
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
7f41403a6f Standardize dialog input validation as a new class 2023-08-08 16:14:35 +02:00
e9f723006a Use compile-time Unicode string conversion
Thanks to this syntax introduced in C++11, this reduces the amount of work
that needs to be performed at run-time while making the code more terse.
2023-08-07 10:38:16 +02:00
39353462ac Fix indentation in script templates 2023-06-26 12:18:02 +02:00
610877e326 Merge pull request #72288 from MewPurPur/use-string-repeat
Use `String.repeat()` to optimize several String methods
2023-05-05 09:56:48 -07:00
6b84e258d2 Use String.repeat() in more places 2023-05-01 02:27:46 +02:00
4154039832 Improve includes of EditorNode (and everything else)
Also start organizing editor-specific GUI components
into a dedicated folder, `editor/gui`.
Also move `editor_file_server` next to the rest of debugger classes.
2023-04-07 18:59:49 +02:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
06465e388e Fix invalid metadata names in script create dialog 2022-12-01 15:32:41 +01:00
563d67a10d Revert "Fix "Script Create" dialog errors with metadata"
This reverts commit bb5198a5ac.
2022-12-01 15:30:16 +01:00
3b14f0334c Remove redundant Variant-types initializations 2022-11-14 19:35:19 +01:00
5dfa56474a Merge pull request #68247 from akien-mga/emscripten-warnings-unuset-but-set
Fix -Wunused-but-set-variable warnings from Emscripten 3.1.20
2022-11-06 15:53:46 +01:00
701019bbfd Merge pull request #65829 from KoBeWi/custom_path_type
Fix extending scripts by path
2022-11-06 11:06:50 +01:00
f475c91081 Fix -Wunused-but-set-variable warnings from Emscripten 3.1.20 2022-11-04 11:36:13 +01:00
0103af1ddd Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
6f80ffeddd Fix extending scripts by path 2022-09-15 17:44:27 +02:00
2b6e043491 Merge pull request #58617 from KoBeWi/custom_something
Improve handling of custom types
2022-09-07 17:54:17 +02:00
43f03e2ce6 Improve naming of theme properties throughout GUI code
Rename ItemList's bg -> panel
Rename ItemList's bg_focus -> focus
Rename ProgressBar's bg -> background
Rename ProgressBar's fg -> fill
Rename Tree's bg -> panel
Rename Tree's bg_focus -> focus
Rename ScrollContainer's bg -> panel
Rename FileDialog's *_icon_modulate -> *_icon_color
Rename FileDialog's files_disabled -> file_disabled_color
Rename CheckButton's on/off -> checked/unchecked
Rename check_v_adjust -> check_v_offset
2022-09-06 22:53:17 +03:00
a3309215c2 Improve handling of custom types 2022-09-05 23:08:28 +02:00
d4555ef5fb Add String.to_{camel,pascal,snake}_case methods 2022-08-30 12:36:24 +03:00
10a56981dc Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
fd6453c45e Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED"
This reverts commit 4b817a565c.

Fixes #64988.
Fixes #64997.

This caused several regressions (#64988, #64997,
https://github.com/godotengine/godot/issues/64997#issuecomment-1229970605)
which point at a flaw in the current logic:

- `Control::NOTIFICATION_ENTER_TREE` triggers a *deferred* notification with
  `NOTIFCATION_THEME_CHANGED` as introduced in #62845.
- Some classes use their `THEME_CHANGED` to cache theme items in
  member variables (e.g. `style_normal`, etc.), and use those member
  variables in `ENTER_TREE`, `READY`, `DRAW`, etc. Since the `THEME_CHANGE`
  notification is now deferred, they end up accessing invalid state and this
  can lead to not applying theme properly (e.g. for EditorHelp) or crashing
  (e.g. for EditorLog or CodeEdit).

So we need to go back to the drawing board and see if `THEME_CHANGED` can be
called earlier so that the previous logic still works?

Or can we refactor all engine code to make sure that:
- `ENTER_TREE` and similar do not depend on theme properties cached in member
  variables.
- Or `THEME_CHANGE` does trigger a general UI update to make sure that any
  bad theme handling in `ENTER_TREE` and co. gets fixed when `THEME_CHANGE`
  does arrive for the first time. But that means having a temporary invalid
  (and possibly still crashing) state, and doing some computations twice
  which might be heavy (e.g. `EditorHelp::_update_doc()`).
2022-08-29 11:11:29 +02:00
4b817a565c Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED 2022-08-27 11:52:29 -06:00
129d638805 Clear built-in name field when creating new script 2022-08-18 15:58:08 +02:00
c3606cb5f3 Swap arguments of ResourceSaver.save() 2022-07-29 19:53:09 +02:00
ba3734e69a Merge pull request #63603 from aaronfranke/editor-paths
Move editor paths into the EditorPaths class
2022-07-29 19:31:59 +02:00