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 --
|
||||
|
||||
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()
|
||||
|
|
Reference in a new issue