Commit f5634ecc765a9a1fd31b1feb6e26b0a8d3db706d

Authored by 김태훈
1 parent d804d82b41
Exists in master and in 2 other branches fhd, fhd-demo

엔코더 구현

- 즐겨찾기 이름 설정 팝업
- 프로그래밍 모드 항목 이름 설정 팝업
- 수동 요리 예약 시간 설정 팝업
- 수동 요리 예약 시간 표시 팝업
app/gui/oven_control/favoritenamepopup.cpp
@@ -13,6 +13,12 @@ FavoriteNamePopup::FavoriteNamePopup(QWidget *parent) : @@ -13,6 +13,12 @@ FavoriteNamePopup::FavoriteNamePopup(QWidget *parent) :
13 { 13 {
14 ui->setupUi(this); 14 ui->setupUi(this);
15 15
  16 + connect(ui->keyboard, SIGNAL(onOkKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
  17 + connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
  18 + connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), SLOT(revert()));
  19 +
  20 + ui->lineEdit->installEventFilter(this);
  21 +
16 ui->lineEdit->setFocus(); 22 ui->lineEdit->setFocus();
17 ui->lineEdit->selectAll(); 23 ui->lineEdit->selectAll();
18 24
@@ -37,6 +43,20 @@ FavoriteNamePopup::~FavoriteNamePopup() @@ -37,6 +43,20 @@ FavoriteNamePopup::~FavoriteNamePopup()
37 delete ui; 43 delete ui;
38 } 44 }
39 45
  46 +bool FavoriteNamePopup::eventFilter(QObject */*watched*/, QEvent *event)
  47 +{
  48 + switch (event->type())
  49 + {
  50 + case QEvent::FocusIn:
  51 + lastLine = ui->lineEdit->text();
  52 + break;
  53 + default:
  54 + break;
  55 + }
  56 +
  57 + return false;
  58 +}
  59 +
40 void FavoriteNamePopup::keyPressEvent(QKeyEvent *event) 60 void FavoriteNamePopup::keyPressEvent(QKeyEvent *event)
41 { 61 {
42 switch (event->key()) 62 switch (event->key())
@@ -102,6 +122,14 @@ void FavoriteNamePopup::cancel() @@ -102,6 +122,14 @@ void FavoriteNamePopup::cancel()
102 deleteLater(); 122 deleteLater();
103 } 123 }
104 124
  125 +void FavoriteNamePopup::revert()
  126 +{
  127 + ui->lineEdit->setText(lastLine);
  128 +
  129 + if (focusWidget() == ui->lineEdit)
  130 + ui->lineEdit->selectAll();
  131 +}
  132 +
