From 73cd69c63b1ea5dcb2d40aa7a3a90a8f11f7093d Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Thu, 19 Jun 2014 09:10:22 +0200 Subject: [PATCH 1/2] Fixes #1310 - Vspd V2 value resolution probem in Companion --- companion/src/modeledit/logicalswitches.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/companion/src/modeledit/logicalswitches.cpp b/companion/src/modeledit/logicalswitches.cpp index efe84b594..bd65588e8 100644 --- a/companion/src/modeledit/logicalswitches.cpp +++ b/companion/src/modeledit/logicalswitches.cpp @@ -222,17 +222,17 @@ void LogicalSwitchesPanel::edited() { source = RawSource(model.customSw[i].val1, &model); RawSourceRange range = source.getRange(); - 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 { model.customSw[i].val2 = round((value-range.offset)/range.step);; value= model.customSw[i].val2*range.step + range.offset; } - if (source.isTimeBased()) cswitchTOffset[i]->setTime(QTimeS(value)); + if (source.isTimeBased()) cswitchTOffset[i]->setTime(QTimeS(round(value))); else cswitchOffset[i]->setValue(value); break; } @@ -304,11 +304,11 @@ 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"); From b1fa194a1de453236718fd0845093e9740cddf3b Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Thu, 19 Jun 2014 15:45:47 +0200 Subject: [PATCH 2/2] Cosmetics --- companion/src/modeledit/logicalswitches.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/companion/src/modeledit/logicalswitches.cpp b/companion/src/modeledit/logicalswitches.cpp index d14bea63a..36ca8ff41 100644 --- a/companion/src/modeledit/logicalswitches.cpp +++ b/companion/src/modeledit/logicalswitches.cpp @@ -308,7 +308,8 @@ void LogicalSwitchesPanel::setSwitchWidgetVisibility(int i) /*TODO: is this delta function value set correctly*/ maxTime = round(range.step*127); value = round(range.step*model.customSw[i].val2); - } else { + } + else { maxTime = round(range.max); value = round(range.step*(model.customSw[i].val2/* TODO+source.getRawOffset(model)*/)+range.offset); }