Skip to content

Commit fd89a17

Browse files
committed
Merge pull request #106684 from VojtaStruhar/106388-snap-settings
Change snap settings to not use LineEdits
2 parents 8ab9071 + 59b1836 commit fd89a17

File tree

2 files changed

+33
-26
lines changed

2 files changed

+33
-26
lines changed

editor/scene/3d/node_3d_editor_plugin.cpp

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7183,22 +7183,19 @@ void Node3DEditor::edit(Node3D *p_spatial) {
71837183
}
71847184

71857185
void Node3DEditor::_snap_changed() {
7186-
snap_translate_value = snap_translate->get_text().to_float();
7187-
snap_rotate_value = snap_rotate->get_text().to_float();
7188-
snap_scale_value = snap_scale->get_text().to_float();
7186+
snap_translate_value = snap_translate->get_value();
7187+
snap_rotate_value = snap_rotate->get_value();
7188+
snap_scale_value = snap_scale->get_value();
71897189

71907190
EditorSettings::get_singleton()->set_project_metadata("3d_editor", "snap_translate_value", snap_translate_value);
71917191
EditorSettings::get_singleton()->set_project_metadata("3d_editor", "snap_rotate_value", snap_rotate_value);
71927192
EditorSettings::get_singleton()->set_project_metadata("3d_editor", "snap_scale_value", snap_scale_value);
71937193
}
71947194

71957195
void Node3DEditor::_snap_update() {
7196-
double snap = EDITOR_GET("interface/inspector/default_float_step");
7197-
int snap_step_decimals = Math::range_step_decimals(snap);
7198-
7199-
snap_translate->set_text(String::num(snap_translate_value, snap_step_decimals));
7200-
snap_rotate->set_text(String::num(snap_rotate_value, snap_step_decimals));
7201-
snap_scale->set_text(String::num(snap_scale_value, snap_step_decimals));
7196+
snap_translate->set_value(snap_translate_value);
7197+
snap_rotate->set_value(snap_rotate_value);
7198+
snap_scale->set_value(snap_scale_value);
72027199
}
72037200

72047201
void Node3DEditor::_xform_dialog_action() {
@@ -9906,20 +9903,30 @@ Node3DEditor::Node3DEditor() {
99069903
VBoxContainer *snap_dialog_vbc = memnew(VBoxContainer);
99079904
snap_dialog->add_child(snap_dialog_vbc);
99089905

9909-
snap_translate = memnew(LineEdit);
9910-
snap_translate->set_select_all_on_focus(true);
9911-
snap_translate->set_accessibility_name(TTRC("Translate Snap:"));
9912-
snap_dialog_vbc->add_margin_child(TTRC("Translate Snap:"), snap_translate);
9913-
9914-
snap_rotate = memnew(LineEdit);
9915-
snap_rotate->set_select_all_on_focus(true);
9916-
snap_rotate->set_accessibility_name(TTRC("Rotate Snap (deg.):"));
9917-
snap_dialog_vbc->add_margin_child(TTRC("Rotate Snap (deg.):"), snap_rotate);
9918-
9919-
snap_scale = memnew(LineEdit);
9920-
snap_scale->set_select_all_on_focus(true);
9921-
snap_scale->set_accessibility_name(TTRC("Scale Snap (%):"));
9922-
snap_dialog_vbc->add_margin_child(TTRC("Scale Snap (%):"), snap_scale);
9906+
snap_translate = memnew(EditorSpinSlider);
9907+
snap_translate->set_min(0.0);
9908+
snap_translate->set_step(0.001);
9909+
snap_translate->set_max(10.0);
9910+
snap_translate->set_suffix("m");
9911+
snap_translate->set_allow_greater(true);
9912+
snap_translate->set_accessibility_name(TTRC("Translate Snap"));
9913+
snap_dialog_vbc->add_margin_child(TTR("Translate Snap:"), snap_translate);
9914+
9915+
snap_rotate = memnew(EditorSpinSlider);
9916+
snap_rotate->set_min(0.0);
9917+
snap_rotate->set_step(0.1);
9918+
snap_rotate->set_max(360);
9919+
snap_rotate->set_suffix(U"°");
9920+
snap_rotate->set_accessibility_name(TTRC("Rotate Snap"));
9921+
snap_dialog_vbc->add_margin_child(TTR("Rotate Snap:"), snap_rotate);
9922+
9923+
snap_scale = memnew(EditorSpinSlider);
9924+
snap_scale->set_min(0.0);
9925+
snap_scale->set_step(1.0);
9926+
snap_scale->set_max(100);
9927+
snap_scale->set_suffix("%");
9928+
snap_scale->set_accessibility_name(TTRC("Scale Snap"));
9929+
snap_dialog_vbc->add_margin_child(TTR("Scale Snap:"), snap_scale);
99239930

99249931
/* SETTINGS DIALOG */
99259932

editor/scene/3d/node_3d_editor_plugin.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -799,9 +799,9 @@ class Node3DEditor : public VBoxContainer {
799799

800800
bool snap_enabled;
801801
bool snap_key_enabled;
802-
LineEdit *snap_translate = nullptr;
803-
LineEdit *snap_rotate = nullptr;
804-
LineEdit *snap_scale = nullptr;
802+
EditorSpinSlider *snap_translate = nullptr;
803+
EditorSpinSlider *snap_rotate = nullptr;
804+
EditorSpinSlider *snap_scale = nullptr;
805805

806806
LineEdit *xform_translate[3];
807807
LineEdit *xform_rotate[3];

0 commit comments

Comments
 (0)