Added Bitterness Unit to Real Extract unit calculation and display. In product use final values if possible for the BU:GU and BU:RE calculations depending on the product stage.

Wed, 17 Aug 2022 14:30:33 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 17 Aug 2022 14:30:33 +0200
changeset 395
7212b980a527
parent 394
f41d02c129e5
child 396
c9a1d85c1487

Added Bitterness Unit to Real Extract unit calculation and display. In product use final values if possible for the BU:GU and BU:RE calculations depending on the product stage.

src/EditProduct.cpp file | annotate | diff | comparison | revisions
src/EditProduct.h file | annotate | diff | comparison | revisions
src/EditProductTab1.cpp file | annotate | diff | comparison | revisions
src/EditProductTab6.cpp file | annotate | diff | comparison | revisions
src/EditProductTab8.cpp file | annotate | diff | comparison | revisions
src/EditRecipe.cpp file | annotate | diff | comparison | revisions
src/EditRecipe.h file | annotate | diff | comparison | revisions
src/EditRecipeTab1.cpp file | annotate | diff | comparison | revisions
src/EditRecipeTab5.cpp file | annotate | diff | comparison | revisions
src/EditRecipeTab7.cpp file | annotate | diff | comparison | revisions
ui/EditProduct.ui file | annotate | diff | comparison | revisions
ui/EditRecipe.ui file | annotate | diff | comparison | revisions
--- a/src/EditProduct.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditProduct.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -339,6 +339,11 @@
     ui->est_carbShow->setMarkerTextIsValue(true);
     ui->est_carbShow->setRange(product->st_carb_min, product->st_carb_max);
     ui->est_carbShow->setValue(product->est_carb);
+    calcStyle();
+    ui->est_buguShow->setPrecision(2);
+    ui->est_buguShow->setMarkerTextIsValue(true);
+    ui->est_bufguShow->setPrecision(2);
+    ui->est_bufguShow->setMarkerTextIsValue(true);
 
     // Tab equipment.
     initEquipment();
--- a/src/EditProduct.h	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditProduct.h	Wed Aug 17 14:30:33 2022 +0200
@@ -301,6 +301,8 @@
     void calcFermentables();
     void calcFermentablesFromOG(double og);
     void calcIBUs();
+    void calcStyle();
+    void calcBU();
     void adjustHops(double factor);
     void adjustMiscs(double factor);
     double ZAlkalinity(double pHZ);
--- a/src/EditProductTab1.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditProductTab1.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -18,6 +18,37 @@
  */
 
 
+void EditProduct::calcStyle()
+{
+    /*
+     * https://www.homebrewersassociation.org/forum/index.php?topic=10548.0
+     *
+     * Calculate the ideal BU:GU and BU:RE ranges. These values
+     * will be used in the RangedSliders.
+     */
+    double bugu_min = product->st_ibu_min / ((product->st_og_min - 1) * 1000);
+    double bugu_max = product->st_ibu_max / ((product->st_og_max - 1) * 1000);
+    ui->est_buguShow->setRange(bugu_min, bugu_max);
+
+    double fg_min = product->st_fg_min;
+    if (fg_min < 1.002)		/* Use 1.002 fg as lowest minimal value */
+	fg_min = 1.002;
+
+    /*
+     * Real Extract (RE)
+     */
+    double re = ((0.1808 * ((Utils::sg_to_plato(product->st_og_min) + Utils::sg_to_plato(product->st_og_max)) / 2)) +
+		 (0.8192 * ((Utils::sg_to_plato(fg_min) + Utils::sg_to_plato(product->st_fg_max)) / 2)));
+
+    /* BU:RE */
+    double bure_min = product->st_ibu_min / re;
+    double bure_max = product->st_ibu_max / re;
+    ui->est_bufguShow->setRange(bure_min, bure_max);
+
+    qDebug() << "BU:RE" << bure_min << bure_max;
+}
+
+
 void EditProduct::code_changed(QString code)
 {
     product->code = code;
@@ -88,6 +119,7 @@
     ui->est_carbShow->setRange(query.value(15).toDouble(), query.value(16).toDouble());
     ui->est_abvShow->setRange(query.value(17).toDouble(), query.value(18).toDouble());
 
+    calcStyle();
     is_changed();
 }
 
