mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[apps/shared] Add discard confirmation on table intervals
Change-Id: Id152577c570febf06b4d829fd2723c2a30c3ccd9
This commit is contained in:
committed by
Émilie Feral
parent
bd23135198
commit
150a5bfa5a
@@ -23,6 +23,10 @@ void Interval::deleteElementAtIndex(int index) {
|
||||
m_numberOfElements--;
|
||||
}
|
||||
|
||||
bool Interval::hasSameParameters(IntervalParameters parameters) {
|
||||
return (m_parameters.start() == parameters.start() && m_parameters.end() == parameters.end() && m_parameters.step() == parameters.step());
|
||||
}
|
||||
|
||||
double Interval::element(int i) {
|
||||
assert(i >= 0 && i < numberOfElements());
|
||||
computeElements();
|
||||
|
||||
@@ -23,6 +23,7 @@ public:
|
||||
double m_end;
|
||||
double m_step;
|
||||
};
|
||||
bool hasSameParameters(IntervalParameters parameters);
|
||||
double element(int i);
|
||||
IntervalParameters * parameters() { return &m_parameters; }
|
||||
void setParameters(IntervalParameters parameters) { m_parameters = parameters; }
|
||||
|
||||
@@ -13,7 +13,12 @@ IntervalParameterController::IntervalParameterController(Responder * parentRespo
|
||||
m_intervalCells{},
|
||||
m_title(I18n::Message::IntervalSet),
|
||||
m_startMessage(I18n::Message::XStart),
|
||||
m_endMessage(I18n::Message::XEnd)
|
||||
m_endMessage(I18n::Message::XEnd),
|
||||
m_confirmPopUpController(Invocation([](void * context, void * sender) {
|
||||
Container::activeApp()->dismissModalViewController();
|
||||
((IntervalParameterController *)context)->stackController()->pop();
|
||||
return true;
|
||||
}, this))
|
||||
{
|
||||
for (int i = 0; i < k_totalNumberOfCell; i++) {
|
||||
m_intervalCells[i].setParentResponder(&m_selectableTableView);
|
||||
@@ -87,6 +92,11 @@ bool IntervalParameterController::handleEvent(Ion::Events::Event event) {
|
||||
stackController()->pop();
|
||||
return true;
|
||||
}
|
||||
if (event == Ion::Events::Back && !m_interval->hasSameParameters(*SharedTempIntervalParameters())) {
|
||||
// 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 false;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "interval.h"
|
||||
#include "float_parameter_controller.h"
|
||||
#include <assert.h>
|
||||
#include "discard_pop_up_controller.h"
|
||||
|
||||
namespace Shared {
|
||||
|
||||
@@ -33,6 +34,7 @@ private:
|
||||
I18n::Message m_title;
|
||||
I18n::Message m_startMessage;
|
||||
I18n::Message m_endMessage;
|
||||
DiscardPopUpController m_confirmPopUpController;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user