Commit Graph

11243 Commits

Author SHA1 Message Date
Ruben Dashyan
f6ceae3b8b [apps] Factorize SimpleInteractiveCurveView::moveCursorHorizontally 2019-05-03 15:54:21 +02:00
Ruben Dashyan
67f9f79322 [apps] Implement InteractiveCurveViewController::isCursorVisible
It was a pure virtual method implemented in derived classes
  Shared::FunctionGraphController,
  Regression::GraphController.
InteractiveCurveViewRange does not need anymore to hold CurveViewCursor
* m_cursor.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
8629254d9a [apps] Remove Shared::InteractiveCurveViewController::displayTop/BottomMarginRatio
and replace it by the existing cursorTop/BottomMarginRatio.
There was absolutely no reason to use different margin values.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
8658538938 [apps/shared] Clarify InteractiveCurveViewController::k_viewHeight constexpr 2019-05-03 15:54:21 +02:00
Ruben Dashyan
d8f97d62a4 [apps] Factorize Shared::InteractiveCurveViewController methods
cursorBottomMarginRatio(), displayBottomMarginRatio(),
estimatedBannerHeight() and k_viewHeight moved to
Shared::InteractiveCurveViewController from derived classes.

estimatedBannerNumberOfLines() moved from
Shared::FunctionGraphController to
Shared::InteractiveCurveViewController and implemented in
Regresssion::GraphController.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e32419ce63 [apps/shared/interactive_curve_view_controller] InteractiveCurveViewRangeDelegate methods made private 2019-05-03 15:54:21 +02:00
Ruben Dashyan
0b2ab14ced [apps/shared] Fix a typo in FunctionGraphController
Introduced in commit
[shared] Factorize GraphController::initCursorParameters of Graph and Sequence
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e13651f6fb [apps] Remove Shared::InteractiveCurveViewController::initRangeParameters virtual method 2019-05-03 15:54:21 +02:00
Ruben Dashyan
51bd3312f5 [apps/shared] Clean FunctionGraphController::initRangeParameters()
The method is exactly called once, by
InteractiveCurveViewController::viewWillAppear, which also calls
initCursorParameters afterwards, which in turn calls
selectFunctionWithCursor. Hence the removed lines were redundant.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e7add02912 [apps] Remove FunctionGraphController::cursorView() virtual method
It was implemented by the Graph and Sequence GraphController derived
classes and was used
  1) in FunctionGraphController::viewWillAppear to set the cursorView
specific to each derived class,
  2) in FunctionGraphController::cursor/displayBottomMarginRatio()
methods.

Instead
  1) the viewWillAppear method of each derived classes sets its
cursorView itself
  2) one may already get the cursorView through curveView().
