[apps/graph] Fix CurveParamCtrlr relayouting bug

Scenario:
f(x) = 1, g(theta) = 2, go to Graph.
Press ok on the polar curve, then Back, then OK on the cartesian curve :
the menu is drawn as if the curve was still polar.
This commit is contained in:
Léa Saviot
2019-08-28 09:38:08 +02:00
parent ced3cc7e0c
commit 7d36634303
2 changed files with 8 additions and 0 deletions

View File

@@ -76,6 +76,13 @@ int CurveParameterController::reusableCellCount() {
return 1 + (shouldDisplayCalculationAndDerivative() ? 2 : 0);
}
void CurveParameterController::viewDidDisappear() {
/* Deselect the table properly because it needs to be relayouted the next time
* it appears: the number of rows might change according to the plot type. */
m_selectableTableView.deselectTable(false);
m_selectableTableView.setFrame(KDRectZero);
}
bool CurveParameterController::shouldDisplayCalculationAndDerivative() const {
Shared::ExpiringPointer<CartesianFunction> f = App::app()->functionStore()->modelForRecord(m_record);
return f->plotType() == CartesianFunction::PlotType::Cartesian;

View File

@@ -18,6 +18,7 @@ public:
HighlightCell * reusableCell(int index) override;
int reusableCellCount() override;
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
void viewDidDisappear() override;
private:
bool shouldDisplayCalculationAndDerivative() const;
int cellIndex(int visibleCellIndex) const;