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--;
|
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) {
|
double Interval::element(int i) {
|
||||||
assert(i >= 0 && i < numberOfElements());
|
assert(i >= 0 && i < numberOfElements());
|
||||||
computeElements();
|
computeElements();
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public:
|
|||||||
double m_end;
|
double m_end;
|
||||||
double m_step;
|
double m_step;
|
||||||
};
|
};
|
||||||
|
bool hasSameParameters(IntervalParameters parameters);
|
||||||
double element(int i);
|
double element(int i);
|
||||||
IntervalParameters * parameters() { return &m_parameters; }
|
IntervalParameters * parameters() { return &m_parameters; }
|
||||||
void setParameters(IntervalParameters parameters) { m_parameters = parameters; }
|
void setParameters(IntervalParameters parameters) { m_parameters = parameters; }
|
||||||
|
|||||||
@@ -13,7 +13,12 @@ IntervalParameterController::IntervalParameterController(Responder * parentRespo
|
|||||||
m_intervalCells{},
|
m_intervalCells{},
|
||||||
m_title(I18n::Message::IntervalSet),
|
m_title(I18n::Message::IntervalSet),
|
||||||
m_startMessage(I18n::Message::XStart),
|
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++) {
|
for (int i = 0; i < k_totalNumberOfCell; i++) {
|
||||||
m_intervalCells[i].setParentResponder(&m_selectableTableView);
|
m_intervalCells[i].setParentResponder(&m_selectableTableView);
|
||||||
@@ -87,6 +92,11 @@ bool IntervalParameterController::handleEvent(Ion::Events::Event event) {
|
|||||||
stackController()->pop();
|
stackController()->pop();
|
||||||
return true;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include "interval.h"
|
#include "interval.h"
|
||||||
#include "float_parameter_controller.h"
|
#include "float_parameter_controller.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include "discard_pop_up_controller.h"
|
||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ private:
|
|||||||
I18n::Message m_title;
|
I18n::Message m_title;
|
||||||
I18n::Message m_startMessage;
|
I18n::Message m_startMessage;
|
||||||
I18n::Message m_endMessage;
|
I18n::Message m_endMessage;
|
||||||
|
DiscardPopUpController m_confirmPopUpController;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user