bool CalculationController::textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) { App * probaApp = (App *)app(); Context * globalContext = probaApp->container()->globalContext(); double floatBody = Expression::approximateToScalar<double>(text, *globalContext); if (std::isnan(floatBody) || std::isinf(floatBody)) { app()->displayWarning(I18n::Message::UndefinedValue); return false; } if (m_calculation->type() != Calculation::Type::FiniteIntegral && selectedColumn() == 2) { if (floatBody < 0.0) { floatBody = 0.0; } if (floatBody > 1.0) { floatBody = 1.0; } } if (!m_law->isContinuous() && (selectedColumn() == 1 || m_calculation->type() == Calculation::Type::FiniteIntegral)) { floatBody = std::round(floatBody); } m_calculation->setParameterAtIndex(floatBody, selectedColumn()-1); if (event == Ion::Events::Right || event == Ion::Events::Left) { m_selectableTableView.handleEvent(event); } reload(); return true; }