Blame view

app/gui/oven_control/reservedtimepopup.cpp 1.86 KB
0e279295f   김태훈   수동 요리 구현
1
2
3
4
  #include "reservedtimepopup.h"
  #include "ui_reservedtimepopup.h"
  
  #include <QDebug>
f5634ecc7   김태훈   엔코더 구현
5
  #include <QKeyEvent>
0e279295f   김태훈   수동 요리 구현
6
7
8
9
10
11
12
13
14
15
16
  
  #include "stringer.h"
  
  ReservedTimePopup::ReservedTimePopup(QWidget *parent, QDateTime target) :
      QWidget(parent),
      ui(new Ui::ReservedTimePopup),
      target(target)
  {
      ui->setupUi(this);
  
      setAttribute(Qt::WA_DeleteOnClose);
2576fd06a   김태훈   수동 요리 예약 디자인/동작 변경
17
18
19
      int remainingTime = QDateTime::currentDateTime().msecsTo(target);
      ui->remainingTime->setMaximum(remainingTime);
      ui->remainingTime->setValue(remainingTime);
0e279295f   김태훈   수동 요리 구현
20
21
22
23
      connect(&checkTimeTimer, SIGNAL(timeout()), SLOT(checkTime()));
      checkTimeTimer.start(100);
  
      checkTime();
f5634ecc7   김태훈   엔코더 구현
24
25
  
      setFocus();
0e279295f   김태훈   수동 요리 구현
26
27
28
29
30
31
  }
  
  ReservedTimePopup::~ReservedTimePopup()
  {
      delete ui;
  }
f5634ecc7   김태훈   엔코더 구현
32
33
34
35
  void ReservedTimePopup::keyPressEvent(QKeyEvent *event)
  {
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
36
      case 0x01000032:    // Turn left
f5634ecc7   김태훈   엔코더 구현
37
38
39
40
          ui->cancelButton->setFocus();
          break;
      case 0x01000031:    // Push
          break;
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
41
      case 0x01000030:    // Turn right
f5634ecc7   김태훈   엔코더 구현
42
43
44
45
46
47
48
49
50
          ui->cancelButton->setFocus();
          break;
      }
  }
  
  void ReservedTimePopup::keyReleaseEvent(QKeyEvent *event)
  {
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
51
      case 0x01000032:    // Turn left
f5634ecc7   김태훈   엔코더 구현
52
53
54
55
56
          ui->cancelButton->setFocus();
          break;
      case 0x01000031:    // Push
          ui->cancelButton->click();
          break;
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
57
      case 0x01000030:    // Turn right
f5634ecc7   김태훈   엔코더 구현
58
59
60
61
          ui->cancelButton->setFocus();
          break;
      }
  }
0e279295f   김태훈   수동 요리 구현
62
63
64
65
  void ReservedTimePopup::checkTime()
  {
      qint64 remaining = QDateTime::currentDateTime().msecsTo(target);
      if (remaining > 0)
2576fd06a   김태훈   수동 요리 예약 디자인/동작 변경
66
      {
0e279295f   김태훈   수동 요리 구현
67
          ui->timeLabel->setText(Stringer::remainingTime(remaining));
2576fd06a   김태훈   수동 요리 예약 디자인/동작 변경
68
69
          ui->remainingTime->setValue(remaining);
      }
0e279295f   김태훈   수동 요리 구현
70
71
72
73
74
75
76
77
78
      else
      {
          emit timeout();
          close();
      }
  }
  
  void ReservedTimePopup::on_cancelButton_clicked()
  {
f5634ecc7   김태훈   엔코더 구현
79
80
81
      QWidget *focused = focusWidget();
      if (focused)
          focused->clearFocus();
0e279295f   김태훈   수동 요리 구현
82
83
84
      emit canceled();
      close();
  }