1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-18 09:09:47 +00:00

Added new signals (#922)

* Added new signals

* fixed some kinks
This commit is contained in:
Variable 2023-10-15 16:32:58 +05:00 committed by GitHub
parent 90dd325b08
commit a5151bf739
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 74 additions and 20 deletions

View file

@ -94,7 +94,7 @@ class GeneralAPI:
func get_drawing_algos() -> DrawingAlgos:
return DrawingAlgos
func get_shader_image_effect() -> ShaderImageEffect:
func get_new_shader_image_effect() -> ShaderImageEffect:
return ShaderImageEffect.new()
func get_extensions_node() -> Node:
@ -549,37 +549,77 @@ class SignalsAPI:
func _on_texture_changed():
texture_changed.emit()
# Global signals
func connect_project_changed(target: Object, method: String):
Global.project_changed.connect(Callable(target, method))
# GLOBAL SIGNALS
# pixelorama_opened
func connect_pixelorama_opened(callable: Callable):
Global.pixelorama_opened.connect(callable)
ExtensionsApi.add_action("pixelorama_opened")
func disconnect_pixelorama_opened(callable: Callable):
Global.pixelorama_opened.disconnect(callable)
ExtensionsApi.remove_action("pixelorama_opened")
# pixelorama_about_to_close
func connect_pixelorama_about_to_close(callable: Callable):
Global.pixelorama_about_to_close.connect(callable)
ExtensionsApi.add_action("pixelorama_about_to_close")
func disconnect_pixelorama_about_to_close(callable: Callable):
Global.pixelorama_about_to_close.disconnect(callable)
ExtensionsApi.remove_action("pixelorama_about_to_close")
# project_created -> signal has argument of type "Project"
func connect_project_created(callable: Callable):
Global.project_created.connect(callable)
ExtensionsApi.add_action("project_created")
func disconnect_project_created(callable: Callable):
Global.project_created.disconnect(callable)
ExtensionsApi.remove_action("project_created")
# project_saved
func connect_project_about_to_save(callable: Callable):
Global.project_saved.connect(callable)
ExtensionsApi.add_action("project_saved")
func disconnect_project_saved(callable: Callable):
Global.project_saved.disconnect(callable)
ExtensionsApi.remove_action("project_saved")
# project_changed
func connect_project_changed(callable: Callable):
Global.project_changed.connect(callable)
ExtensionsApi.add_action("project_changed")
func disconnect_project_changed(target: Object, method: String):
Global.project_changed.disconnect(Callable(target, method))
func disconnect_project_changed(callable: Callable):
Global.project_changed.disconnect(callable)
ExtensionsApi.remove_action("project_changed")
func connect_cel_changed(target: Object, method: String):
Global.cel_changed.connect(Callable(target, method))
# cel_changed
func connect_cel_changed(callable: Callable):
Global.cel_changed.connect(callable)
ExtensionsApi.add_action("cel_changed")
func disconnect_cel_changed(target: Object, method: String):
Global.cel_changed.disconnect(Callable(target, method))
func disconnect_cel_changed(callable: Callable):
Global.cel_changed.disconnect(callable)
ExtensionsApi.remove_action("cel_changed")
# Tool Signal
func connect_tool_color_changed(target: Object, method: String):
Tools.color_changed.connect(Callable(target, method))
# TOOL SIGNALs
# cel_changed
func connect_tool_color_changed(callable: Callable):
Tools.color_changed.connect(callable)
ExtensionsApi.add_action("color_changed")
func disconnect_tool_color_changed(target: Object, method: String):
Tools.color_changed.disconnect(Callable(target, method))
func disconnect_tool_color_changed(callable: Callable):
Tools.color_changed.disconnect(callable)
ExtensionsApi.remove_action("color_changed")
# updater signals
func connect_current_cel_texture_changed(target: Object, method: String):
texture_changed.connect(Callable(target, method))
# UPDATER SIGNALS
# current_cel_texture_changed
func connect_current_cel_texture_changed(callable: Callable):
texture_changed.connect(callable)
ExtensionsApi.add_action("texture_changed")
func disconnect_current_cel_texture_changed(target: Object, method: String):
texture_changed.disconnect(Callable(target, method))
func disconnect_current_cel_texture_changed(callable: Callable):
texture_changed.disconnect(callable)
ExtensionsApi.remove_action("texture_changed")

View file

@ -1,5 +1,8 @@
extends Node
signal pixelorama_opened
signal pixelorama_about_to_close
signal project_created(Project)
signal project_changed
signal cel_changed

View file

@ -1,6 +1,8 @@
# gdlint: ignore=max-public-methods
extends Node
signal project_saved
var current_save_paths: PackedStringArray = []
## Stores a filename of a backup file in user:// until user saves manually
var backup_save_paths: PackedStringArray = []
@ -301,6 +303,7 @@ func save_pxo_file(
Global.top_menu_container.file_menu.set_item_text(
Global.FileMenu.SAVE, tr("Save") + " %s" % path.get_file()
)
project_saved.emit()
save_project_to_recent_list(path)
return true

View file

@ -3,6 +3,9 @@ class_name Project
extends RefCounted
## A class for project properties.
signal serialized(Dictionary)
signal about_to_deserialize(Dictionary)
var name := "":
set(value):
name = value
@ -102,6 +105,7 @@ func _init(_frames: Array[Frame] = [], _name := tr("untitled"), _size := Vector2
directory_path = Global.config_cache.get_value(
"data", "current_dir", OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP)
)
Global.project_created.emit(self)
func remove() -> void:
@ -332,10 +336,12 @@ func serialize() -> Dictionary:
"metadata": metadata
}
serialized.emit(project_data)
return project_data
func deserialize(dict: Dictionary) -> void:
about_to_deserialize.emit(dict)
if dict.has("size_x") and dict.has("size_y"):
size.x = dict.size_x
size.y = dict.size_y

View file

@ -67,6 +67,7 @@ func _ready() -> void:
OS.request_permissions()
_show_splash_screen()
Global.pixelorama_opened.emit()
func _input(event: InputEvent) -> void:
@ -348,6 +349,7 @@ func _on_QuitAndSaveDialog_confirmed() -> void:
func _quit() -> void:
Global.pixelorama_about_to_close.emit()
# Darken the UI to denote that the application is currently exiting
# (it won't respond to user input in this state).
modulate = Color(0.5, 0.5, 0.5)