Add "update preview" button to all preview children
This commit is contained in:
parent
7fbdb82193
commit
3a7cd76d55
|
@ -16,16 +16,33 @@ extends EditorInspectorPlugin
|
||||||
# -- virtual methods --
|
# -- virtual methods --
|
||||||
|
|
||||||
func can_handle(object: Object) -> bool:
|
func can_handle(object: Object) -> bool:
|
||||||
return object is Preview3D
|
return _get_preview(object) != null
|
||||||
|
|
||||||
func parse_begin(object):
|
func parse_begin(object):
|
||||||
var button := Button.new()
|
var preview = _get_preview(object)
|
||||||
button.text = "Update preview"
|
|
||||||
add_custom_control(button)
|
if preview:
|
||||||
button.connect("pressed", self, "_on_update_pressed", [object as Preview3D])
|
var button := Button.new()
|
||||||
|
button.text = "Update preview"
|
||||||
|
add_custom_control(button)
|
||||||
|
button.connect("pressed", self, "_on_update_pressed", [preview])
|
||||||
|
|
||||||
# -- public methods --
|
# -- public methods --
|
||||||
|
|
||||||
# -- private 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()
|
||||||
|
|
Reference in a new issue