mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-01-18 17:19:50 +00:00
Compare commits
7 commits
a6060d9ff6
...
5c58562d6b
Author | SHA1 | Date | |
---|---|---|---|
5c58562d6b | |||
85b255032f | |||
2b4d85ac3e | |||
0e4c9bad20 | |||
8d8a147142 | |||
be7427fd9c | |||
c4a4bd4602 |
|
@ -9,6 +9,7 @@ var affect: int = SELECTED_CELS
|
|||
var selected_cels := Image.create(1, 1, false, Image.FORMAT_RGBA8)
|
||||
var current_frame := Image.create(1, 1, false, Image.FORMAT_RGBA8)
|
||||
var preview_image := Image.new()
|
||||
var aspect_ratio_container: AspectRatioContainer
|
||||
var preview: TextureRect
|
||||
var selection_checkbox: CheckBox
|
||||
var affect_option_button: OptionButton
|
||||
|
@ -38,7 +39,7 @@ func _about_to_popup() -> void:
|
|||
Global.canvas.selection.transform_content_confirm()
|
||||
prepare_animator(Global.current_project)
|
||||
set_and_update_preview_image(Global.current_project.current_frame)
|
||||
update_transparent_background_size()
|
||||
aspect_ratio_container.ratio = float(preview_image.get_width()) / preview_image.get_height()
|
||||
|
||||
|
||||
# prepares "animate_panel.frames" according to affect
|
||||
|
@ -131,6 +132,7 @@ func commit_action(_cel: Image, _project := Global.current_project) -> void:
|
|||
|
||||
|
||||
func set_nodes() -> void:
|
||||
aspect_ratio_container = $VBoxContainer/AspectRatioContainer
|
||||
preview = $VBoxContainer/AspectRatioContainer/Preview
|
||||
selection_checkbox = $VBoxContainer/OptionsContainer/SelectionCheckBox
|
||||
affect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton
|
||||
|
@ -214,22 +216,6 @@ func update_preview() -> void:
|
|||
preview.texture = ImageTexture.create_from_image(preview_image)
|
||||
|
||||
|
||||
func update_transparent_background_size() -> void:
|
||||
if !preview:
|
||||
return
|
||||
var image_size_y := preview.size.y
|
||||
var image_size_x := preview.size.x
|
||||
if preview_image.get_size().x > preview_image.get_size().y:
|
||||
var scale_ratio := preview_image.get_size().x / image_size_x
|
||||
image_size_y = preview_image.get_size().y / scale_ratio
|
||||
else:
|
||||
var scale_ratio := preview_image.get_size().y / image_size_y
|
||||
image_size_x = preview_image.get_size().x / scale_ratio
|
||||
|
||||
preview.get_node("TransparentChecker").size.x = image_size_x
|
||||
preview.get_node("TransparentChecker").size.y = image_size_y
|
||||
|
||||
|
||||
func _visibility_changed() -> void:
|
||||
if visible:
|
||||
return
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=21 format=3 uid="uid://dbylw5k04ulp8"]
|
||||
[gd_scene load_steps=16 format=3 uid="uid://dbylw5k04ulp8"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://cngbvfpwjoimv" path="res://assets/themes/dark/theme.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://src/Main.gd" id="2"]
|
||||
|
@ -6,19 +6,14 @@
|
|||
[ext_resource type="PackedScene" uid="uid://c8dsi6ggkqa7a" path="res://src/UI/UI.tscn" id="4"]
|
||||
[ext_resource type="PackedScene" uid="uid://d1jyt8wleg8ft" path="res://src/UI/Buttons/PatternsPopup.tscn" id="5"]
|
||||
[ext_resource type="PackedScene" uid="uid://c5x85ysdouh4t" path="res://src/UI/Buttons/BrushesPopup.tscn" id="6"]
|
||||
[ext_resource type="PackedScene" uid="uid://cfihuvhy4ocx7" path="res://src/UI/Dialogs/ImageEffects/ImageEffects.tscn" id="7"]
|
||||
[ext_resource type="PackedScene" uid="uid://cltlo2whtiejd" path="res://src/UI/Dialogs/SaveSpriteHTML5.tscn" id="8"]
|
||||
[ext_resource type="PackedScene" uid="uid://bs3dnnvnxyp68" path="res://src/UI/Timeline/FrameProperties.tscn" id="9"]
|
||||
[ext_resource type="PackedScene" uid="uid://bcdt0pa7rojy5" path="res://src/UI/Dialogs/WindowOpacityDialog.tscn" id="10"]
|
||||
[ext_resource type="PackedScene" uid="uid://d4euwo633u33b" path="res://src/UI/Dialogs/SaveSprite.tscn" id="11"]
|
||||
[ext_resource type="PackedScene" uid="uid://b3aeqj2k58wdk" path="res://src/UI/Dialogs/OpenSprite.tscn" id="12"]
|
||||
[ext_resource type="PackedScene" uid="uid://d1phd84dk4t5e" path="res://src/UI/Dialogs/ManageLayouts.tscn" id="13"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0nuukjakmai2" path="res://src/UI/Dialogs/TileModeOffsetsDialog.tscn" id="14"]
|
||||
[ext_resource type="PackedScene" uid="uid://clbjfkdupw52l" path="res://src/UI/Timeline/CelProperties.tscn" id="17_ucs64"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnpb1aip3wdvw" path="res://src/UI/Dialogs/SplashDialog.tscn" id="27"]
|
||||
[ext_resource type="PackedScene" uid="uid://btjf3lj873q1t" path="res://src/UI/Dialogs/CreateNewImage.tscn" id="28"]
|
||||
[ext_resource type="PackedScene" uid="uid://b3hkjj3s6pe4x" path="res://src/Preferences/PreferencesDialog.tscn" id="32"]
|
||||
[ext_resource type="PackedScene" uid="uid://w1v6plnv6ppt" path="res://src/UI/Dialogs/AboutDialog.tscn" id="34"]
|
||||
[ext_resource type="PackedScene" uid="uid://clgu8wb5o6oup" path="res://src/UI/Dialogs/ExportDialog.tscn" id="39"]
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
|
@ -47,16 +42,12 @@ layout_mode = 2
|
|||
anchors_preset = 0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ImageEffects" parent="Dialogs" instance=ExtResource("7")]
|
||||
|
||||
[node name="BrushesPopup" parent="Dialogs" instance=ExtResource("6")]
|
||||
|
||||
[node name="PatternsPopup" parent="Dialogs" instance=ExtResource("5")]
|
||||
|
||||
[node name="SplashDialog" parent="Dialogs" instance=ExtResource("27")]
|
||||
|
||||
[node name="CreateNewImage" parent="Dialogs" instance=ExtResource("28")]
|
||||
|
||||
[node name="OpenSprite" parent="Dialogs" instance=ExtResource("12")]
|
||||
|
||||
[node name="SaveSprite" parent="Dialogs" instance=ExtResource("11")]
|
||||
|
@ -67,11 +58,6 @@ mouse_filter = 2
|
|||
|
||||
[node name="PreferencesDialog" parent="Dialogs" instance=ExtResource("32")]
|
||||
|
||||
[node name="ManageLayouts" parent="Dialogs" instance=ExtResource("13")]
|
||||
|
||||
[node name="AboutDialog" parent="Dialogs" instance=ExtResource("34")]
|
||||
position = Vector2i(0, 24)
|
||||
|
||||
[node name="UnsavedCanvasDialog" type="ConfirmationDialog" parent="Dialogs"]
|
||||
title = "Unsaved Image"
|
||||
exclusive = false
|
||||
|
@ -104,8 +90,6 @@ dialog_autowrap = true
|
|||
|
||||
[node name="FrameProperties" parent="Dialogs" instance=ExtResource("9")]
|
||||
|
||||
[node name="WindowOpacityDialog" parent="Dialogs" instance=ExtResource("10")]
|
||||
|
||||
[node name="TileModeOffsetsDialog" parent="Dialogs" instance=ExtResource("14")]
|
||||
|
||||
[node name="Extensions" type="Control" parent="."]
|
||||
|
@ -118,7 +102,6 @@ visible = false
|
|||
visible = false
|
||||
|
||||
[connection signal="visibility_changed" from="Dialogs/SplashDialog" to="." method="_can_draw_true"]
|
||||
[connection signal="visibility_changed" from="Dialogs/CreateNewImage" to="." method="_can_draw_true"]
|
||||
[connection signal="files_selected" from="Dialogs/OpenSprite" to="." method="_on_OpenSprite_files_selected"]
|
||||
[connection signal="visibility_changed" from="Dialogs/OpenSprite" to="." method="_on_open_sprite_visibility_changed"]
|
||||
[connection signal="file_selected" from="Dialogs/SaveSprite" to="." method="_on_SaveSprite_file_selected"]
|
||||
|
|
|
@ -14,7 +14,7 @@ var theme_button_group := ButtonGroup.new()
|
|||
]
|
||||
|
||||
@onready var buttons_container: BoxContainer = $ThemeButtons
|
||||
@onready var colors_container: BoxContainer = $ThemeColorsSpacer/ThemeColors
|
||||
@onready var colors_container: BoxContainer = $ThemeColors
|
||||
@onready var theme_color_preview_scene := preload("res://src/Preferences/ThemeColorPreview.tscn")
|
||||
|
||||
|
||||
|
@ -62,8 +62,8 @@ func add_theme(theme: Theme) -> void:
|
|||
|
||||
func remove_theme(theme: Theme) -> void:
|
||||
var index := themes.find(theme)
|
||||
var theme_button = buttons_container.get_child(index)
|
||||
var color_previews = colors_container.get_child(index)
|
||||
var theme_button := buttons_container.get_child(index)
|
||||
var color_previews := colors_container.get_child(index)
|
||||
buttons_container.remove_child(theme_button)
|
||||
theme_button.queue_free()
|
||||
colors_container.remove_child(color_previews)
|
||||
|
|
|
@ -256,16 +256,10 @@ script = ExtResource("5")
|
|||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="ThemeColorsSpacer" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/Themes"]
|
||||
[node name="ThemeColors" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/Themes"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Control" type="Control" parent="HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/Themes/ThemeColorsSpacer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ThemeColors" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/Themes/ThemeColorsSpacer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
theme_override_constants/separation = 16
|
||||
|
||||
[node name="ButtonHeader" type="HBoxContainer" parent="HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface"]
|
||||
layout_mode = 2
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
[ext_resource type="Script" path="res://src/UI/CanvasPreviewContainer/CanvasPreviewContainer.gd" id="4"]
|
||||
[ext_resource type="PackedScene" uid="uid://c546tskdu53j1" path="res://src/UI/Canvas/CanvasPreview.tscn" id="5"]
|
||||
[ext_resource type="Texture2D" uid="uid://c7smxwfa8826j" path="res://assets/graphics/timeline/play.png" id="6"]
|
||||
[ext_resource type="PackedScene" uid="uid://cii2hpylme60s" path="res://src/UI/Nodes/CollapsibleContainer.tscn" id="7"]
|
||||
[ext_resource type="Script" path="res://src/UI/Nodes/CollapsibleContainer.gd" id="7_o7sn3"]
|
||||
[ext_resource type="Script" path="res://src/UI/Nodes/ValueSlider.gd" id="8"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="1"]
|
||||
|
@ -131,9 +131,11 @@ popup/item_0/id = 0
|
|||
popup/item_1/text = "Current frame as spritesheet"
|
||||
popup/item_1/id = 1
|
||||
|
||||
[node name="Options" parent="VBox/Animation/VBoxContainer" instance=ExtResource("7")]
|
||||
[node name="Options" type="VBoxContainer" parent="VBox/Animation/VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"CollapsibleContainer"
|
||||
script = ExtResource("7_o7sn3")
|
||||
text = "Spritesheet options"
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="VBox/Animation/VBoxContainer/Options"]
|
||||
|
|
|
@ -219,3 +219,8 @@ func switch_width_height() -> void:
|
|||
|
||||
width_value.value_changed.connect(_on_SizeValue_value_changed)
|
||||
height_value.value_changed.connect(_on_SizeValue_value_changed)
|
||||
|
||||
|
||||
func _on_visibility_changed() -> void:
|
||||
if not visible:
|
||||
Global.dialog_open(false)
|
||||
|
|
|
@ -218,6 +218,7 @@ color = Color(0, 0, 0, 0)
|
|||
|
||||
[connection signal="about_to_popup" from="." to="." method="_on_CreateNewImage_about_to_show"]
|
||||
[connection signal="confirmed" from="." to="." method="_on_CreateNewImage_confirmed"]
|
||||
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
|
||||
[connection signal="item_selected" from="VBoxContainer/VBoxContainer/Templates/TemplatesContainer/TemplatesOptions" to="." method="_on_TemplatesOptions_item_selected"]
|
||||
[connection signal="value_changed" from="VBoxContainer/VBoxContainer/Templates/SizeContainer/VBoxContainer/WidthContainer/WidthValue" to="." method="_on_SizeValue_value_changed"]
|
||||
[connection signal="value_changed" from="VBoxContainer/VBoxContainer/Templates/SizeContainer/VBoxContainer/HeightContainer/HeightValue" to="." method="_on_SizeValue_value_changed"]
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
[gd_scene load_steps=15 format=3 uid="uid://cfihuvhy4ocx7"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c7hnynip21y6u" path="res://src/UI/Dialogs/ImageEffects/FlipImageDialog.tscn" id="1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bl1t33abu7kl8" path="res://src/UI/Dialogs/ImageEffects/InvertColorsDialog.tscn" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://5gqka7tkg17k" path="res://src/UI/Dialogs/ImageEffects/DesaturateDialog.tscn" id="3"]
|
||||
[ext_resource type="PackedScene" uid="uid://duse1w3q7whmm" path="res://src/UI/Dialogs/ImageEffects/DropShadowDialog.tscn" id="4"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjd5sjemyea4a" path="res://src/UI/Dialogs/ImageEffects/GradientMapDialog.tscn" id="5"]
|
||||
[ext_resource type="PackedScene" uid="uid://cnryslyvxv4ye" path="res://src/UI/Dialogs/ImageEffects/Posterize.tscn" id="6"]
|
||||
[ext_resource type="PackedScene" uid="uid://q355qqjvuajs" path="res://src/UI/Dialogs/ImageEffects/OffsetImage.tscn" id="7"]
|
||||
[ext_resource type="PackedScene" uid="uid://birggxam3fjnb" path="res://src/UI/Dialogs/ImageEffects/ResizeCanvas.tscn" id="8"]
|
||||
[ext_resource type="PackedScene" uid="uid://bvr6j8sohxob3" path="res://src/UI/Dialogs/ImageEffects/RotateImage.tscn" id="9"]
|
||||
[ext_resource type="PackedScene" uid="uid://bkr47ocij684y" path="res://src/UI/Dialogs/ImageEffects/ShaderEffect.tscn" id="10"]
|
||||
[ext_resource type="PackedScene" uid="uid://oq036vr10yvk" path="res://src/UI/Dialogs/ImageEffects/HSVDialog.tscn" id="11"]
|
||||
[ext_resource type="PackedScene" uid="uid://u0y5xogg636e" path="res://src/UI/Dialogs/ImageEffects/GradientDialog.tscn" id="12"]
|
||||
[ext_resource type="PackedScene" uid="uid://ci2qpf6t3dyyr" path="res://src/UI/Dialogs/ImageEffects/OutlineDialog.tscn" id="13"]
|
||||
[ext_resource type="PackedScene" uid="uid://omm7xmtf5kbj" path="res://src/UI/Dialogs/ImageEffects/ScaleImage.tscn" id="14"]
|
||||
|
||||
[node name="ImageEffects" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="OffsetImage" parent="." instance=ExtResource("7")]
|
||||
|
||||
[node name="ScaleImage" parent="." instance=ExtResource("14")]
|
||||
|
||||
[node name="ResizeCanvas" parent="." instance=ExtResource("8")]
|
||||
|
||||
[node name="RotateImage" parent="." instance=ExtResource("9")]
|
||||
|
||||
[node name="FlipImageDialog" parent="." instance=ExtResource("1")]
|
||||
|
||||
[node name="InvertColorsDialog" parent="." instance=ExtResource("2")]
|
||||
|
||||
[node name="DesaturateDialog" parent="." instance=ExtResource("3")]
|
||||
|
||||
[node name="OutlineDialog" parent="." instance=ExtResource("13")]
|
||||
|
||||
[node name="DropShadowDialog" parent="." instance=ExtResource("4")]
|
||||
|
||||
[node name="HSVDialog" parent="." instance=ExtResource("11")]
|
||||
|
||||
[node name="GradientDialog" parent="." instance=ExtResource("12")]
|
||||
|
||||
[node name="GradientMapDialog" parent="." instance=ExtResource("5")]
|
||||
|
||||
[node name="Posterize" parent="." instance=ExtResource("6")]
|
||||
|
||||
[node name="ShaderEffect" parent="." instance=ExtResource("10")]
|
|
@ -10,6 +10,7 @@ var image := Image.create(1, 1, false, Image.FORMAT_RGBA8)
|
|||
@onready var height_spinbox: SpinBox = $VBoxContainer/OptionsContainer/HeightValue
|
||||
@onready var x_spinbox: SpinBox = $VBoxContainer/OptionsContainer/XSpinBox
|
||||
@onready var y_spinbox: SpinBox = $VBoxContainer/OptionsContainer/YSpinBox
|
||||
@onready var aspect_ratio_container: AspectRatioContainer = $VBoxContainer/AspectRatioContainer
|
||||
@onready var preview_rect: TextureRect = $VBoxContainer/AspectRatioContainer/Preview
|
||||
|
||||
|
||||
|
@ -82,21 +83,7 @@ func update_preview() -> void:
|
|||
image, Rect2i(Vector2i.ZERO, Global.current_project.size), Vector2i(offset_x, offset_y)
|
||||
)
|
||||
preview_rect.texture = ImageTexture.create_from_image(preview_image)
|
||||
update_transparent_background_size(preview_image)
|
||||
|
||||
|
||||
func update_transparent_background_size(preview_image: Image) -> void:
|
||||
var image_size_y := preview_rect.size.y
|
||||
var image_size_x := preview_rect.size.x
|
||||
if preview_image.get_size().x > preview_image.get_size().y:
|
||||
var scale_ratio := preview_image.get_size().x / image_size_x
|
||||
image_size_y = preview_image.get_size().y / scale_ratio
|
||||
else:
|
||||
var scale_ratio := preview_image.get_size().y / image_size_y
|
||||
image_size_x = preview_image.get_size().x / scale_ratio
|
||||
|
||||
preview_rect.get_node("TransparentChecker").size.x = image_size_x
|
||||
preview_rect.get_node("TransparentChecker").size.y = image_size_y
|
||||
aspect_ratio_container.ratio = float(preview_image.get_width()) / preview_image.get_height()
|
||||
|
||||
|
||||
func _on_visibility_changed() -> void:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" path="res://src/UI/Dialogs/ImportPreviewDialog.gd" id="1_r16hn"]
|
||||
[ext_resource type="Script" path="res://src/UI/Dialogs/HelperScripts/RowColumnLines.gd" id="2_yokw4"]
|
||||
[ext_resource type="Script" path="res://src/UI/Dialogs/HelperScripts/SmartSlicePreview.gd" id="3_aeccv"]
|
||||
[ext_resource type="PackedScene" uid="uid://cii2hpylme60s" path="res://src/UI/Nodes/CollapsibleContainer.tscn" id="4_6ispq"]
|
||||
[ext_resource type="Script" path="res://src/UI/Nodes/CollapsibleContainer.gd" id="4_7dy5o"]
|
||||
[ext_resource type="Script" path="res://src/UI/Nodes/ValueSlider.gd" id="4_nmo33"]
|
||||
|
||||
[node name="ImportPreviewDialog" type="ConfirmationDialog"]
|
||||
|
@ -91,8 +91,10 @@ layout_mode = 2
|
|||
size_flags_vertical = 0
|
||||
mouse_default_cursor_shape = 2
|
||||
|
||||
[node name="ImportOptionsContainer" parent="VBoxContainer" instance=ExtResource("4_6ispq")]
|
||||
[node name="ImportOptionsContainer" type="VBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"CollapsibleContainer"
|
||||
script = ExtResource("4_7dy5o")
|
||||
text = "Import Options"
|
||||
|
||||
[node name="ImportOptions" type="VBoxContainer" parent="VBoxContainer/ImportOptionsContainer"]
|
||||
|
|
|
@ -127,6 +127,7 @@ func _on_DeleteConfirmation_confirmed() -> void:
|
|||
func refresh_preview() -> void:
|
||||
for tab in mimic_ui.get_tabs():
|
||||
mimic_ui.remove_child(tab)
|
||||
tab.queue_free()
|
||||
for item in Global.control.main_ui.get_tabs():
|
||||
var box := TextEdit.new()
|
||||
box.name = item.name
|
||||
|
|
|
@ -13,11 +13,8 @@ func _ready() -> void:
|
|||
func _on_WindowOpacityDialog_about_to_show() -> void:
|
||||
get_tree().root.transparent = true
|
||||
get_tree().root.transparent_bg = true
|
||||
slider.editable = !(
|
||||
(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)
|
||||
or (get_window().mode == Window.MODE_FULLSCREEN)
|
||||
)
|
||||
fullscreen_warning.visible = !slider.editable
|
||||
slider.editable = not is_fullscreen()
|
||||
fullscreen_warning.visible = not slider.editable
|
||||
|
||||
|
||||
func _recalculate_opacity() -> void:
|
||||
|
@ -25,13 +22,9 @@ func _recalculate_opacity() -> void:
|
|||
|
||||
|
||||
func set_window_opacity(value: float) -> void:
|
||||
if (
|
||||
(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)
|
||||
or (get_window().mode == Window.MODE_FULLSCREEN)
|
||||
):
|
||||
if is_fullscreen():
|
||||
value = 100.0
|
||||
slider.value = value
|
||||
|
||||
value = value / 100.0
|
||||
# Find the TabContainer that has the Main Canvas panel
|
||||
for container: Control in Global.control.main_ui._panel_container.get_children():
|
||||
|
@ -44,3 +37,10 @@ func set_window_opacity(value: float) -> void:
|
|||
|
||||
func _on_visibility_changed() -> void:
|
||||
Global.dialog_open(false)
|
||||
|
||||
|
||||
func is_fullscreen() -> bool:
|
||||
return (
|
||||
(get_parent().get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)
|
||||
or (get_parent().get_window().mode == Window.MODE_FULLSCREEN)
|
||||
)
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://cii2hpylme60s"]
|
||||
|
||||
[ext_resource type="Script" path="res://src/UI/Nodes/CollapsibleContainer.gd" id="2"]
|
||||
|
||||
[node name="CollapsibleContainer" type="VBoxContainer"]
|
||||
offset_right = 40.0
|
||||
offset_bottom = 20.0
|
||||
theme_type_variation = &"CollapsibleContainer"
|
||||
script = ExtResource("2")
|
|
@ -10,6 +10,8 @@ anchor_right = 1.0
|
|||
anchor_bottom = 1.0
|
||||
offset_right = -1013.0
|
||||
offset_bottom = -510.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
|
@ -45,9 +47,6 @@ text = "Tracker Lines"
|
|||
[node name="HSeparator" type="HSeparator" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Content" type="ScrollContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
|
|
@ -27,7 +27,7 @@ func _set_visible(press: bool) -> void:
|
|||
if press:
|
||||
$TextureRect.rotation = 0
|
||||
else:
|
||||
$TextureRect.rotation = -90
|
||||
$TextureRect.rotation = -PI / 2
|
||||
content.visible = press
|
||||
|
||||
|
||||
|
|
|
@ -1,169 +1,137 @@
|
|||
[gd_scene load_steps=6 format=2]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://calecly82t1aw"]
|
||||
|
||||
[ext_resource path="res://src/UI/Nodes/ValueSlider.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://src/UI/PerspectiveEditor/VanishingPoint.gd" type="Script" id=2]
|
||||
[ext_resource path="res://src/UI/Nodes/CollapsibleContainer.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://assets/graphics/misc/value_arrow.svg" type="Texture2D" id=4]
|
||||
[ext_resource path="res://src/UI/PerspectiveEditor/PointCollapseContainer.gd" type="Script" id=5]
|
||||
[ext_resource type="PackedScene" uid="uid://yjhp0ssng2mp" path="res://src/UI/Nodes/ValueSlider.tscn" id="1"]
|
||||
[ext_resource type="Script" path="res://src/UI/PerspectiveEditor/VanishingPoint.gd" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://ct8wn8m6x4m54" path="res://assets/graphics/misc/value_arrow.svg" id="4"]
|
||||
[ext_resource type="Script" path="res://src/UI/PerspectiveEditor/PointCollapseContainer.gd" id="5"]
|
||||
[ext_resource type="Script" path="res://src/UI/Nodes/CollapsibleContainer.gd" id="5_xveuc"]
|
||||
|
||||
[node name="VanishingPoint" type="VBoxContainer" groups=["Entry"]]
|
||||
offset_right = 261.0
|
||||
offset_bottom = 145.0
|
||||
script = ExtResource( 2 )
|
||||
script = ExtResource("2")
|
||||
|
||||
[node name="TitleContainer" type="HBoxContainer" parent="."]
|
||||
offset_right = 261.0
|
||||
offset_bottom = 20.0
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PointCollapseContainer" type="Button" parent="TitleContainer"]
|
||||
unique_name_in_owner = true
|
||||
offset_right = 207.0
|
||||
offset_bottom = 20.0
|
||||
mouse_default_cursor_shape = 2
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_type_variation = "CollapsibleCheckBox"
|
||||
mouse_default_cursor_shape = 2
|
||||
theme_type_variation = &"CollapsibleCheckBox"
|
||||
toggle_mode = true
|
||||
script = ExtResource( 5 )
|
||||
script = ExtResource("5")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="TitleContainer/PointCollapseContainer" groups=["UIButtons"]]
|
||||
layout_mode = 0
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = 2.0
|
||||
offset_top = -6.0
|
||||
offset_right = 14.0
|
||||
offset_bottom = 6.0
|
||||
rotation = -90.0
|
||||
pivot_offset = Vector2( 6, 6 )
|
||||
texture = ExtResource( 4 )
|
||||
pivot_offset = Vector2(6, 6)
|
||||
texture = ExtResource("4")
|
||||
|
||||
[node name="Label" type="Label" parent="TitleContainer/PointCollapseContainer"]
|
||||
layout_mode = 0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 14.0
|
||||
theme_type_variation = &"HeaderSmall"
|
||||
valign = 1
|
||||
|
||||
[node name="ColorPickerButton" type="ColorPickerButton" parent="TitleContainer"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 211.0
|
||||
offset_right = 261.0
|
||||
offset_bottom = 20.0
|
||||
custom_minimum_size = Vector2( 50, 0 )
|
||||
custom_minimum_size = Vector2(50, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Content" type="HBoxContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
offset_top = 24.0
|
||||
offset_right = 261.0
|
||||
offset_bottom = 130.0
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Spacer" type="Control" parent="Content"]
|
||||
offset_right = 5.0
|
||||
offset_bottom = 106.0
|
||||
custom_minimum_size = Vector2( 5, 0 )
|
||||
custom_minimum_size = Vector2(5, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="BoundaryL" type="ColorRect" parent="Content"]
|
||||
offset_left = 9.0
|
||||
offset_right = 11.0
|
||||
offset_bottom = 106.0
|
||||
custom_minimum_size = Vector2( 2, 0 )
|
||||
custom_minimum_size = Vector2(2, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Content"]
|
||||
offset_left = 15.0
|
||||
offset_right = 255.0
|
||||
offset_bottom = 106.0
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="PointInfo" type="HBoxContainer" parent="Content/VBoxContainer"]
|
||||
offset_right = 240.0
|
||||
offset_bottom = 52.0
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="Content/VBoxContainer/PointInfo"]
|
||||
offset_right = 56.0
|
||||
offset_bottom = 52.0
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 5
|
||||
text = "Position:"
|
||||
|
||||
[node name="Position" type="VBoxContainer" parent="Content/VBoxContainer/PointInfo"]
|
||||
offset_left = 60.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 52.0
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="X" parent="Content/VBoxContainer/PointInfo/Position" instance=ExtResource( 1 )]
|
||||
[node name="X" parent="Content/VBoxContainer/PointInfo/Position" instance=ExtResource("1")]
|
||||
unique_name_in_owner = true
|
||||
offset_right = 180.0
|
||||
layout_mode = 2
|
||||
step = 0.5
|
||||
allow_greater = true
|
||||
allow_lesser = true
|
||||
prefix = "X :"
|
||||
|
||||
[node name="Y" parent="Content/VBoxContainer/PointInfo/Position" instance=ExtResource( 1 )]
|
||||
[node name="Y" parent="Content/VBoxContainer/PointInfo/Position" instance=ExtResource("1")]
|
||||
unique_name_in_owner = true
|
||||
offset_top = 28.0
|
||||
offset_right = 180.0
|
||||
offset_bottom = 52.0
|
||||
layout_mode = 2
|
||||
step = 0.5
|
||||
allow_greater = true
|
||||
allow_lesser = true
|
||||
prefix = "Y :"
|
||||
|
||||
[node name="CollapsibleContainer" parent="Content/VBoxContainer" instance=ExtResource( 3 )]
|
||||
offset_top = 56.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 76.0
|
||||
[node name="CollapsibleContainer" type="VBoxContainer" parent="Content/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"CollapsibleContainer"
|
||||
script = ExtResource("5_xveuc")
|
||||
text = "Lines"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Content/VBoxContainer/CollapsibleContainer"]
|
||||
visible = false
|
||||
offset_top = 24.0
|
||||
offset_right = 261.0
|
||||
offset_bottom = 44.0
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Spacer" type="Control" parent="Content/VBoxContainer/CollapsibleContainer/HBoxContainer"]
|
||||
offset_right = 20.0
|
||||
offset_bottom = 20.0
|
||||
custom_minimum_size = Vector2( 20, 0 )
|
||||
custom_minimum_size = Vector2(20, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="Content/VBoxContainer/CollapsibleContainer/HBoxContainer"]
|
||||
offset_right = 4.0
|
||||
offset_bottom = 40.0
|
||||
layout_mode = 2
|
||||
|
||||
[node name="LinesContainer" type="VBoxContainer" parent="Content/VBoxContainer/CollapsibleContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 24.0
|
||||
offset_right = 261.0
|
||||
offset_bottom = 20.0
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="AddLine" type="Button" parent="Content/VBoxContainer/CollapsibleContainer/HBoxContainer/LinesContainer"]
|
||||
offset_right = 237.0
|
||||
offset_bottom = 20.0
|
||||
layout_mode = 2
|
||||
text = "Add Line"
|
||||
|
||||
[node name="Delete" type="Button" parent="Content/VBoxContainer"]
|
||||
offset_top = 80.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 100.0
|
||||
custom_minimum_size = Vector2( 40, 0 )
|
||||
custom_minimum_size = Vector2(40, 0)
|
||||
layout_mode = 2
|
||||
text = "Delete Point"
|
||||
|
||||
[node name="BoundaryB" type="ColorRect" parent="Content/VBoxContainer"]
|
||||
offset_top = 104.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 106.0
|
||||
custom_minimum_size = Vector2( 0, 2 )
|
||||
custom_minimum_size = Vector2(0, 2)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="BoundaryR" type="ColorRect" parent="Content"]
|
||||
offset_left = 259.0
|
||||
offset_right = 261.0
|
||||
offset_bottom = 106.0
|
||||
custom_minimum_size = Vector2( 2, 0 )
|
||||
custom_minimum_size = Vector2(2, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="."]
|
||||
offset_top = 134.0
|
||||
offset_right = 261.0
|
||||
offset_bottom = 144.0
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[connection signal="toggled" from="TitleContainer/PointCollapseContainer" to="TitleContainer/PointCollapseContainer" method="_on_Button_toggled"]
|
||||
|
|
|
@ -13,6 +13,26 @@ var recent_projects := []
|
|||
var selected_layout := 0
|
||||
var zen_mode := false
|
||||
|
||||
# Dialogs
|
||||
var new_image_dialog := Dialog.new("res://src/UI/Dialogs/CreateNewImage.tscn")
|
||||
var offset_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/OffsetImage.tscn")
|
||||
var scale_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/ScaleImage.tscn")
|
||||
var resize_canvas_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/ResizeCanvas.tscn")
|
||||
var mirror_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/FlipImageDialog.tscn")
|
||||
var rotate_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/RotateImage.tscn")
|
||||
var invert_colors_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/InvertColorsDialog.tscn")
|
||||
var desaturate_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/DesaturateDialog.tscn")
|
||||
var outline_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/OutlineDialog.tscn")
|
||||
var drop_shadow_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/DropShadowDialog.tscn")
|
||||
var hsv_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/HSVDialog.tscn")
|
||||
var gradient_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/GradientDialog.tscn")
|
||||
var gradient_map_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/GradientMapDialog.tscn")
|
||||
var posterize_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/Posterize.tscn")
|
||||
var shader_effect_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/ShaderEffect.tscn")
|
||||
var manage_layouts_dialog := Dialog.new("res://src/UI/Dialogs/ManageLayouts.tscn")
|
||||
var window_opacity_dialog := Dialog.new("res://src/UI/Dialogs/WindowOpacityDialog.tscn")
|
||||
var about_dialog := Dialog.new("res://src/UI/Dialogs/AboutDialog.tscn")
|
||||
|
||||
@onready var main_ui := Global.control.find_child("DockableContainer") as DockableContainer
|
||||
@onready var ui_elements := main_ui.get_children()
|
||||
@onready var file_menu: PopupMenu = $MenuBar/File
|
||||
|
@ -24,8 +44,6 @@ var zen_mode := false
|
|||
@onready var help_menu: PopupMenu = $MenuBar/Help
|
||||
|
||||
@onready var greyscale_vision: ColorRect = main_ui.find_child("GreyscaleVision")
|
||||
@onready var new_image_dialog: ConfirmationDialog = Global.control.find_child("CreateNewImage")
|
||||
@onready var window_opacity_dialog: AcceptDialog = Global.control.find_child("WindowOpacityDialog")
|
||||
@onready var tile_mode_submenu := PopupMenu.new()
|
||||
@onready var snap_to_submenu := PopupMenu.new()
|
||||
@onready var panels_submenu := PopupMenu.new()
|
||||
|
@ -33,6 +51,30 @@ var zen_mode := false
|
|||
@onready var recent_projects_submenu := PopupMenu.new()
|
||||
|
||||
|
||||
class Dialog:
|
||||
## This class is used to help with lazy loading dialog scenes in order to
|
||||
## reduce Pixelorama's initial loading time, by only loading each dialog
|
||||
## scene when it's actually needed.
|
||||
var scene_path := ""
|
||||
var node: Window
|
||||
|
||||
func _init(_scene_path: String) -> void:
|
||||
scene_path = _scene_path
|
||||
|
||||
func popup(dialog_size := Vector2i.ZERO) -> void:
|
||||
if not is_instance_valid(node):
|
||||
var scene := load(scene_path)
|
||||
if not scene is PackedScene:
|
||||
return
|
||||
node = scene.instantiate()
|
||||
if not is_instance_valid(node):
|
||||
return
|
||||
Global.control.get_node("Dialogs").add_child(node)
|
||||
node.popup_centered(dialog_size)
|
||||
var is_file_dialog := node is FileDialog
|
||||
Global.dialog_open(true, is_file_dialog)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_setup_file_menu()
|
||||
_setup_edit_menu()
|
||||
|
@ -383,7 +425,7 @@ func _popup_dialog(dialog: Window, dialog_size := Vector2i.ZERO) -> void:
|
|||
func file_menu_id_pressed(id: int) -> void:
|
||||
match id:
|
||||
Global.FileMenu.NEW:
|
||||
_popup_dialog(new_image_dialog)
|
||||
new_image_dialog.popup()
|
||||
Global.FileMenu.OPEN:
|
||||
_open_project_file()
|
||||
Global.FileMenu.OPEN_LAST_PROJECT:
|
||||
|
@ -466,7 +508,7 @@ func edit_menu_id_pressed(id: int) -> void:
|
|||
func view_menu_id_pressed(id: int) -> void:
|
||||
match id:
|
||||
Global.ViewMenu.TILE_MODE_OFFSETS:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/TileModeOffsetsDialog"))
|
||||
_popup_dialog(Global.tile_mode_offset_dialog)
|
||||
Global.ViewMenu.GREYSCALE_VIEW:
|
||||
_toggle_greyscale_view()
|
||||
Global.ViewMenu.MIRROR_VIEW:
|
||||
|
@ -492,7 +534,7 @@ func view_menu_id_pressed(id: int) -> void:
|
|||
func window_menu_id_pressed(id: int) -> void:
|
||||
match id:
|
||||
Global.WindowMenu.WINDOW_OPACITY:
|
||||
_popup_dialog(window_opacity_dialog)
|
||||
window_opacity_dialog.popup()
|
||||
Global.WindowMenu.MOVABLE_PANELS:
|
||||
main_ui.tabs_visible = !main_ui.tabs_visible
|
||||
window_menu.set_item_checked(id, main_ui.tabs_visible)
|
||||
|
@ -540,7 +582,7 @@ func _panels_submenu_id_pressed(id: int) -> void:
|
|||
|
||||
func _layouts_submenu_id_pressed(id: int) -> void:
|
||||
if id == 0:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ManageLayouts"))
|
||||
manage_layouts_dialog.popup()
|
||||
else:
|
||||
set_layout(id - 1)
|
||||
|
||||
|
@ -640,63 +682,49 @@ func _toggle_zen_mode() -> void:
|
|||
|
||||
|
||||
func _toggle_fullscreen() -> void:
|
||||
get_window().mode = (
|
||||
Window.MODE_EXCLUSIVE_FULLSCREEN
|
||||
if (!(
|
||||
(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)
|
||||
or (get_window().mode == Window.MODE_FULLSCREEN)
|
||||
))
|
||||
else Window.MODE_WINDOWED
|
||||
)
|
||||
window_menu.set_item_checked(
|
||||
Global.WindowMenu.FULLSCREEN_MODE,
|
||||
(
|
||||
(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)
|
||||
or (get_window().mode == Window.MODE_FULLSCREEN)
|
||||
)
|
||||
)
|
||||
if (
|
||||
var is_fullscreen := (
|
||||
(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)
|
||||
or (get_window().mode == Window.MODE_FULLSCREEN)
|
||||
): # If window is fullscreen then reset transparency
|
||||
window_opacity_dialog.set_window_opacity(100.0)
|
||||
)
|
||||
get_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if !is_fullscreen else Window.MODE_WINDOWED
|
||||
is_fullscreen = not is_fullscreen
|
||||
window_menu.set_item_checked(Global.WindowMenu.FULLSCREEN_MODE, is_fullscreen)
|
||||
|
||||
|
||||
func image_menu_id_pressed(id: int) -> void:
|
||||
match id:
|
||||
Global.ImageMenu.SCALE_IMAGE:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/ScaleImage"))
|
||||
scale_image_dialog.popup()
|
||||
Global.ImageMenu.OFFSET_IMAGE:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/OffsetImage"))
|
||||
offset_image_dialog.popup()
|
||||
Global.ImageMenu.CROP_TO_SELECTION:
|
||||
DrawingAlgos.crop_to_selection()
|
||||
Global.ImageMenu.CROP_TO_CONTENT:
|
||||
DrawingAlgos.crop_to_content()
|
||||
Global.ImageMenu.RESIZE_CANVAS:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/ResizeCanvas"))
|
||||
resize_canvas_dialog.popup()
|
||||
Global.ImageMenu.FLIP:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/FlipImageDialog"))
|
||||
mirror_image_dialog.popup()
|
||||
Global.ImageMenu.ROTATE:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/RotateImage"))
|
||||
rotate_image_dialog.popup()
|
||||
Global.ImageMenu.INVERT_COLORS:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/InvertColorsDialog"))
|
||||
invert_colors_dialog.popup()
|
||||
Global.ImageMenu.DESATURATION:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/DesaturateDialog"))
|
||||
desaturate_dialog.popup()
|
||||
Global.ImageMenu.OUTLINE:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/OutlineDialog"))
|
||||
outline_dialog.popup()
|
||||
Global.ImageMenu.DROP_SHADOW:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/DropShadowDialog"))
|
||||
drop_shadow_dialog.popup()
|
||||
Global.ImageMenu.HSV:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/HSVDialog"))
|
||||
hsv_dialog.popup()
|
||||
Global.ImageMenu.GRADIENT:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/GradientDialog"))
|
||||
gradient_dialog.popup()
|
||||
Global.ImageMenu.GRADIENT_MAP:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/GradientMapDialog"))
|
||||
gradient_map_dialog.popup()
|
||||
Global.ImageMenu.POSTERIZE:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/ImageEffects/Posterize"))
|
||||
# Global.ImageMenu.SHADER:
|
||||
# _popup_dialog(Global.control.get_node("Dialogs/ImageEffects/ShaderEffect"))
|
||||
|
||||
posterize_dialog.popup()
|
||||
#Global.ImageMenu.SHADER:
|
||||
#shader_effect_dialog.popup()
|
||||
_:
|
||||
_handle_metadata(id, image_menu)
|
||||
|
||||
|
@ -732,7 +760,7 @@ func help_menu_id_pressed(id: int) -> void:
|
|||
Global.HelpMenu.CHANGELOG:
|
||||
OS.shell_open(CHANGELOG_URL)
|
||||
Global.HelpMenu.ABOUT_PIXELORAMA:
|
||||
_popup_dialog(Global.control.get_node("Dialogs/AboutDialog"))
|
||||
about_dialog.popup()
|
||||
Global.HelpMenu.SUPPORT_PIXELORAMA:
|
||||
OS.shell_open(SUPPORT_URL)
|
||||
_:
|
||||
|
|
Loading…
Reference in a new issue