Add a 'New' and 'Save As' button and improve save behaviour, additional minor improvements - fix #20

This commit is contained in:
ChaoticByte 2024-12-25 00:07:51 +01:00
parent 6b748229ed
commit ca40971e53
No known key found for this signature in database
7 changed files with 232 additions and 170 deletions

View file

@ -1,6 +1,7 @@
extends Node
@onready var shader: Shader = load("res://src/shader/template.gdshader")
@onready var template_shader: Shader = load("res://src/shader/template.gdshader")
@onready var shader: Shader = template_shader.duplicate()
var original_image: ImageTexture
var result: Image
@ -9,6 +10,14 @@ var last_image_savepath = ""
var last_shader_savepath = ""
var last_original_image_path = ""
func reset():
self.shader = self.template_shader.duplicate()
self.last_image_savepath = ""
self.last_shader_savepath = ""
self.last_original_image_path = ""
self.original_image = null
self.result = null
func get_absolute_path(p: String) -> String:
# this only works on Linux!
if !p.begins_with("/"):
@ -50,10 +59,10 @@ func load_shader(path: String):
self.cwd = path.substr(0, path.rfind("/"))
self.last_shader_savepath = path
func save_shader(path: String, content: String):
func save_shader(path: String):
print("Save ", path)
var file = FileAccess.open(path, FileAccess.WRITE)
file.store_string(content)
file.store_string(self.shader.code)
if "/" in path: # update current working directory
self.cwd = path.substr(0, path.rfind("/"))
self.last_shader_savepath = path