# HG changeset patch # User Michiel Broek # Date 1653144612 -7200 # Node ID 815ee118ad49741e92723a6458eb80fef58c6dbc # Parent c859e8efa470619467a17facd9645251938a6f54 The abused progress bars in the fermentables tab now show the stacked colors like I want them. 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)); + } + } } diff -r c859e8efa470 -r 815ee118ad49 src/EditRecipeTab2.cpp --- a/src/EditRecipeTab2.cpp Sat May 21 13:28:15 2022 +0200 +++ b/src/EditRecipeTab2.cpp Sat May 21 16:50:12 2022 +0200 @@ -404,41 +404,67 @@ void EditRecipe::ferment_perc_mash_valueChanged(int value) { - 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); + if (value < 90) { + ui->perc_mashShow->setStyleSheet(bar_green); + } 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)); + } + } } void EditRecipe::ferment_perc_sugars_valueChanged(int value) { if (value < 20) - ui->perc_sugarsShow->setStyleSheet(bar_green); - else - ui->perc_sugarsShow->setStyleSheet(bar_red); + ui->perc_sugarsShow->setStyleSheet(bar_green); + 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)); + } } void EditRecipe::ferment_perc_cara_valueChanged(int value) { if (value < 25) - ui->perc_caraShow->setStyleSheet(bar_green); - else - ui->perc_caraShow->setStyleSheet(bar_red); + ui->perc_caraShow->setStyleSheet(bar_green); + 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 EditRecipe::ferment_lintner_valueChanged(int value) { - if (value < 30) - ui->lintnerShow->setStyleSheet(bar_red); - else if (value < 40) - ui->lintnerShow->setStyleSheet(bar_orange); - else - ui->lintnerShow->setStyleSheet(bar_green); + /* + * Calculate the color stop positions + */ + if (value < 30) { + ui->lintnerShow->setStyleSheet(bar_red); + } 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)); + } + } }