105 void FavoriteNamePopup::on_okButton_clicked() 133 void FavoriteNamePopup::on_okButton_clicked()
106 { 134 {
107 ok(); 135 ok();
@@ -114,15 +142,32 @@ void FavoriteNamePopup::on_cancelButton_clicked() @@ -114,15 +142,32 @@ void FavoriteNamePopup::on_cancelButton_clicked()
114 142
115 void FavoriteNamePopup::onEncoderLeft() 143 void FavoriteNamePopup::onEncoderLeft()
116 { 144 {
117 - 145 + if (focusWidget() == ui->lineEdit)
  146 + ui->cancelButton->setFocus();
  147 + else
  148 + focusPreviousChild();
118 } 149 }
119 150
120 void FavoriteNamePopup::onEncoderRight() 151 void FavoriteNamePopup::onEncoderRight()
121 { 152 {
122 - 153 + if (focusWidget() == ui->cancelButton)
  154 + {
  155 + ui->lineEdit->setFocus();
  156 + ui->lineEdit->selectAll();
  157 + }
  158 + else
  159 + focusNextChild();
123 } 160 }
124 161
125 void FavoriteNamePopup::onEncoderClicked(QWidget *clicked) 162 void FavoriteNamePopup::onEncoderClicked(QWidget *clicked)
126 { 163 {
127 - 164 + QPushButton *b = qobject_cast<QPushButton *>(clicked);
  165 + if (b)
  166 + b->click();
  167 + else
  168 + {
  169 + QLineEdit *e = qobject_cast<QLineEdit *>(clicked);
  170 + if (e)
  171 + ui->keyboard->focusInKeyboard();
  172 + }
128 } 173 }
app/gui/oven_control/favoritenamepopup.h
@@ -20,6 +20,8 @@ public: @@ -20,6 +20,8 @@ public:
20 explicit FavoriteNamePopup(QWidget *parent, AutoCookSetting setting); 20 explicit FavoriteNamePopup(QWidget *parent, AutoCookSetting setting);
21 ~FavoriteNamePopup(); 21 ~FavoriteNamePopup();
22 22
  23 + bool eventFilter(QObject *watched, QEvent *event);
  24 +
23 protected: 25 protected:
24 void keyPressEvent(QKeyEvent *event); 26 void keyPressEvent(QKeyEvent *event);
25 void keyReleaseEvent(QKeyEvent *event); 27 void keyReleaseEvent(QKeyEvent *event);
@@ -37,9 +39,12 @@ private: @@ -37,9 +39,12 @@ private:
37 void onEncoderRight(); 39 void onEncoderRight();
38 void onEncoderClicked(QWidget *clicked); 40 void onEncoderClicked(QWidget *clicked);
39 41
  42 + QString lastLine;
  43 +
40 private slots: 44 private slots:
41 void ok(); 45 void ok();
42 void cancel(); 46 void cancel();
  47 + void revert();
43 void on_okButton_clicked(); 48 void on_okButton_clicked();
44 void on_cancelButton_clicked(); 49 void on_cancelButton_clicked();
45 }; 50 };
app/gui/oven_control/favoritenamepopup.ui
@@ -163,6 +163,11 @@ QPushButton:pressed, QPushButton:focus { color: yellow; }&lt;/string&gt; @@ -163,6 +163,11 @@ QPushButton:pressed, QPushButton:focus { color: yellow; }&lt;/string&gt;
163 <container>1</container> 163 <container>1</container>
164 </customwidget> 164 </customwidget>
165 </customwidgets> 165 </customwidgets>
  166 + <tabstops>
  167 + <tabstop>lineEdit</tabstop>
  168 + <tabstop>okButton</tabstop>
  169 + <tabstop>cancelButton</tabstop>
  170 + </tabstops>
166 <resources/> 171 <resources/>
167 <connections/> 172 <connections/>
168 </ui> 173 </ui>
app/gui/oven_control/formatterspinbox.cpp
@@ -30,8 +30,8 @@ FormatterSpinBox::FormatterSpinBox(QWidget *parent) @@ -30,8 +30,8 @@ FormatterSpinBox::FormatterSpinBox(QWidget *parent)
30 } 30 }
31 31
32 void FormatterSpinBox::focusInEvent(QFocusEvent *event){ 32 void FormatterSpinBox::focusInEvent(QFocusEvent *event){
33 - qDebug() << "focus in";  
34 - if(event->reason() == Qt::MouseFocusReason) QTimer::singleShot(200,this,SLOT(selectAll())); 33 + QSpinBox::focusInEvent(event);
  34 + if(event->reason() == Qt::MouseFocusReason) QTimer::singleShot(0,this,SLOT(selectAll()));
35 else selectAll(); 35 else selectAll();
36 emit focusInEdit(); 36 emit focusInEdit();
37 } 37 }
app/gui/oven_control/manualcookwindow.cpp
@@ -1018,7 +1018,7 @@ void ManualCookWindow::on_favoriteButton_clicked() @@ -1018,7 +1018,7 @@ void ManualCookWindow::on_favoriteButton_clicked()
1018 p->showFullScreen(); 1018 p->showFullScreen();
1019 1019
1020 focused = ui->favoriteButton; 1020 focused = ui->favoriteButton;
1021 - connect(p, SIGNAL(destroyed(QObject*)), SLOT(focusAgain())); 1021 + connect(p, SIGNAL(rejected()), SLOT(focusAgain()));
1022 connect(p, SIGNAL(accepted()), SLOT(addFavorite())); 1022 connect(p, SIGNAL(accepted()), SLOT(addFavorite()));
1023 1023
1024 if (startCookingTimer.isActive()) 1024 if (startCookingTimer.isActive())
app/gui/oven_control/programmingnamepopup.cpp
@@ -14,6 +14,12 @@ ProgrammingNamePopup::ProgrammingNamePopup(QWidget *parent, CookRecord record) : @@ -14,6 +14,12 @@ ProgrammingNamePopup::ProgrammingNamePopup(QWidget *parent, CookRecord record) :
14 14
15 setAttribute(Qt::WA_DeleteOnClose); 15 setAttribute(Qt::WA_DeleteOnClose);
16 16
  17 + connect(ui->keyboard, SIGNAL(onOkKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
  18 + connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
  19 + connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), SLOT(revert()));
  20 +
  21 + ui->lineEdit->installEventFilter(this);
  22 +
