Commit Graph

60 Commits

Author SHA1 Message Date
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Rémi Verschelde
285c917c4a
Merge pull request #84711 from mihe/double-export-feature
Add `single`/`double` as export features automatically
2024-04-26 11:08:15 +02:00
bruvzg
61f7145f43
[Native File Dialog] Add support for using native dialogs in the editor. 2024-03-28 11:53:03 +02:00
Haoyu Qiu
8cd1ebbd6d Fix unexpected auto translation of Tree content 2024-03-18 09:31:00 +08:00
David Nikdel
5e6adb4a2d Merge uid_cache.bin and global_script_class_cache.cfg after mounting PCKs
fixes godotengine#82061
fixes godotengine#61556

Also, distinguish between main pack and DLC packs.
It's desirable to downloaded content to be as small as possible. This change avoids bloating non-main pack files with new versions of resources that are all read on startup and never used again. They have no effect if loaded after startup.
- project.godot/project.binary file
- extension_list.cfg
- app icon and boot_splash
- .ico and .icns files (these can still be opted in for DLC by listing them explicitly in the include filter)
2024-03-06 12:14:21 -05:00
Mounir Tohami
7884d63281 Fix PopupMenu doesn't respect it's ScrollContainer's margins 2024-02-23 15:51:47 +02:00
Rémi Verschelde
ec0adfd23e
Merge pull request #88419 from m4gr3d/add_export_preset_advanced_options_toggle
Add an `Advanced Options` toggle to the editor export preset
2024-02-19 00:08:22 +01:00
Fredia Huya-Kouadio
6ef31541bf Add an Advanced Options toggle to the editor export preset 2024-02-18 10:43:58 -08:00
Michael Alexsander
7b42c24550
Make auto translation inheritable 2024-02-15 16:51:19 -03:00
David Snopek
ac88acde6f Allow export plugins to override export option values 2024-02-14 10:51:16 -06:00
George Marques
72e5f8c31e
GDScript: Enable compression on export
Besides the regular option to export GDScript as binary tokens, this
also includes a compression option on top of it. The binary format
needs to encode some information which generally makes it bigger than
the source text. This option reduces that difference by using Zstandard
compression on the buffer.
2024-02-08 11:20:07 -03:00
George Marques
b4d0a09f15
GDScript: Reintroduce binary tokenization on export
This adds back a function available in 3.x: exporting the GDScript
files in a binary form by converting the tokens recognized by the
tokenizer into a data format.

It is enabled by default on export but can be manually disabled. The
format helps with loading times since, the tokens are easily
reconstructed, and with hiding the source code, since recovering it
would require a specialized tool. Code comments are not stored in this
format.

The `--test` command can also include a `--use-binary-tokens` flag
which will run the GDScript tests with the binary format instead of the
regular source code by converting them in-memory before the test runs.
2024-02-08 11:20:05 -03:00
Yuri Sizov
635b8a1474 Split theme generation logic into several subroutines
This change introduces a new theme configuration struct to be
passed to the aforementioned routines to better control reuse
of styles and definitions in the generator.

Everything not passed and not explicitly shared is scoped so it
is not automatically accessible throughout the routine. This
should ensure that the decision to share styles is a conscious one.

In the future we will try to reduce the number of unique definitions
and share most of it. This PR is a stepping stone on this path.

This also puts the effort into separating redefinitions of
default theme items vs custom types introduced only by the editor.
In a few cases where editor-specific definitions need to reference
default definitions we simply fetch them from the theme. It's not
ideal and hides the dependency a bit, but hopefully these cases
will be abstracted properly in due time.
2024-01-16 11:57:45 +01:00
Yuri Sizov
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
Rémi Verschelde
9e65c5c0f4
Merge pull request #87183 from hakro/where-is-my-tooltip
Add tooltips to the export buttons
2024-01-15 13:31:29 +01:00
Hakim
6dfc36d661 Add some tooltips to the export buttons
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-15 12:14:09 +01:00
风青山
f932c6548e Set an appropriate minimum size for labels in windows that display incorrectly
When the label's `autowrap_mode` is `AUTOWRAP_WORD_SMART` and the initial `text`
is set at the same time, it may have a higher height.

