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