Commit Graph

129 Commits

Author SHA1 Message Date
kobewi a6de7a8a3f Allow contextual plugins to persist temporarily 2023-10-06 15:58:50 +02:00
Michael Alexsander ae91644c73
Revamp how documentation tooltips work 2023-10-03 17:40:51 -03:00
Danil Alexeev c33ca26e17
Editor: Inspector and Signal docks improvements 2023-09-02 08:50:28 +03:00
Rémi Verschelde c1e85c6593
Merge pull request #80617 from jmb462/fix_80524
Add buttons to reorder inspector array items without dragging
2023-08-29 12:43:34 +02:00
Jean-Michel Bernard a871679aac Add buttons to reorder inspector array items without dragging 2023-08-27 13:18:16 +02:00
Yuri Sizov 2445414aa0 Avoid unnecessary inspector updates when loading or switching scenes
This should result in some noticeable performance improvements,
aside from fixing bugs due to conflicts in logic.
This also simplifies some related code identified while debugging.
2023-08-12 13:32:59 +02:00
kobewi 7f41403a6f Standardize dialog input validation as a new class 2023-08-08 16:14:35 +02:00
Hendrik Brucker a29a680920 Extract StyleBoxFlat, StyleBoxTexture and StyleBoxLine in their own file 2023-07-17 13:25:00 +02:00
lawnjelly b69c8b4791 Single Compilation Unit build.
Adds support for simple SCU build (DEV_ENABLED only).
This speeds up compilation by compiling multiple cpp files within a single translation unit.
2023-06-06 15:36:51 +01:00
kobewi 010ce46ffa Add get_edited_property_value() shorthand method 2023-05-26 09:18:53 +02:00
Rémi Verschelde f868b4781b
Merge pull request #76684 from KoBeWi/this_branch_is_meta
Add background panel to new meta dialog
2023-05-16 11:00:21 +02:00
Samuele Panzeri a103cd76bb Fix skeleton 3d editor crash in RC3
Control notifies a theme changed before the editor has entered the tree
2023-05-15 12:12:48 +02:00
kobewi b732c2b341 Add background panel to new meta dialog 2023-05-03 00:21:05 +02: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 f68eb4a967 Update property keying state without a full Inspector rebuild 2023-03-07 18:41:54 +01:00
Rémi Verschelde 7c7ba88d19
Merge pull request #66121 from Zylann/plugin_handles_edit_object_argument
Change `_can_handle` and `_edit` virtual methods to take `Object*`
2023-02-17 15:19:12 +01:00
Marc Gilleron d2b4e30058
Change `_can_handle` and `_edit` virtual methods to take `Object*` 2023-02-17 14:10:38 +01:00
kobewi 7aa3651e2b Fold resources when non-main inspector exits tree 2023-02-15 18:20:55 +01:00
Yuri Sizov 18d6c91e8e Avoid cleaning up editor plugins when property list changes
Also removes a usability hack from the Theme editor, as it doesn't work anymore,
and it confuses the Inspector.
2023-02-11 14:38:07 +01:00
Raul Santos c7f4ca36a4
Use `PropertyUsageFlags` enum in parse_property 2023-01-31 23:31:15 +01:00
S.V.I. Vilcrow 3f17e606b2 Removed declarations of removed methods of the EditorPropertyRevert class.
The implementation of these methods was removed in 1806ec7c14.
2023-01-30 00:24:41 +03:00
kobewi 4ae168eb04 Rework EditorPlugin editing logic 2023-01-22 00:20:45 +01:00
Rémi Verschelde 787179dac8
Merge pull request #70148 from KoBeWi/remove_all_restrictions
Remove conditons for unfolding inspector sections
2023-01-13 18:00:45 +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
Silc Renew eee9e3cd9a Revert "Merge pull request #68498 from Rindbee/improve-update_tree"
This reverts commit d5dc70a478, reversing
changes made to ccbefa1f43.
2023-01-04 19:15:20 +09:00
Marius Hanl 51de7b773c EditorInspectorSection is not folded when clicking under the font 2022-12-18 15:37:08 +01:00
Rindbee f352c30ad5 Defer `EditorInspector::update_tree` to the process stage to improve performance
`EditorInspector::update_tree` is expensive, so defer the call to the process phase
to prevent multiple calls in a single frame (when switching scene tabs).
2022-12-17 08:39:59 +08:00
kobewi b28b7936db Remove conditons for unfolding inspector sections 2022-12-16 15:14:50 +01:00
trollodel c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
kobewi 15831e381b Unify usage of undo_redo in editor 2022-11-02 17:51:58 +01:00
VolTer cb310a229b Rename Copy Property –> Copy Value 2022-09-30 16:44:27 +02:00
Marc Gilleron 056a418862 Expose `EditorProperty._set_read_only` virtual method 2022-09-19 11:56:49 +01:00
Rindbee 9066d55763 Update checked based on the variant type of the value
In `EditorProperty::update_revert_and_pin_status`, if `checkable` is `true`, update `checked` based on the variant type of the value, and rename the function as `EditorProperty::update_editor_property_status`.