--- a/src/EditProductTab6.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditProductTab6.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -311,6 +311,7 @@
     } else {
 	ui->starterTable->hide();
     }
+    calcBU();
 }
 
 
--- a/src/EditProductTab8.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditProductTab8.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -187,6 +187,49 @@
 }
 
 
+void EditProduct::calcBU()
+{
+    if (product->stage < PROD_STAGE_WAIT)
+	return;
+
+    double BUGU = GetBUGU();
+    ui->buguEdit->setValue(BUGU);
+    ui->est_buguEdit->setValue(BUGU);
+    ui->est_buguShow->setValue(BUGU);
+    if (BUGU < 0.32)
+        ui->buguResult->setText(tr("Very malty and sweet"));
+    else if (BUGU < 0.43)
+        ui->buguResult->setText(tr("Malty, sweet"));
+    else if (BUGU < 0.52)
+        ui->buguResult->setText(tr("Balanced"));
+    else if (BUGU < 0.63)
+        ui->buguResult->setText(tr("Hoppy, bitter"));
+    else
+        ui->buguResult->setText(tr("Very hoppy, very bitter"));
+
+    double og = product->est_og;
+    double fg = product->est_fg;
+    double ibu = product->est_ibu;
+
+    if (product->stage > PROD_STAGE_BREW) {
+	og = product->brew_fermenter_sg;
+	ibu = product->brew_fermenter_ibu;
+    }
+    if (product->stage > PROD_STAGE_TERTIARY) {
+	fg = product->fg;
+    }
+
+    if (fg < 1.002)	/* Can't be too low for this */
+	fg = 1.002;
+
+    double bure = ibu / ((0.1808 * Utils::sg_to_plato(og)) + (0.8192 * Utils::sg_to_plato(fg)));
+    qDebug() << "BU:RE" << bure << product->est_fg << product->fg << product->est_ibu << product->brew_fermenter_ibu;
+    ui->est_bufguEdit->setValue(bure);
+    ui->est_bufguShow->setValue(bure);
+
+}
+
+
 void EditProduct::calcWater()
 {
     double liters = 0;
@@ -383,18 +426,7 @@
 	chloride = wg_chloride + RA;
     }
 
-    double BUGU = GetBUGU();
-    ui->buguEdit->setValue(BUGU);
-    if (BUGU < 0.32)
-	ui->buguResult->setText(tr("Very malty and sweet"));
-    else if (BUGU < 0.43)
-	ui->buguResult->setText(tr("Malty, sweet"));
-    else if (BUGU < 0.52)
-	ui->buguResult->setText(tr("Balanced"));
-    else if (BUGU < 0.63)
-	ui->buguResult->setText(tr("Hoppy, bitter"));
-    else
-	ui->buguResult->setText(tr("Very hoppy, very bitter"));
+    calcBU();
 
     double OptSO4Clratio = GetOptSO4Clratio();
     ui->so4clEdit->setValue(OptSO4Clratio);
@@ -774,9 +806,17 @@
 
 double EditProduct::GetBUGU()
 {
-    double gu = (product->est_og - 1) * 1000;
+    double og = product->est_og;
+    double ibu = product->est_ibu;
+
+    if (product->stage > PROD_STAGE_BREW) {
+        og = product->brew_fermenter_sg;
+	ibu = product->brew_fermenter_ibu;
+    }
+
+    double gu = (og - 1) * 1000;
     if (gu > 0)
-	return product->est_ibu / gu;
+	return ibu / gu;
     return 0.5;
 }
 
--- a/src/EditRecipe.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditRecipe.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -219,6 +219,11 @@
     ui->est_carbShow->setMarkerTextIsValue(true);
     ui->est_carbShow->setRange(recipe->st_carb_min, recipe->st_carb_max);
     ui->est_carbShow->setValue(recipe->est_carb);
