1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Merge pull request #106684 from VojtaStruhar/106388-snap-settings

Change snap settings to not use LineEdits
This commit is contained in:
Thaddeus Crews
2025-10-30 10:46:05 -05:00
2 changed files with 31 additions and 24 deletions

View File

@@ -7183,9 +7183,9 @@ void Node3DEditor::edit(Node3D *p_spatial) {
}
void Node3DEditor::_snap_changed() {
snap_translate_value = snap_translate->get_text().to_float();
snap_rotate_value = snap_rotate->get_text().to_float();
snap_scale_value = snap_scale->get_text().to_float();
snap_translate_value = snap_translate->get_value();
snap_rotate_value = snap_rotate->get_value();
snap_scale_value = snap_scale->get_value();
EditorSettings::get_singleton()->set_project_metadata("3d_editor", "snap_translate_value", snap_translate_value);
EditorSettings::get_singleton()->set_project_metadata("3d_editor", "snap_rotate_value", snap_rotate_value);
@@ -7193,12 +7193,9 @@ void Node3DEditor::_snap_changed() {
}
void Node3DEditor::_snap_update() {
double snap = EDITOR_GET("interface/inspector/default_float_step");
int snap_step_decimals = Math::range_step_decimals(snap);
snap_translate->set_text(String::num(snap_translate_value, snap_step_decimals));
snap_rotate->set_text(String::num(snap_rotate_value, snap_step_decimals));
snap_scale->set_text(String::num(snap_scale_value, snap_step_decimals));
snap_translate->set_value(snap_translate_value);
snap_rotate->set_value(snap_rotate_value);
snap_scale->set_value(snap_scale_value);
}
void Node3DEditor::_xform_dialog_action() {
@@ -9906,20 +9903,30 @@ Node3DEditor::Node3DEditor() {
VBoxContainer *snap_dialog_vbc = memnew(VBoxContainer);
snap_dialog->add_child(snap_dialog_vbc);
snap_translate = memnew(LineEdit);
snap_translate->set_select_all_on_focus(true);
snap_translate->set_accessibility_name(TTRC("Translate Snap:"));
snap_dialog_vbc->add_margin_child(TTRC("Translate Snap:"), snap_translate);
snap_translate = memnew(EditorSpinSlider);
snap_translate->set_min(0.0);
snap_translate->set_step(0.001);
snap_translate->set_max(10.0);
snap_translate->set_suffix("m");
snap_translate->set_allow_greater(true);
snap_translate->set_accessibility_name(TTRC("Translate Snap"));
snap_dialog_vbc->add_margin_child(TTR("Translate Snap:"), snap_translate);
snap_rotate = memnew(LineEdit);
snap_rotate->set_select_all_on_focus(true);
snap_rotate->set_accessibility_name(TTRC("Rotate Snap (deg.):"));
snap_dialog_vbc->add_margin_child(TTRC("Rotate Snap (deg.):"), snap_rotate);
snap_rotate = memnew(EditorSpinSlider);
snap_rotate->set_min(0.0);
snap_rotate->set_step(0.1);
snap_rotate->set_max(360);
snap_rotate->set_suffix(U"°");
snap_rotate->set_accessibility_name(TTRC("Rotate Snap"));
snap_dialog_vbc->add_margin_child(TTR("Rotate Snap:"), snap_rotate);
snap_scale = memnew(LineEdit);
snap_scale->set_select_all_on_focus(true);
snap_scale->set_accessibility_name(TTRC("Scale Snap (%):"));
snap_dialog_vbc->add_margin_child(TTRC("Scale Snap (%):"), snap_scale);
snap_scale = memnew(EditorSpinSlider);
snap_scale->set_min(0.0);
snap_scale->set_step(1.0);
snap_scale->set_max(100);
snap_scale->set_suffix("%");
snap_scale->set_accessibility_name(TTRC("Scale Snap"));
snap_dialog_vbc->add_margin_child(TTR("Scale Snap:"), snap_scale);
/* SETTINGS DIALOG */

View File

@@ -799,9 +799,9 @@ private:
bool snap_enabled;
bool snap_key_enabled;
LineEdit *snap_translate = nullptr;
LineEdit *snap_rotate = nullptr;
LineEdit *snap_scale = nullptr;
EditorSpinSlider *snap_translate = nullptr;
EditorSpinSlider *snap_rotate = nullptr;
EditorSpinSlider *snap_scale = nullptr;
LineEdit *xform_translate[3];
LineEdit *xform_rotate[3];