words list

This commit is contained in:
BimDav
2023-11-21 15:54:05 +01:00
parent 4942845165
commit e380b30692
16 changed files with 451 additions and 5 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b8tctfnsj3prx"
path="res://.godot/imported/minus_button.png-dfc039f87b0bc10ec97b0dbf27a59b66.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/menus/minus_button.png"
dest_files=["res://.godot/imported/minus_button.png-dfc039f87b0bc10ec97b0dbf27a59b66.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c5jiyxrmmjmdb"
path="res://.godot/imported/modify_button.png-2b8dde2439c7c1a06f1d07c9263d0418.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/menus/modify_button.png"
dest_files=["res://.godot/imported/modify_button.png-2b8dde2439c7c1a06f1d07c9263d0418.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ouhnm00r8rt6"
path="res://.godot/imported/plus_button.png-df33a515f03310d6c8b09c259ab5bb94.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/menus/plus_button.png"
dest_files=["res://.godot/imported/plus_button.png-df33a515f03310d6c8b09c259ab5bb94.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://5n02dxd66fw4"
path="res://.godot/imported/save_button.png-e0abff5de73db7c1ad84988080c20282.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/menus/save_button.png"
dest_files=["res://.godot/imported/save_button.png-e0abff5de73db7c1ad84988080c20282.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+1
View File
@@ -36,6 +36,7 @@ func _on_plus_button_pressed() -> void:
element.phoneme = ""
element.type = 0
element.undo_redo = undo_redo
element.delete_pressed.connect(_on_element_delete_pressed.bind(element))
undo_redo.add_do_method(elements_container.add_child.bind(element))
undo_redo.add_do_method(elements_container.move_child.bind(element, 0))
undo_redo.add_undo_method(elements_container.remove_child.bind(element))
+10 -1
View File
@@ -28,6 +28,15 @@ layout_mode = 2
size_flags_vertical = 1
script = null
[node name="Grapheme" parent="VBoxContainer/GpListElement/TabContainer/NormalContainer" index="0"]
text = "Grapheme"
[node name="Phoneme" parent="VBoxContainer/GpListElement/TabContainer/NormalContainer" index="1"]
text = "Phoneme"
[node name="Type" parent="VBoxContainer/GpListElement/TabContainer/NormalContainer" index="2"]
text = "Type"
[node name="TextureRect" parent="VBoxContainer/GpListElement/TabContainer/NormalContainer/EditButton" index="0"]
modulate = Color(1, 1, 1, 0)
@@ -68,6 +77,6 @@ theme_override_constants/separation = 0
[editable path="VBoxContainer/GpListElement"]
[editable path="VBoxContainer/GpListElement/TabContainer/NormalContainer/EditButton"]
[editable path="VBoxContainer/GpListElement/TabContainer/EditContainer/MinusButton"]
[editable path="VBoxContainer/GpListElement/TabContainer/EditContainer/DeleteButton"]
[editable path="VBoxContainer/GpListElement/TabContainer/EditContainer/ValidateButton"]
[editable path="VBoxContainer/GpListElement/SaveButton"]
+4 -4
View File
@@ -79,10 +79,10 @@ visible = false
layout_mode = 2
theme_override_constants/separation = 0
[node name="MinusButton" parent="TabContainer/EditContainer" instance=ExtResource("3_1dwyr")]
[node name="DeleteButton" parent="TabContainer/EditContainer" instance=ExtResource("3_1dwyr")]
layout_mode = 2
[node name="TextureRect" parent="TabContainer/EditContainer/MinusButton" index="0"]
[node name="TextureRect" parent="TabContainer/EditContainer/DeleteButton" index="0"]
texture = ExtResource("5_d5iin")
[node name="GraphemeEdit" type="LineEdit" parent="TabContainer/EditContainer"]
@@ -126,9 +126,9 @@ layout_mode = 2
texture = ExtResource("4_eakjn")
[connection signal="pressed" from="TabContainer/NormalContainer/EditButton" to="." method="_on_edit_button_pressed"]
[connection signal="pressed" from="TabContainer/EditContainer/MinusButton" to="." method="_on_minus_button_pressed"]
[connection signal="pressed" from="TabContainer/EditContainer/DeleteButton" to="." method="_on_minus_button_pressed"]
[connection signal="pressed" from="TabContainer/EditContainer/ValidateButton" to="." method="_on_validate_button_pressed"]
[editable path="TabContainer/NormalContainer/EditButton"]
[editable path="TabContainer/EditContainer/MinusButton"]
[editable path="TabContainer/EditContainer/DeleteButton"]
[editable path="TabContainer/EditContainer/ValidateButton"]
+1
View File
@@ -8,6 +8,7 @@ offset_left = 1.0
offset_top = 144.0
offset_right = 121.0
offset_bottom = 264.0
size_flags_vertical = 4
theme_override_constants/margin_left = 50
theme_override_constants/margin_top = 50
theme_override_constants/margin_right = 50
+57
View File
@@ -0,0 +1,57 @@
extends Control
var word_scene: = preload("res://sources/language_tool/word_list_element.tscn")
@onready var elements_container: = $%ElementsContainer
@onready var save_button: = $%SaveButton
var undo_redo: = UndoRedo.new()
func _ready() -> void:
Database.db.query("SELECT Word, group_concat(Grapheme, ' ') as Graphemes
FROM Words
INNER JOIN ( SELECT * FROM GPsInWords ORDER BY GPsInWords.Position ) GPsInWords ON Words.ID = GPsInWords.WordID
INNER JOIN GPs WHERE GPS.ID = GPsInWords.GPID
GROUP BY Words.ID")
var results: = Database.db.query_result
for e in results:
var element: = word_scene.instantiate()
element.word = e.Word
element.graphemes = e.Graphemes
elements_container.add_child(element)
element.undo_redo = undo_redo
element.delete_pressed.connect(_on_element_delete_pressed.bind(element))
func _input(event: InputEvent) -> void:
if event.is_action_pressed("ui_undo"):
undo_redo.undo()
elif event.is_action_pressed("ui_redo"):
undo_redo.redo()
func _on_element_delete_pressed(element: Control) -> void:
undo_redo.create_action("delete")
undo_redo.add_do_method(elements_container.remove_child.bind(element))
undo_redo.add_undo_method(elements_container.add_child.bind(element))
undo_redo.add_undo_method(elements_container.move_child.bind(element, element.get_index()))
undo_redo.commit_action()
func _on_plus_button_pressed() -> void:
undo_redo.create_action("add")
var element: = word_scene.instantiate()
element.word = ""
element.graphemes = ""
element.undo_redo = undo_redo
element.delete_pressed.connect(_on_element_delete_pressed.bind(element))
undo_redo.add_do_method(elements_container.add_child.bind(element))
undo_redo.add_do_method(elements_container.move_child.bind(element, 0))
undo_redo.add_undo_method(elements_container.remove_child.bind(element))
undo_redo.commit_action()
element.edit_mode()
func _process(_delta: float) -> void:
save_button.visible = undo_redo.has_undo()
+76
View File
@@ -0,0 +1,76 @@
[gd_scene load_steps=5 format=3 uid="uid://dfw7m0a7148fu"]
[ext_resource type="Script" path="res://sources/language_tool/word_list.gd" id="1_m0usq"]
[ext_resource type="PackedScene" uid="uid://dx33ijlgd8m3w" path="res://sources/language_tool/word_list_element.tscn" id="2_roh06"]
[ext_resource type="PackedScene" uid="uid://dbl3r8426473v" path="res://sources/language_tool/plus_button.tscn" id="3_a6pn6"]
[ext_resource type="Texture2D" uid="uid://5n02dxd66fw4" path="res://assets/menus/save_button.png" id="4_ar78n"]
[node name="WordList" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_m0usq")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 0
[node name="WordListElement" parent="VBoxContainer" instance=ExtResource("2_roh06")]
layout_mode = 2
script = null
[node name="Word" parent="VBoxContainer/WordListElement/TabContainer/NormalContainer" index="0"]
text = "Word"
[node name="Graphemes" parent="VBoxContainer/WordListElement/TabContainer/NormalContainer" index="1"]
text = "Graphemes"
[node name="EditButton" parent="VBoxContainer/WordListElement/TabContainer/NormalContainer" index="2"]
modulate = Color(1, 1, 1, 0)
[node name="PlusButton" parent="VBoxContainer/WordListElement" instance=ExtResource("3_a6pn6")]
custom_minimum_size = Vector2(120, 2.08165e-12)
layout_mode = 2
size_flags_horizontal = 0
tooltip_text = "Add GP"
[node name="SaveButton" parent="VBoxContainer/WordListElement" instance=ExtResource("3_a6pn6")]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 2.08165e-12)
layout_mode = 2
size_flags_horizontal = 8
tooltip_text = "Add GP"
[node name="TextureRect" parent="VBoxContainer/WordListElement/SaveButton" index="0"]
texture = ExtResource("4_ar78n")
[node name="ColorRect" type="ColorRect" parent="VBoxContainer"]
custom_minimum_size = Vector2(2.08165e-12, 18)
layout_mode = 2
color = Color(0, 0, 0, 1)
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="ElementsContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[connection signal="pressed" from="VBoxContainer/WordListElement/PlusButton" to="." method="_on_plus_button_pressed"]
[editable path="VBoxContainer/WordListElement"]
[editable path="VBoxContainer/WordListElement/TabContainer/NormalContainer/EditButton"]
[editable path="VBoxContainer/WordListElement/TabContainer/EditContainer/MinusButton"]
[editable path="VBoxContainer/WordListElement/TabContainer/EditContainer/ValidateButton"]
[editable path="VBoxContainer/WordListElement/SaveButton"]
@@ -0,0 +1,62 @@
extends MarginContainer
signal delete_pressed()
@onready var word_label: = $%Word
@onready var graphemes_label: = $%Graphemes
@onready var word_edit: = $%WordEdit
@onready var graphemes_edit: = $%GraphemesEdit
@onready var tab_container: = $TabContainer
var word: = "":
set = set_word
var graphemes: = "":
set = set_graphemes
var undo_redo: UndoRedo
func set_word(p_word: String) -> void:
word = p_word
if word_label:
word_label.text = word
if word_edit:
word_edit.text = word
func set_graphemes(p_graphemes: String) -> void:
graphemes = p_graphemes
if graphemes_label:
graphemes_label.text = graphemes
if graphemes_edit:
graphemes_edit.text = graphemes
func _ready() -> void:
set_word(word)
set_graphemes(graphemes)
func _on_edit_button_pressed() -> void:
edit_mode()
func edit_mode() -> void:
tab_container.current_tab = 1
func _on_minus_button_pressed() -> void:
delete_pressed.emit()
func _on_validate_button_pressed() -> void:
undo_redo.create_action("validated")
undo_redo.add_do_property(self, "graphemes", graphemes_edit.text)
undo_redo.add_do_property(self, "word", word_edit.text)
undo_redo.add_undo_property(self, "graphemes", graphemes)
undo_redo.add_undo_property(self, "word", word)
undo_redo.commit_action()
tab_container.current_tab = 0
func _on_graphemes_edit_text_changed(new_text: String) -> void:
pass # Replace with function body.
@@ -0,0 +1,104 @@
[gd_scene load_steps=7 format=3 uid="uid://dx33ijlgd8m3w"]
[ext_resource type="PackedScene" uid="uid://dbl3r8426473v" path="res://sources/language_tool/plus_button.tscn" id="1_g3tt5"]
[ext_resource type="Script" path="res://sources/language_tool/word_list_element.gd" id="1_q2ekb"]
[ext_resource type="Texture2D" uid="uid://c5jiyxrmmjmdb" path="res://assets/menus/modify_button.png" id="2_i6x6b"]
[ext_resource type="Texture2D" uid="uid://b8tctfnsj3prx" path="res://assets/menus/minus_button.png" id="3_mgblq"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_emsyu"]
bg_color = Color(0.254902, 0.329412, 0.572549, 1)
border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_t1yui"]
[node name="WordListElement" type="MarginContainer"]
anchors_preset = 14
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_top = -110.0
offset_bottom = 110.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_q2ekb")
[node name="Panel" type="Panel" parent="."]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_emsyu")
[node name="TabContainer" type="TabContainer" parent="."]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_t1yui")
tabs_visible = false
use_hidden_tabs_for_min_size = true
[node name="NormalContainer" type="HBoxContainer" parent="TabContainer"]
layout_mode = 2
theme_override_constants/separation = 0
[node name="Word" type="Label" parent="TabContainer/NormalContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 100
text = "Bonjour"
horizontal_alignment = 1
[node name="Graphemes" type="Label" parent="TabContainer/NormalContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 100
text = "b on j ou r"
horizontal_alignment = 1
[node name="EditButton" parent="TabContainer/NormalContainer" instance=ExtResource("1_g3tt5")]
custom_minimum_size = Vector2(120, 120)
layout_mode = 2
[node name="TextureRect" parent="TabContainer/NormalContainer/EditButton" index="0"]
texture = ExtResource("2_i6x6b")
[node name="EditContainer" type="HBoxContainer" parent="TabContainer"]
visible = false
layout_mode = 2
theme_override_constants/separation = 0
[node name="MinusButton" parent="TabContainer/EditContainer" instance=ExtResource("1_g3tt5")]
layout_mode = 2
[node name="TextureRect" parent="TabContainer/EditContainer/MinusButton" index="0"]
texture = ExtResource("3_mgblq")
[node name="WordEdit" type="LineEdit" parent="TabContainer/EditContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 100
text = "bonjour"
alignment = 1
[node name="GraphemesEdit" type="LineEdit" parent="TabContainer/EditContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 100
text = "b on j ou r"
alignment = 1
[node name="ValidateButton" parent="TabContainer/EditContainer" instance=ExtResource("1_g3tt5")]
custom_minimum_size = Vector2(120, 120)
layout_mode = 2
[node name="TextureRect" parent="TabContainer/EditContainer/ValidateButton" index="0"]
texture = ExtResource("2_i6x6b")
[connection signal="pressed" from="TabContainer/NormalContainer/EditButton" to="." method="_on_edit_button_pressed"]
[connection signal="pressed" from="TabContainer/EditContainer/MinusButton" to="." method="_on_minus_button_pressed"]
[connection signal="text_changed" from="TabContainer/EditContainer/GraphemesEdit" to="." method="_on_graphemes_edit_text_changed"]
[connection signal="pressed" from="TabContainer/EditContainer/ValidateButton" to="." method="_on_validate_button_pressed"]
[editable path="TabContainer/NormalContainer/EditButton"]
[editable path="TabContainer/EditContainer/MinusButton"]
[editable path="TabContainer/EditContainer/ValidateButton"]