Implemented the tasting tab. On the generic tab, show the ingredients check or the read only prompt on the same place depending on the product stage. Fixed the yeasts ingredients in stock check. Reordered the tab order of all edit fields. It looks like this module is ready and needs testing.

Fri, 20 May 2022 20:43:33 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 20 May 2022 20:43:33 +0200
changeset 225
448e4187cada
parent 224
d369948a3eb5
child 226
23fe317dcf3c

Implemented the tasting tab. On the generic tab, show the ingredients check or the read only prompt on the same place depending on the product stage. Fixed the yeasts ingredients in stock check. Reordered the tab order of all edit fields. It looks like this module is ready and needs testing.

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/EditProductTab12.cpp file | annotate | diff | comparison | revisions
src/EditProductTab3.cpp file | annotate | diff | comparison | revisions
ui/EditProduct.ui file | annotate | diff | comparison | revisions
--- a/src/EditProduct.cpp	Fri May 20 14:48:03 2022 +0200
+++ b/src/EditProduct.cpp	Fri May 20 20:43:33 2022 +0200
@@ -1009,7 +1009,7 @@
     ui->keg_forcedEdit->setChecked(product->keg_forced_carb);
 
     // Tab taste.
-    ui->taste_dateEdit->setText(product->taste_date.toString("dd MMM yyyy"));
+    ui->taste_dateEdit->setDate(product->taste_date);
     ui->taste_rateEdit->setValue(product->taste_rate);
     ui->taste_notesEdit->setPlainText(product->taste_notes);
     ui->taste_colorEdit->setText(product->taste_color);
@@ -1170,6 +1170,18 @@
     connect(ui->keg_forcedEdit, &QCheckBox::stateChanged, this, &EditProduct::kegs_forced_changed);
 
     /* All signals from tab Tasting */
+    connect(ui->taste_dateEdit, &QDateEdit::dateChanged, this, &EditProduct::taste_date_changed);
+    connect(ui->taste_dateButton, SIGNAL(clicked()), this, SLOT(taste_date_button()));
+    connect(ui->taste_ackButton, SIGNAL(clicked()), this, SLOT(taste_date_ack()));
+    connect(ui->taste_rateEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::taste_rate_changed);
+    connect(ui->taste_colorEdit, &QLineEdit::textChanged, this, &EditProduct::taste_color_changed);
+    connect(ui->taste_transparencyEdit, &QLineEdit::textChanged, this, &EditProduct::taste_transparency_changed);
+    connect(ui->taste_headEdit, &QLineEdit::textChanged, this, &EditProduct::taste_head_changed);
+    connect(ui->taste_aromaEdit, &QLineEdit::textChanged, this, &EditProduct::taste_aroma_changed);
+    connect(ui->taste_tasteEdit, &QLineEdit::textChanged, this, &EditProduct::taste_taste_changed);
+    connect(ui->taste_mouthfeelEdit, &QLineEdit::textChanged, this, &EditProduct::taste_mouthfeel_changed);
+    connect(ui->taste_aftertasteEdit, &QLineEdit::textChanged, this, &EditProduct::taste_aftertaste_changed);
+    connect(ui->taste_notesEdit, SIGNAL(textChanged()), this, SLOT(taste_notes_changed()));
 
     setStage();
 
@@ -1820,6 +1832,7 @@
 #include "EditProductTab9.cpp"
 #include "EditProductTab10.cpp"
 #include "EditProductTab11.cpp"
+#include "EditProductTab12.cpp"
 #include "EditProductExport.cpp"
 
 
--- a/src/EditProduct.h	Fri May 20 14:48:03 2022 +0200
+++ b/src/EditProduct.h	Fri May 20 20:43:33 2022 +0200
@@ -214,6 +214,18 @@
     void kegs_water_changed(double val);
     void kegs_forced_changed(bool val);
     void kegs_temp_changed(double val);
+    void taste_date_changed(QDate val);
+    void taste_date_button();
+    void taste_date_ack();
+    void taste_rate_changed(double val);
+    void taste_color_changed(QString val);
+    void taste_transparency_changed(QString val);
+    void taste_head_changed(QString val);
+    void taste_aroma_changed(QString val);
+    void taste_taste_changed(QString val);
+    void taste_mouthfeel_changed(QString val);
+    void taste_aftertaste_changed(QString val);
+    void taste_notes_changed();
 
     /* Modified progress bars */
     void ferment_perc_mash_valueChanged(int value);