17 ui->lineEdit->setText(record.name); 23 ui->lineEdit->setText(record.name);
18 ui->lineEdit->setFocus(); 24 ui->lineEdit->setFocus();
19 ui->lineEdit->selectAll(); 25 ui->lineEdit->selectAll();
@@ -27,6 +33,20 @@ ProgrammingNamePopup::~ProgrammingNamePopup() @@ -27,6 +33,20 @@ ProgrammingNamePopup::~ProgrammingNamePopup()
27 delete ui; 33 delete ui;
28 } 34 }
29 35
  36 +bool ProgrammingNamePopup::eventFilter(QObject */*watched*/, QEvent *event)
  37 +{
  38 + switch (event->type())
  39 + {
  40 + case QEvent::FocusIn:
  41 + lastLine = ui->lineEdit->text();
  42 + break;
  43 + default:
  44 + break;
  45 + }
  46 +
  47 + return false;
  48 +}
  49 +
30 void ProgrammingNamePopup::keyPressEvent(QKeyEvent *event) 50 void ProgrammingNamePopup::keyPressEvent(QKeyEvent *event)
31 { 51 {
32 switch (event->key()) 52 switch (event->key())
@@ -62,6 +82,14 @@ void ProgrammingNamePopup::keyReleaseEvent(QKeyEvent *event) @@ -62,6 +82,14 @@ void ProgrammingNamePopup::keyReleaseEvent(QKeyEvent *event)
62 } 82 }
63 } 83 }
64 84
  85 +void ProgrammingNamePopup::revert()
  86 +{
  87 + ui->lineEdit->setText(lastLine);
  88 +
  89 + if (focusWidget() == ui->lineEdit)
  90 + ui->lineEdit->selectAll();
  91 +}
  92 +
65 void ProgrammingNamePopup::on_okButton_clicked() 93 void ProgrammingNamePopup::on_okButton_clicked()
66 { 94 {
67 CookProgram::rename(record, ui->lineEdit->text()); 95 CookProgram::rename(record, ui->lineEdit->text());
@@ -78,15 +106,32 @@ void ProgrammingNamePopup::on_cancelButton_clicked() @@ -78,15 +106,32 @@ void ProgrammingNamePopup::on_cancelButton_clicked()
78 106
79 void ProgrammingNamePopup::onEncoderLeft() 107 void ProgrammingNamePopup::onEncoderLeft()
80 { 108 {
81 - 109 + if (focusWidget() == ui->lineEdit)
  110 + ui->cancelButton->setFocus();
  111 + else
  112 + focusPreviousChild();
82 } 113 }
83 114
84 void ProgrammingNamePopup::onEncoderRight() 115 void ProgrammingNamePopup::onEncoderRight()
85 { 116 {
86 - 117 + if (focusWidget() == ui->cancelButton)
  118 + {
  119 + ui->lineEdit->setFocus();
  120 + ui->lineEdit->selectAll();
  121 + }
  122 + else
  123 + focusNextChild();
87 } 124 }
88 125
89 void ProgrammingNamePopup::onEncoderClicked(QWidget *clicked) 126 void ProgrammingNamePopup::onEncoderClicked(QWidget *clicked)
90 { 127 {
91 - 128 + QPushButton *b = qobject_cast<QPushButton *>(clicked);
  129 + if (b)
  130 + b->click();
  131 + else
  132 + {
  133 + QLineEdit *e = qobject_cast<QLineEdit *>(clicked);
  134 + if (e)
  135 + ui->keyboard->focusInKeyboard();
  136 + }
92 } 137 }
app/gui/oven_control/programmingnamepopup.h
@@ -17,11 +17,15 @@ public: @@ -17,11 +17,15 @@ public:
17 explicit ProgrammingNamePopup(QWidget *parent, CookRecord record); 17 explicit ProgrammingNamePopup(QWidget *parent, CookRecord record);
18 ~ProgrammingNamePopup(); 18 ~ProgrammingNamePopup();
19 19
  20 + bool eventFilter(QObject *watched, QEvent *event);
  21 +
20 protected: 22 protected:
21 void keyPressEvent(QKeyEvent *event); 23 void keyPressEvent(QKeyEvent *event);
22 void keyReleaseEvent(QKeyEvent *event); 24 void keyReleaseEvent(QKeyEvent *event);
23 25
24 private slots: 26 private slots:
  27 + void revert();
  28 +
25 void on_okButton_clicked(); 29 void on_okButton_clicked();
26 30
27 void on_cancelButton_clicked(); 31 void on_cancelButton_clicked();
@@ -37,6 +41,8 @@ private: @@ -37,6 +41,8 @@ private:
37 void onEncoderRight(); 41 void onEncoderRight();
38 void onEncoderClicked(QWidget *clicked); 42 void onEncoderClicked(QWidget *clicked);
39 43
  44 + QString lastLine;
  45 +
40 signals: 46 signals:
41 void changed(); 47 void changed();
42 }; 48 };
app/gui/oven_control/programmingnamepopup.ui
@@ -165,6 +165,11 @@ QPushButton:pressed, QPushButton:focus { color: yellow; }&lt;/string&gt; @@ -165,6 +165,11 @@ QPushButton:pressed, QPushButton:focus { color: yellow; }&lt;/string&gt;
165 <container>1</container> 165 <container>1</container>
166 </customwidget> 166 </customwidget>
167 </customwidgets> 167 </customwidgets>
  168 + <tabstops>
  169 + <tabstop>lineEdit</tabstop>
  170 + <tabstop>okButton</tabstop>
  171 + <tabstop>cancelButton</tabstop>
  172 + </tabstops>
