tool
extends FileDialog


var canvas: GECanvas

var file_path = ""


func _ready():
	get_line_edit().connect("text_entered", self, "_on_LineEdit_text_entered")
	invalidate()
	clear_filters()
	add_filter("*.png ; PNG Images")


func _on_LineEdit_text_entered(_text):
	return
#	print(_text)
	#load_img()
#	print("hsadfasd")


func _on_LoadFileDialog_file_selected(path):
	file_path = path
	#print("1ere")
	load_img()


func _on_LoadFileDialog_confirmed():
	return
	#print("ere")
	#load_img()


func load_img():
	var image = Image.new()
	if image.load(file_path) != OK:
		print("couldn't load image!")
		return
	
	var image_data = image.get_data()
	var layer: GELayer = owner.add_new_layer()
	
	var width = image.get_width()
	var height = image.get_height()
	
	if owner.paint_canvas.canvas_width < width:
		owner.paint_canvas.resize(width, owner.paint_canvas.canvas_height)
	
	if owner.paint_canvas.canvas_height < height:
		owner.paint_canvas.resize(owner.paint_canvas.canvas_width, height)
	
	for i in range(image_data.size() / 4):
		var color = Color(image_data[i*4] / 255.0, image_data[i*4+1] / 255.0, image_data[i*4+2] / 255.0, image_data[i*4+3] / 255.0)
		var pos = GEUtils.to_2D(i, image.get_width())
		if pos.x > layer.layer_width:
			continue
			
		layer.set_pixel(pos.x, pos.y, color)
	layer.update_texture()



func _on_LoadFileDialog_about_to_show():
	invalidate()


func _on_LoadFileDialog_visibility_changed():
	invalidate()