diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d2b53051..bd5171871 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,16 +15,19 @@ Darshan Phaldesai (luiq54), Igor Santarek (jegor377), rob-a-bolton, Kinwailo - You can now draw on the tiling mode previews! ([#65](https://github.com/Orama-Interactive/Pixelorama/issues/65)) - Added Resize Canvas option to Image menu. - You can now preview how the frames of the spritesheet you are importing will look. +- You can now import image files as layers. Their size will be cropped to the project's size. +- You can import image files as brushes, patterns and palettes. ### Changed - Drawing is no longer limited by the canvas boundaries. This means that, if you have a brush largen than 1px, you can draw on the edges of the canvas. All pixels that are being drawn outside of the canvas will still have no effect. - The guides are now the same for all frames. +- The "Import" option from the file menu has been removed, users can now import image files from "Open". +- Imported frames are now being cropped to the project's size. It is no longer possible to have multiple sizes for each frame at all in the same project. - Pixel perfect is no longer enabled when the brush size is bigger than 1px. - The .pxo file structure has been changed. It's now consisted of a JSON-structured metadata part, where all the data that can be stored as text are, and a binary part, that contain all the actual image data for each cel and project brush. - When making a straight line, a preview of how the line's pixels will look is now being shown. ([#260](https://github.com/Orama-Interactive/Pixelorama/pull/260)) - Language and theme checkboxes are now radio buttons. - The Blue theme has more similar margins and seperations with the rest of the themes. -- The "Import" option from the file menu has been removed, users can now import image files from "Open". ### Fixed - Exporting large images and drawing with large image brushes is now a lot faster. (Because of Godot 3.2.2) diff --git a/Translations/Translations.pot b/Translations/Translations.pot index 7b0e44090..31c155b5a 100644 --- a/Translations/Translations.pot +++ b/Translations/Translations.pot @@ -28,6 +28,9 @@ msgstr "" msgid "Height:" msgstr "" +msgid "Center" +msgstr "" + msgid "File" msgstr "" diff --git a/src/UI/Dialogs/ResizeCanvas.gd b/src/UI/Dialogs/ResizeCanvas.gd index 3031578db..6251e501e 100644 --- a/src/UI/Dialogs/ResizeCanvas.gd +++ b/src/UI/Dialogs/ResizeCanvas.gd @@ -34,3 +34,8 @@ func _on_XSpinBox_value_changed(value : int) -> void: func _on_YSpinBox_value_changed(value : int) -> void: offset_y = value + + +func _on_CenterButton_pressed() -> void: + x_spinbox.value = (x_spinbox.min_value + x_spinbox.max_value) / 2 + y_spinbox.value = (y_spinbox.min_value + y_spinbox.max_value) / 2 diff --git a/src/UI/Dialogs/ResizeCanvas.tscn b/src/UI/Dialogs/ResizeCanvas.tscn index c73f16fac..aa13898ed 100644 --- a/src/UI/Dialogs/ResizeCanvas.tscn +++ b/src/UI/Dialogs/ResizeCanvas.tscn @@ -11,7 +11,10 @@ script = ExtResource( 1 ) margin_left = 8.0 margin_top = 8.0 margin_right = 192.0 -margin_bottom = 152.0 +margin_bottom = 176.0 +__meta__ = { +"_edit_use_anchors_": false +} [node name="ImageSize" type="Label" parent="VBoxContainer"] margin_right = 184.0 @@ -21,20 +24,20 @@ text = "Canvas Size" [node name="OptionsContainer" type="GridContainer" parent="VBoxContainer"] margin_top = 18.0 margin_right = 184.0 -margin_bottom = 144.0 +margin_bottom = 168.0 custom_constants/vseparation = 4 custom_constants/hseparation = 2 columns = 2 [node name="WidthLabel" type="Label" parent="VBoxContainer/OptionsContainer"] margin_top = 5.0 -margin_right = 46.0 +margin_right = 54.0 margin_bottom = 19.0 text = "Width:" [node name="WidthValue" type="SpinBox" parent="VBoxContainer/OptionsContainer"] -margin_left = 48.0 -margin_right = 122.0 +margin_left = 56.0 +margin_right = 130.0 margin_bottom = 24.0 mouse_default_cursor_shape = 2 min_value = 1.0 @@ -44,14 +47,14 @@ suffix = "px" [node name="Height" type="Label" parent="VBoxContainer/OptionsContainer"] margin_top = 33.0 -margin_right = 46.0 +margin_right = 54.0 margin_bottom = 47.0 text = "Height:" [node name="HeightValue" type="SpinBox" parent="VBoxContainer/OptionsContainer"] -margin_left = 48.0 +margin_left = 56.0 margin_top = 28.0 -margin_right = 122.0 +margin_right = 130.0 margin_bottom = 52.0 mouse_default_cursor_shape = 2 min_value = 1.0 @@ -61,26 +64,26 @@ suffix = "px" [node name="OffsetLabel" type="Label" parent="VBoxContainer/OptionsContainer"] margin_top = 56.0 -margin_right = 46.0 +margin_right = 54.0 margin_bottom = 70.0 text = "Offset" [node name="EmptySpacer" type="Control" parent="VBoxContainer/OptionsContainer"] -margin_left = 48.0 +margin_left = 56.0 margin_top = 56.0 -margin_right = 122.0 +margin_right = 130.0 margin_bottom = 70.0 [node name="XLabel" type="Label" parent="VBoxContainer/OptionsContainer"] margin_top = 79.0 -margin_right = 46.0 +margin_right = 54.0 margin_bottom = 93.0 text = "X:" [node name="XSpinBox" type="SpinBox" parent="VBoxContainer/OptionsContainer"] -margin_left = 48.0 +margin_left = 56.0 margin_top = 74.0 -margin_right = 122.0 +margin_right = 130.0 margin_bottom = 98.0 mouse_default_cursor_shape = 2 max_value = 0.0 @@ -88,20 +91,27 @@ suffix = "px" [node name="YLabel" type="Label" parent="VBoxContainer/OptionsContainer"] margin_top = 107.0 -margin_right = 46.0 +margin_right = 54.0 margin_bottom = 121.0 text = "Y:" [node name="YSpinBox" type="SpinBox" parent="VBoxContainer/OptionsContainer"] -margin_left = 48.0 +margin_left = 56.0 margin_top = 102.0 -margin_right = 122.0 +margin_right = 130.0 margin_bottom = 126.0 mouse_default_cursor_shape = 2 max_value = 0.0 suffix = "px" + +[node name="CenterButton" type="Button" parent="VBoxContainer/OptionsContainer"] +margin_top = 130.0 +margin_right = 54.0 +margin_bottom = 150.0 +text = "Center" [connection signal="confirmed" from="." to="." method="_on_ResizeCanvas_confirmed"] [connection signal="value_changed" from="VBoxContainer/OptionsContainer/WidthValue" to="." method="_on_WidthValue_value_changed"] [connection signal="value_changed" from="VBoxContainer/OptionsContainer/HeightValue" to="." method="_on_HeightValue_value_changed"] [connection signal="value_changed" from="VBoxContainer/OptionsContainer/XSpinBox" to="." method="_on_XSpinBox_value_changed"] [connection signal="value_changed" from="VBoxContainer/OptionsContainer/YSpinBox" to="." method="_on_YSpinBox_value_changed"] +[connection signal="pressed" from="VBoxContainer/OptionsContainer/CenterButton" to="." method="_on_CenterButton_pressed"]