table. Otherwise, the Poincare pool store useless layouts for cells that
aren't displayed.
This fixes the following issue: input "(transpose([1 2 3 4 5 6][1 2 3 4 5
6])^8", the computation works, clear the history, input the same
calculation again, it fails with a memory error.
At the moment ViewController::viewWillAppear doesn't do anything, so
there is no real impact. But if we want to use it it needs to be called
from subclasses.
and 2 approximate outputs - one with the maximal number of significant
digits and one with the number of significant digits asked by the user.
This enables to find the approximate output without going through the
approximation routine again.
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
When scrolling up and down, only 'setCalculation' is called by
'willDisplayCellForIndex' - and not 'cellDidSelectSubview'. So a new cell
should be informed of the expanded state in 'setCalculation'.
ScrollableExactApproximateExpressionsView into
AbstractScrollableExactApproximateExpressionsView and
ScrollableExactApproximateExpressionsView to factorize code with future
ScrollableInputExactApproximateExpressionsView
to a cell selection, the cell used for the selected row might change. We
thereby have to update the selected cell once the table has been
reloaded.
This fixes the following bug: add 5 times the calculation "12.2". Go up,
the selected expression is the left one instead of the right one.
Remove all margins from those cells.
Rather add margins to their respective subviews:
- ScrollableExpressionView
- ScrollableExactApproximateExpressionsView.
As a notable consequence, the distance in HistoryViewCell between its
subviews becomes 10 instead of 5.
In passing, replace
- Metric::HistoryHorizontalMargin = 10
- ScrollableExactApproximateExpressionsView::k_digitHorizontalMargin = 10
- HistoryViewCell::k_digitVerticalMargin = 5
- ScrollableExactApproximateExpressionsCell::k_margin = 5
by
- Metric::CommonSmallMargin = 5
- Metric::CommonLargeMargin = 10.
In SelectableTableView::selectCellAtLocation, we call 'tableViewDidChangeSelection'
before scrolling. Therefore, the cell with updated with the right selected subview
is not the one drawn... To solve this issue, we keep the selectedSubview ('model')
in the HistoryController instead of in the limited-lifespan view.