Commit Graph

71 Commits

Author SHA1 Message Date
e5373c5cb0 Validate theme type name input in Add Theme Type dialog 2025-08-28 15:47:37 +08:00
e6c9a832c1 Editor: Add ability to rename theme types 2025-05-29 21:57:48 +03:00
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
94a7dfeae1 Add additional methods for has_theme_item to check for font and font size 2025-01-07 16:56:14 +00:00
7593e55527 Improve Editor Inspector/Theme item lookup performance
Changes to reduce the latency between changing node selection in the editor and seeing the new node reflected in the Inspector tab

- Use Vector instead of List for ThemeOwner::get_theme_type_dependencies and related functions
- Use Vector instead of List for ThemeContext::themes, set_themes(), and get_themes()
- Add ClassDB:get_inheritance_chain_nocheck to get all parent/ancestor classes at once, to avoid repeated ClassDB locking overhead
- Update BIND_THEME_ITEM macros and ThemeDB::update_class_instance_items to use provided StringNames for call to ThemeItemSetter, instead of creating a new StringName in each call

These changes reduce the time taken by EditorInspector::update_tree by around 30-35%
2024-08-20 13:39:40 -04:00
96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
6e11fcb92c Warn about accessing non-existing editor theme items 2023-09-15 14:51:01 +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
6320a0fc18 Add ThemeDB, expose previously static Theme methods 2022-08-26 19:23:05 +03:00
90019676b0 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
21b253a870 Define some Theme data structures with using for readability 2022-05-18 18:17:47 +03:00
d8c04cda3a Validate theme type/item names 2022-04-26 19:54:43 +08:00
7a7fabe4f6 Merge pull request #57641 from Geometror/compilation-time-improvements-1 2022-02-12 09:46:02 +01:00
b396fd4eef Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
175088db25 Add an explicit way to remove a theme type 2022-02-11 17:57:52 +03:00
a2a4ec7cb5 Merge pull request #56376 from pycbouh/theme-tombe-les-theme-properties 2022-01-06 11:33:43 +01:00
fe52458154 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
fe283fd07a Correctly use fallback Theme values as last resort 2021-12-31 18:53:43 +03:00
4e12f770cf Make Theme report property list changes less often 2021-10-04 17:27:00 +03:00
4a42a66cd9 Add the base scale factor to the Theme resource 2021-10-04 15:25:07 +03:00
8aa78bc050 Reorganize Theme resource code for better maintainability 2021-10-02 19:26:20 +03:00
855cfe1559 Add support for partial custom editor themes 2021-08-14 02:03:07 +03:00
4ee0e6ddf5 Add type variations to Theme 2021-07-13 02:26:28 +03:00
d0e86c7afc Overhaul the theme editor and improve user experience 2021-06-14 21:46:30 +03:00
9cd96ebe0e Prevent Theme resource from emitting changes during bulk operations 2021-05-31 17:40:45 +03:00
9eaa139c1f Add theme_custom_type property to Control and Window 2021-05-17 17:20:42 +03:00
2524238bb3 Refactor Edit Theme menu in Theme Editor 2021-04-18 17:55:49 +03:00
9df05745ba Add utility methods to Theme, improve error messages and documentation 2021-03-22 14:49:31 +03:00
f8d03b98e7 Improve resource load cache
-Added a new method in Resource: reset_state , used for reloading the same resource from disk
-Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type)
-Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
2021-02-11 15:44:28 -03:00
b5334d14f7 Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
8d608cdc40 Remove unused argument in Theme method and expose missing methods 2020-12-17 15:51:08 +03:00
2c048ea164 Cleanup unused engine code 2020-12-09 12:12:36 +01:00
99666de00f [Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
fc70f986b9 Merge pull request #42008 from Calinou/theme-rename-node-type
Rename the `type` parameter to `node_type` in Theme and Control
2020-11-16 13:20:24 +01:00
127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
c3b246e6af Rename the type parameter to node_type in Theme and Control
This makes it clearer that it expects a node type as a string
(such as "Label") instead of a type like "TYPE_ARRAY".
This is backwards-compatible since only the name of the parameter
is changed, not its order.
2020-10-27 14:58:52 +01:00
0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
a1aaed5a84 Remove redundant void argument lists
Using clang-tidy's `modernize-redundant-void-arg`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-redundant-void-arg.html
2020-05-14 13:51:45 +02:00
cb282c6ef0 Style: Set clang-format Standard to Cpp11
For us, it practically only changes the fact that `A<A<int>>` is now
used instead of the C++03 compatible `A<A<int> >`.

Note: clang-format 10+ changed the `Standard` arguments to fully
specified `c++11`, `c++14`, etc. versions, but we can't use `c++17`
now if we want to preserve compatibility with clang-format 8 and 9.
`Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-17 07:36:24 +01:00
3205a92ad8 PoolVector is gone, replaced by Vector
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
2020-02-18 10:10:36 +01:00
3f335ce3d4 Texture refactor
-Texture renamed to Texture2D
-TextureLayered as base now inherits 2Darray, cubemap and cubemap array
-Removed all references to flags in textures (they will go in the shader)
-Texture3D gone for now (will come back later done properly)
-Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11 11:53:26 +01:00
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
fa59defb53 Theme code refactoring
- Move GDScript-exposed function definitions from header to source file
- Add null check to functions taking list pointers as parameters
- Call clear() in copy_theme() if null is passed
2019-10-23 03:08:40 +01:00
82b9557803 Remove redundant author doc comments 2019-08-12 04:26:38 -05:00
e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
17901da1a8 Keep track of default theme and project custom default theme seperatelly
Fixes #30288
2019-07-05 23:32:52 +03:00
01170c911c Added copy_theme and fixed bugs in copy theme introduced by #2e0a94e 2019-01-25 13:14:06 +10:30
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
b243c26697 Get rid of ancient .theme format for Theme resource. It was not working and can be done the same using .tres format. Closes #19038 2018-11-27 20:42:47 -03:00
2e0a94edc6 Changed theme notifications to work with newly introduced reference counted connections. Closes #21265, Fixes #6145.
Probably fixes more theme notification related open issues, should check.
2018-11-27 14:34:43 -03:00