If the target directory does not exist, it will be recursively created.
Export paths are now saved as a relative to the projects base directory
Renamed relative_to function to final_path_from_relative which takes a relative path and outputs the final path from a string that represents a directory.
Added relative_path_from_final which takes in a final path and outputs a relative path if possible. If not possible it outputs the relative path that represents the current directory.
If the target directory does not exist when exporting the project, then it is recursively created.
Removed final_path_from_relative function
Changed DirAccess into DirAccessRef for automatic object destruction
It's still not enough and we need better validation/error checking,
but it should help with people assume corrupted templates when it's
their config which is invalid.
This swaps out the CheckButton with a CheckBox, which has two benefits:
- The checkbox icon appears to the left of the text, which moves it
closer from the text. This makes it more easily noticeable, as
it also appears below the "File:" text now.
- It follows the UI convention of using checkboxes for options that
do not bear an immediate effect, unlike CheckButtons which are
expected to have an immediate effect when toggled.
This closes#25170.
Retrieved working implementation from 2.1 branch and adapted to
existing export preset system.
Added Script tab in export preset to export script as raw text,
compiled, or encrypted (same as in 2.1). The script encryption key is
visually validated. The script export mode and the key is saved per
per preset in `export_presets.cfg`, so it makes sense to ignore this
file in version control system.
Each custom exporting procedure can retrieve an export preset set
during project exporting. Refactored project export dialog a bit to
allow easier code comprehension.
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.
Otherwise one could quite easily end up with the exported game
being hidden files named ".x86_64" and ".pck" for example.
Also improved the default filename logic a bit to also include
extension, and never fallback to an empty string.
Also fixed being able to click "Export project" without selecting
a preset.
Thanks to @ibrahn for helping debug the crashes caused in ProjectExportDialog
by the stray `update_tree()` call, no longer needed in the new inspector.
Fixes#20119 where newly installed templates were not detected.
Also fix a bug with preset deletion where it would attempt to
edit an already removed preset. For this I made it so that
ItemList::deselect_all() also resets `current` to -1, as a manual
ItemList::deselect(idx) already does.
Add debug flag to the 'Export PCK/ZIP' option
Make 'Export PCK/ZIP' notify when the export process begins. This is necessary to receive the 'EditorExportPlugin::_export_begin' callback
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.
1. Removed "..", instead you now will see "Select Current Folder" and "Select this Folder" buttons.
2. Added "go to parent folder" (^) button to Save a File dialog.
3. Tree.cpp: "nothing_selected" signal has been re-made (previous implementation, merged in #13308, wasn't optimal in context of performance)
4. Fixed issue in Project Export dialog: MODE_SAVE_FILE wasn't set when you click "Export".
5. Now you can deselect items by clicking on empty space in Open a Directory dialog.
This caused issues if one decided to export many formats in a row.
The new file extension would be appended to the previous one.
Now, the filename is retained without its extension for successive exports.
Fixes#7291
Rename user facing methods and variables as well as the corresponding
C++ methods according to the folloming changes:
* pos -> position
* rot -> rotation
* loc -> location
C++ variables are left as is.
Deleting an export preset cleared the name of the item below it. This was
caused by ProjectExportDialog::_edit_preset(-1) which sets the deleted preset's
data to empty values. This on its turn called
ProjectExportDialog::_name_changed() which operates on the new current preset
(the one under the deleted item).
Fixes issue #10842
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?
I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon
A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format
A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
The other subfolders of tools/ had already been moved to either
editor/, misc/ or thirdparty/, so the hiding the editor code that
deep was no longer meaningful.