Scenario:
Go to the 'Calculation' app
Type 'sqrt(sqrt(i))', by pressing the square button twice and then the i button
Press OK
Scroll up, and press OK
Press left until the cursor is right before the i.
Press "sqrt" : the root is added, but the cursor jumped to the right of the i.
The cursor should have stayed on the left of the i.
Note: The behavior is correct when you type the entire expression straight away by doing the following:
Press "sqrt", "sqrt", "i"
Press "left", so the cursor is right before the i
Press "sqrt" again. At this point, the cursor remains on the left of i.
only when the calculation is actually expanded (when the output is
selected and the display output is ExactApproximateToggle)
This avoid blinking when changing input/output selection
AbstractScrollableExactApproximateExpressionsView children classes
reload scroll after reloading the subview selection when entering the
responder chain and when cell becomes first responder. We don't reload
scroll when setting content of cells as this is done every time we
relayout - when scrolling in the table for instance.
three expressions but no more BurgerMenuView.
ScrollableExactApproximateExpressionsView and
ScrollableInputExactApproximateExpressionsView inherit from it.
If nextFirstResponder is nullptr, it means we are exiting the app, so
there is no need to relayout, reselect, ...
We did it bbefore because a long time ago, we used to keep all apps side
by side so they had to be thouroughly cleaned when exiting
Scenario: Go to the Result format submenu of Settings. Modify the
significant figures with a wrong value (for instance, "7::"), press OK
then 0 -> he first row is selected, as well as the last row
Complex model parameters are computed.
Sometimes, approximation without simplification doesn't not give the
same results as approximation after simplification. As we decided to
display the additional results from an approximation without
simplifcation (done in Expression::hasDefinedComplexApproximation), we
compute the model parameters the same way (to ensure that both
parameters are defined)
We check the context: if an identifier is already a function, we
interpret it as such, otherwise it is a symbol.
This way, in the Equation app, x(x+1) is interpreted as x*(x+1)