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:
parent
4af130bc61
commit
b276999b12
5 changed files with 27 additions and 14 deletions
|
@ -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"))
|
||||
|
|
|
@ -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
|
||||
|
|
10
src/Main.gd
10
src/Main.gd
|
@ -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)
|
||||
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Add table
Reference in a new issue