Blame view

app/gui/oven_control/preheatpopup.cpp 3.07 KB
05f2a7552   김태훈   image 관리 구조 변경
1
2
3
4
5
6
  #include "preheatpopup.h"
  #include "ui_preheatpopup.h"
  
  PreheatPopup::PreheatPopup(QWidget *parent, Oven *oven) :
      QWidget(parent),
      ui(new Ui::PreheatPopup),
61ba89b34   김태훈   GUI V0.1.6
7
8
9
      oven(oven),
      showingCurrentHumidity(false),
      showingCurrentTemp(false)
05f2a7552   김태훈   image 관리 구조 변경
10
11
12
13
14
15
  {
      ui->setupUi(this);
  
      setAttribute(Qt::WA_DeleteOnClose);
  
      connect(oven, SIGNAL(changed(Oven*)), SLOT(updateView()));
61ba89b34   김태훈   GUI V0.1.6
16
17
18
19
20
21
22
23
24
      showCurrentHumidityTimer.setSingleShot(true);
      showCurrentHumidityTimer.setInterval(3000);
      connect(&showCurrentHumidityTimer, SIGNAL(timeout()), SLOT(showCurrentHumidity()));
  
      showCurrentTempTimer.setSingleShot(true);
      showCurrentTempTimer.setInterval(3000);
      connect(&showCurrentTempTimer, SIGNAL(timeout()), SLOT(showCurrentTemp()));
  
      start();
05f2a7552   김태훈   image 관리 구조 변경
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  }
  
  PreheatPopup::~PreheatPopup()
  {
      delete ui;
  }
  
  void PreheatPopup::updateView()
  {
      int time = oven->time();
      if (time >= 3600)
          ui->timeLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">시간</span> %02d<span style=\"font-size:11pt;\">분</span>", time / 3600, (time % 3600) / 60));
      else if (time >= 60)
          ui->timeLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">분</span> %02d<span style=\"font-size:11pt;\">초</span>", time / 60, time % 60));
      else
          ui->timeLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">초</span>", time));
61ba89b34   김태훈   GUI V0.1.6
41
      int curInterTemp = oven->currentInterTemp();
05f2a7552   김태훈   image 관리 구조 변경
42
43
44
      if (oven->interTempEnabled())
      {
          int interTemp = oven->interTemp();
61ba89b34   김태훈   GUI V0.1.6
45
          ui->interTempLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">℃ / %d</span><span style=\"font-size:9pt;\">℃</span>", curInterTemp, interTemp));
05f2a7552   김태훈   image 관리 구조 변경
46
47
      }
      else
61ba89b34   김태훈   GUI V0.1.6
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
          ui->interTempLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">℃</span>", curInterTemp));
  
      int humidity;
      if (showingCurrentHumidity)
          humidity = oven->currentHumidity();
      else
          humidity = oven->humidity();
  
      int temp;
      if (showingCurrentTemp)
          temp = oven->currentTemp();
      else
          temp = oven->temp();
  
      ui->humidityLabel->setText(QString().sprintf("%d%%", humidity));
      ui->heatLabel->setText(QString().sprintf("%d℃", temp));
  }
  
  void PreheatPopup::start()
  {
      oven->startPreheating();
  }
  
  void PreheatPopup::stop()
  {
      oven->stopPreheating();
  }
  
  void PreheatPopup::showCurrentHumidity()
  {
      showingCurrentHumidity = true;
05f2a7552   김태훈   image 관리 구조 변경
79
61ba89b34   김태훈   GUI V0.1.6
80
81
82
83
84
85
86
87
      updateView();
  }
  
  void PreheatPopup::showCurrentTemp()
  {
      showingCurrentTemp = true;
  
      updateView();
05f2a7552   김태훈   image 관리 구조 변경
88
89
90
91
  }
  
  void PreheatPopup::on_closeButton_clicked()
  {
61ba89b34   김태훈   GUI V0.1.6
92
      stop();
05f2a7552   김태훈   image 관리 구조 변경
93
94
95
96
97
      close();
  }
  
  void PreheatPopup::on_closeButton_2_clicked()
  {
61ba89b34   김태훈   GUI V0.1.6
98
      stop();
05f2a7552   김태훈   image 관리 구조 변경
99
100
      close();
  }
61ba89b34   김태훈   GUI V0.1.6
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  
  void PreheatPopup::on_humidityGaugeButton_pressed()
  {
      showCurrentHumidityTimer.start();
  }
  
  void PreheatPopup::on_humidityGaugeButton_released()
  {
      showCurrentHumidityTimer.stop();
      showingCurrentHumidity = false;
  
      updateView();
  }
  
  void PreheatPopup::on_heatGaugeButton_pressed()
  {
      showCurrentTempTimer.start();
  }
  
  void PreheatPopup::on_heatGaugeButton_released()
  {
      showCurrentTempTimer.stop();
      showingCurrentTemp = false;
  
      updateView();
  }