168 <resources/> 173 <resources/>
169 <connections/> 174 <connections/>
170 </ui> 175 </ui>
app/gui/oven_control/reservedtimepopup.cpp
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 #include "ui_reservedtimepopup.h" 2 #include "ui_reservedtimepopup.h"
3 3
4 #include <QDebug> 4 #include <QDebug>
  5 +#include <QKeyEvent>
5 6
6 #include "stringer.h" 7 #include "stringer.h"
7 8
@@ -18,6 +19,8 @@ ReservedTimePopup::ReservedTimePopup(QWidget *parent, QDateTime target) : @@ -18,6 +19,8 @@ ReservedTimePopup::ReservedTimePopup(QWidget *parent, QDateTime target) :
18 checkTimeTimer.start(100); 19 checkTimeTimer.start(100);
19 20
20 checkTime(); 21 checkTime();
  22 +
  23 + setFocus();
21 } 24 }
22 25
23 ReservedTimePopup::~ReservedTimePopup() 26 ReservedTimePopup::~ReservedTimePopup()
@@ -25,6 +28,37 @@ ReservedTimePopup::~ReservedTimePopup() @@ -25,6 +28,37 @@ ReservedTimePopup::~ReservedTimePopup()
25 delete ui; 28 delete ui;
26 } 29 }
27 30
  31 +void ReservedTimePopup::keyPressEvent(QKeyEvent *event)
  32 +{
  33 + switch (event->key())
  34 + {
  35 + case 0x01000030: // Turn left
  36 + ui->cancelButton->setFocus();
  37 + break;
  38 + case 0x01000031: // Push
  39 + break;
  40 + case 0x01000032: // Turn right
  41 + ui->cancelButton->setFocus();
  42 + break;
  43 + }
  44 +}
  45 +
  46 +void ReservedTimePopup::keyReleaseEvent(QKeyEvent *event)
  47 +{
  48 + switch (event->key())
  49 + {
  50 + case 0x01000030: // Turn left
  51 + ui->cancelButton->setFocus();
  52 + break;
  53 + case 0x01000031: // Push
  54 + ui->cancelButton->click();
  55 + break;
  56 + case 0x01000032: // Turn right
  57 + ui->cancelButton->setFocus();
  58 + break;
  59 + }
  60 +}
  61 +