--- a/src/EditProductTab1.cpp	Fri May 20 14:48:03 2022 +0200
+++ b/src/EditProductTab1.cpp	Fri May 20 20:43:33 2022 +0200
@@ -241,7 +241,20 @@
     ui->efficiencyEdit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows);
     ui->est_ogEdit->setReadOnly(stage > PROD_STAGE_WAIT);
     ui->est_ogEdit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows);
-    // Block locked if stage <= PROD_STAGE_TASTE
+    if (stage > PROD_STAGE_PACKAGE) {
+	ui->ok_pmptLabel->hide();
+	ui->ok_pmptIcon->hide();
+    } else {
+	ui->ok_pmptLabel->show();
+        ui->ok_pmptIcon->show();
+    }
+    if (stage >= PROD_STAGE_READY) {
+	ui->lockedLabel->show();
+	ui->lockedEdit->show();
+    } else {
+	ui->lockedLabel->hide();
+        ui->lockedEdit->hide();
+    }
 
     /* Tab 2, equipment */
     ui->tabWidget->setTabEnabled(1, stage < PROD_STAGE_BREW);
@@ -537,10 +550,30 @@
 	    ui->pack_ackButton->show();
     }
 
-
     /* Tab 12, tasting */
     ui->tabWidget->setTabEnabled(11, stage > PROD_STAGE_PACKAGE);
-
+    ui->taste_dateEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    if (stage == PROD_STAGE_TASTE) {
+	ui->taste_dateEdit->setMinimumDate(product->package_date.addDays(41));
+	ui->taste_dateEdit->setMaximumDate(QDate::currentDate());
+    }
+    ui->taste_dateButton->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_colorEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_transparencyEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_headEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_aromaEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_tasteEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_mouthfeelEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_aftertasteEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_notesEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    ui->taste_rateEdit->setEnabled(stage == PROD_STAGE_TASTE);
+    if ((product->taste_color != "") && (product->taste_transparency != "") && (product->taste_head != "") &&
+	(product->taste_aroma != "") && (product->taste_taste != "") && (product->taste_mouthfeel != "") &&
+	(product->taste_aftertaste != "") && (product->taste_notes != "") && (product->taste_rate > 0) &&
+	(product->taste_date.isValid()))
+	ui->taste_ackButton->show();
+    else
+	ui->taste_ackButton->hide();
 }
 
 
--- a/src/EditProductTab12.cpp	Fri May 20 14:48:03 2022 +0200
+++ b/src/EditProductTab12.cpp	Fri May 20 20:43:33 2022 +0200
@@ -17,4 +17,104 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+void EditProduct::taste_date_changed(QDate val)
+{
+    product->taste_date = ui->taste_dateEdit->nullDate();
+    is_changed();
+    setStage();
+}
 
