mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-20 09:17:23 +01:00
[apps/sequence] Forbid negative values and round float in values table and interval
settings. Change-Id: Idf18b42dbba1c5cae940bb98cae57b67e7b6a4fd
This commit is contained in:
37
apps/sequence/values/interval_parameter_controller.cpp
Normal file
37
apps/sequence/values/interval_parameter_controller.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
#include "interval_parameter_controller.h"
|
||||
|
||||
using namespace Shared;
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
IntervalParameterController::IntervalParameterController(Responder * parentResponder, Interval * interval) :
|
||||
Shared::IntervalParameterController(parentResponder, interval)
|
||||
{
|
||||
}
|
||||
|
||||
void IntervalParameterController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
if (index == numberOfRows()-1) {
|
||||
return;
|
||||
}
|
||||
MessageTableCellWithEditableText * myCell = (MessageTableCellWithEditableText *)cell;
|
||||
I18n::Message labels[k_totalNumberOfCell] = {I18n::Message::XStart, I18n::Message::XEnd, I18n::Message::XStep};
|
||||
myCell->setMessage(labels[index]);
|
||||
FloatParameterController::willDisplayCellForIndex(cell, index);
|
||||
}
|
||||
|
||||
bool IntervalParameterController::setParameterAtIndex(int parameterIndex, float f) {
|
||||
if (f <= 0) {
|
||||
app()->displayWarning(I18n::Message::ForbiddenValue);
|
||||
return false;
|
||||
}
|
||||
SetterPointer setters[k_totalNumberOfCell] = {&Interval::setStart, &Interval::setEnd, &Interval::setStep};
|
||||
float parameter = roundf(f);
|
||||
if (parameterIndex == 2 && parameter == 0.0f) {
|
||||
parameter = 1.0f;
|
||||
}
|
||||
(m_interval->*setters[parameterIndex])(parameter);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user