programmingautoconfigwindow.h 1.61 KB
#ifndef PROGRAMMINGAUTOCONFIGWINDOW_H
#define PROGRAMMINGAUTOCONFIGWINDOW_H

#include <QMainWindow>
#include <QPushButton>
#include <QLabel>
#include <QSlider>

#include "cookbook.h"
#include "slider.h"

namespace Ui {
class ProgrammingAutoConfigWindow;
}

class ProgrammingAutoConfigWindow : public QMainWindow
{
    Q_OBJECT

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

    bool eventFilter(QObject *watched, QEvent *event);

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

private:
    Ui::ProgrammingAutoConfigWindow *ui;
    Cook cook;

    struct ConfigWidget {
        QPushButton *button;
        QLabel *minimum;
        QLabel *maximum;
        QLabel *current;
        Slider *slider;
    };

    QList<ConfigWidget> configWidgets;

    QWidget *pushed = NULL;

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

    QTimer afterThreeSecsTimer;

private slots:
    void setupUi();
    void updateView();
    void updateConfig();
    void afterThreeSecs();
    void changeCook(Cook cook);

    void on_selectCookButton_clicked();
    void on_checkCookButton_clicked();

    void on_configButton_1_clicked();
    void on_configButton_2_clicked();
    void on_configButton_3_clicked();
    void on_configButton_4_clicked();
    void on_configButton_5_clicked();

    void on_backButton_clicked();
    void on_configButton_clicked();
    void on_helpButton_clicked();
    void on_okButton_clicked();

signals:
    void added();
};

#endif // PROGRAMMINGAUTOCONFIGWINDOW_H