src/EditProduct.h

Tue, 03 May 2022 20:05:04 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 03 May 2022 20:05:04 +0200
changeset 190
bb6c06910f0f
parent 189
722a4eed545d
child 194
ea8cce5e7eb9
permissions
-rw-r--r--

Added calcSupplies() which shows if ingredients are in stock to brew the recipe. In tab 3, changed the fermentables numbers into more readable enum constants. Disable delete and edit buttons in fermentables rows for bottle and kegs sugars. Better mash time calculation in calcFermentables. Added check supplies. Added recalculate volumes. Update inventory when a fermentable is replaced. Added tooltips in brewing salts fields in the miscs table.

#ifndef _EDITPRODUCT_H
#define _EDITPRODUCT_H

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

#include "global.h"

namespace Ui {
class EditProduct;
}

class EditProduct : public QDialog
{
    Q_OBJECT

signals:
    void entry_changed();

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

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 eq_changed(int 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_time_changed(int val);
    void hop_select_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 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_source_changed(int val);
    void sp_type_changed(int val);
    void sp_ph_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::EditProduct *ui;
    QString bar_red = "QProgressBar::chunk {background: #FF0000;}";
    QString bar_orange = "QProgressBar::chunk {background: #EB7331;}";
    QString bar_green = "QProgressBar::chunk {background: #008C00;}";
    QString bar_20 = "QProgressBar::chunk {background: #004D00;}";
    QString bar_40 = "QProgressBar::chunk {background: #008C00;}";
    QString bar_60 = "QProgressBar::chunk {background: #00BF00;}";
    QString bar_80 = "QProgressBar::chunk {background: #00FF00;}";
    QString bar_100 = "QProgressBar::chunk {background: #80FF80;}";
    int recno;
    bool textIsChanged = false;
    /*
     * Variables for popup ingredients editing.
     */
    QComboBox *fselectEdit, *faddedEdit, *hselectEdit,*haddedEdit, *useatEdit, *mselectEdit, *yselectEdit;
    QLineEdit *fnameEdit, *fsupplierEdit, *hnameEdit, *horiginEdit, *mnameEdit, *ynameEdit, *ylaboratoryEdit, *yproduct_idEdit, *stepnameEdit;
    QDoubleSpinBox *famountEdit, *pctEdit, *fmaxEdit, *hamountEdit, *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 calcSupplies();
    void showEquipment();
    void initEquipment();
    void setStage();
    void brewing_salt_sub(QString salt, double val);
    void set_brewing_salt(QString salt, double val);
    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);
};

#endif

mercurial