src/EditRecipe.h

Mon, 18 Jul 2022 17:04:02 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 18 Jul 2022 17:04:02 +0200
changeset 359
dfbb012c631c
parent 258
70bb9c3ee60f
child 361
ec8de79f6ff6
permissions
-rw-r--r--

Redesign of the water tabs in product and recipe editors. Prepare for sparge water salt additions. Acid additions are now automatic or manual for mash and sparge. Fixed error in acid calculation strength. Fixed phophoric SG value.

#ifndef _EDITRECIPE_H
#define _EDITRECIPE_H

#include <QDialog>
#include <QStringList>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDoubleSpinBox>
#include <QCheckBox>
#include <QComboBox>
#include <QRadioButton>
#include <QLineEdit>
#include <QDialogButtonBox>
#include <QList>
#include <QLabel>
#include <QClipboard>

#include "global.h"

namespace Ui {
class EditRecipe;
}

class EditRecipe : public QDialog
{
    Q_OBJECT

signals:
    void entry_changed();

public:
    explicit EditRecipe(int id, QWidget *parent = 0);
    ~EditRecipe();

private slots:
    void on_saveButton_clicked();
    void on_quitButton_clicked();
    void on_deleteButton_clicked();
    void on_exportButton_clicked();
    void on_printButton_clicked();
    void is_changed();
    void name_changed(QString);
    void notes_changed();
    void style_changed(int val);
    void colormethod_changed(int val);
    void ibumethod_changed(int val);
    void est_og_changed(double val);
    void efficiency_changed(double val);
    void boil_time_changed(int val);
    void batch_size_changed(double val);
    void brew_type_changed(int val);
    void locked_changed(bool val);
    void refreshFermentables();
    void refreshHops();
    void refreshMiscs();
    void refreshYeasts();
    void refreshMashs();
    void refreshWaters();
    void refreshAll();
    void ferment_amount_changed(double val);
    void ferment_pct_changed(double val);
    void ferment_to100_changed(bool val);
    void ferment_select_changed(int val);
    void ferment_instock_changed(bool val);
    void ferment_added_changed(int val);
    void hop_amount_changed(double val);
    void hop_alpha_changed(double val);
    void hop_time_changed(int val);
    void hop_select_changed(int val);
    void hop_form_changed(int val);
    void hop_instock_changed(bool val);
    void hop_useat_changed(int val);
    void misc_amount_changed(double val);
    void misc_time_changed(int val);
    void misc_select_changed(int val);
    void misc_instock_changed(bool val);
    void misc_useat_changed(int val);
    void yeast_amount_changed(double val);
    void yeast_select_changed(int val);
    void yeast_instock_changed(bool val);
    void yeast_useat_changed(int val);
    void addFermentRow_clicked();
    void deleteFermentRow_clicked();
    void editFermentRow_clicked();
    void addHopRow_clicked();
    void deleteHopRow_clicked();
    void editHopRow_clicked();
    void addMiscRow_clicked();
    void deleteMiscRow_clicked();
    void editMiscRow_clicked();
    void addYeastRow_clicked();
    void deleteYeastRow_clicked();
    void editYeastRow_clicked();
    void addMashRow_clicked();
    void deleteMashRow_clicked();
    void editMashRow_clicked();
    void upMashRow_clicked();
    void downMashRow_clicked();

