diff --git a/apps/calculation/history_controller.cpp b/apps/calculation/history_controller.cpp index 8b9c0a453..ff8025660 100644 --- a/apps/calculation/history_controller.cpp +++ b/apps/calculation/history_controller.cpp @@ -127,7 +127,7 @@ void HistoryController::tableViewDidChangeSelection(SelectableTableView * t, int Container::activeApp()->setFirstResponder(selectedCell); } -int HistoryController::numberOfRows() { +int HistoryController::numberOfRows() const { return m_calculationStore->numberOfCalculations(); }; diff --git a/apps/calculation/history_controller.h b/apps/calculation/history_controller.h index 07e62a603..f4d1d61fb 100644 --- a/apps/calculation/history_controller.h +++ b/apps/calculation/history_controller.h @@ -18,7 +18,7 @@ public: void didBecomeFirstResponder() override; void willExitResponderChain(Responder * nextFirstResponder) override; void reload(); - int numberOfRows() override; + int numberOfRows() const override; HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; diff --git a/apps/code/console_controller.cpp b/apps/code/console_controller.cpp index ce6bd2677..0a1c41586 100644 --- a/apps/code/console_controller.cpp +++ b/apps/code/console_controller.cpp @@ -196,7 +196,7 @@ bool ConsoleController::handleEvent(Ion::Events::Event event) { return false; } -int ConsoleController::numberOfRows() { +int ConsoleController::numberOfRows() const { return m_consoleStore.numberOfLines()+1; } diff --git a/apps/code/console_controller.h b/apps/code/console_controller.h index 43779f340..1c32f4f04 100644 --- a/apps/code/console_controller.h +++ b/apps/code/console_controller.h @@ -42,7 +42,7 @@ public: ViewController::DisplayParameter displayParameter() override { return ViewController::DisplayParameter::WantsMaximumSpace; } // ListViewDataSource - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; diff --git a/apps/code/menu_controller.cpp b/apps/code/menu_controller.cpp index 44288ae36..bed2c31cc 100644 --- a/apps/code/menu_controller.cpp +++ b/apps/code/menu_controller.cpp @@ -156,7 +156,7 @@ void MenuController::scriptContentEditionDidFinish() { reloadConsole(); } -int MenuController::numberOfRows() { +int MenuController::numberOfRows() const { return m_scriptStore->numberOfScripts() + m_shouldDisplayAddScriptRow; } diff --git a/apps/code/menu_controller.h b/apps/code/menu_controller.h index 5848a302a..252b2f030 100644 --- a/apps/code/menu_controller.h +++ b/apps/code/menu_controller.h @@ -31,8 +31,8 @@ public: void viewWillAppear() override; /* TableViewDataSource */ - int numberOfRows() override; - int numberOfColumns() override { return 2; } + int numberOfRows() const override; + int numberOfColumns() const override { return 2; } void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; KDCoordinate columnWidth(int i) override; KDCoordinate rowHeight(int j) override { return Metric::StoreRowHeight; } diff --git a/apps/code/python_toolbox.cpp b/apps/code/python_toolbox.cpp index 6fa965ac4..55989b01d 100644 --- a/apps/code/python_toolbox.cpp +++ b/apps/code/python_toolbox.cpp @@ -374,7 +374,7 @@ bool PythonToolbox::selectLeaf(int selectedRow) { return true; } -const ToolboxMessageTree * PythonToolbox::rootModel() { +const ToolboxMessageTree * PythonToolbox::rootModel() const { return &toolboxModel; } diff --git a/apps/code/python_toolbox.h b/apps/code/python_toolbox.h index 939b86f78..0889f2ebf 100644 --- a/apps/code/python_toolbox.h +++ b/apps/code/python_toolbox.h @@ -15,7 +15,7 @@ public: protected: KDCoordinate rowHeight(int j) override; bool selectLeaf(int selectedRow) override; - const ToolboxMessageTree * rootModel() override; + const ToolboxMessageTree * rootModel() const override; MessageTableCellWithMessage * leafCellAtIndex(int index) override; MessageTableCellWithChevron* nodeCellAtIndex(int index) override; int maxNumberOfDisplayedRows() override; diff --git a/apps/code/script_parameter_controller.h b/apps/code/script_parameter_controller.h index 1fef1d752..c851922d9 100644 --- a/apps/code/script_parameter_controller.h +++ b/apps/code/script_parameter_controller.h @@ -25,8 +25,8 @@ public: /* SimpleListViewDataSource */ KDCoordinate cellHeight() override { return Metric::ParameterCellHeight; } HighlightCell * reusableCell(int index) override; - int reusableCellCount() override { return k_totalNumberOfCell; } - int numberOfRows() override { return k_totalNumberOfCell; } + int reusableCellCount() const override { return k_totalNumberOfCell; } + int numberOfRows() const override { return k_totalNumberOfCell; } void willDisplayCellForIndex(HighlightCell * cell, int index) override; private: diff --git a/apps/code/variable_box_controller.cpp b/apps/code/variable_box_controller.cpp index 964656dfc..c937b4896 100644 --- a/apps/code/variable_box_controller.cpp +++ b/apps/code/variable_box_controller.cpp @@ -47,7 +47,7 @@ static bool shouldAddObject(const char * name, int maxLength) { return true; } -int VariableBoxController::numberOfRows() { +int VariableBoxController::numberOfRows() const { assert(m_scriptNodesCount <= k_maxScriptNodesCount); return m_scriptNodesCount; } diff --git a/apps/code/variable_box_controller.h b/apps/code/variable_box_controller.h index 6e1047126..79d107f00 100644 --- a/apps/code/variable_box_controller.h +++ b/apps/code/variable_box_controller.h @@ -17,7 +17,7 @@ public: void didEnterResponderChain(Responder * previousFirstResponder) override; /* ListViewDataSource */ - int numberOfRows() override; + int numberOfRows() const override; int reusableCellCount(int type) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; int typeAtLocation(int i, int j) override; diff --git a/apps/graph/graph/calculation_parameter_controller.cpp b/apps/graph/graph/calculation_parameter_controller.cpp index c9594aa9b..b2ffbeb59 100644 --- a/apps/graph/graph/calculation_parameter_controller.cpp +++ b/apps/graph/graph/calculation_parameter_controller.cpp @@ -73,7 +73,7 @@ bool CalculationParameterController::handleEvent(Ion::Events::Event event) { return false; } -int CalculationParameterController::numberOfRows() { +int CalculationParameterController::numberOfRows() const { // Inverse row + [optional intersection row] + all other rows (max, min zeros, tangent, integral) return 1 + shouldDisplayIntersection() + k_totalNumberOfReusableCells - 1; }; diff --git a/apps/graph/graph/calculation_parameter_controller.h b/apps/graph/graph/calculation_parameter_controller.h index 4c454faff..8318f7b14 100644 --- a/apps/graph/graph/calculation_parameter_controller.h +++ b/apps/graph/graph/calculation_parameter_controller.h @@ -23,7 +23,7 @@ public: bool handleEvent(Ion::Events::Event event) override; void viewWillAppear() override; void didBecomeFirstResponder() override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate rowHeight(int j) override; HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; diff --git a/apps/graph/graph/curve_parameter_controller.cpp b/apps/graph/graph/curve_parameter_controller.cpp index 99f644119..15e0fb6e6 100644 --- a/apps/graph/graph/curve_parameter_controller.cpp +++ b/apps/graph/graph/curve_parameter_controller.cpp @@ -62,7 +62,7 @@ bool CurveParameterController::handleEvent(Ion::Events::Event event) { return false; } -int CurveParameterController::numberOfRows() { +int CurveParameterController::numberOfRows() const { return reusableCellCount(); }; @@ -72,7 +72,7 @@ HighlightCell * CurveParameterController::reusableCell(int index) { return cells[cellIndex(index)]; } -int CurveParameterController::reusableCellCount() { +int CurveParameterController::reusableCellCount() const { return 1 + (shouldDisplayCalculationAndDerivative() ? 2 : 0); } diff --git a/apps/graph/graph/curve_parameter_controller.h b/apps/graph/graph/curve_parameter_controller.h index f3bd82980..d5a587af1 100644 --- a/apps/graph/graph/curve_parameter_controller.h +++ b/apps/graph/graph/curve_parameter_controller.h @@ -14,9 +14,9 @@ public: CurveParameterController(InputEventHandlerDelegate * inputEventHandlerDelegate, Shared::InteractiveCurveViewRange * graphRange, BannerView * bannerView, Shared::CurveViewCursor * cursor, GraphView * graphView, GraphController * graphController); const char * title() override; bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; void viewWillAppear() override; private: diff --git a/apps/graph/list/domain_parameter_controller.cpp b/apps/graph/list/domain_parameter_controller.cpp index 26853b4ea..ad2d945e7 100644 --- a/apps/graph/list/domain_parameter_controller.cpp +++ b/apps/graph/list/domain_parameter_controller.cpp @@ -22,7 +22,7 @@ const char * DomainParameterController::title() { return I18n::translate(I18n::Message::FunctionDomain); } -int DomainParameterController::numberOfRows() { +int DomainParameterController::numberOfRows() const { return k_totalNumberOfCell+1; } diff --git a/apps/graph/list/domain_parameter_controller.h b/apps/graph/list/domain_parameter_controller.h index 738afd3c8..d0922d7c2 100644 --- a/apps/graph/list/domain_parameter_controller.h +++ b/apps/graph/list/domain_parameter_controller.h @@ -17,7 +17,7 @@ public: const char * title() override; // ListViewDataSource - int numberOfRows() override; + int numberOfRows() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; void setRecord(Ion::Storage::Record record) { m_record = record; } diff --git a/apps/graph/list/type_parameter_controller.h b/apps/graph/list/type_parameter_controller.h index fbcc06867..be157a1a9 100644 --- a/apps/graph/list/type_parameter_controller.h +++ b/apps/graph/list/type_parameter_controller.h @@ -23,7 +23,7 @@ public: void viewWillAppear() override; // ListViewDataSource - int numberOfRows() override { return k_numberOfTypes; } + int numberOfRows() const override { return k_numberOfTypes; } KDCoordinate rowHeight(int j) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; MessageTableCellWithExpression * reusableCell(int index, int type) override; diff --git a/apps/graph/values/derivative_parameter_controller.cpp b/apps/graph/values/derivative_parameter_controller.cpp index 22f53e803..6ec2516ee 100644 --- a/apps/graph/values/derivative_parameter_controller.cpp +++ b/apps/graph/values/derivative_parameter_controller.cpp @@ -58,7 +58,7 @@ bool DerivativeParameterController::handleEvent(Ion::Events::Event event) { return false; } -int DerivativeParameterController::numberOfRows() { +int DerivativeParameterController::numberOfRows() const { return k_totalNumberOfCell; }; @@ -73,7 +73,7 @@ HighlightCell * DerivativeParameterController::reusableCell(int index) { return cells[index]; } -int DerivativeParameterController::reusableCellCount() { +int DerivativeParameterController::reusableCellCount() const { return k_totalNumberOfCell; } diff --git a/apps/graph/values/derivative_parameter_controller.h b/apps/graph/values/derivative_parameter_controller.h index bd643b334..0aed8df16 100644 --- a/apps/graph/values/derivative_parameter_controller.h +++ b/apps/graph/values/derivative_parameter_controller.h @@ -17,10 +17,10 @@ public: bool handleEvent(Ion::Events::Event event) override; void viewWillAppear() override; void didBecomeFirstResponder() override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void setRecord(Ion::Storage::Record record) { m_record = record; } diff --git a/apps/graph/values/function_parameter_controller.cpp b/apps/graph/values/function_parameter_controller.cpp index d98ae7920..ae7ae2db8 100644 --- a/apps/graph/values/function_parameter_controller.cpp +++ b/apps/graph/values/function_parameter_controller.cpp @@ -38,7 +38,7 @@ bool FunctionParameterController::handleEvent(Ion::Events::Event event) { return false; } -int FunctionParameterController::numberOfRows() { +int FunctionParameterController::numberOfRows() const { return k_totalNumberOfCell; }; @@ -53,7 +53,7 @@ HighlightCell * FunctionParameterController::reusableCell(int index) { return cells[index]; } -int FunctionParameterController::reusableCellCount() { +int FunctionParameterController::reusableCellCount() const { return k_totalNumberOfCell; } diff --git a/apps/graph/values/function_parameter_controller.h b/apps/graph/values/function_parameter_controller.h index 01f80ce32..54964b683 100644 --- a/apps/graph/values/function_parameter_controller.h +++ b/apps/graph/values/function_parameter_controller.h @@ -13,9 +13,9 @@ class FunctionParameterController : public Shared::ValuesFunctionParameterContro public: FunctionParameterController(ValuesController * valuesController); bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; void viewWillAppear() override; private: diff --git a/apps/graph/values/interval_parameter_selector_controller.cpp b/apps/graph/values/interval_parameter_selector_controller.cpp index 6be6dc44a..84536bd5e 100644 --- a/apps/graph/values/interval_parameter_selector_controller.cpp +++ b/apps/graph/values/interval_parameter_selector_controller.cpp @@ -44,7 +44,7 @@ bool IntervalParameterSelectorController::handleEvent(Ion::Events::Event event) return false; } -int IntervalParameterSelectorController::numberOfRows() { +int IntervalParameterSelectorController::numberOfRows() const { int rowCount = 0; int plotTypeIndex = 0; Shared::CartesianFunction::PlotType plotType; @@ -62,7 +62,7 @@ HighlightCell * IntervalParameterSelectorController::reusableCell(int index) { return m_intervalParameterCell + index; } -int IntervalParameterSelectorController::reusableCellCount() { +int IntervalParameterSelectorController::reusableCellCount() const { return Shared::CartesianFunction::k_numberOfPlotTypes; } diff --git a/apps/graph/values/interval_parameter_selector_controller.h b/apps/graph/values/interval_parameter_selector_controller.h index 77ddbefd9..55a0b6543 100644 --- a/apps/graph/values/interval_parameter_selector_controller.h +++ b/apps/graph/values/interval_parameter_selector_controller.h @@ -15,9 +15,9 @@ public: void viewDidDisappear() override; bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellHeight() override { return Metric::ParameterCellHeight; } - int reusableCellCount() override; + int reusableCellCount() const override; HighlightCell * reusableCell(int index) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; void setStartEndMessages(Shared::IntervalParameterController * controller, Shared::CartesianFunction::PlotType plotType); diff --git a/apps/graph/values/values_controller.cpp b/apps/graph/values/values_controller.cpp index 2e8488f83..5165d8d55 100644 --- a/apps/graph/values/values_controller.cpp +++ b/apps/graph/values/values_controller.cpp @@ -250,7 +250,7 @@ void ValuesController::setStartEndMessages(Shared::IntervalParameterController * m_intervalParameterSelectorController.setStartEndMessages(controller, plotTypeAtColumn(&c)); } -void ValuesController::updateNumberOfColumns() { +void ValuesController::updateNumberOfColumns() const { for (int plotTypeIndex = 0; plotTypeIndex < CartesianFunction::k_numberOfPlotTypes; plotTypeIndex++) { m_numberOfColumnsForType[plotTypeIndex] = 0; } diff --git a/apps/graph/values/values_controller.h b/apps/graph/values/values_controller.h index a2163f107..4f34ee37e 100644 --- a/apps/graph/values/values_controller.h +++ b/apps/graph/values/values_controller.h @@ -36,7 +36,7 @@ private: constexpr static int k_maxNumberOfCells = k_maxNumberOfFunctions * k_maxNumberOfRows; void setStartEndMessages(Shared::IntervalParameterController * controller, int column) override; - void updateNumberOfColumns() override; + void updateNumberOfColumns() const override; Ion::Storage::Record recordAtColumn(int i) override; Ion::Storage::Record recordAtColumn(int i, bool * isDerivative); int numberOfColumnsForRecord(Ion::Storage::Record record) const; @@ -55,7 +55,7 @@ private: EvenOddMessageTextCell * abscissaTitleCells(int j) override { assert (j >= 0 && j < abscissaTitleCellsCount()); return &m_abscissaTitleCells[j]; } ViewController * functionParameterController() override; - int m_numberOfColumnsForType[Shared::CartesianFunction::k_numberOfPlotTypes]; + mutable int m_numberOfColumnsForType[Shared::CartesianFunction::k_numberOfPlotTypes]; Shared::BufferFunctionTitleCell m_functionTitleCells[k_maxNumberOfFunctions]; Shared::HideableEvenOddBufferTextCell m_floatCells[k_maxNumberOfCells]; AbscissaTitleCell m_abscissaTitleCells[Shared::CartesianFunction::k_numberOfPlotTypes]; diff --git a/apps/home/controller.cpp b/apps/home/controller.cpp index 171197381..c59612d7a 100644 --- a/apps/home/controller.cpp +++ b/apps/home/controller.cpp @@ -91,11 +91,11 @@ View * Controller::view() { return &m_view; } -int Controller::numberOfRows() { +int Controller::numberOfRows() const { return ((numberOfIcons()-1)/k_numberOfColumns)+1; } -int Controller::numberOfColumns() { +int Controller::numberOfColumns() const { return k_numberOfColumns; } @@ -111,7 +111,7 @@ HighlightCell * Controller::reusableCell(int index) { return &m_cells[index]; } -int Controller::reusableCellCount() { +int Controller::reusableCellCount() const { return k_maxNumberOfCells; } @@ -128,7 +128,7 @@ void Controller::willDisplayCellAtLocation(HighlightCell * cell, int i, int j) { } } -int Controller::numberOfIcons() { +int Controller::numberOfIcons() const { AppsContainer * container = AppsContainer::sharedAppsContainer(); assert(container->numberOfApps() > 0); return container->numberOfApps() - 1; diff --git a/apps/home/controller.h b/apps/home/controller.h index 7750f1cb1..4c354bfb5 100644 --- a/apps/home/controller.h +++ b/apps/home/controller.h @@ -16,16 +16,16 @@ public: void didBecomeFirstResponder() override; void viewWillAppear() override; - virtual int numberOfRows() override; - virtual int numberOfColumns() override; + virtual int numberOfRows() const override; + virtual int numberOfColumns() const override; virtual KDCoordinate cellHeight() override; virtual KDCoordinate cellWidth() override; virtual HighlightCell * reusableCell(int index) override; - virtual int reusableCellCount() override; + virtual int reusableCellCount() const override; void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY, bool withinTemporarySelection) override; private: - int numberOfIcons(); + int numberOfIcons() const; SelectableTableViewDataSource * selectionDataSource() const; class ContentView : public View { public: diff --git a/apps/math_toolbox.cpp b/apps/math_toolbox.cpp index 929e66529..a91234b96 100644 --- a/apps/math_toolbox.cpp +++ b/apps/math_toolbox.cpp @@ -138,7 +138,7 @@ bool MathToolbox::selectLeaf(int selectedRow) { return true; } -const ToolboxMessageTree * MathToolbox::rootModel() { +const ToolboxMessageTree * MathToolbox::rootModel() const { return &toolboxModel; } diff --git a/apps/math_toolbox.h b/apps/math_toolbox.h index 3577edd04..77bc6bd56 100644 --- a/apps/math_toolbox.h +++ b/apps/math_toolbox.h @@ -9,7 +9,7 @@ public: MathToolbox(); protected: bool selectLeaf(int selectedRow) override; - const ToolboxMessageTree * rootModel() override; + const ToolboxMessageTree * rootModel() const override; MessageTableCellWithMessage * leafCellAtIndex(int index) override; MessageTableCellWithChevron* nodeCellAtIndex(int index) override; int maxNumberOfDisplayedRows() override; diff --git a/apps/probability/calculation_controller.cpp b/apps/probability/calculation_controller.cpp index a4e732775..a455c4692 100644 --- a/apps/probability/calculation_controller.cpp +++ b/apps/probability/calculation_controller.cpp @@ -105,11 +105,11 @@ void CalculationController::viewDidDisappear() { ViewController::viewDidDisappear(); } -int CalculationController::numberOfRows() { +int CalculationController::numberOfRows() const { return 1; } -int CalculationController::numberOfColumns() { +int CalculationController::numberOfColumns() const { return m_calculation->numberOfParameters()+1; } diff --git a/apps/probability/calculation_controller.h b/apps/probability/calculation_controller.h index e785b7321..4c49dd9a0 100644 --- a/apps/probability/calculation_controller.h +++ b/apps/probability/calculation_controller.h @@ -25,8 +25,8 @@ public: void viewDidDisappear() override; /* TableViewDataSource */ - int numberOfRows() override; - int numberOfColumns() override; + int numberOfRows() const override; + int numberOfColumns() const override; KDCoordinate columnWidth(int i) override; KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedHeightFromIndex(int j) override; diff --git a/apps/probability/calculation_type_controller.cpp b/apps/probability/calculation_type_controller.cpp index 6e3504d0b..036589437 100644 --- a/apps/probability/calculation_type_controller.cpp +++ b/apps/probability/calculation_type_controller.cpp @@ -59,7 +59,7 @@ bool CalculationTypeController::handleEvent(Ion::Events::Event event) { return false; } -int CalculationTypeController::numberOfRows() { +int CalculationTypeController::numberOfRows() const { if (m_distribution->isContinuous()) { return k_numberOfImages-1; } @@ -80,7 +80,7 @@ HighlightCell * CalculationTypeController::reusableCell(int index) { return &m_imageCells[index]; } -int CalculationTypeController::reusableCellCount() { +int CalculationTypeController::reusableCellCount() const { return k_numberOfImages; } diff --git a/apps/probability/calculation_type_controller.h b/apps/probability/calculation_type_controller.h index 94f655120..e850322e2 100644 --- a/apps/probability/calculation_type_controller.h +++ b/apps/probability/calculation_type_controller.h @@ -18,11 +18,11 @@ public: void viewDidDisappear() override; void didBecomeFirstResponder() override; bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellWidth() override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; constexpr static int k_numberOfImages = 4; private: diff --git a/apps/probability/distribution_controller.cpp b/apps/probability/distribution_controller.cpp index ba801c976..ec89a49ac 100644 --- a/apps/probability/distribution_controller.cpp +++ b/apps/probability/distribution_controller.cpp @@ -104,7 +104,7 @@ bool Probability::DistributionController::handleEvent(Ion::Events::Event event) return false; } -int Probability::DistributionController::numberOfRows() { +int Probability::DistributionController::numberOfRows() const { return k_totalNumberOfModels; }; @@ -114,7 +114,7 @@ HighlightCell * Probability::DistributionController::reusableCell(int index) { return &m_cells[index]; } -int Probability::DistributionController::reusableCellCount() { +int Probability::DistributionController::reusableCellCount() const { return k_totalNumberOfModels; } diff --git a/apps/probability/distribution_controller.h b/apps/probability/distribution_controller.h index a75e3f5bb..d81fca8c7 100644 --- a/apps/probability/distribution_controller.h +++ b/apps/probability/distribution_controller.h @@ -16,11 +16,11 @@ public: bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; void viewWillAppear() override; - int numberOfRows() override; + int numberOfRows() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; private: class ContentView : public View { public: diff --git a/apps/probability/parameters_controller.cpp b/apps/probability/parameters_controller.cpp index 96d9dfbb2..3d655dd69 100644 --- a/apps/probability/parameters_controller.cpp +++ b/apps/probability/parameters_controller.cpp @@ -111,7 +111,7 @@ void ParametersController::viewWillAppear() { FloatParameterController::viewWillAppear(); } -int ParametersController::numberOfRows() { +int ParametersController::numberOfRows() const { return 1+m_distribution->numberOfParameter(); } diff --git a/apps/probability/parameters_controller.h b/apps/probability/parameters_controller.h index 833854cd9..390b3099d 100644 --- a/apps/probability/parameters_controller.h +++ b/apps/probability/parameters_controller.h @@ -17,7 +17,7 @@ public: void reinitCalculation(); void didBecomeFirstResponder() override; void viewWillAppear() override; - int numberOfRows() override; + int numberOfRows() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; private: HighlightCell * reusableParameterCell(int index, int type) override; diff --git a/apps/regression/calculation_controller.cpp b/apps/regression/calculation_controller.cpp index 8ba925910..f2c0da050 100644 --- a/apps/regression/calculation_controller.cpp +++ b/apps/regression/calculation_controller.cpp @@ -114,11 +114,11 @@ Responder * CalculationController::defaultController() { return tabController(); } -int CalculationController::numberOfRows() { +int CalculationController::numberOfRows() const { return 1 + k_totalNumberOfDoubleBufferRows + 4 + maxNumberOfCoefficients() + hasLinearRegression() * 2; } -int CalculationController::numberOfColumns() { +int CalculationController::numberOfColumns() const { return 1 + m_store->numberOfNonEmptySeries(); } diff --git a/apps/regression/calculation_controller.h b/apps/regression/calculation_controller.h index 35881290d..a9ecc1fe8 100644 --- a/apps/regression/calculation_controller.h +++ b/apps/regression/calculation_controller.h @@ -37,8 +37,8 @@ public: Responder * defaultController() override; // TableViewDataSource - int numberOfRows() override; - int numberOfColumns() override; + int numberOfRows() const override; + int numberOfColumns() const override; void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; KDCoordinate columnWidth(int i) override; KDCoordinate rowHeight(int j) override; diff --git a/apps/regression/graph_options_controller.cpp b/apps/regression/graph_options_controller.cpp index de03068a1..83d80db43 100644 --- a/apps/regression/graph_options_controller.cpp +++ b/apps/regression/graph_options_controller.cpp @@ -54,7 +54,7 @@ bool GraphOptionsController::handleEvent(Ion::Events::Event event) { return false; } -int GraphOptionsController::numberOfRows() { +int GraphOptionsController::numberOfRows() const { return k_numberOfParameterCells + 1; } diff --git a/apps/regression/graph_options_controller.h b/apps/regression/graph_options_controller.h index 796ca795a..69ec697bf 100644 --- a/apps/regression/graph_options_controller.h +++ b/apps/regression/graph_options_controller.h @@ -20,7 +20,7 @@ public: void viewWillAppear() override; //ListViewDataSource - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; diff --git a/apps/regression/initialisation_parameter_controller.cpp b/apps/regression/initialisation_parameter_controller.cpp index 76600ce88..421d3f7c3 100644 --- a/apps/regression/initialisation_parameter_controller.cpp +++ b/apps/regression/initialisation_parameter_controller.cpp @@ -37,7 +37,7 @@ bool InitialisationParameterController::handleEvent(Ion::Events::Event event) { return false; } -int InitialisationParameterController::numberOfRows() { +int InitialisationParameterController::numberOfRows() const { return k_totalNumberOfCells; }; @@ -48,7 +48,7 @@ HighlightCell * InitialisationParameterController::reusableCell(int index) { return &m_cells[index]; } -int InitialisationParameterController::reusableCellCount() { +int InitialisationParameterController::reusableCellCount() const { return k_totalNumberOfCells; } diff --git a/apps/regression/initialisation_parameter_controller.h b/apps/regression/initialisation_parameter_controller.h index 19ba8b26a..d3c97b59e 100644 --- a/apps/regression/initialisation_parameter_controller.h +++ b/apps/regression/initialisation_parameter_controller.h @@ -14,10 +14,10 @@ public: const char * title() override; bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; private: constexpr static int k_totalNumberOfCells = 3; diff --git a/apps/regression/regression_controller.h b/apps/regression/regression_controller.h index 19c462fa3..a843908a4 100644 --- a/apps/regression/regression_controller.h +++ b/apps/regression/regression_controller.h @@ -27,7 +27,7 @@ public: HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override { return k_numberOfCells; } int typeAtLocation(int i, int j) override { return 0; } - int numberOfRows() override { return k_numberOfRows; } + int numberOfRows() const override { return k_numberOfRows; } void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; private: constexpr static int k_numberOfRows = 9; diff --git a/apps/regression/store_parameter_controller.h b/apps/regression/store_parameter_controller.h index 48b81fdcc..08c532405 100644 --- a/apps/regression/store_parameter_controller.h +++ b/apps/regression/store_parameter_controller.h @@ -16,7 +16,7 @@ public: void viewWillAppear() override; void didBecomeFirstResponder() override; // ListViewDataSource - int numberOfRows() override { return Shared::StoreParameterController::numberOfRows() + 1; } + int numberOfRows() const override { return Shared::StoreParameterController::numberOfRows() + 1; } KDCoordinate rowHeight(int j) override; HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; diff --git a/apps/sequence/graph/curve_parameter_controller.cpp b/apps/sequence/graph/curve_parameter_controller.cpp index 2497a6cbc..cab2f4330 100644 --- a/apps/sequence/graph/curve_parameter_controller.cpp +++ b/apps/sequence/graph/curve_parameter_controller.cpp @@ -37,7 +37,7 @@ bool CurveParameterController::handleEvent(Ion::Events::Event event) { return false; } -int CurveParameterController::numberOfRows() { +int CurveParameterController::numberOfRows() const { return k_totalNumberOfCells; }; @@ -48,7 +48,7 @@ HighlightCell * CurveParameterController::reusableCell(int index) { return cells[index]; } -int CurveParameterController::reusableCellCount() { +int CurveParameterController::reusableCellCount() const { return k_totalNumberOfCells; } diff --git a/apps/sequence/graph/curve_parameter_controller.h b/apps/sequence/graph/curve_parameter_controller.h index b2919ec9b..7d47f1f6d 100644 --- a/apps/sequence/graph/curve_parameter_controller.h +++ b/apps/sequence/graph/curve_parameter_controller.h @@ -13,9 +13,9 @@ public: CurveParameterController(InputEventHandlerDelegate * inputEventHandlerDelegate, GraphController * graphController, Shared::InteractiveCurveViewRange * graphRange, Shared::CurveViewCursor * cursor); const char * title() override; bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; private: constexpr static int k_totalNumberOfCells = 2; GoToParameterController * goToParameterController() override; diff --git a/apps/sequence/list/list_controller.cpp b/apps/sequence/list/list_controller.cpp index 511abaf84..e3e2f631c 100644 --- a/apps/sequence/list/list_controller.cpp +++ b/apps/sequence/list/list_controller.cpp @@ -27,16 +27,15 @@ const char * ListController::title() { return I18n::translate(I18n::Message::SequenceTab); } -int ListController::numberOfExpressionRows() { +int ListController::numberOfExpressionRows() const { int numberOfRows = 0; - for (int i = 0; i < modelStore()->numberOfModels(); i++) { - Sequence * sequence = modelStore()->modelForRecord(modelStore()->recordAtIndex(i)); + SequenceStore * store = const_cast(this)->modelStore(); + const int modelsCount = store->numberOfModels(); + for (int i = 0; i < modelsCount; i++) { + Sequence * sequence = store->modelForRecord(store->recordAtIndex(i)); numberOfRows += sequence->numberOfElements(); } - if (modelStore()->numberOfModels() == modelStore()->maxNumberOfModels()) { - return numberOfRows; - } - return 1 + numberOfRows; + return numberOfRows + (modelsCount == store->maxNumberOfModels()? 0 : 1); }; KDCoordinate ListController::expressionRowHeight(int j) { diff --git a/apps/sequence/list/list_controller.h b/apps/sequence/list/list_controller.h index 85f942d20..c5d7d5e1a 100644 --- a/apps/sequence/list/list_controller.h +++ b/apps/sequence/list/list_controller.h @@ -19,7 +19,7 @@ class ListController : public Shared::FunctionListController, public Shared::Inp public: ListController(Responder * parentResponder, ::InputEventHandlerDelegate * inputEventHandlerDelegate, ButtonRowController * header, ButtonRowController * footer); const char * title() override; - int numberOfExpressionRows() override; + int numberOfExpressionRows() const override; KDCoordinate expressionRowHeight(int j) override; void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; Toolbox * toolboxForInputEventHandler(InputEventHandler * handler) override; diff --git a/apps/sequence/list/sequence_toolbox.cpp b/apps/sequence/list/sequence_toolbox.cpp index d7e11a8f0..9037a34c5 100644 --- a/apps/sequence/list/sequence_toolbox.cpp +++ b/apps/sequence/list/sequence_toolbox.cpp @@ -26,7 +26,7 @@ bool SequenceToolbox::handleEvent(Ion::Events::Event event) { return MathToolbox::handleEventForRow(event, mathToolboxIndex(selectedRow())); } -int SequenceToolbox::numberOfRows() { +int SequenceToolbox::numberOfRows() const { if (stackDepth() == 0) { return MathToolbox::numberOfRows()+m_numberOfAddedCells; } diff --git a/apps/sequence/list/sequence_toolbox.h b/apps/sequence/list/sequence_toolbox.h index fc4450e82..c67122a9f 100644 --- a/apps/sequence/list/sequence_toolbox.h +++ b/apps/sequence/list/sequence_toolbox.h @@ -11,7 +11,7 @@ class SequenceToolbox : public MathToolbox { public: SequenceToolbox(); bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; HighlightCell * reusableCell(int index, int type) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; int typeAtLocation(int i, int j) override; diff --git a/apps/sequence/list/type_parameter_controller.cpp b/apps/sequence/list/type_parameter_controller.cpp index 3f30a08b3..fca5f400d 100644 --- a/apps/sequence/list/type_parameter_controller.cpp +++ b/apps/sequence/list/type_parameter_controller.cpp @@ -92,7 +92,7 @@ bool TypeParameterController::handleEvent(Ion::Events::Event event) { return false; } -int TypeParameterController::numberOfRows() { +int TypeParameterController::numberOfRows() const { return k_totalNumberOfCell; }; @@ -103,7 +103,7 @@ HighlightCell * TypeParameterController::reusableCell(int index) { return cells[index]; } -int TypeParameterController::reusableCellCount() { +int TypeParameterController::reusableCellCount() const { return k_totalNumberOfCell; } diff --git a/apps/sequence/list/type_parameter_controller.h b/apps/sequence/list/type_parameter_controller.h index 58a944399..711e0f073 100644 --- a/apps/sequence/list/type_parameter_controller.h +++ b/apps/sequence/list/type_parameter_controller.h @@ -20,10 +20,10 @@ public: void viewDidDisappear() override; void didBecomeFirstResponder() override; bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; void setRecord(Ion::Storage::Record record); private: diff --git a/apps/settings/main_controller.cpp b/apps/settings/main_controller.cpp index 42c68fbfd..74ba5787c 100644 --- a/apps/settings/main_controller.cpp +++ b/apps/settings/main_controller.cpp @@ -85,7 +85,7 @@ bool MainController::handleEvent(Ion::Events::Event event) { return false; } -int MainController::numberOfRows() { +int MainController::numberOfRows() const { return model()->numberOfChildren(); }; diff --git a/apps/settings/main_controller.h b/apps/settings/main_controller.h index 7d9d68d71..32db50c66 100644 --- a/apps/settings/main_controller.h +++ b/apps/settings/main_controller.h @@ -17,7 +17,7 @@ public: View * view() override; bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; diff --git a/apps/settings/sub_menu/generic_sub_controller.cpp b/apps/settings/sub_menu/generic_sub_controller.cpp index f69895893..96c0a39a4 100644 --- a/apps/settings/sub_menu/generic_sub_controller.cpp +++ b/apps/settings/sub_menu/generic_sub_controller.cpp @@ -39,7 +39,7 @@ bool GenericSubController::handleEvent(Ion::Events::Event event) { return false; } -int GenericSubController::numberOfRows() { +int GenericSubController::numberOfRows() const { if (m_messageTreeModel) { return m_messageTreeModel->numberOfChildren(); } diff --git a/apps/settings/sub_menu/generic_sub_controller.h b/apps/settings/sub_menu/generic_sub_controller.h index 1325de9a7..132cc1773 100644 --- a/apps/settings/sub_menu/generic_sub_controller.h +++ b/apps/settings/sub_menu/generic_sub_controller.h @@ -13,7 +13,7 @@ public: View * view() override; void didBecomeFirstResponder() override; bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; diff --git a/apps/shared/editable_cell_table_view_controller.cpp b/apps/shared/editable_cell_table_view_controller.cpp index 77378f56b..b17b50f35 100644 --- a/apps/shared/editable_cell_table_view_controller.cpp +++ b/apps/shared/editable_cell_table_view_controller.cpp @@ -56,7 +56,7 @@ bool EditableCellTableViewController::textFieldDidFinishEditing(TextField * text return true; } -int EditableCellTableViewController::numberOfRows() { +int EditableCellTableViewController::numberOfRows() const { int numberOfModelElements = 0; for (int i = 0; i < numberOfColumns(); i++) { numberOfModelElements = maxInt(numberOfModelElements, numberOfElementsInColumn(i)); diff --git a/apps/shared/editable_cell_table_view_controller.h b/apps/shared/editable_cell_table_view_controller.h index 567c80213..b196dff17 100644 --- a/apps/shared/editable_cell_table_view_controller.h +++ b/apps/shared/editable_cell_table_view_controller.h @@ -15,7 +15,7 @@ public: bool textFieldShouldFinishEditing(TextField * textField, Ion::Events::Event event) override; bool textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; void willDisplayCellAtLocationWithDisplayMode(HighlightCell * cell, int i, int j, Poincare::Preferences::PrintFloatMode mode); KDCoordinate rowHeight(int j) override; void viewWillAppear() override; @@ -33,7 +33,7 @@ private: virtual bool cellAtLocationIsEditable(int columnIndex, int rowIndex) = 0; virtual bool setDataAtLocation(double floatBody, int columnIndex, int rowIndex) = 0; virtual double dataAtLocation(int columnIndex, int rowIndex) = 0; - virtual int numberOfElementsInColumn(int columnIndex) = 0; + virtual int numberOfElementsInColumn(int columnIndex) const = 0; virtual int maxNumberOfElements() const = 0; }; diff --git a/apps/shared/expression_model_list_controller.cpp b/apps/shared/expression_model_list_controller.cpp index 684afbf74..174381ef4 100644 --- a/apps/shared/expression_model_list_controller.cpp +++ b/apps/shared/expression_model_list_controller.cpp @@ -140,11 +140,10 @@ int ExpressionModelListController::memoizedIndexFromCumulatedHeight(KDCoordinate return notMemoizedIndexFromCumulatedHeight(offsetY); } -int ExpressionModelListController::numberOfExpressionRows() { - if (modelStore()->numberOfModels() == modelStore()->maxNumberOfModels()) { - return modelStore()->numberOfModels(); - } - return 1 + modelStore()->numberOfModels(); +int ExpressionModelListController::numberOfExpressionRows() const { + const ExpressionModelStore * store = const_cast(this)->modelStore(); + int modelsCount = store->numberOfModels(); + return modelsCount + (modelsCount == store->maxNumberOfModels() ? 0 : 1); } KDCoordinate ExpressionModelListController::expressionRowHeight(int j) { diff --git a/apps/shared/expression_model_list_controller.h b/apps/shared/expression_model_list_controller.h index be8e3c568..4dbd8a4b5 100644 --- a/apps/shared/expression_model_list_controller.h +++ b/apps/shared/expression_model_list_controller.h @@ -15,7 +15,7 @@ protected: // SelectableTableViewDelegate void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY, bool withinTemporarySelection) override; // TableViewDataSource - virtual int numberOfExpressionRows(); + virtual int numberOfExpressionRows() const; KDCoordinate memoizedRowHeight(int j); KDCoordinate memoizedCumulatedHeightFromIndex(int j); int memoizedIndexFromCumulatedHeight(KDCoordinate offsetY); diff --git a/apps/shared/function_list_controller.h b/apps/shared/function_list_controller.h index 8bc0dd055..4499e4bea 100644 --- a/apps/shared/function_list_controller.h +++ b/apps/shared/function_list_controller.h @@ -18,11 +18,11 @@ public: void viewWillAppear() override; /* TableViewDataSource */ - int numberOfRows() override { return this->numberOfExpressionRows(); } + int numberOfRows() const override { return this->numberOfExpressionRows(); } KDCoordinate rowHeight(int j) override { return ExpressionModelListController::memoizedRowHeight(j); } KDCoordinate cumulatedHeightFromIndex(int j) override { return ExpressionModelListController::memoizedCumulatedHeightFromIndex(j); } int indexFromCumulatedHeight(KDCoordinate offsetY) override { return ExpressionModelListController::memoizedIndexFromCumulatedHeight(offsetY); } - int numberOfColumns() override { return 2; } + int numberOfColumns() const override { return 2; } KDCoordinate columnWidth(int i) override; KDCoordinate cumulatedWidthFromIndex(int i) override; int indexFromCumulatedWidth(KDCoordinate offsetX) override; diff --git a/apps/shared/go_to_parameter_controller.cpp b/apps/shared/go_to_parameter_controller.cpp index 40bf3b48f..d72ab64d9 100644 --- a/apps/shared/go_to_parameter_controller.cpp +++ b/apps/shared/go_to_parameter_controller.cpp @@ -11,7 +11,7 @@ GoToParameterController::GoToParameterController(Responder * parentResponder, In { } -int GoToParameterController::numberOfRows() { +int GoToParameterController::numberOfRows() const { return 2; } diff --git a/apps/shared/go_to_parameter_controller.h b/apps/shared/go_to_parameter_controller.h index 8c19079b0..31516b923 100644 --- a/apps/shared/go_to_parameter_controller.h +++ b/apps/shared/go_to_parameter_controller.h @@ -11,7 +11,7 @@ namespace Shared { class GoToParameterController : public FloatParameterController { public: GoToParameterController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, InteractiveCurveViewRange * graphRange, CurveViewCursor * cursor); - int numberOfRows() override; + int numberOfRows() const override; bool handleEvent(Ion::Events::Event event) override; protected: void setParameterName(I18n::Message message) { m_parameterCell.setMessage(message); } diff --git a/apps/shared/initialisation_parameter_controller.cpp b/apps/shared/initialisation_parameter_controller.cpp index 6e8fa00ce..531fed091 100644 --- a/apps/shared/initialisation_parameter_controller.cpp +++ b/apps/shared/initialisation_parameter_controller.cpp @@ -32,7 +32,7 @@ void InitialisationParameterController::didBecomeFirstResponder() { Container::activeApp()->setFirstResponder(&m_selectableTableView); } -int InitialisationParameterController::numberOfRows() { +int InitialisationParameterController::numberOfRows() const { return k_totalNumberOfCells; } @@ -46,7 +46,7 @@ HighlightCell * InitialisationParameterController::reusableCell(int index) { return &m_cells[index]; } -int InitialisationParameterController::reusableCellCount() { +int InitialisationParameterController::reusableCellCount() const { return k_totalNumberOfCells; } diff --git a/apps/shared/initialisation_parameter_controller.h b/apps/shared/initialisation_parameter_controller.h index 83bb27adf..5a7e33186 100644 --- a/apps/shared/initialisation_parameter_controller.h +++ b/apps/shared/initialisation_parameter_controller.h @@ -18,10 +18,10 @@ public: const char * title() override; bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; private: constexpr static int k_totalNumberOfCells = 4; diff --git a/apps/shared/interval_parameter_controller.cpp b/apps/shared/interval_parameter_controller.cpp index ce1587f57..7ab9e275c 100644 --- a/apps/shared/interval_parameter_controller.cpp +++ b/apps/shared/interval_parameter_controller.cpp @@ -20,7 +20,7 @@ const char * IntervalParameterController::title() { return I18n::translate(m_title); } -int IntervalParameterController::numberOfRows() { +int IntervalParameterController::numberOfRows() const { return k_totalNumberOfCell+1; } diff --git a/apps/shared/interval_parameter_controller.h b/apps/shared/interval_parameter_controller.h index c0d01d7d9..9ed10d99b 100644 --- a/apps/shared/interval_parameter_controller.h +++ b/apps/shared/interval_parameter_controller.h @@ -16,7 +16,7 @@ public: const char * title() override; void setTitle(I18n::Message title) { m_title = title; } void willDisplayCellForIndex(HighlightCell * cell, int index) override; - int numberOfRows() override; + int numberOfRows() const override; void setStartEndMessages(I18n::Message startMessage, I18n::Message endMessage); protected: constexpr static int k_totalNumberOfCell = 3; diff --git a/apps/shared/language_controller.cpp b/apps/shared/language_controller.cpp index 68e047616..704e08562 100644 --- a/apps/shared/language_controller.cpp +++ b/apps/shared/language_controller.cpp @@ -49,7 +49,7 @@ bool LanguageController::handleEvent(Ion::Events::Event event) { return false; } -int LanguageController::numberOfRows() { +int LanguageController::numberOfRows() const { return I18n::NumberOfLanguages; } @@ -61,7 +61,7 @@ HighlightCell * LanguageController::reusableCell(int index) { return &m_cells[index]; } -int LanguageController::reusableCellCount() { +int LanguageController::reusableCellCount() const { return I18n::NumberOfLanguages; } diff --git a/apps/shared/language_controller.h b/apps/shared/language_controller.h index 746e68e1c..fac81fb7c 100644 --- a/apps/shared/language_controller.h +++ b/apps/shared/language_controller.h @@ -17,10 +17,10 @@ public: void viewWillAppear() override; bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; private: diff --git a/apps/shared/list_parameter_controller.h b/apps/shared/list_parameter_controller.h index f719918e6..dead11d22 100644 --- a/apps/shared/list_parameter_controller.h +++ b/apps/shared/list_parameter_controller.h @@ -17,7 +17,7 @@ public: void setRecord(Ion::Storage::Record record); void didBecomeFirstResponder() override; void viewWillAppear() override; - int numberOfRows() override { return totalNumberOfCells(); } + int numberOfRows() const override { return totalNumberOfCells(); } // ListViewDataSource KDCoordinate rowHeight(int j) override { return Metric::ParameterCellHeight; } diff --git a/apps/shared/range_parameter_controller.cpp b/apps/shared/range_parameter_controller.cpp index fd45e352a..95779d24c 100644 --- a/apps/shared/range_parameter_controller.cpp +++ b/apps/shared/range_parameter_controller.cpp @@ -27,7 +27,7 @@ const char * RangeParameterController::title() { return I18n::translate(I18n::Message::Axis); } -int RangeParameterController::numberOfRows() { +int RangeParameterController::numberOfRows() const { return k_numberOfTextCell+2; } diff --git a/apps/shared/range_parameter_controller.h b/apps/shared/range_parameter_controller.h index b787476a1..63280ad73 100644 --- a/apps/shared/range_parameter_controller.h +++ b/apps/shared/range_parameter_controller.h @@ -11,7 +11,7 @@ class RangeParameterController : public FloatParameterController { public: RangeParameterController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, InteractiveCurveViewRange * interactiveCurveViewRange); const char * title() override; - int numberOfRows() override; + int numberOfRows() const override; int typeAtLocation(int i, int j) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; bool textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) override; diff --git a/apps/shared/store_controller.cpp b/apps/shared/store_controller.cpp index c0a42986e..876b7682e 100644 --- a/apps/shared/store_controller.cpp +++ b/apps/shared/store_controller.cpp @@ -106,7 +106,7 @@ bool StoreController::textFieldDidAbortEditing(TextField * textField) { } -int StoreController::numberOfColumns() { +int StoreController::numberOfColumns() const { return DoublePairStore::k_numberOfColumnsPerSeries * DoublePairStore::k_numberOfSeries; } @@ -221,7 +221,7 @@ double StoreController::dataAtLocation(int columnIndex, int rowIndex) { return m_store->get(seriesAtColumn(columnIndex), columnIndex%DoublePairStore::k_numberOfColumnsPerSeries, rowIndex-1); } -int StoreController::numberOfElementsInColumn(int columnIndex) { +int StoreController::numberOfElementsInColumn(int columnIndex) const { return m_store->numberOfPairsOfSeries(seriesAtColumn(columnIndex)); } diff --git a/apps/shared/store_controller.h b/apps/shared/store_controller.h index 1e96bb918..3492aebe7 100644 --- a/apps/shared/store_controller.h +++ b/apps/shared/store_controller.h @@ -28,7 +28,7 @@ public: bool textFieldDidAbortEditing(TextField * textField) override; // TableViewDataSource - int numberOfColumns() override; + int numberOfColumns() const override; KDCoordinate columnWidth(int i) override; KDCoordinate cumulatedWidthFromIndex(int i) override; int indexFromCumulatedWidth(KDCoordinate offsetX) override; @@ -84,7 +84,7 @@ private: return m_contentView.dataView(); } bool cellAtLocationIsEditable(int columnIndex, int rowIndex) override; - int numberOfElementsInColumn(int columnIndex) override; + int numberOfElementsInColumn(int columnIndex) const override; int maxNumberOfElements() const override { return DoublePairStore::k_maxNumberOfPairs; }; diff --git a/apps/shared/store_parameter_controller.h b/apps/shared/store_parameter_controller.h index fa3212778..8480c7370 100644 --- a/apps/shared/store_parameter_controller.h +++ b/apps/shared/store_parameter_controller.h @@ -18,7 +18,7 @@ public: const char * title() override; bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; - int numberOfRows() override { return k_totalNumberOfCell; } + int numberOfRows() const override { return k_totalNumberOfCell; } KDCoordinate rowHeight(int j) override { return Metric::ParameterCellHeight; } KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; diff --git a/apps/shared/values_controller.cpp b/apps/shared/values_controller.cpp index bab758087..590c51a02 100644 --- a/apps/shared/values_controller.cpp +++ b/apps/shared/values_controller.cpp @@ -40,7 +40,7 @@ const char * ValuesController::title() { return I18n::translate(I18n::Message::ValuesTab); } -int ValuesController::numberOfColumns() { +int ValuesController::numberOfColumns() const { if (m_numberOfColumnsNeedUpdate) { updateNumberOfColumns(); m_numberOfColumnsNeedUpdate = false; @@ -246,11 +246,11 @@ double ValuesController::dataAtLocation(int columnIndex, int rowIndex) { return intervalAtColumn(columnIndex)->element(rowIndex-1); } -int ValuesController::numberOfElementsInColumn(int columnIndex) { - return intervalAtColumn(columnIndex)->numberOfElements(); +int ValuesController::numberOfElementsInColumn(int columnIndex) const { + return const_cast(this)->intervalAtColumn(columnIndex)->numberOfElements(); } -void ValuesController::updateNumberOfColumns() { +void ValuesController::updateNumberOfColumns() const { m_numberOfColumns = 1+functionStore()->numberOfActiveFunctions(); } diff --git a/apps/shared/values_controller.h b/apps/shared/values_controller.h index f86c02e34..b831e17bf 100644 --- a/apps/shared/values_controller.h +++ b/apps/shared/values_controller.h @@ -17,7 +17,7 @@ class ValuesController : public EditableCellTableViewController, public ButtonRo public: ValuesController(Responder * parentResponder, ButtonRowController * header); const char * title() override; - int numberOfColumns() override; + int numberOfColumns() const override; virtual bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; void willExitResponderChain(Responder * nextFirstResponder) override; @@ -48,13 +48,13 @@ protected: void setupAbscissaCellsAndTitleCells(InputEventHandlerDelegate * inputEventHandlerDelegate); StackViewController * stackController() const; bool setDataAtLocation(double floatBody, int columnIndex, int rowIndex) override; - virtual void updateNumberOfColumns(); + virtual void updateNumberOfColumns() const; virtual FunctionStore * functionStore() const; virtual Ion::Storage::Record recordAtColumn(int i); - int numberOfElementsInColumn(int columnIndex) override; + int numberOfElementsInColumn(int columnIndex) const override; SelectableTableView * selectableTableView() override { return &m_selectableTableView; } - int m_numberOfColumns; - bool m_numberOfColumnsNeedUpdate; + mutable int m_numberOfColumns; + mutable bool m_numberOfColumnsNeedUpdate; SelectableTableView m_selectableTableView; private: virtual void setStartEndMessages(Shared::IntervalParameterController * controller, int column) = 0; diff --git a/apps/shared/values_function_parameter_controller.h b/apps/shared/values_function_parameter_controller.h index 8e2fabc02..a39dbed49 100644 --- a/apps/shared/values_function_parameter_controller.h +++ b/apps/shared/values_function_parameter_controller.h @@ -20,13 +20,13 @@ public: const char * title() override; void viewWillAppear() override; void didBecomeFirstResponder() override; - virtual int numberOfRows() override { return 1; } + virtual int numberOfRows() const override { return 1; } KDCoordinate cellHeight() override { return Metric::ParameterCellHeight; } virtual HighlightCell * reusableCell(int index) override { assert(index == 0); return &m_copyColumn; } - virtual int reusableCellCount() override { return 1; } + virtual int reusableCellCount() const override { return 1; } void setRecord(Ion::Storage::Record record) { m_record = record; } protected: MessageTableCellWithChevron m_copyColumn; diff --git a/apps/shared/values_parameter_controller.cpp b/apps/shared/values_parameter_controller.cpp index 224b10d46..272808ae9 100644 --- a/apps/shared/values_parameter_controller.cpp +++ b/apps/shared/values_parameter_controller.cpp @@ -78,7 +78,7 @@ bool ValuesParameterController::handleEvent(Ion::Events::Event event) { return false; } -int ValuesParameterController::numberOfRows() { +int ValuesParameterController::numberOfRows() const { return k_totalNumberOfCell; }; @@ -89,7 +89,7 @@ HighlightCell * ValuesParameterController::reusableCell(int index) { return cells[index]; } -int ValuesParameterController::reusableCellCount() { +int ValuesParameterController::reusableCellCount() const { return k_totalNumberOfCell; } diff --git a/apps/shared/values_parameter_controller.h b/apps/shared/values_parameter_controller.h index 206b4e041..5cc842f72 100644 --- a/apps/shared/values_parameter_controller.h +++ b/apps/shared/values_parameter_controller.h @@ -14,10 +14,10 @@ public: bool handleEvent(Ion::Events::Event event) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; void didBecomeFirstResponder() override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate cellHeight() override; HighlightCell * reusableCell(int index) override; - int reusableCellCount() override; + int reusableCellCount() const override; private: #if COPY_COLUMN constexpr static int k_totalNumberOfCell = 3; diff --git a/apps/solver/equation_models_parameter_controller.cpp b/apps/solver/equation_models_parameter_controller.cpp index 2a769c05c..2ed3f6ac7 100644 --- a/apps/solver/equation_models_parameter_controller.cpp +++ b/apps/solver/equation_models_parameter_controller.cpp @@ -60,7 +60,7 @@ bool EquationModelsParameterController::handleEvent(Ion::Events::Event event) { return false; } -int EquationModelsParameterController::numberOfRows() { +int EquationModelsParameterController::numberOfRows() const { return k_numberOfExpressionCells+1; }; diff --git a/apps/solver/equation_models_parameter_controller.h b/apps/solver/equation_models_parameter_controller.h index ecf57f315..bb6812cb1 100644 --- a/apps/solver/equation_models_parameter_controller.h +++ b/apps/solver/equation_models_parameter_controller.h @@ -16,7 +16,7 @@ public: void viewWillAppear() override; void didBecomeFirstResponder() override; bool handleEvent(Ion::Events::Event event) override; - int numberOfRows() override; + int numberOfRows() const override; KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; diff --git a/apps/solver/interval_controller.cpp b/apps/solver/interval_controller.cpp index a1ab7e131..cb452a0ce 100644 --- a/apps/solver/interval_controller.cpp +++ b/apps/solver/interval_controller.cpp @@ -59,7 +59,7 @@ const char * IntervalController::title() { return I18n::translate(I18n::Message::SearchInverval); } -int IntervalController::numberOfRows() { +int IntervalController::numberOfRows() const { return k_maxNumberOfCells+1; } diff --git a/apps/solver/interval_controller.h b/apps/solver/interval_controller.h index acf1ddc34..206f86fd1 100644 --- a/apps/solver/interval_controller.h +++ b/apps/solver/interval_controller.h @@ -12,7 +12,7 @@ public: IntervalController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate, EquationStore * equationStore); const char * title() override; View * view() override { return &m_contentView; } - int numberOfRows() override; + int numberOfRows() const override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; private: HighlightCell * reusableParameterCell(int index, int type) override; diff --git a/apps/solver/list_controller.h b/apps/solver/list_controller.h index 5d54369e0..5642963b3 100644 --- a/apps/solver/list_controller.h +++ b/apps/solver/list_controller.h @@ -19,7 +19,7 @@ public: int numberOfButtons(ButtonRowController::Position position) const override; Button * buttonAtIndex(int index, ButtonRowController::Position position) const override; /* ListViewDataSource */ - int numberOfRows() override { return numberOfExpressionRows(); } + int numberOfRows() const override { return numberOfExpressionRows(); } KDCoordinate rowHeight(int j) override{ return ExpressionModelListController::memoizedRowHeight(j); } KDCoordinate cumulatedHeightFromIndex(int j) override { return ExpressionModelListController::memoizedCumulatedHeightFromIndex(j); } int indexFromCumulatedHeight(KDCoordinate offsetY) override { return ExpressionModelListController::memoizedIndexFromCumulatedHeight(offsetY); } diff --git a/apps/solver/solutions_controller.cpp b/apps/solver/solutions_controller.cpp index 3d05a43b0..8ec20a4a5 100644 --- a/apps/solver/solutions_controller.cpp +++ b/apps/solver/solutions_controller.cpp @@ -149,11 +149,11 @@ Responder * SolutionsController::defaultController() { /* TableViewDataSource */ -int SolutionsController::numberOfRows() { +int SolutionsController::numberOfRows() const { return m_equationStore->numberOfSolutions(); } -int SolutionsController::numberOfColumns() { +int SolutionsController::numberOfColumns() const { return 2; } diff --git a/apps/solver/solutions_controller.h b/apps/solver/solutions_controller.h index 172faf761..33208d7c2 100644 --- a/apps/solver/solutions_controller.h +++ b/apps/solver/solutions_controller.h @@ -20,8 +20,8 @@ public: virtual I18n::Message emptyMessage() override; virtual Responder * defaultController() override; /* TableViewDataSource */ - int numberOfRows() override; - int numberOfColumns() override; + int numberOfRows() const override; + int numberOfColumns() const override; void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; KDCoordinate columnWidth(int i) override; KDCoordinate rowHeight(int j) override; diff --git a/apps/statistics/calculation_controller.cpp b/apps/statistics/calculation_controller.cpp index 627716461..bbf195288 100644 --- a/apps/statistics/calculation_controller.cpp +++ b/apps/statistics/calculation_controller.cpp @@ -50,7 +50,7 @@ Responder * CalculationController::defaultController() { // TableViewDataSource -int CalculationController::numberOfColumns() { +int CalculationController::numberOfColumns() const { return 1 + m_store->numberOfNonEmptySeries(); } diff --git a/apps/statistics/calculation_controller.h b/apps/statistics/calculation_controller.h index 653ac69d4..9f5075adc 100644 --- a/apps/statistics/calculation_controller.h +++ b/apps/statistics/calculation_controller.h @@ -25,8 +25,8 @@ public: Responder * defaultController() override; // TableViewDataSource - int numberOfRows() override { return k_totalNumberOfRows; } - int numberOfColumns() override; + int numberOfRows() const override { return k_totalNumberOfRows; } + int numberOfColumns() const override; void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override; KDCoordinate columnWidth(int i) override; KDCoordinate rowHeight(int j) override { return k_cellHeight; } diff --git a/apps/statistics/histogram_parameter_controller.h b/apps/statistics/histogram_parameter_controller.h index 7c12a4fa4..7688b7b27 100644 --- a/apps/statistics/histogram_parameter_controller.h +++ b/apps/statistics/histogram_parameter_controller.h @@ -11,7 +11,7 @@ class HistogramParameterController : public Shared::FloatParameterController