1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-20 12:33:14 +00:00

Changes to ManageLayouts dialog

This commit is contained in:
Manolis Papadeas 2022-03-18 00:01:16 +02:00
parent 21b4f3369f
commit 790cd8533a
2 changed files with 91 additions and 44 deletions

View file

@ -1,11 +1,13 @@
extends AcceptDialog
var layout_selected := -1
var is_editing := false
onready var layout_list: ItemList = $VBoxContainer/SavedLayouts
onready var layout_name: LineEdit = $VBoxContainer/HBoxContainer/LayoutName
onready var delete_layout: Button = $VBoxContainer/DeleteLayout
onready var save_layout: Button = $VBoxContainer/HBoxContainer/SaveLayout
onready var edit_layout: Button = find_node("EditLayout")
onready var delete_layout: Button = find_node("DeleteLayout")
onready var layout_settings: ConfirmationDialog = $LayoutSettings
onready var layout_name: LineEdit = $LayoutSettings/LayoutName
func _on_ManageLayouts_about_to_show() -> void:
@ -24,29 +26,40 @@ func _on_SavedLayouts_item_activated(index: int) -> void:
func _on_SavedLayouts_item_selected(index: int) -> void:
layout_selected = index
edit_layout.disabled = index < 2
delete_layout.disabled = index < 2
func _on_SavedLayouts_nothing_selected() -> void:
edit_layout.disabled = true
delete_layout.disabled = true
func _on_AddLayout_pressed() -> void:
is_editing = false
layout_name.text = "New Layout"
layout_settings.window_title = "Add Layout"
layout_settings.popup_centered()
func _on_EditLayout_pressed() -> void:
is_editing = true
layout_name.text = layout_list.get_item_text(layout_selected)
layout_settings.window_title = "Edit Layout"
layout_settings.popup_centered()
func _on_DeleteLayout_pressed() -> void:
var dir := Directory.new()
var file_name := layout_list.get_item_text(layout_selected) + ".tres"
dir.remove("user://layouts/".plus_file(file_name))
delete_layout_file(layout_list.get_item_text(layout_selected) + ".tres")
Global.top_menu_container.layouts.remove(layout_selected)
layout_list.remove_item(layout_selected)
Global.top_menu_container.populate_layouts_submenu()
layout_selected = -1
edit_layout.disabled = true
delete_layout.disabled = true
func _on_LayoutName_text_changed(new_text: String) -> void:
save_layout.disabled = new_text.empty()
func _on_SaveLayout_pressed() -> void:
func _on_LayoutSettings_confirmed() -> void:
var file_name := layout_name.text + ".tres"
var path := "user://layouts/".plus_file(file_name)
var layout = Global.control.ui.get_layout()
@ -54,8 +67,24 @@ func _on_SaveLayout_pressed() -> void:
if err != OK:
print(err)
else:
Global.top_menu_container.layouts.append([layout_name.text, layout])
layout_list.add_item(layout_name.text)
Global.top_menu_container.populate_layouts_submenu()
var n: int = Global.top_menu_container.layouts_submenu.get_item_count()
Global.top_menu_container.layouts_submenu.set_item_checked(n - 2, true)
if is_editing:
var old_file_name: String = layout_list.get_item_text(layout_selected) + ".tres"
if old_file_name != file_name:
delete_layout_file(old_file_name)
Global.top_menu_container.layouts[layout_selected][0] = layout_name.text
Global.top_menu_container.layouts[layout_selected][1] = layout
layout_list.set_item_text(layout_selected, layout_name.text)
Global.top_menu_container.layouts_submenu.set_item_text(
layout_selected + 2, layout_name.text
)
else:
Global.top_menu_container.layouts.append([layout_name.text, layout])
layout_list.add_item(layout_name.text)
Global.top_menu_container.populate_layouts_submenu()
var n: int = Global.top_menu_container.layouts_submenu.get_item_count()
Global.top_menu_container.layouts_submenu.set_item_checked(n - 2, true)
func delete_layout_file(file_name: String) -> void:
var dir := Directory.new()
dir.remove("user://layouts/".plus_file(file_name))

View file

