Mon, 02 May 2022 11:48:12 +0200
Created the tab fermentation.
src/EditProduct.cpp | file | annotate | diff | comparison | revisions | |
ui/EditProduct.ui | file | annotate | diff | comparison | revisions |
--- a/src/EditProduct.cpp Sun May 01 20:50:01 2022 +0200 +++ b/src/EditProduct.cpp Mon May 02 11:48:12 2022 +0200 @@ -956,6 +956,22 @@ ui->brew_aerspeedEdit->setValue(product->brew_aeration_speed); // Tab fermentation. + ui->prim_ogShow->setValue(product->brew_fermenter_sg); + ui->prim_startCEdit->setValue(product->primary_start_temp); + ui->prim_maxCEdit->setValue(product->primary_max_temp); + ui->prim_endCEdit->setValue(product->primary_end_temp); + ui->prim_endsgEdit->setValue(product->primary_end_sg); + ui->prim_enddateEdit->setText(product->primary_end_date.toString("dd MMM yyyy")); + ui->prim_attShow->setValue(Utils::calc_svg(product->brew_fermenter_sg, product->primary_end_sg)); + ui->sec_tempEdit->setValue(product->secondary_temp); + ui->sec_sgEdit->setValue(product->secondary_end_sg); + ui->sec_enddateEdit->setText(product->secondary_end_date.toString("dd MMM yyyy")); + ui->sec_attShow->setValue(Utils::calc_svg(product->brew_fermenter_sg, product->secondary_end_sg)); + ui->tert_tempEdit->setValue(product->tertiary_temp); + ui->tert_estsgShow->setValue(product->est_fg); + ui->tert_sgEdit->setValue(product->fg); + ui->tert_attShow->setValue(Utils::calc_svg(product->brew_fermenter_sg, product->fg)); + ui->tert_abvShow->setValue(Utils::abvol(product->brew_fermenter_sg, product->fg)); // Tab packaging.
--- a/ui/EditProduct.ui Sun May 01 20:50:01 2022 +0200 +++ b/ui/EditProduct.ui Mon May 02 11:48:12 2022 +0200 @@ -95,7 +95,7 @@ <enum>QTabWidget::Rounded</enum> </property> <property name="currentIndex"> - <number>8</number> + <number>0</number> </property> <property name="elideMode"> <enum>Qt::ElideNone</enum> @@ -7588,6 +7588,852 @@ <attribute name="title"> <string>Fermenting</string> </attribute> + <widget class="QGroupBox" name="primaryBox"> + <property name="geometry"> + <rect> + <x>160</x> + <y>30</y> + <width>351</width> + <height>241</height> + </rect> + </property> + <property name="title"> + <string>Primary fermentation</string> + </property> + <widget class="QLabel" name="prim_ogLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Primary start SG:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="prim_startCLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Primary start temp °C:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="prim_maxCLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Primary peak temp °C:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="prim_endCLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Primary end temp °C:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="prim_endsgLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Primary end SG:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="prim_enddateLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Primary end date:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="prim_ogShow"> + <property name="geometry"> + <rect> + <x>180</x> + <y>20</y> + <width>81</width> + <height>24</height> + </rect> + </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="decimals"> + <number>3</number> + </property> + </widget> + <widget class="QDoubleSpinBox" name="prim_startCEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>50</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="prim_maxCEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>80</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="prim_endCEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>110</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="prim_endsgEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>140</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="singleStep"> + <double>0.001000000000000</double> + </property> + </widget> + <widget class="QLineEdit" name="prim_enddateEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>170</y> + <width>101</width> + <height>23</height> + </rect> + </property> + <property name="toolTip"> + <string>End of primary fermentation, start secondary.</string> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="prim_attLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Primary attenuation:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="prim_attShow"> + <property name="geometry"> + <rect> + <x>180</x> + <y>200</y> + <width>81</width> + <height>24</height> + </rect> + </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="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100.000000000000000</double> + </property> + </widget> + <widget class="QToolButton" name="prim_endsgButton"> + <property name="geometry"> + <rect> + <x>290</x> + <y>140</y> + <width>28</width> + <height>22</height> + </rect> + </property> + <property name="toolTip"> + <string>Edit SG in Plato, Brix or SG</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"> + <normaloff>:/icons/silk/pencil.png</normaloff>:/icons/silk/pencil.png</iconset> + </property> + </widget> + <widget class="QToolButton" name="prim_enddateButton"> + <property name="geometry"> + <rect> + <x>290</x> + <y>170</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/date.png</normaloff>:/icons/silk/date.png</iconset> + </property> + </widget> + </widget> + <widget class="QGroupBox" name="secondaryBox"> + <property name="geometry"> + <rect> + <x>610</x> + <y>30</y> + <width>351</width> + <height>151</height> + </rect> + </property> + <property name="title"> + <string>Secondary fermentation</string> + </property> + <widget class="QLabel" name="sec_tempLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Secondary end temp °C:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="sec_sgLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Secondary end SG:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="sec_enddateLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Secondary end date:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="sec_tempEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>20</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="sec_sgEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>50</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="singleStep"> + <double>0.001000000000000</double> + </property> + </widget> + <widget class="QLineEdit" name="sec_enddateEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>80</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="QLabel" name="sec_attLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Secondary attenuation:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="sec_attShow"> + <property name="geometry"> + <rect> + <x>180</x> + <y>110</y> + <width>81</width> + <height>24</height> + </rect> + </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="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100.000000000000000</double> + </property> + </widget> + <widget class="QToolButton" name="sec_sgButton"> + <property name="geometry"> + <rect> + <x>290</x> + <y>50</y> + <width>28</width> + <height>22</height> + </rect> + </property> + <property name="toolTip"> + <string>Edit SG in Plato, Brix or SG</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"> + <normaloff>:/icons/silk/pencil.png</normaloff>:/icons/silk/pencil.png</iconset> + </property> + </widget> + <widget class="QToolButton" name="sec_enddateButton"> + <property name="geometry"> + <rect> + <x>290</x> + <y>80</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/date.png</normaloff>:/icons/silk/date.png</iconset> + </property> + </widget> + </widget> + <widget class="QGroupBox" name="tertiaryBox"> + <property name="geometry"> + <rect> + <x>610</x> + <y>200</y> + <width>351</width> + <height>181</height> + </rect> + </property> + <property name="title"> + <string>Tertiary fermentation</string> + </property> + <widget class="QLabel" name="tert_tempLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Tertiary temperature °C:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="tert_sgLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Tertiary end SG:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="tert_tempEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>20</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="tert_sgEdit"> + <property name="geometry"> + <rect> + <x>180</x> + <y>80</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="singleStep"> + <double>0.001000000000000</double> + </property> + </widget> + <widget class="QLabel" name="tert_attLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Tertiary attenuation:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="tert_attShow"> + <property name="geometry"> + <rect> + <x>180</x> + <y>110</y> + <width>81</width> + <height>24</height> + </rect> + </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="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100.000000000000000</double> + </property> + </widget> + <widget class="QToolButton" name="tert_sgButton"> + <property name="geometry"> + <rect> + <x>290</x> + <y>80</y> + <width>28</width> + <height>22</height> + </rect> + </property> + <property name="toolTip"> + <string>Edit SG in Plato, Brix or SG</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"> + <normaloff>:/icons/silk/pencil.png</normaloff>:/icons/silk/pencil.png</iconset> + </property> + </widget> + <widget class="QLabel" name="tert_estsgLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Expected end SG:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="tert_estsgShow"> + <property name="geometry"> + <rect> + <x>180</x> + <y>50</y> + <width>81</width> + <height>24</height> + </rect> + </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="decimals"> + <number>3</number> + </property> + </widget> + <widget class="QLabel" name="tert_abvLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Alcohol volume:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="tert_abvShow"> + <property name="geometry"> + <rect> + <x>180</x> + <y>140</y> + <width>81</width> + <height>24</height> + </rect> + </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="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100.000000000000000</double> + </property> + </widget> + </widget> + <widget class="QLabel" name="ferm_log1Label"> + <property name="geometry"> + <rect> + <x>170</x> + <y>310</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Show fermenter unit log:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="ferm_log2Label"> + <property name="geometry"> + <rect> + <x>170</x> + <y>340</y> + <width>161</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Show fermentation log:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QToolButton" name="ferm_log1Button"> + <property name="geometry"> + <rect> + <x>340</x> + <y>310</y> + <width>28</width> + <height>22</height> + </rect> + </property> + <property name="toolTip"> + <string>Brew log chart</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"> + <normaloff>:/icons/silk/chart_line.png</normaloff>:/icons/silk/chart_line.png</iconset> + </property> + </widget> + <widget class="QToolButton" name="ferm_log2Button"> + <property name="geometry"> + <rect> + <x>340</x> + <y>340</y> + <width>28</width> + <height>22</height> + </rect> + </property> + <property name="toolTip"> + <string>Brew log chart</string> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"> + <normaloff>:/icons/silk/chart_line.png</normaloff>:/icons/silk/chart_line.png</iconset> + </property> + </widget> </widget> <widget class="QWidget" name="package"> <attribute name="title">