[apps/reg] Fix cell selection in the store parameter controller

Select the regression cell after coming back from the regression submenu
This commit is contained in:
Léa Saviot
2018-06-07 15:12:49 +02:00
committed by Émilie Feral
parent 47802341f8
commit fd99d4adb5
2 changed files with 15 additions and 1 deletions

View File

@@ -7,7 +7,8 @@ namespace Regression {
StoreParameterController::StoreParameterController(Responder * parentResponder, Store * store, StoreController * storeController) :
Shared::StoreParameterController(parentResponder, store, storeController),
m_changeRegressionCell(I18n::Message::ChangeRegression),
m_regressionController(this, store)
m_regressionController(this, store),
m_lastSelectionIsRegression(false)
{
static_cast<ExpressionView *>(m_changeRegressionCell.subAccessoryView())->setHorizontalMargin(5);
}
@@ -22,11 +23,22 @@ bool StoreParameterController::handleEvent(Ion::Events::Event event) {
m_regressionController.setSeries(m_series);
StackViewController * stack = static_cast<StackViewController *>(parentResponder());
stack->push(&m_regressionController);
m_lastSelectionIsRegression = true;
return true;
}
return Shared::StoreParameterController::handleEvent(event);
}
void StoreParameterController::didBecomeFirstResponder() {
if (m_lastSelectionIsRegression) {
selectCellAtLocation(0, 2);
} else {
selectCellAtLocation(0, 0);
}
m_lastSelectionIsRegression = false;
app()->setFirstResponder(&m_selectableTableView);
}
HighlightCell * StoreParameterController::reusableCell(int index, int type) {
assert(index >= 0);
assert(index < reusableCellCount(type));

View File

@@ -14,6 +14,7 @@ public:
StoreParameterController(Responder * parentResponder, Store * store, StoreController * storeController);
bool handleEvent(Ion::Events::Event event) override;
void viewWillAppear() override;
void didBecomeFirstResponder() override;
// ListViewDataSource
int numberOfRows() override { return Shared::StoreParameterController::numberOfRows() + 1; }
KDCoordinate rowHeight(int j) override;
@@ -25,6 +26,7 @@ private:
static constexpr int k_regressionCellType = 1;
MessageTableCellWithChevronAndExpression m_changeRegressionCell;
RegressionController m_regressionController;
bool m_lastSelectionIsRegression;
};
}