diff --git a/app/gui/oven_control/mainwindow.cpp b/app/gui/oven_control/mainwindow.cpp index 22e7600..ea6c70f 100644 --- a/app/gui/oven_control/mainwindow.cpp +++ b/app/gui/oven_control/mainwindow.cpp @@ -2,20 +2,15 @@ #include "ui_mainwindow.h" #include -#include #include #include "soundplayer.h" -#include "abstractoveninterface.h" #include "manualcookwindow.h" -#include "ovencontroller.h" -#include "configwindow.h" -#include "functiontestwindow.h" #include "autocookselectionwindow.h" -#include "washwindow.h" -#include "engineermenuwindow.h" -#include "programmingwindow.h" #include "primewindow.h" +#include "programmingwindow.h" +#include "washwindow.h" +#include "configwindow.h" MainWindow *MainWindow::instance = NULL; @@ -59,21 +54,18 @@ void MainWindow::killChild() instance->child = NULL; } -static QPushButton *pushedChild = NULL; - void MainWindow::keyPressEvent(QKeyEvent *event) { switch (event->key()) { case 0x01000030: // Turn left - focusPreviousChild(); + onEncoderLeft(); break; case 0x01000031: // Push - if (focusWidget() != this) - pushedChild = static_cast(focusWidget()); + pushed = focusWidget(); break; case 0x01000032: // Turn right - focusNextChild(); + onEncoderRight(); break; } } @@ -83,20 +75,37 @@ void MainWindow::keyReleaseEvent(QKeyEvent *event) switch (event->key()) { case 0x01000030: // Turn left - focusPreviousChild(); + onEncoderLeft(); break; case 0x01000031: // Push - if (focusWidget() == pushedChild) - pushedChild->click(); + if (focusWidget() == pushed) + onEncoderClicked(pushed); - pushedChild = NULL; + pushed = NULL; break; case 0x01000032: // Turn right - focusNextChild(); + onEncoderRight(); break; } } +void MainWindow::onEncoderLeft() +{ + focusPreviousChild(); +} + +void MainWindow::onEncoderRight() +{ + focusNextChild(); +} + +void MainWindow::onEncoderClicked(QWidget *clicked) +{ + QPushButton *b = qobject_cast(clicked); + if (b) + b->click(); +} + void MainWindow::showManualCookWindow(Define::Mode mode) { ManualCookWindow *w = new ManualCookWindow(this, mode); diff --git a/app/gui/oven_control/mainwindow.h b/app/gui/oven_control/mainwindow.h index d45cefe..741d2c3 100644 --- a/app/gui/oven_control/mainwindow.h +++ b/app/gui/oven_control/mainwindow.h @@ -3,7 +3,6 @@ #include -#include "oven.h" #include "define.h" namespace Ui { @@ -28,6 +27,15 @@ protected: void keyPressEvent(QKeyEvent *event); void keyReleaseEvent(QKeyEvent *event); +private: + Ui::MainWindow *ui; + QMainWindow *child; + QWidget *pushed = NULL; + + void onEncoderLeft(); + void onEncoderRight(); + void onEncoderClicked(QWidget *clicked); + private slots: void showManualCookWindow(Define::Mode mode); void showAutoCookSelectionWindow(Define::CookType type); @@ -51,10 +59,6 @@ private slots: void on_configButton_clicked(); void on_helpButton_clicked(); - -private: - Ui::MainWindow *ui; - QMainWindow *child; }; #endif // MAINWINDOW_H diff --git a/app/gui/oven_control/programmingmanualwindow.cpp b/app/gui/oven_control/programmingmanualwindow.cpp index fbb87f3..b8ef4d6 100644 --- a/app/gui/oven_control/programmingmanualwindow.cpp +++ b/app/gui/oven_control/programmingmanualwindow.cpp @@ -3,6 +3,7 @@ #include +#include "oven.h" #include "stringer.h" #include "programmingmanualcoretemppopup.h" #include "cookprogram.h"