|
@@ -1459,7 +1459,7 @@ int AnimationTimelineEdit::get_name_limit() const {
|
|
|
|
|
|
void AnimationTimelineEdit::_notification(int p_what) {
|
|
void AnimationTimelineEdit::_notification(int p_what) {
|
|
if (p_what == NOTIFICATION_ENTER_TREE || p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
|
|
if (p_what == NOTIFICATION_ENTER_TREE || p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
|
|
- panner->setup((ViewPanner::ControlScheme)EDITOR_GET("interface/editors/animation_editors_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EditorSettings::get_singleton()->get("editors/panning/simple_panning")));
|
|
|
|
|
|
+ panner->setup((ViewPanner::ControlScheme)EDITOR_GET("editors/panning/animation_editors_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EditorSettings::get_singleton()->get("editors/panning/simple_panning")));
|
|
}
|
|
}
|
|
|
|
|
|
if (p_what == NOTIFICATION_ENTER_TREE) {
|
|
if (p_what == NOTIFICATION_ENTER_TREE) {
|
|
@@ -1799,7 +1799,7 @@ void AnimationTimelineEdit::gui_input(const Ref<InputEvent> &p_event) {
|
|
int x = mb->get_position().x - get_name_limit();
|
|
int x = mb->get_position().x - get_name_limit();
|
|
|
|
|
|
float ofs = x / get_zoom_scale() + get_value();
|
|
float ofs = x / get_zoom_scale() + get_value();
|
|
- emit_signal(SNAME("timeline_changed"), ofs, false, Input::get_singleton()->is_key_pressed(Key::ALT));
|
|
|
|
|
|
+ emit_signal(SNAME("timeline_changed"), ofs, false, mb->is_alt_pressed());
|
|
dragging_timeline = true;
|
|
dragging_timeline = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1833,7 +1833,7 @@ void AnimationTimelineEdit::gui_input(const Ref<InputEvent> &p_event) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void AnimationTimelineEdit::_scroll_callback(Vector2 p_scroll_vec) {
|
|
|
|
|
|
+void AnimationTimelineEdit::_scroll_callback(Vector2 p_scroll_vec, bool p_alt) {
|
|
// Timeline has no vertical scroll, so we change it to horizontal.
|
|
// Timeline has no vertical scroll, so we change it to horizontal.
|
|
p_scroll_vec.x += p_scroll_vec.y;
|
|
p_scroll_vec.x += p_scroll_vec.y;
|
|
_pan_callback(-p_scroll_vec * 32);
|
|
_pan_callback(-p_scroll_vec * 32);
|
|
@@ -1872,7 +1872,7 @@ void AnimationTimelineEdit::_track_added(int p_track) {
|
|
void AnimationTimelineEdit::_bind_methods() {
|
|
void AnimationTimelineEdit::_bind_methods() {
|
|
ADD_SIGNAL(MethodInfo("zoom_changed"));
|
|
ADD_SIGNAL(MethodInfo("zoom_changed"));
|
|
ADD_SIGNAL(MethodInfo("name_limit_changed"));
|
|
ADD_SIGNAL(MethodInfo("name_limit_changed"));
|
|
- ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag")));
|
|
|
|
|
|
+ ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"), PropertyInfo(Variant::BOOL, "timeline_only")));
|
|
ADD_SIGNAL(MethodInfo("track_added", PropertyInfo(Variant::INT, "track")));
|
|
ADD_SIGNAL(MethodInfo("track_added", PropertyInfo(Variant::INT, "track")));
|
|
ADD_SIGNAL(MethodInfo("length_changed", PropertyInfo(Variant::FLOAT, "size")));
|
|
ADD_SIGNAL(MethodInfo("length_changed", PropertyInfo(Variant::FLOAT, "size")));
|
|
}
|
|
}
|
|
@@ -3121,7 +3121,7 @@ void AnimationTrackEdit::append_to_selection(const Rect2 &p_box, bool p_deselect
|
|
}
|
|
}
|
|
|
|
|
|
void AnimationTrackEdit::_bind_methods() {
|
|
void AnimationTrackEdit::_bind_methods() {
|
|
- ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag")));
|
|
|
|
|
|
+ ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"), PropertyInfo(Variant::BOOL, "timeline_only")));
|
|
ADD_SIGNAL(MethodInfo("remove_request", PropertyInfo(Variant::INT, "track")));
|
|
ADD_SIGNAL(MethodInfo("remove_request", PropertyInfo(Variant::INT, "track")));
|
|
ADD_SIGNAL(MethodInfo("dropped", PropertyInfo(Variant::INT, "from_track"), PropertyInfo(Variant::INT, "to_track")));
|
|
ADD_SIGNAL(MethodInfo("dropped", PropertyInfo(Variant::INT, "from_track"), PropertyInfo(Variant::INT, "to_track")));
|
|
ADD_SIGNAL(MethodInfo("insert_key", PropertyInfo(Variant::FLOAT, "ofs")));
|
|
ADD_SIGNAL(MethodInfo("insert_key", PropertyInfo(Variant::FLOAT, "ofs")));
|
|
@@ -3648,7 +3648,7 @@ void AnimationTrackEditor::_insert_track(bool p_create_reset, bool p_create_bezi
|
|
pos = animation->get_length();
|
|
pos = animation->get_length();
|
|
}
|
|
}
|
|
set_anim_pos(pos);
|
|
set_anim_pos(pos);
|
|
- emit_signal(SNAME("timeline_changed"), pos, true);
|
|
|
|
|
|
+ emit_signal(SNAME("timeline_changed"), pos, true, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -4510,7 +4510,7 @@ MenuButton *AnimationTrackEditor::get_edit_menu() {
|
|
|
|
|
|
void AnimationTrackEditor::_notification(int p_what) {
|
|
void AnimationTrackEditor::_notification(int p_what) {
|
|
if (p_what == NOTIFICATION_ENTER_TREE || p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
|
|
if (p_what == NOTIFICATION_ENTER_TREE || p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
|
|
- panner->setup((ViewPanner::ControlScheme)EDITOR_GET("interface/editors/animation_editors_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EditorSettings::get_singleton()->get("editors/panning/simple_panning")));
|
|
|
|
|
|
+ panner->setup((ViewPanner::ControlScheme)EDITOR_GET("editors/panning/animation_editors_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EditorSettings::get_singleton()->get("editors/panning/simple_panning")));
|
|
}
|
|
}
|
|
|
|
|
|
if (p_what == NOTIFICATION_THEME_CHANGED || p_what == NOTIFICATION_ENTER_TREE) {
|
|
if (p_what == NOTIFICATION_THEME_CHANGED || p_what == NOTIFICATION_ENTER_TREE) {
|
|
@@ -5230,16 +5230,6 @@ void AnimationTrackEditor::_scroll_input(const Ref<InputEvent> &p_event) {
|
|
|
|
|
|
Ref<InputEventMouseButton> mb = p_event;
|
|
Ref<InputEventMouseButton> mb = p_event;
|
|
|
|
|
|
- if (mb.is_valid() && mb->is_pressed() && mb->is_alt_pressed() && mb->get_button_index() == MouseButton::WHEEL_UP) {
|
|
|
|
- goto_prev_step(true);
|
|
|
|
- scroll->accept_event();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (mb.is_valid() && mb->is_pressed() && mb->is_alt_pressed() && mb->get_button_index() == MouseButton::WHEEL_DOWN) {
|
|
|
|
- goto_next_step(true);
|
|
|
|
- scroll->accept_event();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (mb.is_valid() && mb->get_button_index() == MouseButton::LEFT) {
|
|
if (mb.is_valid() && mb->get_button_index() == MouseButton::LEFT) {
|
|
if (mb->is_pressed()) {
|
|
if (mb->is_pressed()) {
|
|
box_selecting = true;
|
|
box_selecting = true;
|
|
@@ -5304,8 +5294,16 @@ void AnimationTrackEditor::_scroll_input(const Ref<InputEvent> &p_event) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void AnimationTrackEditor::_scroll_callback(Vector2 p_scroll_vec) {
|
|
|
|
- _pan_callback(-p_scroll_vec * 32);
|
|
|
|
|
|
+void AnimationTrackEditor::_scroll_callback(Vector2 p_scroll_vec, bool p_alt) {
|
|
|
|
+ if (p_alt) {
|
|
|
|
+ if (p_scroll_vec.x < 0 || p_scroll_vec.y < 0) {
|
|
|
|
+ goto_prev_step(true);
|
|
|
|
+ } else {
|
|
|
|
+ goto_next_step(true);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ _pan_callback(-p_scroll_vec * 32);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void AnimationTrackEditor::_pan_callback(Vector2 p_scroll_vec) {
|
|
void AnimationTrackEditor::_pan_callback(Vector2 p_scroll_vec) {
|
|
@@ -5447,7 +5445,7 @@ void AnimationTrackEditor::goto_prev_step(bool p_from_mouse_event) {
|
|
pos = 0;
|
|
pos = 0;
|
|
}
|
|
}
|
|
set_anim_pos(pos);
|
|
set_anim_pos(pos);
|
|
- emit_signal(SNAME("timeline_changed"), pos, true);
|
|
|
|
|
|
+ emit_signal(SNAME("timeline_changed"), pos, true, false);
|
|
}
|
|
}
|
|
|
|
|
|
void AnimationTrackEditor::goto_next_step(bool p_from_mouse_event) {
|
|
void AnimationTrackEditor::goto_next_step(bool p_from_mouse_event) {
|
|
@@ -5474,7 +5472,7 @@ void AnimationTrackEditor::goto_next_step(bool p_from_mouse_event) {
|
|
}
|
|
}
|
|
set_anim_pos(pos);
|
|
set_anim_pos(pos);
|
|
|
|
|
|
- emit_signal(SNAME("timeline_changed"), pos, true);
|
|
|
|
|
|
+ emit_signal(SNAME("timeline_changed"), pos, true, false);
|
|
}
|
|
}
|
|
|
|
|
|
void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
|
|
void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
|
|
@@ -5998,7 +5996,7 @@ void AnimationTrackEditor::_bind_methods() {
|
|
ClassDB::bind_method("_key_deselected", &AnimationTrackEditor::_key_deselected); // Still used by some connect_compat.
|
|
ClassDB::bind_method("_key_deselected", &AnimationTrackEditor::_key_deselected); // Still used by some connect_compat.
|
|
ClassDB::bind_method("_clear_selection", &AnimationTrackEditor::_clear_selection); // Still used by some connect_compat.
|
|
ClassDB::bind_method("_clear_selection", &AnimationTrackEditor::_clear_selection); // Still used by some connect_compat.
|
|
|
|
|
|
- ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag")));
|
|
|
|
|
|
+ ADD_SIGNAL(MethodInfo("timeline_changed", PropertyInfo(Variant::FLOAT, "position"), PropertyInfo(Variant::BOOL, "drag"), PropertyInfo(Variant::BOOL, "timeline_only")));
|
|
ADD_SIGNAL(MethodInfo("keying_changed"));
|
|
ADD_SIGNAL(MethodInfo("keying_changed"));
|
|
ADD_SIGNAL(MethodInfo("animation_len_changed", PropertyInfo(Variant::FLOAT, "len")));
|
|
ADD_SIGNAL(MethodInfo("animation_len_changed", PropertyInfo(Variant::FLOAT, "len")));
|
|
ADD_SIGNAL(MethodInfo("animation_step_changed", PropertyInfo(Variant::FLOAT, "step")));
|
|
ADD_SIGNAL(MethodInfo("animation_step_changed", PropertyInfo(Variant::FLOAT, "step")));
|