**Known problems:**
1. Unable to check Checkbox for properties of type `Object` when it is unchecked. This is probably because during value store/fetch, the `nullptr` (variant type is `Variant::OBJECT`) eventually becomes `Variant()` (variant type is `Variant::NIL`).
2. For theme overrides, click the revert icon will uncheck the Checkbox. This is probably because `EditorPropertyRevert::get_property_revert_value` returns `Variant()`.
2022-09-16 07:22:50 +08:00
SaracenOne 4d898f9bb4 Add read-only mode to inspector array and dictionary viewer. 2022-09-06 18:02:03 +01:00
Hugo Locurcio 8611b712dc
Improve the editor's Add Metadata dialog
- Mention the node name in the dialog title.
- Improve error messages to be more descriptive.
2022-09-01 19:03:40 +02:00
Yuri Sizov 207bdc2b9f Remove Inspector tooltip hack that never actually worked 2022-08-26 17:22:13 +03:00
kobewi ece3df3938 Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
Rémi Verschelde 6d94465f3c
Merge pull request #62868 from fire-forge/array-resize-size
Use a SpinBox in the inspector array resize dialog
2022-08-08 12:53:55 +02:00
Rémi Verschelde 77d3ac700d
Merge pull request #63712 from object71/fix-export-issues 2022-08-06 14:27:17 +02:00
Hristo Stamenov 0e1f7e9f89 Removed faulty function update after get_property_list.
The function tried to rearrange properties but that lead to problems with duplication or deleted properties. Implemented the logic that that function did inside the get_property_list both for tool scripts and non-tool scripts.
2022-08-03 21:45:16 +03:00
reduz 0351a0908f Clean-up array editing 2022-08-02 23:36:02 +02:00
Pedro J. Estébanez 4a127cb5fe Improve usability of non-default values in the property inspector
- Provide a visual indication that a (sub)group contains non-default (revertable) values when it's collapsed.
- Add a new option to the inspector's tools menu for expanding only (sub)groups containing properties with non-default values.
2022-07-30 15:25:45 +02:00
Rémi Verschelde 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
FireForge dcf42cff86 Add "Open Documentation" button to EditorProperty context menu 2022-07-11 19:30:46 -05:00
FireForge d6188b4632 Use a SpinBox in the inspector array resize dialog 2022-07-10 00:19:29 -05:00
reduz b7c41f9ba1 Add ability to export Node pointers as NodePaths
This PR implements:
* A new hint: PROPERTY_HINT_NODE_TYPE for variant type OBJECT, which can take specific node types as hint string.
* The editor will show it as a node path, but will set it as a pointer to a node from the current scene if you select a path.
* When scene is saved, the node path is saved, then restored as a pointer.

NOTE: This is a proof of concept and this approach will most likely not work. The reason if that, if the node referenced is deleted, then when trying to edit this the node will become invalid.

Potential workarounds: Since this uses the Variant API, it should obtain the pointer from the Variant object ID. Yet, this would either only really work in GDScript or it would need to be implemented with workarounds in every language.
Alternative ways to make this work: Nodes could export an additional property with a node path (like for which_node, it could be which_node_path).
Another alternative: Path editing could happen as a hidden metadata (ignoring the pointer).
2022-06-25 15:50:15 +02:00
kobewi e7b0e7e35a Improve style of inspector buttons 2022-05-25 22:54:47 +02:00
reduz 4044cc7d57 Reorganize Region Rect Editor
Problem:

* Region rect was pretty much a hidden editor. Because it was annoying for it to pop up automatically, it did not.
* Because it did not, most users have no idea it even exists.
* But because it is a transient editor, it would steal focus of other editor and annoy users.

Solution:

* Editor has been moved to a window.
* Regions that can be edited add a button below the region which can be pressed to open the editor.

This required a slight change in EditorInspectorPlugin to allow custom editors to be below others.
2022-05-24 09:42:49 +02:00
reduz 45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00