summaryrefslogtreecommitdiff
path: root/editor/animation_bezier_editor.cpp
AgeCommit message (Collapse)Author
2023-01-05One Copyright Update to rule them allRémi Verschelde
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".
2022-12-22Add inspector plugin for key time edit & Change find key argumentSilc Renew
2022-12-10Fix unmerged history in AnimationTrackEditorSilc Renew
2022-11-29Use forward-declarations in big editor classestrollodel
2022-11-24Cleanup remaining EditorUndoRedoManager usageskobewi
2022-11-21Code simplifications found by cppcheckMarkus Sauermann
They are based on: - Boolean arithmetic simplifications - setting variables that are not accessed - constant variables
2022-11-19Fix the behavior of focus selection in bezier editorSilc Renew
2022-10-18Unify usage of GLOBAL/EDITOR_GETkobewi
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-09-18Port remaining connections to callable_mpTomasz Chabora
2022-09-07Fix key mapping changes when moving from macOS to other platformbruvzg
Removes separate `Command` key (use `Meta` instead). Adds an event flag to automatically remap `Command` <-> `Control` (cannot be set alongside `Control` or `Meta`).
2022-08-29Rename `CanvasItem.update()` to `queue_redraw()`Micky
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-29Revert "Remove NOTIFICATION_ENTER_TREE when paired with ↵Rémi Verschelde
NOTIFICATION_THEME_CHANGED" This reverts commit 4b817a565cab8af648c88cfc7ab6481e86ee3625. 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-27Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGEDAaron Record
2022-08-23Merge pull request #64647 from TokageItLab/auto-tangentRémi Verschelde
2022-08-23Add bezier preset and refactor bezier editorSilc Renew
Co-authored-by: Razoric480 <razoric480@gmail.com>
2022-08-22Add per-scene UndoRedokobewi
2022-08-10Merge pull request #63245 from V-Sekai/animation_editor_read_onlyRémi Verschelde
2022-07-29Remove Signal connect bindsJuan Linietsky
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind(). Changed all uses of it to Callable.bind()
2022-07-21Add read-only mode to AnimationEditor for foreign resources.SaracenOne
2022-07-18Rename Control PRESET_WIDE to PRESET_FULL_RECTFireForge
2022-06-27Refactor bezier interpolation functionsHendrik Brucker
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-04-23Rename theme properties to include underscoresFireForge
- check_vadjust -> check_v_adjust - close_h_ofs -> close_h_offset - close_v_ofs -> close_v_offset - commentfocus -> comment_focus - hseparation -> h_separation - ofs -> offset - selectedframe -> selected_frame - state_machine_selectedframe -> state_machine_selected_frame - table_hseparation -> table_h_separation - table_vseparation -> table_v_separation - vseparation -> v_separation
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-03-06Remove set_as_minsize()kobewi
2022-02-16Merge pull request #58182 from akien-mga/style-cleanup-if-semicolons-deadcodeRémi Verschelde
2022-02-16Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde
Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
2022-02-16Port existing _notification code to use switch statements (part 1/3)jmb462
2022-02-12Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker
2022-02-09Implement drawing and editing all anim beziersFrancois Belair
* Move bezier edit from track to button in toolbar * Draw, edit all bezier curves simultaneously * Add click on curve to select tracks * Tie track editor's filter view to bezier editor * Implement visibility and locking * Fix editor spacing issues * Fix track buttons spacing * Add keyframe focus and (de)select all key handling
2022-01-23Minor tweaks and fixes to panningkobewi
2022-01-21Add ViewPanner to 2D editorkobewi
2022-01-14Add ViewPanner to more editorskobewi
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-09align to horizontal_alignment, valign to vertical_alignment, relatedNathan Franke
2021-12-06Fix bad popups offset in editor with single window offjmb462
Co-authored-by: Gil Arasa Verge <gilarasaverge@gmail.com> Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2021-11-16Make bezier handle type a property of keyframes, update interfaceNathan Lovato
- Replaced unused code related to old close icon with a button - Add bezier handle options to right-click menu - Remove mirror handle mode, only keep balanced - Update animation reference
2021-11-12Use "enum class" for input enumsAaron Franke
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-23Merge pull request #51920 from ↵Rémi Verschelde
jmb462/missing-sname-macro-optimization-in-some-functions
2021-08-26Replace close icon with button in the Bezier editorNathan Lovato
2021-08-23Entirely removes BIND_VMETHOD in favor of GDVIRTUALreduz
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions. * Everything else converted to GDVIRTUAL * BIND_VMETHOD is gone, always use the new syntax from now on. Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-20Add missing SNAME macro optimization for StringName in some functionsjmb462
2021-08-14Improve the animation bezier editorHugo Locurcio
- Allow snapping bezier handles to the timeline. - Allow precise snapping when holding Shift for keyframes and handles. - Previously, it was only allowed for seeking the timeline. - This change also impacts the animation track editor, not just the bezier editor. - Invert the Ctrl + mouse wheel behavior to match the zoom direction in the animation track editor. - Increase the line spacing between the "Time:" and "Value:" texts to improve readability. - Tweak box selection styling to match the animation track editor. - Adjust line widths for hiDPI displays.
2021-08-05Shortcut: Rename `shortcut` property to `event`Rémi Verschelde
Having a property which has the same name as its class leads to confusing situations (e.g. `BaseButton` has a `shortcut` property of type `Shortcut` which has a `shortcut` property of type `InputEvent`). Also renames `is_event` to `matches_event`, and `is_valid` to `has_valid_event` to better reflect what the methods check.
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke