src/EditRecipeTab2.cpp

changeset 229
815ee118ad49
parent 171
6cd2d808d863
child 283
242a68fa7186
--- 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));
+        }
+    }
 }
 
 

mercurial