Commit graph

53 commits

Author SHA1 Message Date
Marc Gilleron
0534423c58 Fix unreachable code warning in double-precision builds 2025-09-29 18:36:00 +02:00
A Thousand Ships
f11aff3841
Editor: Restructure editor code
Moving various editor files into sub folders to reduce clutter
2025-07-04 18:18:22 +02:00
Haoyu Qiu
88d922c55e Cleanup header includes in Tree 2025-05-15 14:28:00 +08:00
kobewi
d32d2e9b51 Remove NOTIFICATION_ENTER_TREE when NOTIFICATION_THEME_CHANGED is used 2025-05-06 15:28:03 +02:00
kobewi
e565ee86ce FileDialog code cleanup 2025-04-23 19:28:14 +02:00
Pāvels Nadtočajevs
5b49fd4207
Selectively apply FOCUS_ACCESSIBILITY to the Labels instead of setting it by default. 2025-04-23 12:47:31 +03:00
Pāvels Nadtočajevs
302fa831cc
Initial editor accessibility. 2025-04-08 20:25:48 +03:00
Kiro
23129a66ed Replace append_utfx with direct String::utfx 2025-03-30 19:56:38 +02:00
Thaddeus Crews
780cf03051
Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -05:00
Lukas Tenbrink
ffa6ef220b Use append_ instead of parse_ for String methods. 2025-03-27 17:51:02 +01:00
Hugo Locurcio
2044bd898a Add double to the version full build string when using a double-precision build
This means that `double` is now visible in the command line startup version,
project manager, editor About dialog and at the bottom of the editor.
This is because double-precision mode has a significant impact on how the
editor and projects run.

Similar to `mono` for C# builds, this affects which export templates the editor
looks for, since it needs a different set of export templates.

The export templates manager now indicates that no official double-precision export
template downloads are currently available (although the `dev` status message
takes priority over it).
2025-03-22 19:02:15 +01:00
Aaron Franke
97ee05e9b7
Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp 2025-03-12 11:11:38 -07:00
Etherealxx
9cbfeff940 Add "Go Online" button on Export Template Manager
Godot 4.4 introduces network mode, which by default sets to offline.
Some features are disabled on offline mode, including downloading export
templates. Newcomers to the engine that has no knowledge about the network
mode might be confused on why the Export Template Manager tells them that
they're offline, despite them having internet connection.

This commit introduces a message that tells the user that online mode is
required, and a link button that user can click to enable online mode from
the Export Template Manager popup UI. Some code changes also made to make
sure that the button and message only shows on official build only.
2025-03-04 09:04:09 +07:00
Yufeng Ying
f241c1fda0 Remove unused header in editor.
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-24 00:40:38 +08:00
Malcolm Anderson
2336415623 Ignore __MACOSX directory in export template collection ZIP file and project import ZIP file
Update editor/export/export_template_manager.cpp

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-04 13:31:26 -08:00
Aaron Franke
562c666e3d
Rename internal Button icon to button_icon to match exposed methods 2024-10-29 16:23:03 -07:00
Anish Mishra
2323042e7b Refresh Filesystem Dock after android build template is created 2024-10-08 06:30:44 +05:30
kobewi
c8a0766930 Don't use EditorSettings metadata 2024-09-05 19:05:18 +02:00
Haoyu Qiu
5e473b8584 Disable export template downloading in offline mode 2024-08-30 22:17:36 +08:00
Fredia Huya-Kouadio
a5897d579b Update the GodotHost interface to support signing and verifying Android apks
Update the export logic to enable apk generation and signing for Android editor builds

Note: Only legacy builds are supported. Gradle builds are not supported at this point in time.
2024-08-26 11:16:38 -07:00
kobewi
065dd099dd Remove empty bind_methods() 2024-08-15 08:24:32 +02:00
A Thousand Ships
ca18a06ecb
[Scene] Add SceneStringNames::confirmed 2024-06-19 09:40:54 +02:00
A Thousand Ships
d519715d94
[Scene] Add SceneStringNames::font(_size/_color) 2024-06-18 17:24:27 +02:00
Hilderin
df10fdc367 Fix Bug when downloading export templates and re-open the template manager #93121 2024-06-14 01:15:05 -04:00
A Thousand Ships
755a0efbb6
[Scene] Add SceneStringNames::id_pressed 2024-05-30 22:54:04 +02:00
A Thousand Ships
ee79386f7b
[Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +02:00
Haoyu Qiu
8cd1ebbd6d Fix unexpected auto translation of Tree content 2024-03-18 09:31:00 +08:00
Hugo Locurcio
4f52c49006
Don't refresh mirrors for development builds in editor export template manager
Export template downloads are only available for official (pre)-releases,
not development builds.

This prevents an error popup from displaying every time you open
the export template manager on a development build. UI elements
that are non-functional in development builds are now disabled as well.
2024-03-07 01:17:04 +01:00
David Snopek
a37ad265dc Android: Allow using alternative Gradle build directory 2024-02-16 15:20:47 -06:00
Christian Kaiser
edcb581627 Use indeterminate progressbars for downloads (export templates & assets) 2024-02-08 11:08:11 -03: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
A Thousand Ships
f18aa00e85 Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-10-08 17:23:33 +02:00
kobewi
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +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
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
Daylily-Zeleen
b12ced0a26 Implement and expose OS::shell_show_in_file_manager() 2023-04-25 11:29:32 +08:00
kobewi
551b6965ec Remember directory when installing templates file 2023-03-10 18:18:30 +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
trollodel
c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
Fabio Alessandrelli
a95d792420 [Net] Rename "ssl" references to "tls" in methods and members. 2022-09-08 03:24:23 +02:00
Aaron Franke
10a56981dc
Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
Rémi Verschelde
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
Rémi Verschelde
f7f8af232c
Merge pull request #64885 from Mickeon/rename-tooltip-hint
Rename `hint_tooltip` to `tooltip_text` & setter getter
2022-08-28 17:43:01 +02:00
Aaron Record
4b817a565c Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED 2022-08-27 11:52:29 -06:00
Micky
ef5b9a06a9 Rename hint_tooltip to tooltip_text & setget
`hint_tooltip` -> `tooltip_text`
`set_tooltip` -> `set_tooltip_text`
`_get_tooltip` -> `get_tooltip_text`

Updates documentation, too.
2022-08-27 01:35:01 +02:00
Yuri Sizov
9f55bd971e Extract EditorResourceConversionPlugin into its own source files and clean up editor includes 2022-07-31 21:14:15 +03:00
Rémi Verschelde
ba3734e69a
Merge pull request #63603 from aaronfranke/editor-paths
Move editor paths into the EditorPaths class
2022-07-29 19:31:59 +02:00