+    calcStyle();
+    ui->est_buguShow->setPrecision(2);
+    ui->est_buguShow->setMarkerTextIsValue(true);
+    ui->est_bufguShow->setPrecision(2);
+    ui->est_bufguShow->setMarkerTextIsValue(true);
 
     // Tab fermentables.
     ui->est_og2Edit->setValue(recipe->est_og);
--- a/src/EditRecipe.h	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditRecipe.h	Wed Aug 17 14:30:33 2022 +0200
@@ -170,6 +170,8 @@
     void calcFermentables();
     void calcFermentablesFromOG(double og);
     void calcIBUs();
+    void calcStyle();
+    void calcBU();
     void adjustHops(double factor);
     void adjustMiscs(double factor);
     double ZAlkalinity(double pHZ);
--- a/src/EditRecipeTab1.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditRecipeTab1.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -18,6 +18,36 @@
  */
 
 
+void EditRecipe::calcStyle()
+{
+    /*
+     * https://www.homebrewersassociation.org/forum/index.php?topic=10548.0
+     *
+     * Calculate the ideal BU:GU and BU:RE ranges. These values
+     * will be used in the RangedSliders.
+     */
+    double bugu_min = recipe->st_ibu_min / ((recipe->st_og_min - 1) * 1000);
+    double bugu_max = recipe->st_ibu_max / ((recipe->st_og_max - 1) * 1000);
+    ui->est_buguShow->setRange(bugu_min, bugu_max);
+
+    double fg_min = recipe->st_fg_min;
+    if (fg_min < 1.002)                /* Use 1.002 fg as lowest minimal value */
+       fg_min = 1.002;
+
+    /*
+     * Real Extract (RE)
+     */
+    double re = ((0.1808 * ((Utils::sg_to_plato(recipe->st_og_min) + Utils::sg_to_plato(recipe->st_og_max)) / 2)) +
+                (0.8192 * ((Utils::sg_to_plato(fg_min) + Utils::sg_to_plato(recipe->st_fg_max)) / 2)));
+
+    /* BU:RE */
+    double bure_min = recipe->st_ibu_min / re;
+    double bure_max = recipe->st_ibu_max / re;
+    ui->est_bufguShow->setRange(bure_min, bure_max);
+
+    qDebug() << "BU:RE" << bure_min << bure_max;
+}
+
 
 void EditRecipe::name_changed(QString name)
 {
@@ -82,6 +112,7 @@
     ui->est_carbShow->setRange(query.value(15).toDouble(), query.value(16).toDouble());
     ui->est_abvShow->setRange(query.value(17).toDouble(), query.value(18).toDouble());
 
+    calcStyle();
     is_changed();
 }
 
--- a/src/EditRecipeTab5.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditRecipeTab5.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -203,6 +203,7 @@
 	    break;
 	}
     }
+    calcBU();
 }
 
 
--- a/src/EditRecipeTab7.cpp	Thu Aug 11 10:50:18 2022 +0200
+++ b/src/EditRecipeTab7.cpp	Wed Aug 17 14:30:33 2022 +0200
@@ -187,6 +187,38 @@
 }
 
 
+void EditRecipe::calcBU()
+{
+    double BUGU = GetBUGU();
+    ui->buguEdit->setValue(BUGU);
+    ui->est_buguEdit->setValue(BUGU);
+    ui->est_buguShow->setValue(BUGU);
+    if (BUGU < 0.32)
+	ui->buguResult->setText(tr("Very malty and sweet"));
+    else if (BUGU < 0.43)
+	ui->buguResult->setText(tr("Malty, sweet"));
+    else if (BUGU < 0.52)
+	ui->buguResult->setText(tr("Balanced"));
+    else if (BUGU < 0.63)
+	ui->buguResult->setText(tr("Hoppy, bitter"));
+    else
+	ui->buguResult->setText(tr("Very hoppy, very bitter"));
+
+    double og = recipe->est_og;
+    double fg = recipe->est_fg;
+    double ibu = recipe->est_ibu;
+
+    if (fg < 1.002)    /* Can't be too low for this */
+	fg = 1.002;
+
+    double bure = ibu / ((0.1808 * Utils::sg_to_plato(og)) + (0.8192 * Utils::sg_to_plato(fg)));
+    qDebug() << "BU:RE" << bure << recipe->est_fg << recipe->est_ibu;
+    ui->est_bufguEdit->setValue(bure);
+    ui->est_bufguShow->setValue(bure);
+
+}
+
+
 void EditRecipe::calcWater()
 {
     double liters = 0;
@@ -383,18 +415,7 @@
 	chloride = wg_chloride + RA;
     }
 