28 void ReservedTimePopup::checkTime() 62 void ReservedTimePopup::checkTime()
29 { 63 {
30 qint64 remaining = QDateTime::currentDateTime().msecsTo(target); 64 qint64 remaining = QDateTime::currentDateTime().msecsTo(target);
@@ -39,6 +73,10 @@ void ReservedTimePopup::checkTime() @@ -39,6 +73,10 @@ void ReservedTimePopup::checkTime()
39 73
40 void ReservedTimePopup::on_cancelButton_clicked() 74 void ReservedTimePopup::on_cancelButton_clicked()
41 { 75 {
  76 + QWidget *focused = focusWidget();
  77 + if (focused)
  78 + focused->clearFocus();
  79 +
42 emit canceled(); 80 emit canceled();
43 close(); 81 close();
44 } 82 }
app/gui/oven_control/reservedtimepopup.h
@@ -17,6 +17,10 @@ public: @@ -17,6 +17,10 @@ public:
17 explicit ReservedTimePopup(QWidget *parent, QDateTime target); 17 explicit ReservedTimePopup(QWidget *parent, QDateTime target);
18 ~ReservedTimePopup(); 18 ~ReservedTimePopup();
19 19
  20 +protected:
  21 + void keyPressEvent(QKeyEvent* event);
  22 + void keyReleaseEvent(QKeyEvent* event);
  23 +
20 private: 24 private:
21 Ui::ReservedTimePopup *ui; 25 Ui::ReservedTimePopup *ui;
22 QDateTime target; 26 QDateTime target;
app/gui/oven_control/reservetimepopup.cpp
@@ -2,8 +2,11 @@ @@ -2,8 +2,11 @@
2 #include "ui_reservetimepopup.h" 2 #include "ui_reservetimepopup.h"
3 3
4 #include <QDateTime> 4 #include <QDateTime>
  5 +#include <QKeyEvent>
  6 +#include <QDebug>
5 7
6 #include "reservedtimepopup.h" 8 #include "reservedtimepopup.h"
  9 +#include "formatterspinbox.h"
7 10
8 ReserveTimePopup::ReserveTimePopup(QWidget *parent) : 11 ReserveTimePopup::ReserveTimePopup(QWidget *parent) :
9 QWidget(parent), 12 QWidget(parent),
@@ -18,6 +21,16 @@ ReserveTimePopup::ReserveTimePopup(QWidget *parent) : @@ -18,6 +21,16 @@ ReserveTimePopup::ReserveTimePopup(QWidget *parent) :
18 ui->day->setValue(dt.date().day()); 21 ui->day->setValue(dt.date().day());
19 ui->hour->setValue(dt.time().hour()); 22 ui->hour->setValue(dt.time().hour());
20 ui->min->setValue(dt.time().minute()); 23 ui->min->setValue(dt.time().minute());
  24 +
  25 + connect(ui->keyboard, SIGNAL(onOkKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
  26 + connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
  27 + connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), SLOT(revert()));
  28 +
  29 + foreach (FormatterSpinBox *b, findChildren<FormatterSpinBox *>())
  30 + b->installEventFilter(this);
  31 +
  32 + ui->min->setFocus();
  33 + ui->min->selectAll();
21 } 34 }
22 35
23 ReserveTimePopup::~ReserveTimePopup() 36 ReserveTimePopup::~ReserveTimePopup()
@@ -25,6 +38,68 @@ ReserveTimePopup::~ReserveTimePopup() @@ -25,6 +38,68 @@ ReserveTimePopup::~ReserveTimePopup()
25 delete ui; 38 delete ui;
26 } 39 }
27 40
  41 +bool ReserveTimePopup::eventFilter(QObject *watched, QEvent *event)
  42 +{
  43 + FormatterSpinBox *e = qobject_cast<FormatterSpinBox *>(watched);
  44 + if (e)
  45 + {
  46 + switch (event->type())
  47 + {
  48 + case QEvent::FocusIn:
  49 + lastValue = e->value();
  50 + break;
  51 + default:
  52 + break;
  53 + }
  54 + }
  55 +
  56 + return false;
  57 +}
  58 +
  59 +void ReserveTimePopup::keyPressEvent(QKeyEvent *event)
  60 +{
  61 + switch (event->key())
  62 + {
  63 + case 0x01000030: // Turn left
  64 + onEncoderLeft();
  65 + break;
  66 + case 0x01000031: // Push
  67 + pushed = focusWidget();
  68 + break;
  69 + case 0x01000032: // Turn right
  70 + onEncoderRight();
  71 + break;
  72 + }
  73 +}
  74 +
  75 +void ReserveTimePopup::keyReleaseEvent(QKeyEvent *event)
  76 +{
  77 + switch (event->key())
  78 + {
  79 + case 0x01000030: // Turn left
  80 + onEncoderLeft();
  81 + break;
  82 + case 0x01000031: // Push
  83 + if (focusWidget() == pushed)
  84 + onEncoderClicked(pushed);
  85 +
  86 + pushed = NULL;
  87 + break;
  88 + case 0x01000032: // Turn right
  89 + onEncoderRight();
  90 + break;
  91 + }
  92 +}
  93 +
  94 +void ReserveTimePopup::revert()
  95 +{
  96 + FormatterSpinBox *b = qobject_cast<FormatterSpinBox *>(focusWidget());
  97 + if (b)
  98 + b->setValue(lastValue);
  99 +
  100 + qDebug() << lastValue;
  101 +}
  102 +
