1
0
Fork 0

Add "update preview" button to all preview children

This commit is contained in:
Michaël Lemaire 2020-11-17 19:44:27 +01:00
parent 7fbdb82193
commit 3a7cd76d55

View file

@ -16,16 +16,33 @@ extends EditorInspectorPlugin
# -- virtual methods --
func can_handle(object: Object) -> bool:
return object is Preview3D
return _get_preview(object) != null
func parse_begin(object):
var button := Button.new()
button.text = "Update preview"
add_custom_control(button)
button.connect("pressed", self, "_on_update_pressed", [object as Preview3D])
var preview = _get_preview(object)
if preview:
var button := Button.new()
button.text = "Update preview"
add_custom_control(button)
button.connect("pressed", self, "_on_update_pressed", [preview])
# -- public methods --
# -- private methods --
func _on_update_pressed(target: Preview3D):
target.update_preview_content()
# Get the nearest parent preview
# Returns null if none is found
func _get_preview(node: Node):
if node is Preview2D or node is Preview3D:
return node
else:
while node:
node = node.get_parent()
if node is Preview2D or node is Preview3D:
return node
return null
# Callback for the inspector update button
func _on_update_pressed(preview):
preview.update_preview_content()