Merge pull request #31781 from Calinou/spinbox-use-expressions

Calculate the SpinBox value using the Expression class
This commit is contained in:
Rémi Verschelde 2019-08-30 09:47:51 +02:00 committed by GitHub
commit 8d78c43ce9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -29,6 +29,7 @@
/*************************************************************************/
#include "spin_box.h"
#include "core/math/expression.h"
#include "core/os/input.h"
Size2 SpinBox::get_minimum_size() const {
@ -50,15 +51,18 @@ void SpinBox::_value_changed(double) {
void SpinBox::_text_entered(const String &p_string) {
/*
if (!p_string.is_numeric())
Ref<Expression> expr;
expr.instance();
Error err = expr->parse(p_string);
if (err != OK) {
return;
*/
String value = p_string;
if (prefix != "" && p_string.begins_with(prefix))
value = p_string.substr(prefix.length(), p_string.length() - prefix.length());
set_value(value.to_double());
_value_changed(0);
}
Variant value = expr->execute(Array(), NULL, false);
if (value.get_type() != Variant::NIL) {
set_value(value);
_value_changed(0);
}
}
LineEdit *SpinBox::get_line_edit() {