@ -8,9 +8,6 @@ margin_bottom = 217.0
window_title = "Manage Layouts"
resizable = true
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="VBoxContainer" type="VBoxContainer" parent="."]
anchor_right = 1.0
@ -24,7 +21,7 @@ __meta__ = {
}
[node name="Label" type="Label" parent="VBoxContainer"]
margin_right = 175.0
margin_right = 200.0
margin_bottom = 14.0
text = "Layouts"
__meta__ = {
@ -33,44 +30,65 @@ __meta__ = {
[node name="SavedLayouts" type="ItemList" parent="VBoxContainer"]
margin_top = 18.0
margin_right = 175.0
margin_bottom = 121.0
margin_right = 200.0
margin_bottom = 149.0
rect_min_size = Vector2( 0, 20 )
size_flags_vertical = 3
[node name="DeleteLayout" type="Button" parent="VBoxContainer"]
margin_top = 125.0
margin_right = 55.0
margin_bottom = 145.0
[node name="ButtonsContainer" type="HBoxContainer" parent="VBoxContainer"]
margin_top = 153.0
margin_right = 200.0
margin_bottom = 173.0
[node name="AddLayout" type="Button" parent="VBoxContainer/ButtonsContainer"]
margin_right = 37.0
margin_bottom = 20.0
mouse_default_cursor_shape = 2
size_flags_horizontal = 0
text = "Add"
[node name="EditLayout" type="Button" parent="VBoxContainer/ButtonsContainer"]
margin_left = 41.0
margin_right = 77.0
margin_bottom = 20.0
mouse_default_cursor_shape = 2
size_flags_horizontal = 0
disabled = true
text = "Edit"
[node name="DeleteLayout" type="Button" parent="VBoxContainer/ButtonsContainer"]
margin_left = 81.0
margin_right = 136.0
margin_bottom = 20.0
mouse_default_cursor_shape = 2
size_flags_horizontal = 0
disabled = true
text = "Delete"
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
margin_top = 149.0
margin_right = 175.0
margin_bottom = 173.0
[node name="LayoutSettings" type="ConfirmationDialog" parent="."]
margin_left = 8.0
margin_top = 8.0
margin_right = 208.0
margin_bottom = 181.0
resizable = true
[node name="LayoutName" type="LineEdit" parent="VBoxContainer/HBoxContainer"]
margin_right = 130.0
margin_bottom = 24.0
[node name="LayoutName" type="LineEdit" parent="LayoutSettings"]
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
margin_left = 8.0
margin_top = -78.5
margin_right = -8.0
margin_bottom = 50.5
size_flags_horizontal = 3
placeholder_text = "Insert name"
[node name="SaveLayout" type="Button" parent="VBoxContainer/HBoxContainer"]
margin_left = 134.0
margin_right = 175.0
margin_bottom = 24.0
mouse_default_cursor_shape = 2
disabled = true
text = "Save"
[connection signal="about_to_show" from="." to="." method="_on_ManageLayouts_about_to_show"]
[connection signal="popup_hide" from="." to="." method="_on_ManageLayouts_popup_hide"]
[connection signal="item_activated" from="VBoxContainer/SavedLayouts" to="." method="_on_SavedLayouts_item_activated"]
[connection signal="item_selected" from="VBoxContainer/SavedLayouts" to="." method="_on_SavedLayouts_item_selected"]
[connection signal="nothing_selected" from="VBoxContainer/SavedLayouts" to="." method="_on_SavedLayouts_nothing_selected"]
[connection signal="pressed" from="VBoxContainer/DeleteLayout" to="." method="_on_DeleteLayout_pressed"]
[connection signal="text_changed" from="VBoxContainer/HBoxContainer/LayoutName" to="." method="_on_LayoutName_text_changed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/SaveLayout" to="." method="_on_SaveLayout_pressed"]
[connection signal="pressed" from="VBoxContainer/ButtonsContainer/AddLayout" to="." method="_on_AddLayout_pressed"]
[connection signal="pressed" from="VBoxContainer/ButtonsContainer/EditLayout" to="." method="_on_EditLayout_pressed"]
[connection signal="pressed" from="VBoxContainer/ButtonsContainer/DeleteLayout" to="." method="_on_DeleteLayout_pressed"]
[connection signal="confirmed" from="LayoutSettings" to="." method="_on_LayoutSettings_confirmed"]