Added copy to tracing builder
This commit is contained in:
@@ -6,6 +6,7 @@ extends Control
|
||||
@onready var upper_container: = %UpperContainer
|
||||
@onready var letter_picker: = %LetterPicker
|
||||
@onready var save_ok: = %SaveOk
|
||||
@onready var copy_from: = %CopyFrom
|
||||
|
||||
const extension: = ".csv"
|
||||
|
||||
@@ -14,6 +15,8 @@ var current_letter: = -1
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
copy_from.get_popup().id_pressed.connect(_on_copy_from_id_pressed)
|
||||
|
||||
lower_container.gradient = gradient
|
||||
upper_container.gradient = gradient
|
||||
|
||||
@@ -32,6 +35,7 @@ func _find_all_letters() -> void:
|
||||
if not letter in letters:
|
||||
letters.append(letter)
|
||||
letter_picker.add_item(letter)
|
||||
copy_from.get_popup().add_item(letter)
|
||||
|
||||
|
||||
func _next_letter() -> void:
|
||||
@@ -43,14 +47,8 @@ func _next_letter() -> void:
|
||||
lower_container.grapheme_label.text = letters[current_letter].to_lower()
|
||||
upper_container.grapheme_label.text = letters[current_letter].to_upper()
|
||||
|
||||
Database.db.query("Select LowerTracingPath, UpperTracingPath FROM LettersTracingData WHERE Letter = '" + letters[current_letter] + "'")
|
||||
|
||||
if not Database.db.query_result.is_empty():
|
||||
var lower_path: String = Database.db.query_result[0]["LowerTracingPath"]
|
||||
var upper_path: String = Database.db.query_result[0]["UpperTracingPath"]
|
||||
|
||||
_load_segments(lower_container, lower_path)
|
||||
_load_segments(upper_container, upper_path)
|
||||
_load_segments(lower_container, lower_path(letters[current_letter]))
|
||||
_load_segments(upper_container, upper_path(letters[current_letter]))
|
||||
|
||||
letter_picker.selected = current_letter
|
||||
save_ok.visible = true
|
||||
@@ -85,21 +83,21 @@ func _save_segments(segments: Array, path: String) -> void:
|
||||
file.close()
|
||||
|
||||
|
||||
func lower_path(letter: String) -> String:
|
||||
return letter + "_lower"
|
||||
|
||||
|
||||
func upper_path(letter: String) -> String:
|
||||
return letter + "_upper"
|
||||
|
||||
|
||||
func real_path(path: String) -> String:
|
||||
return Database.base_path.path_join(Database.language).path_join(Database.tracing_data_folder).path_join(path) + extension
|
||||
|
||||
|
||||
func _on_save_button_pressed() -> void:
|
||||
var lower_path: = letters[current_letter] + "_lower"
|
||||
var upper_path: = letters[current_letter] + "_upper"
|
||||
|
||||
_save_segments(lower_container.segments_container.get_children(), lower_path)
|
||||
_save_segments(upper_container.segments_container.get_children(), upper_path)
|
||||
|
||||
Database.db.query("Select LowerTracingPath, UpperTracingPath FROM LettersTracingData WHERE Letter = '" + letters[current_letter] + "'")
|
||||
|
||||
if Database.db.query_result.is_empty():
|
||||
Database.db.query("INSERT INTO LettersTracingData (Letter, LowerTracingPath, UpperTracingPath) VALUES ('" + letters[current_letter] + "','" + lower_path + "','" + upper_path + "')")
|
||||
_save_segments(lower_container.segments_container.get_children(), lower_path(letters[current_letter]))
|
||||
_save_segments(upper_container.segments_container.get_children(), upper_path(letters[current_letter]))
|
||||
|
||||
save_ok.visible = true
|
||||
|
||||
@@ -113,6 +111,11 @@ func _on_letter_picker_item_selected(index: int) -> void:
|
||||
_next_letter()
|
||||
|
||||
|
||||
func _on_copy_from_id_pressed(index: int) -> void:
|
||||
_load_segments(lower_container, lower_path(letters[index]))
|
||||
_load_segments(upper_container, upper_path(letters[index]))
|
||||
|
||||
|
||||
func _on_lower_container_changed() -> void:
|
||||
save_ok.visible = false
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://d2dsqx38l6yqc"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://d2dsqx38l6yqc"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dbl3r8426473v" path="res://sources/language_tool/plus_button.tscn" id="1_kgjbj"]
|
||||
[ext_resource type="Script" path="res://sources/language_tool/tracing_builder.gd" id="1_rm5fr"]
|
||||
@@ -13,6 +13,13 @@ colors = PackedColorArray(1, 0, 0, 1, 1, 0.983333, 0, 1, 0, 1, 0.0833333, 1, 0,
|
||||
metadata/_snap_enabled = true
|
||||
metadata/_snap_count = 6
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v3vyn"]
|
||||
bg_color = Color(0.121569, 0.121569, 0.470588, 1)
|
||||
corner_radius_top_left = 25
|
||||
corner_radius_top_right = 25
|
||||
corner_radius_bottom_right = 25
|
||||
corner_radius_bottom_left = 25
|
||||
|
||||
[node name="TracingBuilder" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
@@ -66,7 +73,7 @@ layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.560784, 0, 0, 1)
|
||||
theme_override_colors/font_outline_color = Color(1, 1, 1, 1)
|
||||
theme_override_font_sizes/font_size = 42
|
||||
text = "- Unsaved changes when switching letters will be lost"
|
||||
text = "- Unsaved changes will be lost"
|
||||
|
||||
[node name="SaveButton" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2" instance=ExtResource("1_kgjbj")]
|
||||
layout_mode = 2
|
||||
@@ -83,14 +90,39 @@ expand_mode = 1
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 42
|
||||
theme_override_constants/margin_bottom = 42
|
||||
theme_override_constants/margin_left = 15
|
||||
theme_override_constants/margin_right = 15
|
||||
|
||||
[node name="LetterPicker" type="OptionButton" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer"]
|
||||
[node name="VBoxContainer3" type="VBoxContainer" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label" type="Label" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "Select letter:"
|
||||
|
||||
[node name="LetterPicker" type="OptionButton" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer/VBoxContainer3"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 64
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 15
|
||||
theme_override_constants/margin_right = 15
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer2"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_v3vyn")
|
||||
|
||||
[node name="CopyFrom" type="MenuButton" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer2/PanelContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 42
|
||||
text = "Copy from"
|
||||
|
||||
[node name="BackButton" parent="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2" instance=ExtResource("1_kgjbj")]
|
||||
layout_mode = 2
|
||||
|
||||
@@ -109,7 +141,7 @@ layout_mode = 2
|
||||
[connection signal="gui_input" from="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/SaveButton/SaveOk" to="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/SaveButton" method="_on_texture_rect_gui_input"]
|
||||
[connection signal="mouse_entered" from="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/SaveButton/SaveOk" to="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/SaveButton" method="_on_texture_rect_mouse_entered"]
|
||||
[connection signal="mouse_exited" from="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/SaveButton/SaveOk" to="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/SaveButton" method="_on_texture_rect_mouse_exited"]
|
||||
[connection signal="item_selected" from="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer/LetterPicker" to="." method="_on_letter_picker_item_selected"]
|
||||
[connection signal="item_selected" from="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/MarginContainer/VBoxContainer3/LetterPicker" to="." method="_on_letter_picker_item_selected"]
|
||||
[connection signal="pressed" from="VBoxContainer/PanelContainer/MarginContainer/HBoxContainer2/BackButton" to="." method="_on_back_button_pressed"]
|
||||
[connection signal="changed" from="VBoxContainer/LowerContainer" to="." method="_on_lower_container_changed"]
|
||||
[connection signal="changed" from="VBoxContainer/UpperContainer" to="." method="_on_upper_container_changed"]
|
||||
|
||||
Reference in New Issue
Block a user