-    double BUGU = GetBUGU();
-    ui->buguEdit->setValue(BUGU);
-    if (BUGU < 0.32)
-	ui->buguResult->setText(tr("Very malty and sweet"));
-    else if (BUGU < 0.43)
-	ui->buguResult->setText(tr("Malty, sweet"));
-    else if (BUGU < 0.52)
-	ui->buguResult->setText(tr("Balanced"));
-    else if (BUGU < 0.63)
-	ui->buguResult->setText(tr("Hoppy, bitter"));
-    else
-	ui->buguResult->setText(tr("Very hoppy, very bitter"));
+    calcBU();
 
     double OptSO4Clratio = GetOptSO4Clratio();
     ui->so4clEdit->setValue(OptSO4Clratio);
--- a/ui/EditProduct.ui	Thu Aug 11 10:50:18 2022 +0200
+++ b/ui/EditProduct.ui	Wed Aug 17 14:30:33 2022 +0200
@@ -407,9 +407,9 @@
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>340</y>
+          <y>310</y>
           <width>1101</width>
-          <height>121</height>
+          <height>151</height>
          </rect>
         </property>
         <property name="title">
@@ -880,6 +880,132 @@
           <double>0.100000000000000</double>
          </property>
         </widget>
+        <widget class="QLabel" name="est_buguLabel">
+         <property name="geometry">
+          <rect>
+           <x>10</x>
+           <y>110</y>
+           <width>111</width>
+           <height>20</height>
+          </rect>
+         </property>
+         <property name="text">
+          <string>BU:GU ratio:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+        </widget>
+        <widget class="QLabel" name="est_bufguLabel">
+         <property name="geometry">
+          <rect>
+           <x>380</x>
+           <y>110</y>
+           <width>111</width>
+           <height>20</height>
+          </rect>
+         </property>
+         <property name="text">
+          <string>BU:RE ratio:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+        </widget>
+        <widget class="QDoubleSpinBox" name="est_buguEdit">
+         <property name="geometry">
+          <rect>
+           <x>130</x>
+           <y>110</y>
+           <width>71</width>
+           <height>24</height>
+          </rect>
+         </property>
+         <property name="toolTip">
+          <string>The obsolete Bitterness Unit to Gravity Unit ratio</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+         <property name="readOnly">
+          <bool>true</bool>
+         </property>
+         <property name="buttonSymbols">
+          <enum>QAbstractSpinBox::NoButtons</enum>
+         </property>
+         <property name="accelerated">
+          <bool>false</bool>
+         </property>
+         <property name="decimals">
+          <number>2</number>
+         </property>
+         <property name="minimum">
+          <double>0.000000000000000</double>
+         </property>
+         <property name="maximum">
+          <double>400.000000000000000</double>
+         </property>
+         <property name="singleStep">
+          <double>1.000000000000000</double>
+         </property>
+        </widget>
+        <widget class="QDoubleSpinBox" name="est_bufguEdit">
+         <property name="geometry">
+          <rect>
+           <x>500</x>
+           <y>110</y>
+           <width>71</width>
+           <height>24</height>
+          </rect>
+         </property>
+         <property name="toolTip">
+          <string>Bitterness Unit to Real Extract ratio</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+         <property name="readOnly">
+          <bool>true</bool>
+         </property>
+         <property name="buttonSymbols">
+          <enum>QAbstractSpinBox::NoButtons</enum>
+         </property>
+         <property name="accelerated">
+          <bool>false</bool>
+         </property>
+         <property name="decimals">
+          <number>2</number>
+         </property>
+         <property name="minimum">
+          <double>0.000000000000000</double>
+         </property>
+         <property name="maximum">
+          <double>400.000000000000000</double>
+         </property>
+         <property name="singleStep">
+          <double>1.000000000000000</double>
+         </property>
+        </widget>
+        <widget class="RangedSlider" name="est_buguShow">
+         <property name="geometry">
+          <rect>
+           <x>210</x>
+           <y>110</y>
+           <width>148</width>
+           <height>24</height>
+          </rect>
+         </property>
+        </widget>
+        <widget class="RangedSlider" name="est_bufguShow">
+         <property name="geometry">
+          <rect>
+           <x>580</x>
+           <y>110</y>
+           <width>148</width>
+           <height>24</height>
+          </rect>
+         </property>
+        </widget>
        </widget>
        <widget class="QGroupBox" name="styleBox">
         <property name="geometry">
@@ -887,7 +1013,7 @@
           <x>10</x>
           <y>210</y>
           <width>1101</width>
-          <height>121</height>
+          <height>91</height>
          </rect>
         </property>
         <property name="title">
@@ -896,9 +1022,9 @@
         <widget class="QComboBox" name="beerstyleEdit">
          <property name="geometry">
           <rect>
-           <x>130</x>
+           <x>720</x>
            <y>20</y>
-           <width>211</width>
+           <width>16</width>
            <height>23</height>
           </rect>
          </property>
@@ -907,7 +1033,7 @@
          <property name="geometry">
           <rect>
            <x>870</x>
-           <y>50</y>
+           <y>20</y>
            <width>101</width>
            <height>23</height>
           </rect>
@@ -923,7 +1049,7 @@
          <property name="geometry">
           <rect>
            <x>130</x>
-           <y>50</y>
+           <y>20</y>
            <width>211</width>
            <height>23</height>
           </rect>
@@ -939,7 +1065,7 @@
          <property name="geometry">
           <rect>
            <x>10</x>
-           <y>50</y>
+           <y>20</y>
            <width>111</width>
            <height>20</height>
           </rect>
@@ -954,9 +1080,9 @@
         <widget class="QLabel" name="st_groupLabel">
          <property name="geometry">
           <rect>
-           <x>720</x>
-           <y>50</y>
-           <width>141</width>
+           <x>740</x>
+           <y>20</y>
+           <width>121</width>
            <height>20</height>
           </rect>
          </property>
@@ -967,27 +1093,11 @@
           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
          </property>
         </widget>
-        <widget class="QLabel" name="beerstyleLabel">
-         <property name="geometry">
-          <rect>
-           <x>10</x>
-           <y>20</y>
-           <width>111</width>
-           <height>20</height>
-          </rect>
-         </property>
-         <property name="text">
-          <string>Select style:</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-         </property>
-        </widget>
         <widget class="QLabel" name="st_typeLabel">
          <property name="geometry">
           <rect>
            <x>10</x>
-           <y>80</y>
+           <y>50</y>
            <width>111</width>
            <height>20</height>
           </rect>
@@ -1003,7 +1113,7 @@
          <property name="geometry">
           <rect>
            <x>130</x>
-           <y>80</y>
+           <y>50</y>
            <width>211</width>
            <height>23</height>
           </rect>
@@ -1019,7 +1129,7 @@
          <property name="geometry">
           <rect>
            <x>360</x>
-           <y>80</y>
+           <y>50</y>
            <width>131</width>
            <height>20</height>
           </rect>
@@ -1035,7 +1145,7 @@
          <property name="geometry">
           <rect>
            <x>870</x>
-           <y>80</y>
+           <y>50</y>
            <width>71</width>
            <height>23</height>
           </rect>
@@ -1051,7 +1161,7 @@
          <property name="geometry">
           <rect>
            <x>720</x>
-           <y>80</y>
+           <y>50</y>
            <width>141</width>
            <height>20</height>
           </rect>
