Commit Graph

148 Commits

Author SHA1 Message Date
Rémi Verschelde a1e1002ba4
Merge pull request #88084 from ckaiser/feature/use_indeterminate_progressbar
Use indeterminate progressbars for editor downloads (export templates & assets)
2024-02-09 12:35:53 +01: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
Christian Kaiser edcb581627 Use indeterminate progressbars for downloads (export templates & assets) 2024-02-08 11:08:11 -03:00
A Thousand Ships 15369fdb1d
Remove unnecessary `this->` expressions 2024-01-29 09:59:18 +01:00
Yuri Sizov 6d2a827f73 Merge pull request #79374 from raulsntos/ignore-directories-in-tpz
Ignore directory entries in TPZ
2024-01-24 14:07:30 +01: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
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01: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
Rémi Verschelde 38a1e17b93
Merge pull request #72572 from Daylily-Zeleen/daylily-zeleen/override_export_end_in_Cpp
Provide ability to override `EditorExportPlugin::_export_end()` in C++
2024-01-04 16:38:15 +01:00
Wilson E. Alvarez a3cb1b096f
Add const references detected by clang-tidy 2023-12-16 13:36:44 -05: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
Haoyu Qiu 08b1354b36 Set language encoding flag when using ZIPPacker
When non-ASCII filenames are used, this indicates that the encoding is
UTF-8. Programs like ZIPReader can then parse the filename correctly.
2023-12-05 17:12:12 +08: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
bruvzg a0bd5f8568
[Export] Improve app / file version validation. 2023-11-01 11:25:44 +02: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
A Thousand Ships f18aa00e85 Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-10-08 17:23:33 +02:00
Rémi Verschelde 1376a5a0ce
Merge pull request #82103 from bruvzg/icu_export
[Export] Fix TextServer data export.
2023-10-03 17:21:41 +02:00
Saracen 3f4513d4de Add error checks for DirAccess creation. 2023-09-26 03:07:43 +01:00
bruvzg 59d5b2d6d3
[Export] Fix TextServer data export. 2023-09-22 11:54:13 +03:00
A Thousand Ships 75ee58fd04 [Editor] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-15 20:15:39 +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
Aaron Franke c1c0ee3faf
Expose EditorExportPlatform::get_os_name() 2023-09-07 12:28:09 -05:00
Yuri Sizov 3c63dce3cd Merge pull request #80573 from KoBeWi/2k_lines_of_changes_created_at_2AM
Add EditorStringNames singleton
2023-09-06 14:49:02 +02:00
David Nikdel 067807c1cb Remove nondeterminism in pck_packer
PCK files (like other build products) should be deterministic based on their inputs. Removed calls to Math::rand() that are being used to generate padding.

Looks like these were introduced as part of adding encryption support, but the padding being random does not have any cryptographic significance. This can be trivially inferred since file blocks that happen to be aligned don't get padding anyway.

If there's a desire to indroduce something that functions as a nonce it should probably be added explicitly and only if encryption is enabled.
remove Math::rand() calls in editor_export_platform.cpp

follow up to make consistent with pck_packer
2023-09-03 18:14:30 -04:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Brennen Shaughnessy 40b08cb4b6
Android: Add option to always use WiFi to connect to remote debug 2023-08-28 13:13:36 +02:00
Rémi Verschelde b5b87b38ad
Merge pull request #81016 from YeldhamDev/took_me_a_while_to_discover_why_my_plugin_was_acting_weird
Keep `_export_begin()`'s `path` argument always consistent
2023-08-28 12:08:14 +02:00
Michael Alexsander cc859fda33
Keep `_export_begin()`'s `path` argument always consistent 2023-08-27 11:06:45 -03:00
David Snopek d09843c5ae Fix overriding _export_begin, _export_file and _export_end from GDExtension 2023-08-25 10:52:30 -05: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 ad4480bf2e
Add a "version" project setting and use it in new export presets
This makes it easy to retrieve the project version at runtime
for display purposes, while simplifying the export preset configuration.
You can now leave the version empty unless you need to override it on a per-preset
basis.

Since export presets save the values of default values to the `export_presets.cfg`
file, this change only affects export presets created after this commit was merged.
2023-08-04 10:29:33 +02: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
Fredia Huya-Kouadio d17811c814 Re-architect how Android plugins are packaged and handled at export time
The previous packaging format for Godot Android plugins consisted of the plugin's `gdap` config file accompanied by binaries defined in the `gdap` file.
This format is now deprecated (starting with Godot 4.2), and instead Godot Android plugins are now packaged as `EditorExportPlugin` plugins.

The `EditorExportPlugin` class has been updated with the following methods to provide the necessary set of functionality:
- `_supports_platform`: returns true if the plugin supports the given platform
- `_get_android_dependencies`: retrieve the set of android dependencies (e.g: `org.godot.example:my-plugin:0.0.0`) provided by the plugin
- `_get_android_dependencies_maven_repos`: retrieve the urls of the maven repos for the provided android dependencies
- `_get_android_libraries`: retrieve the local paths of the android libraries (AAR files) provided by the plugin
- `_get_android_manifest_activity_element_contents`: update the contents of the `<activity>` element in the generated Android manifest
- `_get_android_manifest_application_element_contents`: update the contents of the `<application>` element in the generated Android manifest
- `_get_android_manifest_element_contents`: update the contents of the `<manifest>` element in the generated Android manifest
2023-07-18 19:14:53 +02:00
Hendrik Brucker 7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
Raul Santos 59a5a1eb70
Ignore directory entries in TPZ
Zip files may contain directory entries, they always end with a path
separator and zip entries always use forward slashes for path separators.

There's no need to create the directories included in the zip file,
since they'll already be created when creating the individual files.
2023-07-12 14:38:46 +02:00
RedworkDE fa84d09542 Fix export options of scripted EditorExportPlugins 2023-07-04 15:39:23 +02:00
Aaron Franke 1a70d82606
Check if the required texture format is imported in the export dialog 2023-06-20 10:58:34 -05:00
Michael Alexsander 41a75cfa4f
Allow exporting release Android builds without a debug keystore 2023-06-19 01:00:13 -03:00
Rémi Verschelde 54a8adfd50
Merge pull request #75984 from KoBeWi/ConsoleMcWrap
Rename console script to wrapper
2023-06-12 22:54:24 +02:00
Martin Boué 886e73683d Fix include text when excluding resources to export 2023-05-11 21:29:08 +02:00
Andreas Raddau fab160ce70 Store sensitive export options in dedicated credentials file 2023-05-10 11:40:17 +02:00