first Prototype
This commit is contained in:
parent
e11825c698
commit
35ce267482
481 changed files with 17315 additions and 1 deletions
|
|
@ -0,0 +1,92 @@
|
|||
# Locale UI for LocalizationEditor : MIT License
|
||||
# @author Vladimir Petrenko
|
||||
@tool
|
||||
extends MarginContainer
|
||||
|
||||
var _locale
|
||||
var _data: LocalizationData
|
||||
|
||||
@onready var _selection_ui = $HBox/Selection as CheckBox
|
||||
@onready var _locale_ui = $HBox/Locale as Label
|
||||
@onready var _eye_ui = $HBox/Eye as TextureButton
|
||||
|
||||
const IconOpen = preload("res://addons/localization_editor/icons/Open.svg")
|
||||
const IconClose = preload("res://addons/localization_editor/icons/Close.svg")
|
||||
|
||||
func locale():
|
||||
return _locale
|
||||
|
||||
func set_data(locale, data: LocalizationData) -> void:
|
||||
_locale = locale
|
||||
_data = data
|
||||
_draw_view()
|
||||
_init_connections()
|
||||
|
||||
func _draw_view() -> void:
|
||||
_selection_ui.text = _locale
|
||||
_locale_ui.text = LocalizationLocalesList.label_by_code(_locale)
|
||||
_selection_ui_state()
|
||||
_eye_ui_state()
|
||||
|
||||
func _selection_ui_state() -> void:
|
||||
_selection_ui.set_pressed(_data.find_locale(_locale) != null)
|
||||
|
||||
func _eye_ui_state() -> void:
|
||||
_eye_ui.set_pressed(not _data.is_locale_visible(_locale))
|
||||
_update_view_eye(_selection_ui.is_pressed())
|
||||
|
||||
func _init_connections() -> void:
|
||||
if not _selection_ui.is_connected("toggled", _on_selection_changed):
|
||||
assert(_selection_ui.toggled.connect(_on_selection_changed) == OK)
|
||||
if not _eye_ui.is_connected("toggled", _on_eye_changed):
|
||||
assert(_eye_ui.toggled.connect(_on_eye_changed) == OK)
|
||||
|
||||
func _on_selection_changed(value) -> void:
|
||||
if value == true:
|
||||
_data.add_locale(_locale)
|
||||
_update_view_eye(value)
|
||||
else:
|
||||
_show_confirm_dialog()
|
||||
|
||||
func _show_confirm_dialog() -> void:
|
||||
var root = get_tree().get_root()
|
||||
var confirm_dialog = ConfirmationDialog.new()
|
||||
confirm_dialog.title = "Confirm"
|
||||
confirm_dialog.dialog_text = "Are you sure to delete locale with all translations and remaps?"
|
||||
confirm_dialog.confirmed.connect(_on_confirm_dialog_ok.bind(root, confirm_dialog))
|
||||
confirm_dialog.cancelled.connect(_on_confirm_dialog_cancelled.bind(root, confirm_dialog))
|
||||
root.add_child(confirm_dialog)
|
||||
confirm_dialog.popup_centered()
|
||||
|
||||
func _on_confirm_dialog_ok(root, confirm_dialog) -> void:
|
||||
_data.del_locale(_locale)
|
||||
_update_view_eye(false)
|
||||
_confirm_dialog_remove(root, confirm_dialog)
|
||||
|
||||
func _on_confirm_dialog_cancelled(root, confirm_dialog) -> void:
|
||||
_selection_ui.set_pressed(true)
|
||||
_confirm_dialog_remove(root, confirm_dialog)
|
||||
|
||||
func _confirm_dialog_remove(root, confirm_dialog) -> void:
|
||||
root.remove_child(confirm_dialog)
|
||||
confirm_dialog.queue_free()
|
||||
|
||||
func _update_view_eye(value: bool) -> void:
|
||||
if value:
|
||||
_eye_ui.show()
|
||||
_update_visible_icon_from_data()
|
||||
else:
|
||||
_eye_ui.hide()
|
||||
|
||||
func _update_visible_icon_from_data() -> void:
|
||||
_update_visible_icon(_data.is_locale_visible(_locale))
|
||||
|
||||
func _on_eye_changed(value) -> void:
|
||||
if value:
|
||||
_data.setting_locales_visibility_put(_locale)
|
||||
else:
|
||||
_data.setting_locales_visibility_del(_locale)
|
||||
_update_visible_icon(!value)
|
||||
|
||||
func _update_visible_icon(value: bool) -> void:
|
||||
_eye_ui.texture_normal = IconOpen if value else IconClose
|
||||
Loading…
Add table
Add a link
Reference in a new issue