Commit Graph

467 Commits

Author SHA1 Message Date
Ruben Dashyan
5787d50a45 Revert "[apps/calculation/edit_expression_controller] Define viewWillAppear"
This reverts commit 960736203ff2f816688868e3397d178d931fa3c3.
2020-02-12 15:13:16 +01:00
Ruben Dashyan
7fce83d1dd [escher/expression_field] Detect whether view's height did change by memoizing the height
Such changes used to be detected only when the height was equal to the
maximal allowed value, by detecting whether the height shifted from or
to that maximal value. For that purpose, a boolean was memoized in
InputViewController and in Calculation::EditExpressionController.
2020-02-12 15:13:16 +01:00
Ruben Dashyan
b832a9e9f4 [apps/calculation/edit_expression_controller] Define viewWillAppear 2020-02-12 15:13:16 +01:00
Ruben Dashyan
b624e47ccb [apps/calculation/edit_expression_controller] Remove dummy viewDidDisappear
HistoryController does not override ViewController's default
viewDidDisappear.
2020-02-12 15:13:15 +01:00
Ruben Dashyan
7a49e23e3b [apps/calculation] Factor HistoryController::reload 2020-02-12 15:13:15 +01:00
Léa Saviot
0630ae55c7 [apps/escher] Force expressionField relayout when size changed
Scenario: in Calculations and in Graph, edit the layout field by adding
many parentheses. When the layout field has maximal height but the
parentheses are bigger than it, ther is a margin that appears at the
bottom, because we did not relayout the layout field to optimize
redrawing. We need to force the relayout, otherwise as the layout field
stays we the same frame, the relayouting is not properly done.
2020-02-12 15:13:15 +01:00
Léa Saviot
9f018eb9d9 [escher/view] setFrame and layoutSubviews can be forced 2020-02-12 15:13:15 +01:00
Ruben Dashyan
310e1ab829 [apps/calculation/edit_expression_controller] Make ContentView View-specific methods private 2020-02-12 15:13:15 +01:00
Ruben Dashyan
491a93d8f1 [apps/calculation/edit_expression_controller] Access view more directly 2020-02-12 15:13:15 +01:00
Ruben Dashyan
59e6c9d324 [apps/calculation/edit_expression_controller] view() does not return nullptr 2020-02-12 15:13:15 +01:00
Ruben Dashyan
227c9a8d68 [apps/calculation/edit_expression_controller] Inline view() in header 2020-02-12 15:13:15 +01:00
Émilie Feral
f3c6aab669 [apps/calculation] HistoryViewCell: when reloading the entire table due
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.
2020-01-06 14:07:20 +01:00
Émilie Feral
5491dee5ce [calculation][solver] Do not display exact solutions in Dutch exam mode 2019-12-19 15:52:45 +01:00
Émilie Feral
7ee6ad7136 [apps/calculation] CalculationStore: cap the number of calculations to
25
2019-09-17 17:35:45 +02:00
Léa Saviot
4caf9f5197 [coding style] Make some methods const 2019-09-09 20:05:14 +02:00
Léa Saviot
2d9eeaedd6 [apps/calc] Fix missing pointer incrementation 2019-09-09 15:35:56 +02:00
Émilie Feral
221b4af631 [apps/calculation] Fix warning: taking address of a packed member is
unsafe
2019-09-04 15:36:37 +02:00
Émilie Feral
f388fe7252 [apps] Use attribute "packed" on member variable directly instead of
using "pragma pack" to allow compiler optimization on one-byte object
accesses
2019-09-04 15:20:52 +02:00
Émilie Feral
ecfe626520 [apps/shared] Remove useless method storeExpressionAllowed 2019-09-03 13:36:19 +02:00
Ruben Dashyan
381a92f991 [apps] Remove unnecessary overriding 2019-08-29 11:07:22 +02:00
Léa Saviot
6a45073e09 [apps/calc] Fix tests 2019-08-27 17:24:57 +02:00
Léa Saviot
3849aba0c2 [apps/calculation] Don't display exact result for parametered expr
Otherwise symbolic computation is possible with, for instance :
diff(x+x,x,2)
    diff(2x,x,2) = 2
