63 lines
1.9 KiB
GDScript3
63 lines
1.9 KiB
GDScript3
|
|
@tool
|
||
|
|
extends Control
|
||
|
|
|
||
|
|
@onready var copy_button: Button = %CopyButton
|
||
|
|
@onready var redirect_uri = %RedirectURI
|
||
|
|
@onready var client_id_line_edit = %ClientIDLineEdit
|
||
|
|
@onready var client_id_warning = %ClientIDWarning
|
||
|
|
@onready var help_icon = %HelpIcon
|
||
|
|
@onready var warning_icon = %WarningIcon
|
||
|
|
|
||
|
|
|
||
|
|
func _ready():
|
||
|
|
help_icon.texture = get_theme_icon("Help", "EditorIcons")
|
||
|
|
warning_icon.texture = get_theme_icon("StatusWarning", "EditorIcons")
|
||
|
|
copy_button.icon = get_theme_icon("ActionCopy", "EditorIcons")
|
||
|
|
copy_button.tooltip_text = "Copy Redirect URL to clipboard"
|
||
|
|
client_id_warning.add_theme_color_override(
|
||
|
|
"font_color",
|
||
|
|
EditorInterface.get_editor_settings()\
|
||
|
|
.get_setting("text_editor/theme/highlighting/comment_markers/warning_color")
|
||
|
|
)
|
||
|
|
|
||
|
|
visibility_changed.connect(on_visibility_changed)
|
||
|
|
|
||
|
|
|
||
|
|
func on_visibility_changed():
|
||
|
|
if visible:
|
||
|
|
update_visuals()
|
||
|
|
ProjectSettings.settings_changed.connect(update_visuals)
|
||
|
|
else:
|
||
|
|
if ProjectSettings.settings_changed.is_connected(update_visuals):
|
||
|
|
ProjectSettings.settings_changed.disconnect(update_visuals)
|
||
|
|
|
||
|
|
|
||
|
|
func update_visuals():
|
||
|
|
var client_id = VSTSettings.get_setting(VSTSettings.settings.client_id)
|
||
|
|
var redirect_host = VSTSettings.get_setting(VSTSettings.settings.redirect_host)
|
||
|
|
var redirect_port = VSTSettings.get_setting(VSTSettings.settings.redirect_port)
|
||
|
|
var uuid = VSTSettings.get_setting(VSTSettings.settings.uuid)
|
||
|
|
redirect_uri.text = redirect_host + str(redirect_port) + "/" + uuid
|
||
|
|
client_id_line_edit.text = client_id
|
||
|
|
if client_id == "":
|
||
|
|
client_id_warning.show()
|
||
|
|
warning_icon.show()
|
||
|
|
else:
|
||
|
|
client_id_warning.hide()
|
||
|
|
warning_icon.hide()
|
||
|
|
|
||
|
|
|
||
|
|
func copy_redirect_uri():
|
||
|
|
DisplayServer.clipboard_set(redirect_uri.text)
|
||
|
|
|
||
|
|
|
||
|
|
func client_id_submitted():
|
||
|
|
ProjectSettings.set_setting(
|
||
|
|
"very_simple_twitch/"+VSTSettings.settings.client_id.path,
|
||
|
|
client_id_line_edit.text
|
||
|
|
)
|
||
|
|
ProjectSettings.save()
|
||
|
|
|
||
|
|
func open_url(meta):
|
||
|
|
OS.shell_open(meta)
|