@@ -1067,7 +1177,7 @@
          <property name="geometry">
           <rect>
            <x>500</x>
-           <y>80</y>
+           <y>50</y>
            <width>211</width>
            <height>23</height>
           </rect>
@@ -1083,7 +1193,7 @@
          <property name="geometry">
           <rect>
            <x>500</x>
-           <y>50</y>
+           <y>20</y>
            <width>211</width>
            <height>23</height>
           </rect>
@@ -1099,7 +1209,7 @@
          <property name="geometry">
           <rect>
            <x>380</x>
-           <y>50</y>
+           <y>20</y>
            <width>111</width>
            <height>20</height>
           </rect>
--- a/ui/EditRecipe.ui	Thu Aug 11 10:50:18 2022 +0200
+++ b/ui/EditRecipe.ui	Wed Aug 17 14:30:33 2022 +0200
@@ -404,9 +404,9 @@
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>340</y>
+          <y>310</y>
           <width>1101</width>
-          <height>121</height>
+          <height>151</height>
          </rect>
         </property>
         <property name="title">
@@ -874,6 +874,132 @@
           <double>0.100000000000000</double>
          </property>
         </widget>
+        <widget class="QLabel" name="est_buguLabel">
+         <property name="geometry">
+          <rect>
+           <x>10</x>
+           <y>110</y>
+           <width>111</width>
+           <height>20</height>
+          </rect>
+         </property>
+         <property name="text">
+          <string>BU:GU ratio:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+        </widget>
+        <widget class="QDoubleSpinBox" name="est_buguEdit">
+         <property name="geometry">
+          <rect>
+           <x>130</x>
+           <y>110</y>
+           <width>71</width>
+           <height>24</height>
+          </rect>
+         </property>
+         <property name="toolTip">
+          <string>The obsolete Bitterness Unit to Gravity Unit ratio</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+         <property name="readOnly">
+          <bool>true</bool>
+         </property>
+         <property name="buttonSymbols">
+          <enum>QAbstractSpinBox::NoButtons</enum>
+         </property>
+         <property name="accelerated">
+          <bool>false</bool>
+         </property>
+         <property name="decimals">
+          <number>2</number>
+         </property>
+         <property name="minimum">
+          <double>0.000000000000000</double>
+         </property>
+         <property name="maximum">
+          <double>400.000000000000000</double>
+         </property>
+         <property name="singleStep">
+          <double>1.000000000000000</double>
+         </property>
+        </widget>
+        <widget class="RangedSlider" name="est_bufguShow">
+         <property name="geometry">
+          <rect>
+           <x>580</x>
+           <y>110</y>
+           <width>148</width>
+           <height>24</height>
+          </rect>
+         </property>
+        </widget>
+        <widget class="RangedSlider" name="est_buguShow">
+         <property name="geometry">
+          <rect>
+           <x>210</x>
+           <y>110</y>
+           <width>148</width>
+           <height>24</height>
+          </rect>
+         </property>
+        </widget>
+        <widget class="QDoubleSpinBox" name="est_bufguEdit">
+         <property name="geometry">
+          <rect>
+           <x>500</x>
+           <y>110</y>
+           <width>71</width>
+           <height>24</height>
+          </rect>
+         </property>
+         <property name="toolTip">
+          <string>Bitterness Unit to Real Extract ratio</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+         <property name="readOnly">
+          <bool>true</bool>
+         </property>
+         <property name="buttonSymbols">
+          <enum>QAbstractSpinBox::NoButtons</enum>
+         </property>
+         <property name="accelerated">
+          <bool>false</bool>
+         </property>
+         <property name="decimals">
+          <number>2</number>
+         </property>
+         <property name="minimum">
+          <double>0.000000000000000</double>
+         </property>
+         <property name="maximum">
+          <double>400.000000000000000</double>
+         </property>
+         <property name="singleStep">
+          <double>1.000000000000000</double>
+         </property>
+        </widget>
+        <widget class="QLabel" name="est_bufguLabel">
+         <property name="geometry">
+          <rect>
+           <x>380</x>
+           <y>110</y>
+           <width>111</width>
+           <height>20</height>
+          </rect>
+         </property>
+         <property name="text">
+          <string>BU:RE ratio:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+         </property>
+        </widget>
        </widget>
        <widget class="QGroupBox" name="styleBox">
         <property name="geometry">
