src/EditProductTab3.cpp

changeset 229
815ee118ad49
parent 225
448e4187cada
child 283
242a68fa7186
--- 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));
+	}
+    }
 }
 
 

mercurial