Commit graph

122 commits

Author SHA1 Message Date
A Thousand Ships d519715d94
[Scene] Add SceneStringNames::font(_size/_color) 2024-06-18 17:24:27 +02:00
A Thousand Ships 755a0efbb6
[Scene] Add SceneStringNames::id_pressed 2024-05-30 22:54:04 +02:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
A Thousand Ships 955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Rémi Verschelde 0ca0e8fc49
Merge pull request #88498 from CookieBadger/animation-fix-snapping-multiple
Fix snapping multiple keys in Animation
2024-03-24 01:14:23 +01:00
Rémi Verschelde b0505b580d
Merge pull request #88445 from CookieBadger/animation-paste-snap-fix
Fix various bugs in Animation key right click actions
2024-03-24 01:14:08 +01:00
Hilderin b46d0a6ea8 Add auto focus timeline and bezier scale on animation editor
Add a button at the bottom of the animation editor that change the zoom based on the animation length and the bezier scale based on the values and handles of the displayed tracks. The icon and the tooltip of the button change depending if the bezier editor is displayed or not.

Some refactor was made in animation_track_editor.cpp to remove code duplication with the visibility check of the tracks.

This should help with the issue #85826
2024-03-19 21:01:15 -04:00
emild d88df641ee Fix snapping multiple keys in Animation 2024-03-18 11:21:12 +01:00
Rémi Verschelde 6037500219
Merge pull request #69032 from KoBeWi/check_every_changed_setting_in_every_group_everywhere()
Use `check_changed_settings_in_group()` everywhere
2024-02-20 19:34:30 +01:00
emild 041315253f Fix various bugs in Animation key right click actions 2024-02-20 12:17:20 +01:00
emild 080315ca6b Fix Animation bezier key selection bugs 2024-02-20 12:11:45 +01:00
kobewi a031911c82 Use check_changed_settings_in_group() everywhere 2024-02-19 21:34:45 +01:00
CookieBadger 47dba6bc56 use ED_IS_SHORTCUT macro instead of matches_event 2024-02-19 13:16:06 +01:00
Rémi Verschelde 4002ea7e15
Merge pull request #88350 from CookieBadger/animation-cut-keyframe
Implement Cut Selected Keys in AnimationPlayer
2024-02-18 11:23:41 +01:00
Rémi Verschelde e42141fe8a
Merge pull request #88360 from CookieBadger/bezier-ctrl-click-add-key-fix
Fix Bezier Editor throwing error when adding key with CTRL+click
2024-02-15 15:45:31 +01:00
Rémi Verschelde b8a402b3cb
Merge pull request #88352 from CookieBadger/bezier-handle-mode-undo-fix
Fix Bezier Editor HandleMode UndoRedo History mismatch
2024-02-15 15:45:27 +01:00
CookieBadger 71cff32f45 fix bezier editor throws error on ctrl click 2024-02-15 14:34:53 +01:00
emild 0f7b4e4252 Fix bezier editor handle mode undo history mismatch 2024-02-15 01:31:07 +01:00
emild af08997de7 implemented cut selected keys in animation player 2024-02-15 00:44:40 +01:00
Rémi Verschelde 9fb52d969b
Merge pull request #88302 from CookieBadger/bezier-remove-unused-signals
Remove unused signals in AnimationBezierTrackEdit
2024-02-13 23:43:57 +01:00
emild e4d491a880 remove unused signals in AnimationBezierTrackEdit 2024-02-13 22:52:54 +01:00
emild b66b188cf9
Fix vertical zoom factor in Animation Bezier Editor 2024-02-13 10:32:50 +01:00
Rémi Verschelde 75255bd15c
Merge pull request #87250 from CookieBadger/animation-copy-paste-keyframe
Implement consistent functionality for select, copy, paste, and duplicate in AnimationPlayer
2024-02-12 13:33:57 +01:00
emild a5cb760d90 implement consistent select, copy, paste, duplicate in animation player 2024-02-06 18:57:10 +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
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Rémi Verschelde a2bd7c3301
Merge pull request #85142 from CookieBadger/animation-player-improvements
Improve usability of zooming in the animation editor
2024-01-08 11:50:38 +01:00
CookieBadger 5b3d5e0a65 Improved usability of zoom features in animation player 2024-01-07 01:30:06 +01:00
Silc Lizard (Tokage) Renew 21833f3dfd Fix seeking bug in AnimationPlayerEditor 2023-11-22 06:43:26 +09:00
Saracen 79f9d230b8 Add vertical scrolling to bézier track editor. 2023-10-22 13:51:12 +01:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Gilles Roudière a3b431b09d Add gesture to ViewPanner and simplify a bit its API 2023-01-23 16:43:53 +01:00
kobewi b58111588a Add EditorUndoRedoManager singleton 2023-01-16 01:11:52 +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 060fb2d093 Add inspector plugin for key time edit & Change find key argument 2022-12-22 10:03:06 +09:00
Silc Renew c87e9f0b7c Fix unmerged history in AnimationTrackEditor 2022-12-10 22:21:38 +09:00
trollodel c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
kobewi 8a3d2f4e0c Cleanup remaining EditorUndoRedoManager usages 2022-11-24 18:56:22 +01:00
Markus Sauermann 28af870750 Code simplifications found by cppcheck
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00
Silc Renew 3818be64a4 Fix the behavior of focus selection in bezier editor 2022-11-19 16:46:10 +09:00
kobewi e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02: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
Tomasz Chabora 882a4f8906 Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
bruvzg 6f4d233062
Fix key mapping changes when moving from macOS to other platform
Removes separate `Command` key (use `Meta` instead).
Adds an event flag to automatically remap `Command` <-> `Control` (cannot be set alongside `Control` or `Meta`).
2022-09-07 18:45:35 +02:00
Micky e31bb5ffeb Rename CanvasItem.update() to queue_redraw()
Affects a lot of classes. Very thoroughly checked signal connections and deferred calls to this method, add_do_method/add_undo_method calls, and so on.

Also renames the internal `_update_callback()` to `_redraw_callback()` for consistency.

Just a few comments have also been changed to say "redraw".

In CPUParticles2D, there was a private variable with the same name. It has been renamed to `do_redraw`.
2022-08-29 14:59:47 +02: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
Aaron Record 4b817a565c Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED 2022-08-27 11:52:29 -06:00
Rémi Verschelde 6277448f42
Merge pull request #64647 from TokageItLab/auto-tangent 2022-08-23 18:17:15 +02:00
Silc Renew 9327296e73 Add bezier preset and refactor bezier editor
Co-authored-by: Razoric480 <razoric480@gmail.com>
2022-08-23 19:14:03 +09:00