    void w1_name_changed(int val);
    void w2_name_changed(int val);
    void w2_volume_changed(double val);
    void wb_cacl2_changed(double val);
    void wb_caso4_changed(double val);
    void wb_mgso4_changed(double val);
    void wb_nacl_changed(double val);
    void wb_mgcl2_changed(double val);
    void wb_nahco3_changed(double val);
    void wb_caco3_changed(double val);
    void sp_cacl2_changed(double val);
    void sp_caso4_changed(double val);
    void sp_mgso4_changed(double val);
    void sp_nacl_changed(double val);
    void sp_mgcl2_changed(double val);
    void mw_calc_acid_clicked();
    void wt_target_changed(int val);
    void mw_ph_changed(double val);
    void mw_acid_changed(double val);
    void mw_type_changed(int val);
    void sp_group_changed(int val);
    void sp_type_changed(int val);
    void sp_ph_changed(double val);
    void sp_acid_changed(double val);
    void step_name_changed(QString val);
    void step_type_changed(int val);
    void step_temp_changed(double val);
    void end_temp_changed(double val);
    void step_time_changed(double val);
    void ramp_time_changed(double val);
    void infuse_changed(double val);
    void mash_select_changed(int val);
    void mash_name_changed(QString);

    /* Modified progress bars */
    void ferment_perc_mash_valueChanged(int value);
    void ferment_perc_sugars_valueChanged(int value);
    void ferment_perc_cara_valueChanged(int value);
    void ferment_lintner_valueChanged(int value);
    void hop_Flavour_valueChanged(int value);
    void hop_Aroma_valueChanged(int value);

private:
    Ui::EditRecipe *ui;
    QString bar_red = "QProgressBar::chunk {background: #FF0000;}";
    QString bar_green = "QProgressBar::chunk {background: #008C00;}";
    QString bar_20 = "QProgressBar::chunk {background: #004D00;}";
    int recno;
    bool textIsChanged = false;
    /*
     * Variables for popup ingredients editing.
     */
    QComboBox *fselectEdit, *faddedEdit, *hselectEdit,*haddedEdit, *hformEdit, *useatEdit, *mselectEdit, *yselectEdit;
    QLineEdit *fnameEdit, *fsupplierEdit, *hnameEdit, *horiginEdit, *mnameEdit, *ynameEdit, *ylaboratoryEdit, *yproduct_idEdit, *stepnameEdit;
    QDoubleSpinBox *famountEdit, *pctEdit, *fmaxEdit, *hamountEdit, *halphaEdit, *ibuEdit, *mamountEdit, *yamountEdit;
    QDoubleSpinBox *steptempEdit, *endtempEdit, *steptimeEdit, *ramptimeEdit, *stepivolEdit, *stepitmpEdit;
    QSpinBox *htimeEdit, *mtimeEdit;
    QCheckBox *to100Edit, *finstockEdit, *hinstockEdit, *minstockEdit, *yinstockEdit;
    QLabel *htimeLabel, *mtimeLabel, *mamountLabel, *yamountLabel, *ivolLabel, *itmpLabel;

    void to100Fermentables(int row);
    static bool ferment_sort_test(const Fermentables &D1, const Fermentables &D2);
    static bool hop_sort_test(const Hops &D1, const Hops &D2);
    static bool misc_sort_test(const Miscs &D1, const Miscs &D2);
    static bool yeast_sort_test(const Yeasts &D1, const Yeasts &D2);
    void WindowTitle();
    void setLocked(bool val);
    void brewing_salt_sub(QString salt, double val, int use);
    void set_brewing_salt(QString salt, double val, int use);
    void calcFermentables();
    void calcFermentablesFromOG(double og);
    void calcIBUs();
    void adjustHops(double factor);
    void adjustMiscs(double factor);
    double ZAlkalinity(double pHZ);
    double ZRA(double pHZ);
    double BufferCapacity(Fermentables F);
    double AcidRequired(double ZpH, Fermentables F);
    double ProtonDeficit(double pHZ);
    double MashpH();
    void calcWater();
    void calcSparge();
    double GetBUGU();
    double GetOptSO4Clratio();
    void calcYeast();
    void adjustYeasts(double factor);
    double infusionVol(double step_infused, double step_mashkg, double infuse_temp, double step_temp, double last_temp);
    double decoctionVol(double step_volume, double step_temp, double prev_temp);
    void calcMash();
    void adjustWaters(double factor);
    void exportBeerXML();
    void copyRecipe();
    void copyProduct();
    void toforumRecipe();
};

#endif

mercurial