+
+void EditProduct::taste_date_button()
+{
+    ui->taste_dateEdit->setDate(QDate::currentDate());
+}
+
+
+void EditProduct::taste_date_ack()
+{
+    int rc = QMessageBox::warning(this, tr("Confirm tasting"), tr("Confirm that the beer tasting is done and the results are filled in."),
+                            QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
+
+    if (rc == QMessageBox::No)
+        return;
+
+    product->stage = PROD_STAGE_READY;
+    setStage();
+    is_changed();
+}
+
+
+void EditProduct::taste_rate_changed(double val)
+{
+    product->taste_rate = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_color_changed(QString val)
+{
+    product->taste_color = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_transparency_changed(QString val)
+{
+    product->taste_transparency = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_head_changed(QString val)
+{
+    product->taste_head = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_aroma_changed(QString val)
+{
+    product->taste_aroma = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_taste_changed(QString val)
+{
+    product->taste_taste = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_mouthfeel_changed(QString val)
+{
+    product->taste_mouthfeel = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_aftertaste_changed(QString val)
+{
+    product->taste_aftertaste = val;
+    is_changed();
+    setStage();
+}
+
+
+void EditProduct::taste_notes_changed()
+{
+    /* The text cannot be passed in a simple way :) */
+    product->taste_notes = ui->taste_notesEdit->toPlainText();
+    is_changed();
+    setStage();
+}
+
+
--- a/src/EditProductTab3.cpp	Fri May 20 14:48:03 2022 +0200
+++ b/src/EditProductTab3.cpp	Fri May 20 20:43:33 2022 +0200
@@ -395,6 +395,7 @@
      */
     double svg = 0;
     double initcells = 0;
+    product->yeasts_ok = true;
     if (product->yeasts.size() > 0) {
         for (i = 0; i < product->yeasts.size(); i++) {
 	    if (product->yeasts.at(i).y_use == 0) {		// Used in primary
@@ -406,7 +407,6 @@
 	    else
 		initcells += (product->yeasts.at(i).y_cells / 1000000) * product->yeasts.at(i).y_amount * (product->starter_viability / 100);
 	    // TODO: brett or others in secondary.
-	    product->yeasts_ok = true;
 	    if ((((product->inventory_reduced <= PROD_STAGE_PRIMARY)   && (product->yeasts.at(i).y_use == 0)) ||  // Primary
         	 ((product->inventory_reduced <= PROD_STAGE_SECONDARY) && (product->yeasts.at(i).y_use == 1)) ||  // Secondary
         	 ((product->inventory_reduced <= PROD_STAGE_TERTIARY)  && (product->yeasts.at(i).y_use == 2)) ||  // Tertiary
--- a/ui/EditProduct.ui	Fri May 20 14:48:03 2022 +0200
+++ b/ui/EditProduct.ui	Fri May 20 20:43:33 2022 +0200
@@ -158,6 +158,9 @@
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>64</number>
+        </property>
        </widget>
        <widget class="QPlainTextEdit" name="notesEdit">
         <property name="geometry">
@@ -172,8 +175,8 @@
        <widget class="QLabel" name="lockedLabel">
         <property name="geometry">
          <rect>
-          <x>870</x>
-          <y>200</y>
+          <x>740</x>
+          <y>180</y>
           <width>131</width>
           <height>20</height>
          </rect>
@@ -188,8 +191,8 @@
        <widget class="QCheckBox" name="lockedEdit">
         <property name="geometry">
          <rect>
-          <x>1010</x>
-          <y>200</y>
+          <x>880</x>
+          <y>180</y>
           <width>61</width>
           <height>21</height>
          </rect>
@@ -1150,6 +1153,9 @@
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>32</number>
+        </property>
        </widget>
        <widget class="QLineEdit" name="splitatEdit">
         <property name="geometry">
@@ -3699,6 +3705,9 @@
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>128</number>
+        </property>
        </widget>
        <widget class="QLabel" name="mash_timeLabel">
         <property name="geometry">
@@ -8332,7 +8341,7 @@
           </rect>
          </property>
          <property name="toolTip">
-          <string>Edit the brewdate plan or start.</string>
+          <string>Edit the date the primary fermentation was done.</string>
          </property>
          <property name="displayFormat">
           <string>dd-MM-yyyy</string>
@@ -8566,7 +8575,7 @@
           </rect>
          </property>
          <property name="toolTip">
-          <string>Edit the brewdate plan or start.</string>
+          <string>Edit the date the secondary fermentation was done.</string>
          </property>
          <property name="displayFormat">
           <string>dd-MM-yyyy</string>
@@ -9309,6 +9318,9 @@
          <property name="toolTip">
           <string>Could be the description of the infusion.</string>
          </property>
+         <property name="maxLength">
+          <number>128</number>
+         </property>
         </widget>
         <widget class="QLabel" name="pack_abvLabel">
          <property name="geometry">
@@ -10179,7 +10191,7 @@
          </rect>
         </property>
         <property name="toolTip">
-         <string>Edit the brewdate plan or start.</string>
+         <string>Edit the package date.</string>
         </property>
         <property name="displayFormat">
          <string>dd-MM-yyyy</string>
@@ -10229,26 +10241,10 @@
          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
         </property>
        </widget>
-       <widget class="QLineEdit" name="taste_dateEdit">
-        <property name="geometry">
-         <rect>
-          <x>180</x>
-          <y>20</y>
-          <width>101</width>
-          <height>23</height>
-         </rect>
-        </property>
-        <property name="toolTip">
-         <string>End of fermentation. Optional transfer to lagertank.</string>
-        </property>
-        <property name="readOnly">
-         <bool>true</bool>
-        </property>
-       </widget>
        <widget class="QToolButton" name="taste_dateButton">
         <property name="geometry">
          <rect>
-          <x>290</x>
+          <x>310</x>
           <y>20</y>
           <width>28</width>
           <height>22</height>
@@ -10325,8 +10321,8 @@
        <widget class="QLabel" name="taste_transparencyLabel">
         <property name="geometry">
          <rect>
-          <x>490</x>
-          <y>50</y>
+          <x>10</x>
+          <y>80</y>
           <width>161</width>
           <height>20</height>
          </rect>
@@ -10342,7 +10338,7 @@
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>80</y>
+          <y>110</y>
           <width>161</width>
           <height>20</height>
          </rect>
@@ -10359,36 +10355,45 @@
          <rect>
           <x>180</x>
           <y>50</y>
-          <width>311</width>
+          <width>481</width>
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>64</number>
+        </property>
        </widget>
        <widget class="QLineEdit" name="taste_headEdit">
         <property name="geometry">
          <rect>
           <x>180</x>
-          <y>80</y>
-          <width>311</width>
+          <y>110</y>
+          <width>791</width>
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>256</number>
+        </property>
        </widget>
        <widget class="QLineEdit" name="taste_transparencyEdit">
         <property name="geometry">
          <rect>
-          <x>660</x>
-          <y>50</y>
-          <width>311</width>
+          <x>180</x>
+          <y>80</y>
+          <width>791</width>
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>256</number>
+        </property>
        </widget>
        <widget class="QLabel" name="taste_aromaLabel">
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>110</y>
+          <y>140</y>
           <width>161</width>
           <height>20</height>
          </rect>
@@ -10404,17 +10409,20 @@
         <property name="geometry">
          <rect>
           <x>180</x>
-          <y>110</y>
+          <y>140</y>
           <width>791</width>
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>256</number>
+        </property>
        </widget>
        <widget class="QLabel" name="taste_tasteLabel">
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>140</y>
+          <y>170</y>
           <width>161</width>
           <height>20</height>
          </rect>
@@ -10430,17 +10438,20 @@
         <property name="geometry">
          <rect>
           <x>180</x>
-          <y>140</y>
+          <y>170</y>
           <width>791</width>
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>256</number>
+        </property>
        </widget>
        <widget class="QLabel" name="taste_aftertasteLabel">
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>170</y>
+          <y>200</y>
           <width>161</width>
           <height>20</height>
          </rect>
@@ -10456,17 +10467,20 @@
         <property name="geometry">
          <rect>
           <x>180</x>
-          <y>170</y>
+          <y>200</y>
           <width>791</width>
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>256</number>
+        </property>
        </widget>
        <widget class="QLabel" name="taste_mouthfeelLabel">
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>200</y>
+          <y>230</y>
           <width>161</width>
           <height>20</height>
          </rect>
@@ -10482,17 +10496,20 @@
         <property name="geometry">
          <rect>
           <x>180</x>
-          <y>200</y>
+          <y>230</y>
           <width>791</width>
           <height>23</height>
          </rect>
         </property>
+        <property name="maxLength">
+         <number>256</number>
+        </property>
        </widget>
        <widget class="QLabel" name="taste_notesLabel">
         <property name="geometry">
          <rect>
           <x>10</x>
-          <y>230</y>
+          <y>260</y>
           <width>161</width>
           <height>20</height>
          </rect>
@@ -10508,12 +10525,51 @@
         <property name="geometry">
          <rect>
           <x>180</x>
-          <y>230</y>
+          <y>260</y>
           <width>791</width>
           <height>101</height>
          </rect>
         </property>
        </widget>
+       <widget class="NullDateEdit" name="taste_dateEdit">
+        <property name="geometry">
+         <rect>
+          <x>180</x>
+          <y>20</y>
+          <width>111</width>
+          <height>24</height>
+         </rect>
+        </property>
+        <property name="toolTip">
+         <string>Edit the tasting date.</string>
+        </property>
+        <property name="displayFormat">
+         <string>dd-MM-yyyy</string>
+        </property>
+        <property name="calendarPopup">
+         <bool>true</bool>
+        </property>
+       </widget>
+       <widget class="QToolButton" name="taste_ackButton">
+        <property name="geometry">
+         <rect>
+          <x>350</x>
+          <y>20</y>
+          <width>28</width>
+          <height>22</height>
+         </rect>
+        </property>
+        <property name="toolTip">
+         <string>Set or clear date</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc">
+          <normaloff>:/icons/silk/accept.png</normaloff>:/icons/silk/accept.png</iconset>
+        </property>
+       </widget>
       </widget>
      </widget>
      <widget class="QPushButton" name="exportButton">
@@ -10568,8 +10624,281 @@
  </customwidgets>
  <tabstops>
   <tabstop>quitButton</tabstop>
+  <tabstop>exportButton</tabstop>
   <tabstop>deleteButton</tabstop>
+  <tabstop>printButton</tabstop>
   <tabstop>saveButton</tabstop>
+  <tabstop>tabWidget</tabstop>
+  <tabstop>codeEdit</tabstop>
+  <tabstop>nameEdit</tabstop>
+  <tabstop>stageEdit</tabstop>
+  <tabstop>birthEdit</tabstop>
+  <tabstop>typeEdit</tabstop>
+  <tabstop>notesEdit</tabstop>
+  <tabstop>batch_sizeEdit</tabstop>
+  <tabstop>boil_timeEdit</tabstop>
+  <tabstop>boil_sizeEdit</tabstop>
+  <tabstop>splitatEdit</tabstop>
+  <tabstop>efficiencyEdit</tabstop>
+  <tabstop>lockedEdit</tabstop>
+  <tabstop>beerstyleEdit</tabstop>
+  <tabstop>st_guideEdit</tabstop>
+  <tabstop>st_nameEdit</tabstop>
+  <tabstop>st_groupEdit</tabstop>
+  <tabstop>st_typeEdit</tabstop>
+  <tabstop>st_catEdit</tabstop>
+  <tabstop>st_catnrEdit</tabstop>
+  <tabstop>est_ogEdit</tabstop>
+  <tabstop>est_fgEdit</tabstop>
+  <tabstop>est_abvEdit</tabstop>
+  <tabstop>est_colorEdit</tabstop>
+  <tabstop>color_methodEdit</tabstop>
+  <tabstop>est_carbEdit</tabstop>
+  <tabstop>est_ibuEdit</tabstop>
+  <tabstop>ibu_methodEdit</tabstop>
+  <tabstop>calEdit</tabstop>
+  <tabstop>eq_selectEdit</tabstop>
+  <tabstop>eq_nameEdit</tabstop>
+  <tabstop>eq_notesEdit</tabstop>
+  <tabstop>tun_volumeEdit</tabstop>
+  <tabstop>tun_materialEdit</tabstop>
+  <tabstop>mash_volumeEdit</tabstop>
+  <tabstop>mash_maxEdit</tabstop>
+  <tabstop>lauter_volumeEdit</tabstop>
+  <tabstop>lauter_deadspaceEdit</tabstop>
+  <tabstop>kettle_volumeEdit</tabstop>
+  <tabstop>eqboil_sizeEdit</tabstop>
+  <tabstop>evap_rateEdit</tabstop>
+  <tabstop>eqboil_timeEdit</tabstop>
+  <tabstop>topup_kettleEdit</tabstop>
+  <tabstop>hop_utilizationEdit</tabstop>
+  <tabstop>eqbatch_sizeEdit</tabstop>
+  <tabstop>eq_efficiencyEdit</tabstop>
+  <tabstop>trub_chillerlossEdit</tabstop>
+  <tabstop>topup_waterEdit</tabstop>
+  <tabstop>est_color2Edit</tabstop>
+  <tabstop>est_og2Edit</tabstop>
+  <tabstop>mash_kgEdit</tabstop>
+  <tabstop>addFermentable</tabstop>
+  <tabstop>fermentablesTable</tabstop>
+  <tabstop>est_ibu2Edit</tabstop>
+  <tabstop>addHop</tabstop>
+  <tabstop>hopsTable</tabstop>
+  <tabstop>miscsTable</tabstop>
+  <tabstop>addMisc</tabstop>
+  <tabstop>est_og4Edit</tabstop>
+  <tabstop>est_fg3Edit</tabstop>
+  <tabstop>est_abv2Edit</tabstop>
+  <tabstop>est_svgEdit</tabstop>
+  <tabstop>productionEdit</tabstop>
+  <tabstop>productionButton1</tabstop>
+  <tabstop>productionButton2</tabstop>
+  <tabstop>conditionShow</tabstop>
+  <tabstop>addYeast</tabstop>
+  <tabstop>yeastsTable</tabstop>
+  <tabstop>stmethodEdit</tabstop>
+  <tabstop>pitchrateEdit</tabstop>
+  <tabstop>pitchrateButton</tabstop>
+  <tabstop>startersgEdit</tabstop>
+  <tabstop>neededShow</tabstop>
+  <tabstop>starterTable</tabstop>
+  <tabstop>lo_gr_hlEdit</tabstop>
+  <tabstop>lo_sgEdit</tabstop>
+  <tabstop>hi_gr_hlEdit</tabstop>
+  <tabstop>hi_sgEdit</tabstop>
+  <tabstop>dry_pitchrateShow</tabstop>
+  <tabstop>dry_needShow</tabstop>
+  <tabstop>pitch_grShow</tabstop>
+  <tabstop>mash_nameEdit</tabstop>
+  <tabstop>mash_pickEdit</tabstop>
+  <tabstop>mash_volEdit</tabstop>
+  <tabstop>mash_timeEdit</tabstop>
+  <tabstop>addMash</tabstop>
+  <tabstop>mashsTable</tabstop>
+  <tabstop>w1_nameEdit</tabstop>
+  <tabstop>w1_volEdit</tabstop>
+  <tabstop>w1_caEdit</tabstop>
+  <tabstop>w1_mgEdit</tabstop>
+  <tabstop>w1_hco3Edit</tabstop>
+  <tabstop>w1_caco3Edit</tabstop>
+  <tabstop>w1_naEdit</tabstop>
+  <tabstop>w1_clEdit</tabstop>
+  <tabstop>w1_so4Edit</tabstop>
+  <tabstop>w1_phEdit</tabstop>
+  <tabstop>w2_nameEdit</tabstop>
+  <tabstop>w2_volEdit</tabstop>
+  <tabstop>w2_caEdit</tabstop>
+  <tabstop>w2_mgEdit</tabstop>
+  <tabstop>w2_hco3Edit</tabstop>
+  <tabstop>w2_caco3Edit</tabstop>
+  <tabstop>w2_naEdit</tabstop>
+  <tabstop>w2_clEdit</tabstop>
+  <tabstop>w2_so4Edit</tabstop>
+  <tabstop>w2_phEdit</tabstop>
+  <tabstop>wg_volEdit</tabstop>
+  <tabstop>wg_caEdit</tabstop>
+  <tabstop>wg_mgEdit</tabstop>
+  <tabstop>wg_hco3Edit</tabstop>
+  <tabstop>wg_caco3Edit</tabstop>
+  <tabstop>wg_naEdit</tabstop>
+  <tabstop>wg_clEdit</tabstop>
+  <tabstop>wg_so4Edit</tabstop>
+  <tabstop>wg_phEdit</tabstop>
+  <tabstop>wb_caEdit</tabstop>
+  <tabstop>wb_mgEdit</tabstop>
+  <tabstop>wb_hco3Edit</tabstop>
+  <tabstop>wb_caco3Edit</tabstop>
+  <tabstop>wb_naEdit</tabstop>
+  <tabstop>wb_clEdit</tabstop>
+  <tabstop>wb_so4Edit</tabstop>
+  <tabstop>wb_phEdit</tabstop>
+  <tabstop>wt_sourceEdit</tabstop>
+  <tabstop>wt_caEdit</tabstop>
+  <tabstop>wt_mgEdit</tabstop>
+  <tabstop>wt_hco3Edit</tabstop>
+  <tabstop>wt_caco3Edit</tabstop>
+  <tabstop>wt_naEdit</tabstop>
+  <tabstop>wt_clEdit</tabstop>
+  <tabstop>wt_so4Edit</tabstop>
+  <tabstop>bs_cacl2Edit</tabstop>
+  <tabstop>bs_caso4Edit</tabstop>
+  <tabstop>bs_mgso4Edit</tabstop>
+  <tabstop>bs_naclEdit</tabstop>
+  <tabstop>bs_mgcl2Edit</tabstop>
+  <tabstop>bs_nahco3Edit</tabstop>
+  <tabstop>bs_caco3Edit</tabstop>
+  <tabstop>mw_phEdit</tabstop>
+  <tabstop>mw_autoEdit</tabstop>
+  <tabstop>mw_acidPick</tabstop>
+  <tabstop>mw_acidpercEdit</tabstop>
+  <tabstop>mw_acidvolEdit</tabstop>
+  <tabstop>sp_volEdit</tabstop>
+  <tabstop>sp_tempEdit</tabstop>
+  <tabstop>sp_sourceEdit</tabstop>
+  <tabstop>sp_phEdit</tabstop>
+  <tabstop>sp_acidtypeEdit</tabstop>
+  <tabstop>sp_acidpercEdit</tabstop>
+  <tabstop>sp_acidvolEdit</tabstop>
+  <tabstop>buguEdit</tabstop>
+  <tabstop>so4clEdit</tabstop>
+  <tabstop>cur_so4clEdit</tabstop>
+  <tabstop>brew_startDate</tabstop>
+  <tabstop>brew_startButton1</tabstop>
+  <tabstop>brew_startButton2</tabstop>
+  <tabstop>brew_startTime</tabstop>
+  <tabstop>brew_endDate</tabstop>
+  <tabstop>brew_endButton1</tabstop>
+  <tabstop>brew_endTime</tabstop>
+  <tabstop>brew_ackButton</tabstop>
+  <tabstop>brew_logButton</tabstop>
+  <tabstop>brew_mashphEdit</tabstop>
+  <tabstop>brew_mashphShow</tabstop>
+  <tabstop>brew_mashsgEdit</tabstop>
+  <tabstop>brew_mashsgShow</tabstop>
+  <tabstop>brew_masheffShow</tabstop>
+  <tabstop>brew_spargetempShow</tabstop>
+  <tabstop>brew_spargevolShow</tabstop>
+  <tabstop>brew_spargeestShow</tabstop>
+  <tabstop>brew_spargephEdit</tabstop>
+  <tabstop>brew_spargephShow</tabstop>
+  <tabstop>brew_preboilphEdit</tabstop>
+  <tabstop>brew_preboilsgEdit</tabstop>
+  <tabstop>brew_preboilsgShow</tabstop>
+  <tabstop>brew_preboilvolEdit</tabstop>
+  <tabstop>brew_preboilvolShow</tabstop>
+  <tabstop>brew_preboilButton</tabstop>
+  <tabstop>brew_preboileffShow</tabstop>
+  <tabstop>brew_aboilphEdit</tabstop>
+  <tabstop>brew_aboilsgEdit</tabstop>
+  <tabstop>brew_aboilsgShow</tabstop>
+  <tabstop>brew_aboilvolEdit</tabstop>
+  <tabstop>brew_aboilvolShow</tabstop>
+  <tabstop>brew_aboilButton</tabstop>
+  <tabstop>brew_aboileffShow</tabstop>
+  <tabstop>brew_cooltoEdit</tabstop>
+  <tabstop>brew_coolwithEdit</tabstop>
+  <tabstop>brew_cooltimeEdit</tabstop>
+  <tabstop>brew_whirlpool9Edit</tabstop>
+  <tabstop>brew_whirlpool7Edit</tabstop>
+  <tabstop>brew_whirlpool6Edit</tabstop>
+  <tabstop>brew_whirlpool2Edit</tabstop>
+  <tabstop>brew_trublossEdit</tabstop>
+  <tabstop>brew_topupwaterEdit</tabstop>
+  <tabstop>brew_tofermentEdit</tabstop>
+  <tabstop>brew_aerwithEdit</tabstop>
+  <tabstop>brew_aertimeEdit</tabstop>
+  <tabstop>brew_aerspeedEdit</tabstop>
+  <tabstop>brew_fermentsgShow</tabstop>
+  <tabstop>brew_fermentcolorShow</tabstop>
+  <tabstop>brew_fermentibuShow</tabstop>
+  <tabstop>prim_ogShow</tabstop>
+  <tabstop>prim_startCEdit</tabstop>
+  <tabstop>prim_maxCEdit</tabstop>
+  <tabstop>prim_endCEdit</tabstop>
+  <tabstop>prim_endsgEdit</tabstop>
+  <tabstop>prim_endsgButton</tabstop>
+  <tabstop>prim_enddateEdit</tabstop>
+  <tabstop>prim_enddateButton</tabstop>
+  <tabstop>prim_ackButton</tabstop>
+  <tabstop>prim_attShow</tabstop>
+  <tabstop>sec_tempEdit</tabstop>
+  <tabstop>sec_sgEdit</tabstop>
+  <tabstop>sec_sgButton</tabstop>
+  <tabstop>sec_enddateEdit</tabstop>
+  <tabstop>sec_enddateButton</tabstop>
+  <tabstop>sec_ackButton</tabstop>
+  <tabstop>sec_attShow</tabstop>
+  <tabstop>tert_tempEdit</tabstop>
+  <tabstop>tert_estsgShow</tabstop>
+  <tabstop>tert_sgEdit</tabstop>
+  <tabstop>tert_sgButton</tabstop>
+  <tabstop>tert_attShow</tabstop>
+  <tabstop>tert_abvShow</tabstop>
+  <tabstop>ferm_log1Button</tabstop>
+  <tabstop>ferm_log2Button</tabstop>
+  <tabstop>pack_dateEdit</tabstop>
+  <tabstop>pack_dateButton</tabstop>
+  <tabstop>pack_ackButton</tabstop>
+  <tabstop>pack_carbloShow</tabstop>
+  <tabstop>pack_carbhiShow</tabstop>
+  <tabstop>pack_volumeEdit</tabstop>
+  <tabstop>pack_phEdit</tabstop>
+  <tabstop>pack_abvShow</tabstop>
+  <tabstop>pack_addvolEdit</tabstop>
+  <tabstop>pack_addabvEdit</tabstop>
+  <tabstop>pack_finalabvShow</tabstop>
+  <tabstop>pack_notesEdit</tabstop>
+  <tabstop>bottle_volumeEdit</tabstop>
+  <tabstop>bottle_carbEdit</tabstop>
+  <tabstop>bottle_sugarEdit</tabstop>
+  <tabstop>bottle_sug_amountShow</tabstop>
+  <tabstop>bottle_sug_weightShow</tabstop>
+  <tabstop>bottle_sug_waterEdit</tabstop>
+  <tabstop>bottle_abvShow</tabstop>
+  <tabstop>bottle_barShow</tabstop>
+  <tabstop>bottle_tempEdit</tabstop>
+  <tabstop>keg_volumeEdit</tabstop>
+  <tabstop>keg_carbEdit</tabstop>
+  <tabstop>keg_sugarEdit</tabstop>
+  <tabstop>keg_sug_amountShow</tabstop>
+  <tabstop>keg_sug_weightShow</tabstop>
+  <tabstop>keg_sug_waterEdit</tabstop>
+  <tabstop>keg_forcedEdit</tabstop>
+  <tabstop>keg_abvShow</tabstop>
+  <tabstop>keg_barShow</tabstop>
+  <tabstop>keg_tempEdit</tabstop>
+  <tabstop>taste_dateEdit</tabstop>
+  <tabstop>taste_dateButton</tabstop>
+  <tabstop>taste_ackButton</tabstop>
+  <tabstop>taste_rateEdit</tabstop>
+  <tabstop>taste_colorEdit</tabstop>
+  <tabstop>taste_transparencyEdit</tabstop>
+  <tabstop>taste_headEdit</tabstop>
+  <tabstop>taste_aromaEdit</tabstop>
+  <tabstop>taste_tasteEdit</tabstop>
+  <tabstop>taste_aftertasteEdit</tabstop>
+  <tabstop>taste_mouthfeelEdit</tabstop>
+  <tabstop>taste_notesEdit</tabstop>
  </tabstops>
  <resources>
   <include location="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"/>

mercurial