Skip to content

Commit 59b1836

Browse files
VojtaStruharCalinou
andcommitted
Change snap settings to not use LineEdits
Change snap settings to use SpinBox Change snap settings to use EditorSpinSlider Update editor/scene/3d/node_3d_editor_plugin.cpp Co-authored-by: Hugo Locurcio <[email protected]> Use suffixes in snapping fields Use meters suffix for translation snap setting Co-authored-by: Hugo Locurcio <[email protected]>
1 parent d705613 commit 59b1836

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
@@ -7050,22 +7050,19 @@ void Node3DEditor::edit(Node3D *p_spatial) {
70507050
}
70517051

70527052
void 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

70627062
void 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

70717068
void 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

editor/scene/3d/node_3d_editor_plugin.h

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

789789
bool snap_enabled;
790790
bool snap_key_enabled;
791-
LineEdit *snap_translate = nullptr;
792-
LineEdit *snap_rotate = nullptr;
793-
LineEdit *snap_scale = nullptr;
791+
EditorSpinSlider *snap_translate = nullptr;
792+
EditorSpinSlider *snap_rotate = nullptr;
793+
EditorSpinSlider *snap_scale = nullptr;
794794

795795
LineEdit *xform_translate[3];
796796
LineEdit *xform_rotate[3];

0 commit comments

Comments
 (0)