mirror of
https://github.com/Relintai/broken_seals.git
synced 2024-12-21 13:16:49 +01:00
54 lines
1.3 KiB
GDScript3
54 lines
1.3 KiB
GDScript3
|
tool
|
||
|
extends HBoxContainer
|
||
|
|
||
|
signal request_refresh_plugin(p_name)
|
||
|
signal confirm_refresh_plugin(p_name)
|
||
|
|
||
|
onready var options = $OptionButton
|
||
|
|
||
|
func _ready():
|
||
|
$RefreshButton.icon = get_icon('Reload', 'EditorIcons')
|
||
|
|
||
|
func update_items(p_plugins):
|
||
|
if not options:
|
||
|
return
|
||
|
options.clear()
|
||
|
var plugin_dirs = p_plugins.keys()
|
||
|
for idx in plugin_dirs.size():
|
||
|
var plugin_dirname = plugin_dirs[idx]
|
||
|
var plugin_name = p_plugins[plugin_dirname]
|
||
|
options.add_item(plugin_name, idx)
|
||
|
options.set_item_metadata(idx, plugin_dirname)
|
||
|
|
||
|
func select_plugin(p_name):
|
||
|
if not options:
|
||
|
return
|
||
|
if p_name == null or p_name.empty():
|
||
|
return
|
||
|
|
||
|
for idx in options.get_item_count():
|
||
|
var plugin = options.get_item_metadata(idx)
|
||
|
if plugin == p_name:
|
||
|
options.selected = options.get_item_id(idx)
|
||
|
break
|
||
|
|
||
|
func _on_RefreshButton_pressed():
|
||
|
if options.selected == -1:
|
||
|
return # nothing selected
|
||
|
|
||
|
var plugin = options.get_item_metadata(options.selected)
|
||
|
if not plugin or plugin.empty():
|
||
|
return
|
||
|
emit_signal("request_refresh_plugin", plugin)
|
||
|
|
||
|
func show_warning(p_name):
|
||
|
$ConfirmationDialog.dialog_text = """
|
||
|
Plugin `%s` is currently disabled.\n
|
||
|
Do you want to enable it now?
|
||
|
""" % [p_name]
|
||
|
$ConfirmationDialog.popup_centered()
|
||
|
|
||
|
func _on_ConfirmationDialog_confirmed():
|
||
|
var plugin = options.get_item_metadata(options.selected)
|
||
|
emit_signal('confirm_refresh_plugin', plugin)
|