1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-22 21:43:13 +00:00

Control + T to quickly select the used area of a cel

This commit is contained in:
Emmanouil Papadeas 2025-02-22 00:13:37 +02:00
parent 46958273ac
commit 42aa60a817
5 changed files with 36 additions and 3 deletions

View file

@ -225,6 +225,10 @@ msgstr ""
msgid "Invert"
msgstr ""
#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.
msgid "Select cel area"
msgstr ""
msgid "Modify"
msgstr ""

View file

@ -180,7 +180,7 @@ paste_in_place={
}
paste_from_clipboard={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":86,"key_label":0,"unicode":86,"location":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"command_or_control_autoremap":true,"alt_pressed":false,"shift_pressed":true,"pressed":false,"keycode":86,"physical_keycode":0,"key_label":0,"unicode":86,"location":0,"echo":false,"script":null)
]
}
delete={
@ -378,6 +378,11 @@ clear_selection={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"command_or_control_autoremap":true,"alt_pressed":false,"shift_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
select_cel_area={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"command_or_control_autoremap":true,"alt_pressed":false,"shift_pressed":false,"pressed":false,"keycode":84,"physical_keycode":0,"key_label":0,"unicode":116,"location":0,"echo":false,"script":null)
]
}
left_rectangletool_tool={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)

View file

@ -66,7 +66,7 @@ enum ImageMenu {
CROP_TO_CONTENT,
}
## Enumeration of items present in the Select Menu.
enum SelectMenu { SELECT_ALL, CLEAR_SELECTION, INVERT, WRAP_STROKES, MODIFY }
enum SelectMenu { SELECT_ALL, CLEAR_SELECTION, INVERT, SELECT_CEL_AREA, WRAP_STROKES, MODIFY }
## Enumeration of items present in the Help Menu.
enum HelpMenu {
VIEW_SPLASH_SCREEN,
@ -829,6 +829,7 @@ func _initialize_keychain() -> void:
&"clear_selection": Keychain.InputAction.new("", "Select menu", true),
&"select_all": Keychain.InputAction.new("", "Select menu", true),
&"invert_selection": Keychain.InputAction.new("", "Select menu", true),
&"select_cel_area": Keychain.InputAction.new("", "Select menu", true),
&"view_splash_screen": Keychain.InputAction.new("", "Help menu", true),
&"open_docs": Keychain.InputAction.new("", "Help menu", true),
&"issue_tracker": Keychain.InputAction.new("", "Help menu", true),

View file

@ -1022,6 +1022,26 @@ func clear_selection(use_undo := false) -> void:
commit_undo("Clear Selection", undo_data_tmp)
func select_cel_rect() -> void:
transform_content_confirm()
var project := Global.current_project
var undo_data_tmp := get_undo_data(false)
project.selection_map.crop(project.size.x, project.size.y)
project.selection_map.clear()
var current_cel := project.get_current_cel()
var cel_image: Image
if current_cel is GroupCel:
var group_layer := project.layers[project.current_layer] as GroupLayer
cel_image = group_layer.blend_children(project.frames[project.current_frame])
else:
cel_image = current_cel.get_image()
project.selection_map.select_rect(cel_image.get_used_rect())
project.selection_map_changed()
big_bounding_rectangle = project.selection_map.get_used_rect()
project.selection_offset = Vector2.ZERO
commit_undo("Select", undo_data_tmp)
func _project_switched() -> void:
marching_ants_outline.offset = Global.current_project.selection_offset
big_bounding_rectangle = Global.current_project.selection_map.get_used_rect()

View file

@ -6,7 +6,7 @@ const DOCS_URL := "https://www.oramainteractive.com/Pixelorama-Docs/"
const ISSUES_URL := "https://github.com/Orama-Interactive/Pixelorama/issues"
const SUPPORT_URL := "https://www.patreon.com/OramaInteractive"
# gdlint: ignore=max-line-length
const CHANGELOG_URL := "https://github.com/Orama-Interactive/Pixelorama/blob/master/CHANGELOG.md#v105---2024-11-18"
const CHANGELOG_URL := "https://github.com/Orama-Interactive/Pixelorama/blob/master/CHANGELOG.md#v11---unreleased"
const EXTERNAL_LINK_ICON := preload("res://assets/graphics/misc/external_link.svg")
const PIXELORAMA_ICON := preload("res://assets/graphics/icons/icon_16x16.png")
const HEART_ICON := preload("res://assets/graphics/misc/heart.svg")
@ -530,6 +530,7 @@ func _setup_select_menu() -> void:
"All": "select_all",
"Clear": "clear_selection",
"Invert": "invert_selection",
"Select cel area": "select_cel_area",
"Wrap Strokes": "",
"Modify": ""
}
@ -1117,6 +1118,8 @@ func select_menu_id_pressed(id: int) -> void:
Global.canvas.selection.clear_selection(true)
Global.SelectMenu.INVERT:
Global.canvas.selection.invert()
Global.SelectMenu.SELECT_CEL_AREA:
Global.canvas.selection.select_cel_rect()
Global.SelectMenu.WRAP_STROKES:
var state = select_menu.is_item_checked(id)
Global.canvas.selection.flag_tilemode = !state