2019-05-03 15:54:21 +02:00
Ruben Dashyan
5b6fca8f72 [apps] Replace k_cursorTop/BottomMarginRatio by virtual methods
In SimpleInteractiveCurveViewController subclasses.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
fe977bdc07 [apps/graph/graph] CalculationGraphController inherits from SimpleInteractiveCurveViewController 2019-05-03 15:54:21 +02:00
Ruben Dashyan
ce712eac53 [apps/shared] Clean SimpleInteractiveCurveViewController constructor 2019-05-03 15:54:21 +02:00
Ruben Dashyan
82a0f72d42 [apps/shared] Clean FunctionCurveParameterController constructor 2019-05-03 15:54:21 +02:00
Ruben Dashyan
696434d38a [apps] GoToParameterController: remove ForbiddenValue warnings
when the controller tries to move the cursor beyond the limit of 1E8.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
82685cb371 [apps] Factorize portions checking whether text approximates to double 2019-05-03 15:54:21 +02:00
Ruben Dashyan
5e5e07e963 [apps/shared] Factorize Store/ValuesController::textFieldDidFinishEditing 2019-05-03 15:54:21 +02:00
Ruben Dashyan
a400a5024b [apps/shared] Implement SumGraphController::reloadBannerView 2019-05-03 15:54:21 +02:00
Ruben Dashyan
e47ab69e53 [apps/shared] Implement SumGraphController::handleLeftRightEvent 2019-05-03 15:54:21 +02:00
Ruben Dashyan
211ae05667 [apps/shared] Clean SumGraphController 2019-05-03 15:54:21 +02:00
Ruben Dashyan
355e42734d [apps] Replace BannerView::set(Legend|Message)AtIndex by getters 2019-05-03 15:54:21 +02:00
Ruben Dashyan
205ae8fec5 [apps] Remove BannerView::messageTextViewAtIndex method 2019-05-03 15:54:21 +02:00
Ruben Dashyan
07a9116147 [apps/statistics] Remove public MultipleDataView::editableBannerView() getter
Instead use existing protected virtual bannerView() getter. The reason
why both existed is that one was const but not the other. A const
variant is needed only exceptionally: in bannerFrame() which is called
by drawRect().
Moreover, bannerView() is virtual and is overridden in its derived
classes using co-variant return types. That fact is important in the
following commit.
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e2be17f150 [apps/graph] Graph::GraphControllerHelper::BannerView() returns a Graph::BannerView *
Instead of a Shared::BannerView *
2019-05-03 15:54:21 +02:00
Ruben Dashyan
51c36c8f86 [apps/shared] FunctionBannerDelegate::bannerView() returns a XYBannerView * 2019-05-03 15:54:21 +02:00
Ruben Dashyan
0d34923dd1 [apps] Graph/Regression/Sequence::BannerView inherit from new Shared::XYBannerView 2019-05-03 15:54:21 +02:00
Ruben Dashyan
236b752f4f [apps] replace BannerView::textViewAtIndex by subviewAtIndex 2019-05-03 15:54:21 +02:00
Ruben Dashyan
513a4cf852 [apps] BannerView::numberOfSubviews
Shared::BannerView::numberOfSubviews made pure virtual.
Define constexpr attributes instead of magic numbers.
Move numberOfSubviews to header file.
2019-05-03 15:54:21 +02:00
Émilie Feral
54ff7a3b84 [calculation] HistoryController: Avoid useless cell reloading (avoid
blinking)
2019-05-03 15:54:21 +02:00
Émilie Feral
2217eebaec [escher] SelectableTableView: when reloading data, we temporary deselect
the table. We warn the SelectableTableViewDelegate that the selection
change is 'within a temporary selection change' when notifying it of the
change.
2019-05-03 15:54:21 +02:00
Émilie Feral
138587ee8e [calculation] Calculation: memoized display output 2019-05-03 15:54:21 +02:00
Émilie Feral
08e4b0d6a3 [shared] Clean reloading (highlight, even) of
ScrollableExactApproximateExpressionsCell and
ScrollableExactApproximateExpressionsView
2019-05-03 15:54:21 +02:00
Émilie Feral
1e72a1c9c2 [calculation] HistoryViewCell: clean 2019-05-03 15:54:21 +02:00
Émilie Feral
a30191ccb4 [calculation] Change name: 'calculation selected' --> 'calculation
expanded'
2019-05-03 15:54:21 +02:00
Émilie Feral
12876b177f [calculation] Calculation: discard Calculation::toggleDisplayExact (this
feature will be developed later)
2019-05-03 15:54:21 +02:00
Émilie Feral
3f961b7705 [calculation] HistoryViewCell: better split reload (highlight, scroll
etc)  between willDisplayCellForIndex and cellDidSelectSubview
2019-05-03 15:54:21 +02:00
Émilie Feral
05a235803f [calculation] HistoryViewCell: fix scroll reloading and right or left
outputs selection (the order of events here matters)
2019-05-03 15:54:21 +02:00
Émilie Feral
39c53b5e8b [calculation] HistoryViewCell: memoize calculation and cell selection to
speed up navigation in HistoryController
2019-05-03 15:54:21 +02:00
Émilie Feral
5e280c7538 [escher] ExpressionView: optimize setLayouts to avoid marking the whole
view as dirty when the layout did not really changed
2019-05-03 15:54:21 +02:00
Émilie Feral
c1a0e94ec7 [escher] Clean empty lines 2019-05-03 15:54:21 +02:00
Émilie Feral
5590c23edf [poincare] Layout: implement isIdenticalTo 2019-05-03 15:54:21 +02:00
Émilie Feral
9665f11d06 [poincare] Layout: discard methods isVerticalOffset(), isHorizontal(),
isRightParenthesisLayout(), isLeftBracket(), isRightBracket(),
isCodePoint(),
isLeftParenthesisLayout() and use type() instead
2019-05-03 15:54:21 +02:00
Émilie Feral
6fcb29b147 [poincare] Layout: add a Type to all layouts 2019-05-03 15:54:21 +02:00
Émilie Feral
da1ee21fd5 [poincare] VerticalOffsetLayout: change name of 'Type' to 'Position' 2019-05-03 15:54:21 +02:00
Émilie Feral
6c0e6b9709 [shared] ScrollableExactApproximateExpressionsView: fix scrolling when
selecting the left or right output result
2019-05-03 15:54:21 +02:00
Émilie Feral
240ed439e0 [escher] ScrollableView: discard duplicate data source of scrolling
offset
2019-05-03 15:54:21 +02:00
Émilie Feral
8e0d3065f7 [calculation] HistoryViewCell: reloadCell selects the right or left
output according to the calculation hold (this enables to discard
unnecessary reloadScroll)
2019-05-03 15:54:21 +02:00
Émilie Feral
8afbee8b89 [shared] ScrollableExactApproximateExpressionsView: selecting the right
or left output reload the scroll to display the selected output
2019-05-03 15:54:21 +02:00
Émilie Feral
7db575a4ba [calculation] Calculation: improve memoization of a calculation height 2019-05-03 15:54:21 +02:00
Émilie Feral
06a8382ff4 [shared] ScrollableExactApproximateExpressionsView: change the selected
output only when one of the two layout is uninitialized. Otherwise, the
parent cell decides of which of right or left output should be selected.
2019-05-03 15:54:21 +02:00