@@ -7183,22 +7183,19 @@ void Node3DEditor::edit(Node3D *p_spatial) {
71837183}
71847184
71857185void 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
71957195void 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
72047201void 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
0 commit comments