2019-08-27 17:21:48 +02:00
Léa Saviot
7e397ac92b [apps/calculation] Clean code 2019-08-27 17:21:01 +02:00
Léa Saviot
48971b6eb3 [apps/calculation] Display approx only if input = exactOutput 2019-08-27 11:09:16 +02:00
Léa Saviot
c980f8bf7c [apps/calc] Bigger serialization buffer to fix glitch
Otherwise, identity(15) displays both exact and approximate outputs,
because the approximation serialization does not fit in the buffer.
2019-08-22 10:33:40 +02:00
Léa Saviot
a3f2ab30dc [apps/calculation] Handle pool failure while calculations are slided
Exmaple :
1+1
identity(30) -> Failure while 1+1 is slided on the right
2019-08-22 10:10:27 +02:00
Léa Saviot
0556d10e7b [apps/calculation] Test about integral with symbols 2019-08-20 16:14:27 +02:00
Émilie Feral
42bb1440e3 [apps/calculation] Inputs involving 'frac' display only the approximate
output
2019-08-20 11:51:37 +02:00
Émilie Feral
1cc09de9ae [apps/calculation] Invalid calculation height memoization when leaving
the app.

Fix wrong memoization: in calculation app input '[[1+i, 2][3,4]]', change
the complex format to Polar, go back to the calculation app --> the
calculation height was no recomputed despite the fact that the approximation
output changed.
2019-08-19 09:59:01 +02:00
Émilie Feral
12060e2ae7 [escher] TextField: all text fields use the same draft text buffer 2019-08-13 09:44:00 +02:00
Émilie Feral
081462ab5e [poincare] Fix tests with Multiplication serialization (it always add
the × operator
2019-08-08 17:22:06 +02:00
Émilie Feral
0de1b575d5 Clean warnings 2019-08-08 17:22:04 +02:00
Émilie Feral
cedcab21ec [poincare] Tidy tests and add TODO for tests that need to be completed 2019-08-08 17:22:04 +02:00
Léa Saviot
4bbb8167f1 [poincare/matrix_inverse] Handle memory error in MatrixInverse 2019-08-08 17:22:04 +02:00
Émilie Feral
f546845279 [apps] Test: fix calculation and equation test with layout and
expression seriazlization
2019-08-08 17:22:03 +02:00
Léa Saviot
23acdd7f0d [apps/calc] Simplify the HistoryViewCell::m_calculationCRC32 initialization
It is not very probable that a new CRC32 should be computed to 0, and
maybe not less probable than being computed to the CRC32 of an empty
computation. However this was not mathematially verified.
2019-08-08 17:22:03 +02:00
Léa Saviot
9c95018034 [apps/calc] Init HistoryViewCell::m_calculationCRC32 to better value 2019-08-08 17:22:03 +02:00
Léa Saviot
dfe74dc1cb [apps/calculationStore] Remove falty assertion 2019-08-08 17:22:03 +02:00
Léa Saviot
2c783fe630 [apps/calcualtion] Remove TODOs 2019-08-08 17:22:03 +02:00
Léa Saviot
76a950d572 [apps/calculation] Add assertions instead of escape cases 2019-08-08 17:22:03 +02:00
Léa Saviot
d027a01851 [apps/calculation] Fix calculation memoization 2019-08-08 17:22:03 +02:00
Léa Saviot
849f9237dd [apps/calculation] Handle calculations too big for buffer 2019-08-08 17:22:03 +02:00
Léa Saviot
a7d3df39c3 Typo 2019-08-08 17:22:03 +02:00
Léa Saviot
f5e11b7d74 [apps/calculation] Exception checkpoint around secondary method
When computing [[2,3,2][ln(2),1,5][1,8,9]] there was a memory pool
failure because of the computation of
exactAndApproximateDisplayedOutputsAreEqual. Because displaying the
right equal symbol is less important than displaying a result, we
encapsulate the method in an exception checkpoint: if there was not
enough memory on the pool to compute the equal sign, just return
EqualSign::Approximation.
2019-08-08 17:22:03 +02:00
Léa Saviot
b4f6e37399 [apps/calcualtion] Optimize pool use 2019-08-08 17:22:03 +02:00
Léa Saviot
9380fafe9d [apps/calculation] Fix coding typo 2019-08-08 17:22:03 +02:00
Léa Saviot
3f6d08dd35 [apps/calc] Use memmove that is safer than memcpy
There was a wrong memcpy used in the memoization buffer sliding
2019-08-08 17:22:03 +02:00
Léa Saviot
05678b48f6 [apps/calc] Remove whole calculation memoization in HistoryViewCell
It is no longer compatible with the new calculations as they no longer
have a constant size.
2019-08-08 17:22:03 +02:00
Léa Saviot
f43e73333a [apps/calculation] Put back memoization 2019-08-08 17:22:02 +02:00
Léa Saviot
c3ee31f80e [apps/calculation] Fix HistoryController/Store index 2019-08-08 17:22:02 +02:00