Blame view

app/gui/oven_control/preheatpopup.cpp 2.97 KB
05f2a7552   김태훈   image 관리 구조 변경
1
2
  #include "preheatpopup.h"
  #include "ui_preheatpopup.h"
2bfd3a050   김태훈   환경 설정 대응
3
  #include "stringer.h"
05f2a7552   김태훈   image 관리 구조 변경
4
5
6
  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
  {
      ui->setupUi(this);
  
      setAttribute(Qt::WA_DeleteOnClose);
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
14
      connect(oven, SIGNAL(changed(Oven*)), SLOT(onOvenChanged()));
05f2a7552   김태훈   image 관리 구조 변경
15
61ba89b34   김태훈   GUI V0.1.6
16
      showCurrentHumidityTimer.setSingleShot(true);
5228da630   김태훈   딜레이 변경
17
      showCurrentHumidityTimer.setInterval(1000);
61ba89b34   김태훈   GUI V0.1.6
18
19
20
      connect(&showCurrentHumidityTimer, SIGNAL(timeout()), SLOT(showCurrentHumidity()));
  
      showCurrentTempTimer.setSingleShot(true);
5228da630   김태훈   딜레이 변경
21
      showCurrentTempTimer.setInterval(1000);
61ba89b34   김태훈   GUI V0.1.6
22
      connect(&showCurrentTempTimer, SIGNAL(timeout()), SLOT(showCurrentTemp()));
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
23
24
25
      ui->preheatGauge->setMaximum(oven->temp());
      ui->preheatGauge->setMinimum(oven->currentTemp());
      ui->preheatGauge->setValue(oven->currentTemp());
8765fbc77   김태훈   수동 요리의 예열 모드 동작 개선
26
      updateView();
61ba89b34   김태훈   GUI V0.1.6
27
      start();
05f2a7552   김태훈   image 관리 구조 변경
28
29
30
31
32
33
34
35
36
  }
  
  PreheatPopup::~PreheatPopup()
  {
      delete ui;
  }
  
  void PreheatPopup::updateView()
  {
8765fbc77   김태훈   수동 요리의 예열 모드 동작 개선
37
      ui->timeLabel->setText(Stringer::remainingTime(oven->msecs(), Stringer::fontSize14));
05f2a7552   김태훈   image 관리 구조 변경
38
61ba89b34   김태훈   GUI V0.1.6
39
      int curInterTemp = oven->currentInterTemp();
05f2a7552   김태훈   image 관리 구조 변경
40
      if (oven->interTempEnabled())
2bfd3a050   김태훈   환경 설정 대응
41
          ui->interTempLabel->setText(Stringer::temperature(curInterTemp, oven->interTemp(), Stringer::fontSize14));
05f2a7552   김태훈   image 관리 구조 변경
42
      else
2bfd3a050   김태훈   환경 설정 대응
43
          ui->interTempLabel->setText(Stringer::temperature(curInterTemp, Stringer::fontSize14));
61ba89b34   김태훈   GUI V0.1.6
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  
      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));
ecfb5801a   김태훈   디버깅 요청 사항 반영
58
      ui->humidityGauge->setValue(humidity);
2bfd3a050   김태훈   환경 설정 대응
59
      ui->heatLabel->setText(Stringer::temperature(temp));
ecfb5801a   김태훈   디버깅 요청 사항 반영
60
      ui->heatGauge->setValue(temp);
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
61
62
  
      ui->preheatGauge->setValue(oven->currentTemp());
61ba89b34   김태훈   GUI V0.1.6
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  }
  
  void PreheatPopup::start()
  {
      oven->startPreheating();
  }
  
  void PreheatPopup::stop()
  {
      oven->stopPreheating();
  }
  
  void PreheatPopup::showCurrentHumidity()
  {
      showingCurrentHumidity = true;
05f2a7552   김태훈   image 관리 구조 변경
78
61ba89b34   김태훈   GUI V0.1.6
79
80
81
82
83
84
85
86
      updateView();
  }
  
  void PreheatPopup::showCurrentTemp()
  {
      showingCurrentTemp = true;
  
      updateView();
05f2a7552   김태훈   image 관리 구조 변경
87
  }
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
88
89
  void PreheatPopup::onOvenChanged()
  {
1a93d524e   김태훈   예열 완료 조건 변경
90
      if (oven->currentTemp() >= oven->temp())
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
91
92
93
94
95
96
97
      {
          stop();
          close();
      }
      else
          updateView();
  }
05f2a7552   김태훈   image 관리 구조 변경
98
99
  void PreheatPopup::on_closeButton_clicked()
  {
61ba89b34   김태훈   GUI V0.1.6
100
      stop();
05f2a7552   김태훈   image 관리 구조 변경
101
102
103
104
105
      close();
  }
  
  void PreheatPopup::on_closeButton_2_clicked()
  {
61ba89b34   김태훈   GUI V0.1.6
106
      stop();
05f2a7552   김태훈   image 관리 구조 변경
107
108
      close();
  }
61ba89b34   김태훈   GUI V0.1.6
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
  
  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();
  }