first Prototype
This commit is contained in:
parent
e11825c698
commit
35ce267482
481 changed files with 17315 additions and 1 deletions
|
|
@ -0,0 +1,68 @@
|
|||
# Placeholders view for LocalizationEditor : MIT License
|
||||
# @author Vladimir Petrenko
|
||||
@tool
|
||||
extends VBoxContainer
|
||||
|
||||
var _data: LocalizationData
|
||||
var _split_viewport_size = 0
|
||||
var _scroll_position = 0
|
||||
|
||||
@onready var _split_ui = $Split
|
||||
@onready var _keys_ui = $Split/Keys
|
||||
@onready var _placeholders_ui = $Split/Placeholders
|
||||
@onready var _placeholders_list_ui = $Split/Placeholders/Scroll/Placeholders
|
||||
|
||||
func set_data(data: LocalizationData) -> void:
|
||||
_data = data
|
||||
_keys_ui.set_data(data)
|
||||
_placeholders_ui.set_data(data)
|
||||
_init_connections()
|
||||
|
||||
func _init_connections() -> void:
|
||||
if not _split_ui.is_connected("dragged", _on_split_dragged):
|
||||
assert(_split_ui.dragged.connect(_on_split_dragged) == OK)
|
||||
|
||||
func _process(delta):
|
||||
if _split_viewport_size != size.x:
|
||||
_split_viewport_size = size.x
|
||||
_init_split_offset()
|
||||
_update_scrolls()
|
||||
|
||||
func _init_split_offset() -> void:
|
||||
var offset = 350
|
||||
if _data:
|
||||
offset = _data.setting_placeholders_split_offset()
|
||||
_split_ui.set_split_offset(-size.x / 2 + offset)
|
||||
|
||||
func _on_split_dragged(offset: int) -> void:
|
||||
if _data != null:
|
||||
var value = -(-size.x / 2 - offset)
|
||||
_data.setting_placeholders_split_offset_put(value)
|
||||
|
||||
# Workaround for https://github.com/godotengine/godot/issues/22936
|
||||
func _update_scrolls() -> void:
|
||||
var sc = _new_scrolls_position()
|
||||
if _scroll_position != sc:
|
||||
_scroll_position = sc
|
||||
_keys_ui.set_v_scroll(_scroll_position)
|
||||
for child in _placeholders_list_ui.get_children():
|
||||
if child.has_method("set_v_scroll"):
|
||||
child.set_v_scroll(_scroll_position)
|
||||
|
||||
func _new_scrolls_position() -> int:
|
||||
if _keys_ui == null:
|
||||
return 0
|
||||
var v_1 = [_keys_ui.get_v_scroll()]
|
||||
var v_2 = []
|
||||
for child in _placeholders_list_ui.get_children():
|
||||
if child.has_method("get_v_scroll"):
|
||||
var v_child = child.get_v_scroll()
|
||||
if v_1[0] == v_child:
|
||||
v_1.append(v_child)
|
||||
else:
|
||||
v_2.append(v_child)
|
||||
if v_2.size() == 0:
|
||||
return v_1[0]
|
||||
if v_1.size() == 1:
|
||||
return v_1[0]
|
||||
return v_2[0]
|
||||
Loading…
Add table
Add a link
Reference in a new issue