Repository: godotengine/godot
File: editor/scene/sprite_frames_editor_plugin.cpp (C++)

Code before:
	frame_list->set_texture_filter(TEXTURE_FILTER_NEAREST_WITH_MIPMAPS);
	frame_list->set_select_mode(ItemList::SELECT_MULTI);

	frame_list->set_max_columns(0);
	frame_list->set_max_text_lines(2);
	SET_DRAG_FORWARDING_GCD(frame_list, SpriteFramesEditor);
	frame_list->connect(SceneStringName(gui_input), callable_mp(this, &SpriteFramesEditor::_frame_list_gui_input));
	// HACK: The item_selected signal is emitted before the Frame Duration spinbox loses focus and applies the change.
	frame_list->connect("multi_selected", callable_mp(this, &SpriteFramesEditor::_frame_list_item_selected), CONNECT_DEFERRED);

	sub_vb->add_child(frame_list);

	dialog = memnew(AcceptDialog);
	add_child(dialog);

	load->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_load_pressed));
	load_sheet->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_open_sprite_sheet));
	delete_frame->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_delete_pressed));
	copy->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_copy_pressed));
	paste->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_paste_pressed));
	empty_before->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_empty_pressed));
	empty_after->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_empty2_pressed));
	move_up->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_up_pressed));
	move_down->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_down_pressed));

	play_bw_from->set_shortcut(ED_SHORTCUT("sprite_frames/play_animation_backwards", TTRC("Play selected animation backwards from current pos."), Key::A));
	play_bw->set_shortcut(ED_SHORTCUT("sprite_frames/play_animation_from_end", TTRC("Play selected animation backwards from end."), KeyModifierMask::SHIFT + Key::A));
	stop->set_shortcut(ED_SHORTCUT("sprite_frames/stop_animation", TTRC("Pause/stop animation playback."), Key::S));
	play->set_shortcut(ED_SHORTCUT("sprite_frames/play_animation_from_start", TTRC("Play selected animation from start."), KeyModifierMask::SHIFT + Key::D));
	play_from->set_shortcut(ED_SHORTCUT("sprite_frames/play_animation", TTRC("Play selected animation from current pos."), Key::D));
	load->set_shortcut_context(frame_list);
	load->set_shortcut(ED_SHORTCUT("sprite_frames/load_from_file", TTRC("Add frame from file"), KeyModifierMask::CMD_OR_CTRL | Key::O));
	load_sheet->set_shortcut_context(frame_list);
	load_sheet->set_shortcut(ED_SHORTCUT("sprite_frames/load_from_sheet", TTRC("Add frames from sprite sheet"), KeyModifierMask::CMD_OR_CTRL | KeyModifierMask::SHIFT | Key::O));
	delete_frame->set_shortcut_context(frame_list);
	delete_frame->set_shortcut(ED_SHORTCUT("sprite_frames/delete", TTRC("Delete Frame"), Key::KEY_DELETE));
	copy->set_shortcut_context(frame_list);
	copy->set_shortcut(ED_SHORTCUT("sprite_frames/copy", TTRC("Copy Frame(s)"), KeyModifierMask::CMD_OR_CTRL | Key::C));
	paste->set_shortcut_context(frame_list);
	paste->set_shortcut(ED_SHORTCUT("sprite_frames/paste", TTRC("Paste Frame(s)"), KeyModifierMask::CMD_OR_CTRL | Key::V));
	empty_before->set_shortcut_context(frame_list);
	empty_before->set_shortcut(ED_SHORTCUT("sprite_frames/empty_before", TTRC("Insert Empty (Before Selected)"), KeyModifierMask::ALT | Key::LEFT));
	empty_after->set_shortcut_context(frame_list);
	empty_after->set_shortcut(ED_SHORTCUT("sprite_frames/empty_after", TTRC("Insert Empty (After Selected)"), KeyModifierMask::ALT | Key::RIGHT));
	move_up->set_shortcut_context(frame_list);
	move_up->set_shortcut(ED_SHORTCUT("sprite_frames/move_left", TTRC("Move Frame Left"), KeyModifierMask::CMD_OR_CTRL | Key::LEFT));
	move_down->set_shortcut_context(frame_list);
	move_down->set_shortcut(ED_SHORTCUT("sprite_frames/move_right", TTRC("Move Frame Right"), KeyModifierMask::CMD_OR_CTRL | Key::RIGHT));

	zoom_out->set_shortcut_context(frame_list);
	zoom_out->set_shortcut(ED_SHORTCUT_ARRAY("sprite_frames/zoom_out", TTRC("Zoom Out"),

Review comment (suggestion):
You can't just move tooltips to shortcut name, they are whole sentences. Shortcut names should be names of actions., e..g "Play Backwards".
Restore the tooltips, but remove the bracket part, as shortcuts are automatically shown in tooltip.

Code after:
	playback_container->add_child(play_bw);

	stop = memnew(Button);
	stop->set_theme_type_variation(SceneStringName(FlatButton));
	playback_container->add_child(stop);

	play = memnew(Button);
	play->set_theme_type_variation(SceneStringName(FlatButton));
	playback_container->add_child(play);

	play_from = memnew(Button);
	play_from->set_theme_type_variation(SceneStringName(FlatButton));
	playback_container->add_child(play_from);

	hfc->add_child(memnew(VSeparator));

	autoplay->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_autoplay_pressed));
	autoplay->set_toggle_mode(true);
	play->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_play_pressed));
	play_from->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_play_from_pressed));
	play_bw->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_play_bw_pressed));
	play_bw_from->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_play_bw_from_pressed));
	stop->connect(SceneStringName(pressed), callable_mp(this, &SpriteFramesEditor::_stop_pressed));

	HBoxContainer *hbc_actions = memnew(HBoxContainer);
	hfc->add_child(hbc_actions);

	load = memnew(Button);
	load->set_accessibility_name(TTRC("Load"));
	load->set_theme_type_variation(SceneStringName(FlatButton));
	hbc_actions->add_child(load);

	load_sheet = memnew(Button);
	load_sheet->set_accessibility_name(TTRC("Load Sheet"));
	load_sheet->set_theme_type_variation(SceneStringName(FlatButton));
	hbc_actions->add_child(load_sheet);

	hbc_actions->add_child(memnew(VSeparator));

	copy = memnew(Button);
	copy->set_accessibility_name(TTRC("Copy"));
	copy->set_theme_type_variation(SceneStringName(FlatButton));
	hbc_actions->add_child(copy);

	paste = memnew(Button);
	paste->set_accessibility_name(TTRC("Paste"));
	paste->set_theme_type_variation(SceneStringName(FlatButton));
	hbc_actions->add_child(paste);

	hbc_actions->add_child(memnew(VSeparator));