28 void ReserveTimePopup::on_okButton_clicked() 103 void ReserveTimePopup::on_okButton_clicked()
29 { 104 {
30 QDateTime current = QDateTime::currentDateTime(); 105 QDateTime current = QDateTime::currentDateTime();
@@ -49,3 +124,38 @@ void ReserveTimePopup::on_cancelButton_clicked() @@ -49,3 +124,38 @@ void ReserveTimePopup::on_cancelButton_clicked()
49 emit canceled(); 124 emit canceled();
50 close(); 125 close();
51 } 126 }
  127 +
  128 +void ReserveTimePopup::onEncoderLeft()
  129 +{
  130 + if (focusWidget() == ui->month)
  131 + ui->cancelButton->setFocus();
  132 + else
  133 + focusPreviousChild();
  134 +}
  135 +
  136 +void ReserveTimePopup::onEncoderRight()
  137 +{
  138 + if (focusWidget() == ui->cancelButton)
  139 + {
  140 + ui->month->setFocus();
  141 + ui->month->selectAll();
  142 + }
  143 + else
  144 + focusNextChild();
  145 +}
  146 +
  147 +void ReserveTimePopup::onEncoderClicked(QWidget *clicked)
  148 +{
  149 + QPushButton *b = qobject_cast<QPushButton *>(clicked);
  150 + if (b)
  151 + b->click();
  152 + else
  153 + {
  154 + FormatterSpinBox *e = qobject_cast<FormatterSpinBox *>(clicked);
  155 + if (e)
  156 + {
  157 + qDebug() << "focusinkeyboard";
  158 + ui->keyboard->focusInKeyboard();
  159 + }
  160 + }
  161 +}
app/gui/oven_control/reservetimepopup.h
@@ -15,7 +15,15 @@ public: @@ -15,7 +15,15 @@ public:
15 explicit ReserveTimePopup(QWidget *parent = 0); 15 explicit ReserveTimePopup(QWidget *parent = 0);
16 ~ReserveTimePopup(); 16 ~ReserveTimePopup();
17 17
  18 + bool eventFilter(QObject *watched, QEvent *event);
  19 +
  20 +protected:
  21 + void keyPressEvent(QKeyEvent* event);
  22 + void keyReleaseEvent(QKeyEvent* event);
  23 +
18 private slots: 24 private slots:
  25 + void revert();
  26 +
19 void on_okButton_clicked(); 27 void on_okButton_clicked();
20 28
21 void on_cancelButton_clicked(); 29 void on_cancelButton_clicked();
@@ -23,6 +31,14 @@ private slots: @@ -23,6 +31,14 @@ private slots:
23 private: 31 private:
24 Ui::ReserveTimePopup *ui; 32 Ui::ReserveTimePopup *ui;
25 33
  34 + int lastValue;
  35 +
  36 + QWidget *pushed = NULL;
  37 +
  38 + void onEncoderLeft();
  39 + void onEncoderRight();
  40 + void onEncoderClicked(QWidget *clicked);
  41 +
26 signals: 42 signals:
27 void timeout(); 43 void timeout();
28 void canceled(); 44 void canceled();
app/gui/oven_control/reservetimepopup.ui
@@ -426,6 +426,14 @@ QSpinBox{ @@ -426,6 +426,14 @@ QSpinBox{
426 <header>formatterspinbox.h</header> 426 <header>formatterspinbox.h</header>
427 </customwidget> 427 </customwidget>
428 </customwidgets> 428 </customwidgets>
  429 + <tabstops>
  430 + <tabstop>month</tabstop>
  431 + <tabstop>day</tabstop>
  432 + <tabstop>hour</tabstop>
  433 + <tabstop>min</tabstop>
  434 + <tabstop>okButton</tabstop>
  435 + <tabstop>cancelButton</tabstop>
  436 + </tabstops>
429 <resources/> 437 <resources/>
430 <connections/> 438 <connections/>
431 </ui> 439 </ui>