Skip to content

Commit 1155836

Browse files
Editor: Fix/Improve number fields (#2672)
Number fields defaulted to a minimum of 0, which meant negative offsets were no longer possible. This has been fixed. Additionally the display of integer fields (when step is 1) no longer displays a fractional .0 at all times. Replaces the Scale SpinBoxes in the character editor with NumberField.
1 parent 92216c7 commit 1155836

File tree

6 files changed

+37
-22
lines changed

6 files changed

+37
-22
lines changed

addons/dialogic/Editor/CharacterEditor/char_edit_p_section_layout.gd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ func _get_title() -> String:
1010

1111
func _load_portrait_data(data:Dictionary) -> void:
1212
%IgnoreScale.set_pressed_no_signal(data.get('ignore_char_scale', false))
13-
%PortraitScale.value = data.get('scale', 1.0)*100
13+
%PortraitScale.set_value(data.get('scale', 1.0)*100)
1414
%PortraitOffset.set_value(data.get('offset', Vector2()))
1515
%PortraitOffset._load_display_info({'step':1})
1616
%PortraitMirror.set_pressed_no_signal(data.get('mirror', false))
1717

1818

19-
func _on_portrait_scale_value_changed(value:float) -> void:
19+
func _on_portrait_scale_value_changed(_property:String, value:float) -> void:
2020
var data: Dictionary = selected_item.get_metadata(0)
2121
data['scale'] = value/100.0
2222
update_preview.emit()
@@ -37,7 +37,7 @@ func _on_ignore_scale_toggled(button_pressed:bool) -> void:
3737
changed.emit()
3838

3939

40-
func _on_portrait_offset_value_changed(property:String, value:Vector2) -> void:
40+
func _on_portrait_offset_value_changed(_property:String, value:Vector2) -> void:
4141
var data: Dictionary = selected_item.get_metadata(0)
4242
data['offset'] = value
4343
update_preview.emit()

addons/dialogic/Editor/CharacterEditor/char_edit_p_section_layout.tscn

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
[gd_scene load_steps=3 format=3 uid="uid://crke8suvv52c6"]
1+
[gd_scene load_steps=4 format=3 uid="uid://crke8suvv52c6"]
22

33
[ext_resource type="Script" uid="uid://uv6dx3sofwae" path="res://addons/dialogic/Editor/CharacterEditor/char_edit_p_section_layout.gd" id="1_76vf2"]
44
[ext_resource type="PackedScene" uid="uid://dtimnsj014cu" path="res://addons/dialogic/Editor/Events/Fields/field_vector2.tscn" id="2_c8kyi"]
5+
[ext_resource type="PackedScene" uid="uid://kdpp3mibml33" path="res://addons/dialogic/Editor/Events/Fields/field_number.tscn" id="2_daw3l"]
56

67
[node name="Layout" type="HFlowContainer"]
78
offset_right = 428.0
@@ -25,13 +26,13 @@ layout_mode = 2
2526
layout_mode = 2
2627
text = "Scale:"
2728

28-
[node name="PortraitScale" type="SpinBox" parent="HBoxContainer"]
29+
[node name="PortraitScale" parent="HBoxContainer" instance=ExtResource("2_daw3l")]
2930
unique_name_in_owner = true
3031
layout_mode = 2
31-
tooltip_text = "A scale to be applied on top of the main scale
32-
(unless ignore main scale is pressed)."
33-
value = 100.0
34-
allow_greater = true
32+
mode = 1
33+
step = 1.0
34+
min_value = 0.0
35+
max_value = 100.0
3536
suffix = "%"
3637

3738
[node name="HBoxContainer2" type="HBoxContainer" parent="."]

addons/dialogic/Editor/CharacterEditor/char_edit_section_portraits.gd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func main_portrait_settings_update(_something=null, _value=null) -> void:
3333
character_editor.something_changed()
3434

3535

36-
func default_portrait_changed(property:String, value:String) -> void:
36+
func default_portrait_changed(_property:String, value:String) -> void:
3737
character_editor.current_resource.default_portrait = value
3838
character_editor.update_default_portrait_star(value)
3939

@@ -47,7 +47,7 @@ func _load_character(resource:DialogicCharacter) -> void:
4747
loading = true
4848
%DefaultPortraitPicker.set_value(resource.default_portrait)
4949

50-
%MainScale.value = 100*resource.scale
50+
%MainScale.set_value(100*resource.scale)
5151
%MainOffset.set_value(resource.offset)
5252
%MainMirror.button_pressed = resource.mirror
5353
loading = false
@@ -69,7 +69,7 @@ func _save_changes(resource:DialogicCharacter) -> DialogicCharacter:
6969

7070

7171
## Get suggestions for DefaultPortraitPicker
72-
func suggest_portraits(search:String) -> Dictionary:
72+
func suggest_portraits(_search:String) -> Dictionary:
7373
var suggestions := {}
7474
for portrait in character_editor.get_updated_portrait_dict().keys():
7575
suggestions[portrait] = {'value':portrait}

addons/dialogic/Editor/CharacterEditor/char_edit_section_portraits.tscn

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
[gd_scene load_steps=4 format=3 uid="uid://cmrgbo8qi145o"]
1+
[gd_scene load_steps=5 format=3 uid="uid://cmrgbo8qi145o"]
22

33
[ext_resource type="Script" uid="uid://yulfiomudcob" path="res://addons/dialogic/Editor/CharacterEditor/char_edit_section_portraits.gd" id="1_6sxsl"]
44
[ext_resource type="PackedScene" uid="uid://dpwhshre1n4t6" path="res://addons/dialogic/Editor/Events/Fields/field_options_dynamic.tscn" id="2_birla"]
55
[ext_resource type="PackedScene" uid="uid://dtimnsj014cu" path="res://addons/dialogic/Editor/Events/Fields/field_vector2.tscn" id="3_vcvin"]
6+
[ext_resource type="PackedScene" uid="uid://kdpp3mibml33" path="res://addons/dialogic/Editor/Events/Fields/field_number.tscn" id="4_w4pvv"]
67

78
[node name="Portraits" type="GridContainer"]
89
offset_right = 453.0
@@ -29,15 +30,26 @@ layout_mode = 2
2930
size_flags_vertical = 0
3031
text = "Main Scale"
3132

32-
[node name="MainScale" type="SpinBox" parent="."]
33+
[node name="MainScaleOld" type="SpinBox" parent="."]
3334
unique_name_in_owner = true
35+
visible = false
3436
layout_mode = 2
3537
size_flags_horizontal = 8
3638
value = 100.0
3739
allow_greater = true
3840
alignment = 1
3941
suffix = "%"
4042

43+
[node name="MainScale" parent="." instance=ExtResource("4_w4pvv")]
44+
unique_name_in_owner = true
45+
layout_mode = 2
46+
size_flags_horizontal = 8
47+
mode = 1
48+
step = 1.0
49+
min_value = 0.0
50+
max_value = 100.0
51+
suffix = "%"
52+
4153
[node name="Label2" type="Label" parent="."]
4254
layout_mode = 2
4355
size_flags_vertical = 0

addons/dialogic/Editor/Events/Fields/field_number.gd

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,12 @@ func _on_gui_input(event: InputEvent) -> void:
146146

147147
func _on_increment_button_down(button: NodePath) -> void:
148148
_on_value_text_submitted(str(value+step))
149-
_holding_button(1.0, get_node(button) as BaseButton)
149+
_holding_button(1, get_node(button) as BaseButton)
150150

151151

152152
func _on_decrement_button_down(button: NodePath) -> void:
153153
_on_value_text_submitted(str(value-step))
154-
_holding_button(-1.0, get_node(button) as BaseButton)
154+
_holding_button(-1, get_node(button) as BaseButton)
155155

156156

157157
func _on_value_text_submitted(new_text: String, no_signal:= false) -> void:
@@ -165,10 +165,14 @@ func _on_value_text_submitted(new_text: String, no_signal:= false) -> void:
165165
value = snapped(temp, step)
166166
elif allow_string:
167167
value = new_text
168-
%Value.text = str(value).pad_decimals(
169-
max(
170-
len(str(float(step)-floorf(step)))-2,
171-
len(str(float(value)-floorf(value)))-2,))
168+
169+
if int(step) == step and step != 0:
170+
%Value.text = str(int(value))
171+
else:
172+
%Value.text = str(value).pad_decimals(
173+
max(
174+
len(str(float(step)-floorf(step)))-2,
175+
len(str(float(value)-floorf(value)))-2,))
172176
if not no_signal:
173177
value_changed.emit(property_name, value)
174178
# Visually disable Up or Down arrow when limit is reached to better indicate a limit has been hit

addons/dialogic/Editor/Events/Fields/field_number.tscn

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ grow_horizontal = 2
4040
grow_vertical = 2
4141
theme_override_constants/separation = 0
4242
script = ExtResource("1_0jdnn")
43-
min_value = 0.0
44-
max_value = null
4543

4644
[node name="Value_Panel" type="PanelContainer" parent="."]
4745
layout_mode = 2

0 commit comments

Comments
 (0)