diff --git a/companion/src/modeledit/logicalswitches.cpp b/companion/src/modeledit/logicalswitches.cpp index 136e34813..36ca8ff41 100644 --- a/companion/src/modeledit/logicalswitches.cpp +++ b/companion/src/modeledit/logicalswitches.cpp @@ -222,10 +222,10 @@ void LogicalSwitchesPanel::edited() { source = RawSource(model.customSw[i].val1); RawSourceRange range = source.getRange(model, generalSettings); - int value = source.isTimeBased() ? QTimeS(cswitchTOffset[i]->time()).seconds() : cswitchOffset[i]->value(); + double value = source.isTimeBased() ? QTimeS(cswitchTOffset[i]->time()).seconds() : cswitchOffset[i]->value(); if (model.customSw[i].isDeltaFunction()) { /*TODO: is this delta function value set correctly*/ - model.customSw[i].val2 = (value/range.step); + model.customSw[i].val2 = round(value/range.step); value=model.customSw[i].val2*range.step; } else { @@ -233,7 +233,7 @@ void LogicalSwitchesPanel::edited() value = model.customSw[i].val2*range.step + range.offset; } if (source.isTimeBased()) - cswitchTOffset[i]->setTime(QTimeS(value)); + cswitchTOffset[i]->setTime(QTimeS(round(value))); else cswitchOffset[i]->setValue(value); break; @@ -306,12 +306,12 @@ void LogicalSwitchesPanel::setSwitchWidgetVisibility(int i) int value; if (model.customSw[i].isDeltaFunction()) { /*TODO: is this delta function value set correctly*/ - maxTime = range.step*127; - value = range.step*model.customSw[i].val2; - } + maxTime = round(range.step*127); + value = round(range.step*model.customSw[i].val2); + } else { - maxTime = range.max; - value = range.step*(model.customSw[i].val2/* TODO+source.getRawOffset(model)*/)+range.offset; + maxTime = round(range.max); + value = round(range.step*(model.customSw[i].val2/* TODO+source.getRawOffset(model)*/)+range.offset); } cswitchTOffset[i]->setMaximumTime(QTimeS(maxTime)); cswitchTOffset[i]->setDisplayFormat((maxTime>=3600)?"hh:mm:ss":"mm:ss");