diff --git a/app/gui/oven_control/mainwindow.cpp b/app/gui/oven_control/mainwindow.cpp index b3fcf5c..17c4cc1 100644 --- a/app/gui/oven_control/mainwindow.cpp +++ b/app/gui/oven_control/mainwindow.cpp @@ -3,6 +3,7 @@ #include #include +#include #include "abstractoveninterface.h" #include "manualcookwindow.h" @@ -20,6 +21,8 @@ MainWindow::MainWindow(QWidget *parent) : ui(new Ui::MainWindow) { ui->setupUi(this); + + setFocus(); } MainWindow::~MainWindow() @@ -27,6 +30,45 @@ MainWindow::~MainWindow() delete ui; } +static QPushButton *pushedChild = NULL; + +void MainWindow::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) + { + case 0x01000030: // Turn left + focusPreviousChild(); + break; + case 0x01000031: // Push + if (focusWidget() != this) + pushedChild = static_cast(focusWidget()); + break; + case 0x01000032: // Turn right + focusNextChild(); + break; + } +} + +void MainWindow::keyReleaseEvent(QKeyEvent *event) +{ + switch (event->key()) + { + case 0x01000030: // Turn left + focusPreviousChild(); + break; + case 0x01000031: // Push + if (focusWidget() == pushedChild) + pushedChild->click(); + + setFocus(); + pushedChild = NULL; + break; + case 0x01000032: // Turn right + focusNextChild(); + break; + } +} + 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 82bfd4f..6daca85 100644 --- a/app/gui/oven_control/mainwindow.h +++ b/app/gui/oven_control/mainwindow.h @@ -18,6 +18,10 @@ public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); +protected: + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + private slots: void showManualCookWindow(Define::Mode mode); void showAutoCookSelectionWindow(Define::CookType type); diff --git a/app/gui/oven_control/mainwindow.ui b/app/gui/oven_control/mainwindow.ui index 8b25388..686b606 100644 --- a/app/gui/oven_control/mainwindow.ui +++ b/app/gui/oven_control/mainwindow.ui @@ -117,7 +117,7 @@ font-size: 30px; QPushButton { border-image: url(:/images/bottom_bar/config.png); } -QPushButton:pressed { border-image: url(:/images/bottom_bar/config_ov.png); } +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/config_ov.png); } @@ -146,7 +146,7 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/config_ov.png); } QPushButton { border-image: url(:/images/bottom_bar/help.png); } -QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); } +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/help_ov.png); } @@ -170,7 +170,7 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); } QPushButton { background-image: url(:/images/main_button/multi.png); } -QPushButton:pressed { background-image: url(:/images/main_button/multi_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/main_button/multi_ov.png); } 다중요리 @@ -196,7 +196,7 @@ QPushButton:pressed { background-image: url(:/images/main_button/multi_ov.png); QPushButton { background-image: url(:/images/main_button/custom.png); } -QPushButton:pressed { background-image: url(:/images/main_button/custom_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/main_button/custom_ov.png); } 프로그래밍모드 @@ -222,7 +222,7 @@ QPushButton:pressed { background-image: url(:/images/main_button/custom_ov.png); QPushButton { background-image: url(:/images/main_button/wash.png); } -QPushButton:pressed { background-image: url(:/images/main_button/wash_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/main_button/wash_ov.png); } 세척모드 @@ -320,7 +320,7 @@ QPushButton:pressed { background-image: url(:/images/main_button/wash_ov.png); } QPushButton { background-image: url(:/images/cook_mode/big_dryheat.png); } -QPushButton:pressed { background-image: url(:/images/cook_mode/big_dryheat_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_mode/big_dryheat_ov.png); } 건열 @@ -340,7 +340,7 @@ QPushButton:pressed { background-image: url(:/images/cook_mode/big_dryheat_ov.pn QPushButton { background-image: url(:/images/cook_mode/big_combi.png); } -QPushButton:pressed { background-image: url(:/images/cook_mode/big_combi_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_mode/big_combi_ov.png); } 콤비 @@ -360,7 +360,7 @@ QPushButton:pressed { background-image: url(:/images/cook_mode/big_combi_ov.png) QPushButton { background-image: url(:/images/cook_mode/big_steam.png); } -QPushButton:pressed { background-image: url(:/images/cook_mode/big_steam_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_mode/big_steam_ov.png); } 스팀 @@ -386,7 +386,7 @@ QPushButton:pressed { background-image: url(:/images/cook_mode/big_steam_ov.png) QPushButton { background-image: url(:/images/cook_type/meat.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/meat_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/meat_ov.png); } 육류 @@ -412,7 +412,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/meat_ov.png); } QPushButton { background-image: url(:/images/cook_type/desert.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/desert_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/desert_ov.png); } 디저트류 @@ -438,7 +438,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/desert_ov.png); } QPushButton { background-image: url(:/images/cook_type/etc.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/etc_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/etc_ov.png); } 기타요리 @@ -464,7 +464,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/etc_ov.png); } QPushButton { background-image: url(:/images/cook_type/vegetable.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/vegetable_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/vegetable_ov.png); } 채소및곡류 @@ -490,7 +490,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/vegetable_ov.png) QPushButton { background-image: url(:/images/cook_type/poultry.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/poultry_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/poultry_ov.png); } 가금류 @@ -516,7 +516,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/poultry_ov.png); QPushButton { background-image: url(:/images/cook_type/fish.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/fish_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/fish_ov.png); } 생선류 @@ -542,7 +542,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/fish_ov.png); } QPushButton { background-image: url(:/images/cook_type/bread.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/bread_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/bread_ov.png); } 제과제빵류 @@ -568,7 +568,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/bread_ov.png); }< QPushButton { background-image: url(:/images/cook_type/additional.png); } -QPushButton:pressed { background-image: url(:/images/cook_type/additional_ov.png); } +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/additional_ov.png); } 부가기능 @@ -689,6 +689,24 @@ QPushButton:pressed { background-image: url(:/images/cook_type/additional_ov.png 1 + + steamButton + combiButton + dryheatButton + poultryButton + meatButton + fishButton + dessertButton + grainButton + breadButton + etcButton + primeButton + multiButton + programmingButton + washButton + configButton + helpButton +