autocookwindow.h 2.68 KB
#ifndef AUTOCOOKWINDOW_H
#define AUTOCOOKWINDOW_H

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

#include "autocook.h"

namespace Ui {
class AutoCookWindow;
}

class AutoCookWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit AutoCookWindow(QWidget *parent, Cook cook);
    ~AutoCookWindow();

protected:
    void keyPressEvent(QKeyEvent *event);
    void keyReleaseEvent(QKeyEvent *event);

private:
    Ui::AutoCookWindow *ui;

    Cook cook;
    AutoCook autocook;

    QTimer checkCookTimer;

    QPixmap steamModeIcon;
    QPixmap dryModeIcon;
    QPixmap combiModeIcon;

    int selectedStepIndex;
    int lastViewStepIndex;
    bool showingDifferentStep;
    QTimer returnToCurrentStepTimer;

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

    int lastViewTime;
    int lastViewCoreTemp;
    int lastViewHumidity;
    int lastViewTemp;
    Define::StepType lastViewDoorType;
    Define::StepType lastViewCookType;
    Define::Mode lastViewCookMode;

    bool processSelected;
    Define::Process selectedProcess;
    QTimer checkProcessTimer;

    QTimer updateViewTimer;

    int loadingMonitorLevel;
    int loadingMonitor1;
    int loadingMonitor2;
    int loadingMonitor3;
    QTime loadingMonitorTime1;
    QTime loadingMonitorTime2;
    QTime loadingMonitorTime3;
    int currentLoadingMonitorLevel;

    int cookingMonitorLevel;
    int cookingMonitor1;
    int cookingMonitor2;
    int cookingMonitor3;
    QTime cookingMonitorTime1;
    QTime cookingMonitorTime2;
    QTime cookingMonitorTime3;
    int currentCookingMonitorLevel;

    QTimer monitorTimer;

    void setupUi();

    QWidget *pushed = NULL;

    void onEncoderLeft();
    void onEncoderRight();
    void onEncoderClicked(QWidget *clicked);

private slots:
    void updateView();
    void checkCook();
    void startProcess(int process);
    void checkProcess();

    void returnToCurrentStep();
    void showCurrentHumidity();
    void showCurrentTemp();
    void addFavorite();

    void jumpConfig();
    void jumpWash();

    void monitor();

    void on_selectCookButton_clicked();
    void on_homeButton_clicked();
    void on_configCookButton_clicked();
    void on_humidityGaugeButton_pressed();
    void on_humidityGaugeButton_released();
    void on_heatGaugeButton_pressed();
    void on_heatGaugeButton_released();
    void on_backButton_clicked();
    void on_showPrevStepButton_clicked();
    void on_showNextStepButton_clicked();
    void on_favoritesButton_clicked();
    void on_configButton_clicked();
    void on_washButton_clicked();
    void on_helpButton_clicked();

signals:
    void back();
};

#endif // AUTOCOOKWINDOW_H