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

Closing tabs is now possible

This commit is contained in:
OverloadedOrama 2020-06-05 17:50:52 +03:00
parent 4af130bc61
commit b276999b12
5 changed files with 27 additions and 14 deletions

View file

@ -152,6 +152,7 @@ var zoom_level_label : Label
var import_sprites_dialog : FileDialog
var export_dialog : AcceptDialog
var preferences_dialog : AcceptDialog
var unsaved_changes_dialog : ConfirmationDialog
var color_pickers := []
@ -268,6 +269,7 @@ func _ready() -> void:
import_sprites_dialog = find_node_by_name(root, "ImportSprites")
export_dialog = find_node_by_name(root, "ExportDialog")
preferences_dialog = find_node_by_name(root, "PreferencesDialog")
unsaved_changes_dialog = find_node_by_name(root, "UnsavedCanvasDialog")
tool_options_containers.append(find_node_by_name(root, "LeftToolOptions"))
tool_options_containers.append(find_node_by_name(root, "RightToolOptions"))

View file

@ -116,6 +116,8 @@ func change_project() -> void:
for brush in brushes:
Global.create_brush_button(brush)
Global.canvas.update()
func frames_changed(value : Array) -> void:
frames = value

View file

@ -254,11 +254,7 @@ func open_project_file() -> void:
func on_open_last_project_file_menu_option_pressed() -> void:
# Check if last project path is set and if yes then open
if Global.config_cache.has_section_key("preferences", "last_project_path"):
if Global.current_project.has_changed:
$UnsavedCanvasDialog.popup_centered()
Global.dialog_open(true)
else:
load_last_project()
load_last_project()
else: # if not then warn user that he didn't edit any project yet
Global.error_dialog.set_text("You haven't saved or opened any project in Pixelorama yet!")
Global.error_dialog.popup_centered()
@ -548,10 +544,6 @@ func load_last_project() -> void:
Global.dialog_open(true)
func _on_UnsavedCanvasDialog_confirmed() -> void:
load_last_project()
func _on_OpenSprite_file_selected(path : String) -> void:
OpenSave.open_pxo_file(path)

View file

@ -127,7 +127,6 @@ visible = false
[connection signal="popup_hide" from="RotateImage" to="." method="_can_draw_true"]
[connection signal="popup_hide" from="OutlineDialog" to="." method="_can_draw_true"]
[connection signal="popup_hide" from="AboutDialog" to="." method="_can_draw_true"]
[connection signal="confirmed" from="UnsavedCanvasDialog" to="." method="_on_UnsavedCanvasDialog_confirmed"]
[connection signal="popup_hide" from="UnsavedCanvasDialog" to="." method="_can_draw_true"]
[connection signal="confirmed" from="QuitDialog" to="." method="_on_QuitDialog_confirmed"]
[connection signal="popup_hide" from="QuitDialog" to="." method="_can_draw_true"]

View file

@ -1,15 +1,33 @@
extends Tabs
func _on_Tabs_tab_changed(tab : int):
func _on_Tabs_tab_changed(tab : int) -> void:
Global.current_project_index = tab
Global.canvas.update()
func _on_Tabs_tab_close(tab : int):
func _on_Tabs_tab_close(tab : int) -> void:
if Global.projects.size() == 1:
return
if Global.current_project.has_changed:
if !Global.unsaved_changes_dialog.is_connected("confirmed", self, "delete_tab"):
Global.unsaved_changes_dialog.connect("confirmed", self, "delete_tab", [tab])
Global.unsaved_changes_dialog.popup_centered()
Global.dialog_open(true)
else:
delete_tab(tab)
func _on_Tabs_reposition_active_tab_request(idx_to : int):
func _on_Tabs_reposition_active_tab_request(idx_to : int) -> void:
pass
func delete_tab(tab : int) -> void:
remove_tab(tab)
Global.current_project.undo_redo.free()
Global.projects.remove(tab)
if tab > 0:
Global.current_project_index -= 1
else:
Global.current_project_index = 0
Global.unsaved_changes_dialog.disconnect("confirmed", self, "delete_tab")