[apps/shared] Add discard confirmation on range parameters

Change-Id: I609acbd136cb0bc84899777810f4c1497832952f
This commit is contained in:
Hugo Saint-Vignes
2020-10-09 16:02:43 +02:00
committed by Émilie Feral
parent 3705ce4f92
commit 697f727429
2 changed files with 13 additions and 1 deletions

View File

@@ -11,7 +11,12 @@ RangeParameterController::RangeParameterController(Responder * parentResponder,
m_tempInteractiveRange(*interactiveRange),
m_xRangeCells{},
m_yRangeCells{},
m_yAutoCell(I18n::Message::YAuto)
m_yAutoCell(I18n::Message::YAuto),
m_confirmPopUpController(Invocation([](void * context, void * sender) {
Container::activeApp()->dismissModalViewController();
((RangeParameterController *)context)->stackController()->pop();
return true;
}, this))
{
for (int i = 0; i < k_numberOfEditableTextCell; i++) {
m_xRangeCells[i].setParentResponder(&m_selectableTableView);
@@ -82,6 +87,11 @@ bool RangeParameterController::handleEvent(Ion::Events::Event event) {
m_selectableTableView.reloadData();
return true;
}
if (event == Ion::Events::Back && m_interactiveRange->rangeChecksum() != m_tempInteractiveRange.rangeChecksum()) {
// Open pop-up to confirm discarding values
Container::activeApp()->displayModalViewController(&m_confirmPopUpController, 0.f, 0.f, Metric::ExamPopUpTopMargin, Metric::PopUpRightMargin, Metric::ExamPopUpBottomMargin, Metric::PopUpLeftMargin);
return true;
}
return FloatParameterController::handleEvent(event);
}

View File

@@ -4,6 +4,7 @@
#include <escher.h>
#include "interactive_curve_view_range.h"
#include "float_parameter_controller.h"
#include "discard_pop_up_controller.h"
namespace Shared {
@@ -45,6 +46,7 @@ private:
MessageTableCellWithEditableText m_xRangeCells[k_numberOfEditableTextCell];
MessageTableCellWithConvertibleEditableText m_yRangeCells[k_numberOfConvertibleTextCell];
MessageTableCellWithSwitch m_yAutoCell;
DiscardPopUpController m_confirmPopUpController;
};
}