@@ -7050,22 +7050,19 @@ void Node3DEditor::edit(Node3D *p_spatial) {
70507050}
70517051
70527052void Node3DEditor::_snap_changed () {
7053- snap_translate_value = snap_translate->get_text (). to_float ();
7054- snap_rotate_value = snap_rotate->get_text (). to_float ();
7055- snap_scale_value = snap_scale->get_text (). to_float ();
7053+ snap_translate_value = snap_translate->get_value ();
7054+ snap_rotate_value = snap_rotate->get_value ();
7055+ snap_scale_value = snap_scale->get_value ();
70567056
70577057 EditorSettings::get_singleton ()->set_project_metadata (" 3d_editor" , " snap_translate_value" , snap_translate_value);
70587058 EditorSettings::get_singleton ()->set_project_metadata (" 3d_editor" , " snap_rotate_value" , snap_rotate_value);
70597059 EditorSettings::get_singleton ()->set_project_metadata (" 3d_editor" , " snap_scale_value" , snap_scale_value);
70607060}
70617061
70627062void Node3DEditor::_snap_update () {
7063- double snap = EDITOR_GET (" interface/inspector/default_float_step" );
7064- int snap_step_decimals = Math::range_step_decimals (snap);
7065-
7066- snap_translate->set_text (String::num (snap_translate_value, snap_step_decimals));
7067- snap_rotate->set_text (String::num (snap_rotate_value, snap_step_decimals));
7068- snap_scale->set_text (String::num (snap_scale_value, snap_step_decimals));
7063+ snap_translate->set_value (snap_translate_value);
7064+ snap_rotate->set_value (snap_rotate_value);
7065+ snap_scale->set_value (snap_scale_value);
70697066}
70707067
70717068void Node3DEditor::_xform_dialog_action () {
@@ -9773,20 +9770,30 @@ Node3DEditor::Node3DEditor() {
97739770 VBoxContainer *snap_dialog_vbc = memnew (VBoxContainer);
97749771 snap_dialog->add_child (snap_dialog_vbc);
97759772
9776- snap_translate = memnew (LineEdit);
9777- snap_translate->set_select_all_on_focus (true );
9778- snap_translate->set_accessibility_name (TTRC (" Translate Snap:" ));
9779- snap_dialog_vbc->add_margin_child (TTRC (" Translate Snap:" ), snap_translate);
9780-
9781- snap_rotate = memnew (LineEdit);
9782- snap_rotate->set_select_all_on_focus (true );
9783- snap_rotate->set_accessibility_name (TTRC (" Rotate Snap (deg.):" ));
9784- snap_dialog_vbc->add_margin_child (TTRC (" Rotate Snap (deg.):" ), snap_rotate);
9785-
9786- snap_scale = memnew (LineEdit);
9787- snap_scale->set_select_all_on_focus (true );
9788- snap_scale->set_accessibility_name (TTRC (" Scale Snap (%):" ));
9789- snap_dialog_vbc->add_margin_child (TTRC (" Scale Snap (%):" ), snap_scale);
9773+ snap_translate = memnew (EditorSpinSlider);
9774+ snap_translate->set_min (0.0 );
9775+ snap_translate->set_step (0.001 );
9776+ snap_translate->set_max (10.0 );
9777+ snap_translate->set_suffix (" m" );
9778+ snap_translate->set_allow_greater (true );
9779+ snap_translate->set_accessibility_name (TTRC (" Translate Snap" ));
9780+ snap_dialog_vbc->add_margin_child (TTR (" Translate Snap:" ), snap_translate);
9781+
9782+ snap_rotate = memnew (EditorSpinSlider);
9783+ snap_rotate->set_min (0.0 );
9784+ snap_rotate->set_step (0.1 );
9785+ snap_rotate->set_max (360 );
9786+ snap_rotate->set_suffix (U" °" );
9787+ snap_rotate->set_accessibility_name (TTRC (" Rotate Snap" ));
9788+ snap_dialog_vbc->add_margin_child (TTR (" Rotate Snap:" ), snap_rotate);
9789+
9790+ snap_scale = memnew (EditorSpinSlider);
9791+ snap_scale->set_min (0.0 );
9792+ snap_scale->set_step (1.0 );
9793+ snap_scale->set_max (100 );
9794+ snap_scale->set_suffix (" %" );
9795+ snap_scale->set_accessibility_name (TTRC (" Scale Snap" ));
9796+ snap_dialog_vbc->add_margin_child (TTR (" Scale Snap:" ), snap_scale);
97909797
97919798 /* SETTINGS DIALOG */
97929799
0 commit comments