autocookwindow.h 2.07 KB
#ifndef AUTOCOOKWINDOW_H
#define AUTOCOOKWINDOW_H

#include <QMainWindow>
#include <QTimer>
#include <QPixmap>
#include <QLabel>

#include "oven.h"
#include "cook.h"

namespace Ui {
class AutoCookWindow;
}

class AutoCookWindow : public QMainWindow
{
    Q_OBJECT

signals:
    void startCookStartTimer();
    void stopCookStartTimer();

public:
    explicit AutoCookWindow(QWidget *parent = 0, Oven *oven = 0, AbstractCook *cook = 0);
    ~AutoCookWindow();

private:
    Ui::AutoCookWindow *ui;
    QTimer checkCookTimer;
    Oven *oven;
    AbstractCook *cook;
    bool started;
    bool done;
    bool opened;
    bool interTempEnabled;

    QPixmap bulletPixmap;
    QPixmap selectedBulletPixmap;
    QList<QLabel *> bullets;
    int selectedStepIndex;
    QTimer returnToCurrentStepTimer;

    QPixmap steamModeIcon;
    QPixmap dryModeIcon;
    QPixmap combiModeIcon;

    bool showingCurrentHumidity;
    bool showingCurrentTemp;
    QTimer showCurrentHumidityTimer;
    QTimer showCurrentTempTimer;

    int lastHumidity;
    int lastTemp;

    Cook::StepType lastDoorView;

    void setupUi();
    void viewStep(Cook::Step step);
    void viewPreheatStep(Cook::Step step);
    void viewDoorStep(Cook::Step step);
    void viewCookStep(Cook::Step step);
    void doPreheatStep(Cook::Step step);
    void doDoorStep(Cook::Step step);
    void doCookStep(Cook::Step step);
    void checkPreheatStep(Cook::Step step);
    void checkDoorStep(Cook::Step step);
    void checkCookStep(Cook::Step step);

private slots:
    void updateView();
    void start();
    void stop();
    void doStep();
    void checkCook();
    void onOvenUpdated();
    void on_showPrevStepButton_clicked();
    void on_showNextStepButton_clicked();
    void returnToCurrentStep();

    void onConfigChanged();
    void on_backButton_clicked();
    void on_configButton_4_clicked();
    void on_humidityGaugeButton_pressed();
    void on_humidityGaugeButton_released();
    void on_heatGaugeButton_pressed();
    void on_heatGaugeButton_released();
    void showCurrentHumidity();
    void showCurrentTemp();
};

#endif // AUTOCOOKWINDOW_H