Set an appropriate minimum size for labels in windows that display incorrectly
so that these controls display properly.
2024-01-12 23:08:38 +08:00
Muller-Castro
96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
Rémi Verschelde
5eb22a317d
Merge pull request #83577 from DennisManaa/fix-translation-for-item-list
Add automatic translation of items to ItemList
2024-01-04 16:39:36 +01:00
Yuri Sizov
773b4d7764 Ensure more export errors are reported to users
Also fixes the timing issue when exporting all
presets at the same time, where the error report
would try to appear while the progress dialog
was still visible.
2023-12-06 15:26:07 +01:00
Yuri Sizov
01888ae7ab Fix theme application in various editor dialogs
99% of the time we shouldn't rely on the signal, we
should use the notification instead. I left some comments
in places where I couldn't quickly improve the code.
2023-12-04 13:18:48 +01:00
Yuri Sizov
fdaee9ee89 Prevent the surface upgrade tool from running during export
Also add an explicit way to trigger the tool manually
at user's will.
2023-11-20 15:36:45 +01:00
Mikael Hermansson
1bb2905fbd Add single/double as export features automatically 2023-11-10 13:35:03 +01:00
Rémi Verschelde
ca6b404739
Merge pull request #79725 from Calinou/editor-export-mode-clarify-heading
Improve headings for the export mode in the Export dialog
2023-10-30 23:16:54 +01:00
DennisManaa
1a1c542836 Implement automatic translation for ItemList 2023-10-23 10:14:08 +02:00
Yuri Sizov
8ecc0c4f47 Fix accessing editor theme items throughout the UI
This also exposes `EditorInterface::get_editor_theme`.
2023-09-15 14:51:01 +02:00
kobewi
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Michael Alexsander
cc859fda33
Keep _export_begin()'s path argument always consistent 2023-08-27 11:06:45 -03:00
Aaron Franke
4c51544d62
Fix redundant enter tree notification in project export texture format 2023-08-24 12:32:10 -05:00
Aaron Franke
ada360affe
Add a button in the export dialog to fix missing texture formats 2023-08-17 02:56:42 -05:00
Hugo Locurcio
73c1b212f7
Improve headings for the export mode in the Export dialog
"Export as dedicated server" now uses a less confusing heading.
2023-07-20 23:27:40 +02:00
RedworkDE
fa84d09542 Fix export options of scripted EditorExportPlugins 2023-07-04 15:39:23 +02:00
Martin Boué
886e73683d Fix include text when excluding resources to export 2023-05-11 21:29:08 +02:00
Rémi Verschelde
7f6b283212
Merge pull request #74264 from timothyqiu/self-awareness
Allow EditorInspector to change its property name style when necessary
2023-05-08 13:52:23 +02:00
David Snopek
61f03daeeb Explicitly mark inherited export mode when making a dedicated server export 2023-05-03 09:47:33 -05:00
Haoyu Qiu
d24ee551ec Allow EditorInspector to change its property name style when necessary
Previously, an EditorInspector's property name can only be set from
outside. Inspectors used for settings needs to respond to changes in
editor settings. So a few boilerplate code is almost always needed,
including watching for a certain editor setting in `_notification()`.

This commit adds a `set_use_settings_style()` function to tell the
inspector to watch for editor settings changes on its own.
2023-04-29 10:51:00 +08:00
bruvzg
0088981c40
[Export] Add readable descriptions and validation warnings to the export options. 2023-04-19 08:35:59 +03:00
Yuri Sizov
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
Yuri Sizov
f818d2b98f
Merge pull request #75141 from rcorre/rrc/dialog-pos 2023-03-28 10:54:37 +02:00
Ryan Roden-Corrent
894ce41180
Apply clamp_to_embedder on parent resize and popup.
Fixes #75084.

The clamp_to_embedder setting was added in 8be16e0704,
but was not set on any of the in-editor dialogs.

This patch sets `clamp_to_embedder` on editor dialogs so they cannot be dragged out of the frame.
This also modifies `clamp_to_embedder` so a window is clamped to the bounds of an embedder when
it pops up and when the parent is resized.
2023-03-27 07:08:29 -04:00
bruvzg
921f3b7589
Automatically reparent editor message dialogs to avoid error spam. 2023-02-21 12:32:11 +02:00
David Snopek
0e2af4b73d Make it clearer that file modes propagate to children in the dedicated server export 2023-01-30 15:10:44 -06:00
Rémi Verschelde
1dfd236f15
Merge pull request #70377 from dsnopek/server-export-mk2
Add "dedicated server" export mode which can strip unneeded visual resources
2023-01-23 22:13:28 +01:00
David Snopek
74458b6e9b Add "dedicated server" export mode which can strip unneeded visual resources 2023-01-23 13:24:54 -06:00
George Marques
7e5c2f945d
Remove references to compiled GDScript in export
This feature was removed from GDScript so it should not be present on
the interface nor in the saved export presets.
2023-01-20 15:09:07 -03:00
Rémi Verschelde
bcaf048f33
Merge pull request #71379 from KoBeWi/destruction_of_compatibility_function
Remove set_drag_forwarding_compat()
2023-01-18 17:40:13 +01:00
Yuri Sizov
4c1f11944e Update all outdated online documentation links 2023-01-14 19:38:00 +03:00
kobewi
59ea36b87c Remove set_drag_forwarding_compat() 2023-01-14 15:16:51 +01:00
Juan Linietsky
e6a4debede Change set_drag_forwarding() to use callables.
* This solution is much cleaner than the one in 3.x thanks to the use of callables.
* Works without issues in any language (no need to worry about camel or snake case).
* Editor code uses a compatibility function (too much work to redo).

Fixes #59899
2023-01-10 14:09:24 +01:00
Rémi Verschelde
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