@@ -881,7 +1007,7 @@
           <x>10</x>
           <y>210</y>
           <width>1101</width>
-          <height>121</height>
+          <height>91</height>
          </rect>
         </property>
         <property name="title">
@@ -890,9 +1016,9 @@
         <widget class="QComboBox" name="beerstyleEdit">
          <property name="geometry">
           <rect>
-           <x>500</x>
+           <x>730</x>
            <y>20</y>
-           <width>226</width>
+           <width>16</width>
            <height>23</height>
           </rect>
          </property>
@@ -901,7 +1027,7 @@
          <property name="geometry">
           <rect>
            <x>870</x>
-           <y>50</y>
+           <y>20</y>
            <width>101</width>
            <height>23</height>
           </rect>
@@ -914,7 +1040,7 @@
          <property name="geometry">
           <rect>
            <x>500</x>
-           <y>50</y>
+           <y>20</y>
            <width>226</width>
            <height>23</height>
           </rect>
@@ -927,7 +1053,7 @@
          <property name="geometry">
           <rect>
            <x>130</x>
-           <y>50</y>
+           <y>20</y>
            <width>226</width>
            <height>23</height>
           </rect>
@@ -940,7 +1066,7 @@
          <property name="geometry">
           <rect>
            <x>10</x>
-           <y>50</y>
+           <y>20</y>
            <width>111</width>
            <height>20</height>
           </rect>
@@ -955,9 +1081,9 @@
         <widget class="QLabel" name="st_groupLabel">
          <property name="geometry">
           <rect>
-           <x>730</x>
-           <y>50</y>
-           <width>131</width>
+           <x>750</x>
+           <y>20</y>
+           <width>111</width>
            <height>20</height>
           </rect>
          </property>
@@ -972,7 +1098,7 @@
          <property name="geometry">
           <rect>
            <x>360</x>
-           <y>50</y>
+           <y>20</y>
            <width>131</width>
            <height>20</height>
           </rect>
@@ -984,27 +1110,11 @@
           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
          </property>
         </widget>
-        <widget class="QLabel" name="beerstyleLabel">
-         <property name="geometry">
-          <rect>
-           <x>360</x>
-           <y>20</y>
-           <width>131</width>
-           <height>20</height>
-          </rect>
-         </property>
-         <property name="text">
-          <string>Select style:</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-         </property>
-        </widget>
         <widget class="QLabel" name="st_typeLabel">
          <property name="geometry">
           <rect>
            <x>10</x>
-           <y>80</y>
+           <y>50</y>
            <width>111</width>
            <height>20</height>
           </rect>
@@ -1020,7 +1130,7 @@
          <property name="geometry">
           <rect>
            <x>130</x>
-           <y>80</y>
+           <y>50</y>
            <width>226</width>
            <height>23</height>
           </rect>
@@ -1033,7 +1143,7 @@
          <property name="geometry">
           <rect>
            <x>360</x>
-           <y>80</y>
+           <y>50</y>
            <width>131</width>
            <height>20</height>
           </rect>
@@ -1049,7 +1159,7 @@
          <property name="geometry">
           <rect>
            <x>870</x>
-           <y>80</y>
+           <y>50</y>
            <width>71</width>
            <height>23</height>
           </rect>
@@ -1062,7 +1172,7 @@
          <property name="geometry">
           <rect>
            <x>730</x>
-           <y>80</y>
+           <y>50</y>
            <width>131</width>
            <height>20</height>
           </rect>
@@ -1078,7 +1188,7 @@
          <property name="geometry">
           <rect>
            <x>500</x>
-           <y>80</y>
+           <y>50</y>
            <width>226</width>
            <height>23</height>
           </rect>

mercurial