diff -r c859e8efa470 -r 815ee118ad49 src/EditProductTab3.cpp --- a/src/EditProductTab3.cpp Sat May 21 13:28:15 2022 +0200 +++ b/src/EditProductTab3.cpp Sat May 21 16:50:12 2022 +0200 @@ -507,12 +507,21 @@ void EditProduct::ferment_perc_mash_valueChanged(int value) { - if (value < 90) + if (value < 90) { ui->perc_mashShow->setStyleSheet(bar_green); - else if (value < 100) - ui->perc_mashShow->setStyleSheet(bar_orange); - else - ui->perc_mashShow->setStyleSheet(bar_red); + } else { + double s1 = 90.0 / value; + if (value < 100) { + ui->perc_mashShow->setStyleSheet(QString("QProgressBar::chunk {background-color: qlineargradient(x0: 0, x2: 1, " + "stop: 0 green, stop: %1 green, stop: %2 orange, stop: 1 orange" + ");}").arg(s1 - 0.00001).arg(s1)); + } else { + double s2 = 100.0 / value; + ui->perc_mashShow->setStyleSheet(QString("QProgressBar::chunk {background-color: qlineargradient(x0: 0, x2: 1, " + "stop: 0 green, stop: %1 green, stop: %2 orange, stop: %3 orange, stop: %4 red, stop: 1 red" + ");}").arg(s1 - 0.00003).arg(s1 - 0.00002).arg(s2 - 0.00001).arg(s2)); + } + } } @@ -520,8 +529,11 @@ { if (value < 20) ui->perc_sugarsShow->setStyleSheet(bar_green); - else - ui->perc_sugarsShow->setStyleSheet(bar_red); + else { + double s1 = 20.0 / value; + ui->perc_sugarsShow->setStyleSheet(QString("QProgressBar::chunk {background-color: qlineargradient(x0: 0, x2: 1, " + "stop: 0 green, stop: %1 green, stop: %2 red, stop: 1 red);}").arg(s1 - 0.00001).arg(s1)); + } } @@ -529,19 +541,33 @@ { if (value < 25) ui->perc_caraShow->setStyleSheet(bar_green); - else - ui->perc_caraShow->setStyleSheet(bar_red); + else { + double s1 = 25.0 / value; + ui->perc_caraShow->setStyleSheet(QString("QProgressBar::chunk {background-color: qlineargradient(x0: 0, x2: 1, " + "stop: 0 green, stop: %1 green, stop: %2 red, stop: 1 red);}").arg(s1 - 0.00001).arg(s1)); + } } void EditProduct::ferment_lintner_valueChanged(int value) { - if (value < 30) + /* + * Calculate the color stop positions + */ + if (value < 30) { ui->lintnerShow->setStyleSheet(bar_red); - else if (value < 40) - ui->lintnerShow->setStyleSheet(bar_orange); - else - ui->lintnerShow->setStyleSheet(bar_green); + } else { + double s1 = 30.0 / value; + if (value < 40) { + ui->lintnerShow->setStyleSheet(QString("QProgressBar::chunk {background-color: qlineargradient(x0: 0, x2: 1, " + "stop: 0 red, stop: %1 red, stop: %2 orange, stop: 1 orange);}").arg(s1 - 0.00001).arg(s1)); + } else { + double s2 = 40.0 / value; + ui->lintnerShow->setStyleSheet(QString("QProgressBar::chunk {background-color: qlineargradient(x0: 0, x2: 1, " + "stop: 0 red, stop: %1 red, stop: %2 orange, stop: %3 orange, stop: %4 green, stop: 1 green" + ");}").arg(s1 - 0.00003).arg(s1 - 0.00002).arg(s2 - 0.00001).arg(s2)); + } + } }