Blame view

app/gui/oven_control/gasmodelsettingwindow.cpp 6.23 KB
ec04831f5   고영탁   모델 설정 변경
1
  #include <QDebug>
22f83e90f   김태훈   모델 설정 UI 추가
2
3
  #include "gasmodelsettingwindow.h"
  #include "ui_gasmodelsettingwindow.h"
ec04831f5   고영탁   모델 설정 변경
4
  #include "yesnopopupdlg.h"
22f83e90f   김태훈   모델 설정 UI 추가
5
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
6
  #include "soundplayer.h"
22f83e90f   김태훈   모델 설정 UI 추가
7
8
9
10
11
12
13
14
  GasModelSettingWindow::GasModelSettingWindow(QWidget *parent) :
      QMainWindow(parent),
      ui(new Ui::GasModelSettingWindow)
  {
      ui->setupUi(this);
  
      ui->clockContainer->setParent(ui->upperStack);
      setAttribute(Qt::WA_DeleteOnClose);
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
15
16
17
  
      foreach (QPushButton *button, findChildren<QPushButton *>())
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
ec04831f5   고영탁   모델 설정 변경
18
19
  
      Config* cfg = Config::getInstance();
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
      Define::config_item item;
      item = cfg->getConfigValue(Define::config_model);
      selitem = item.d32;
      switch(item.d32){
      case Define::model_gas_lng_10:
          ui->lng10Button->setChecked(true);
          break;
      case Define::model_gas_lng_20:
          ui->lng20Button->setChecked(true);
          break;
      case Define::model_gas_lng_24:
          ui->lng24Button->setChecked(true);
          break;
      case Define::model_gas_lng_40:
          ui->lng40Button->setChecked(true);
          break;
      case Define::model_gas_lpg_10:
          ui->lpg10Button->setChecked(true);
          break;
      case Define::model_gas_lpg_20:
          ui->lpg20Button->setChecked(true);
          break;
      case Define::model_gas_lpg_24:
          ui->lpg24Button->setChecked(true);
          break;
      case Define::model_gas_lpg_40:
          ui->lpg40Button->setChecked(true);
          break;
      }
9146b87b4   고영탁   엔코더 작업 진행중
49
      this->setFocus();
22f83e90f   김태훈   모델 설정 UI 추가
50
be7d2a625   고영탁   엔코더 기능 구현
51
52
53
54
55
56
57
58
59
60
      m_vectorTabOrder.append(this);
      m_vectorTabOrder.append(ui->lpg10Button);
      m_vectorTabOrder.append(ui->lng10Button);
      m_vectorTabOrder.append(ui->lpg20Button);
      m_vectorTabOrder.append(ui->lng20Button);
      m_vectorTabOrder.append(ui->lpg24Button);
      m_vectorTabOrder.append(ui->lng24Button);
      m_vectorTabOrder.append(ui->lpg40Button);
      m_vectorTabOrder.append(ui->lng40Button);
      m_vectorTabOrder.append(ui->backButton);
22f83e90f   김태훈   모델 설정 UI 추가
61
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
62
  }
be7d2a625   고영탁   엔코더 기능 구현
63
  GasModelSettingWindow::~GasModelSettingWindow()
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
64
  {
be7d2a625   고영탁   엔코더 기능 구현
65
      delete ui;
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
66
  }
5cf78e0e6   김태훈   모델 설정을 환경 설정에 반영
67
  void GasModelSettingWindow::setModel(Define::model_type model)
22f83e90f   김태훈   모델 설정 UI 추가
68
  {
5cf78e0e6   김태훈   모델 설정을 환경 설정에 반영
69
70
      Define::config_item item;
      item.d32 = (int) model;
22f83e90f   김태훈   모델 설정 UI 추가
71
5cf78e0e6   김태훈   모델 설정을 환경 설정에 반영
72
73
74
      Config *config = Config::getInstance();
      config->setConfigValue(Define::config_model, item);
      config->saveConfig();
22f83e90f   김태훈   모델 설정 UI 추가
75
  }
5cf78e0e6   김태훈   모델 설정을 환경 설정에 반영
76
  void GasModelSettingWindow::on_lpg10Button_clicked()
22f83e90f   김태훈   모델 설정 UI 추가
77
  {
ec04831f5   고영탁   모델 설정 변경
78
79
      //setModel(Define::model_gas_lpg_10);
      selitem = Define::model_gas_lpg_10;
5cf78e0e6   김태훈   모델 설정을 환경 설정에 반영
80
  }
22f83e90f   김태훈   모델 설정 UI 추가
81
5cf78e0e6   김태훈   모델 설정을 환경 설정에 반영
82
83
  void GasModelSettingWindow::on_lng10Button_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
84
85
      //setModel(Define::model_gas_lng_10);
      selitem = Define::model_gas_lng_10;
22f83e90f   김태훈   모델 설정 UI 추가
86
87
88
89
  }
  
  void GasModelSettingWindow::on_lpg20Button_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
90
91
      //setModel(Define::model_gas_lpg_20);
      selitem = Define::model_gas_lpg_20;
22f83e90f   김태훈   모델 설정 UI 추가
92
93
94
95
  }
  
  void GasModelSettingWindow::on_lng20Button_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
96
97
      //setModel(Define::model_gas_lng_20);
      selitem = Define::model_gas_lng_20;
22f83e90f   김태훈   모델 설정 UI 추가
98
99
100
101
  }
  
  void GasModelSettingWindow::on_lpg24Button_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
102
103
      //setModel(Define::model_gas_lpg_24);
      selitem = Define::model_gas_lpg_24;
22f83e90f   김태훈   모델 설정 UI 추가
104
105
106
107
  }
  
  void GasModelSettingWindow::on_lng24Button_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
108
109
      //setModel(Define::model_gas_lng_24);
      selitem = Define::model_gas_lng_24;
22f83e90f   김태훈   모델 설정 UI 추가
110
111
112
113
  }
  
  void GasModelSettingWindow::on_lpg40Button_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
114
115
      //setModel(Define::model_gas_lpg_40);
      selitem = Define::model_gas_lpg_40;
22f83e90f   김태훈   모델 설정 UI 추가
116
117
118
119
  }
  
  void GasModelSettingWindow::on_lng40Button_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
120
121
      //setModel(Define::model_gas_lng_40);
      selitem = Define::model_gas_lng_40;
22f83e90f   김태훈   모델 설정 UI 추가
122
123
124
125
  }
  
  void GasModelSettingWindow::on_backButton_clicked()
  {
ec04831f5   고영탁   모델 설정 변경
126
127
128
129
130
131
132
133
134
135
136
137
138
      Config* cfg = Config::getInstance();
      Define::config_item item;
      item = cfg->getConfigValue(Define::config_model);
  
      if(selitem != item.d32){
          YesNoPopupDlg* yesnopop = new YesNoPopupDlg(this, tr("모델을 변경하시겠습니까?"));
          yesnopop->setModal(true);
          yesnopop->exec();
          if(yesnopop->result() == QDialog::Accepted){
              setModel((Define::model_type)selitem);
              qDebug() << "saved";
          }
      }
22f83e90f   김태훈   모델 설정 UI 추가
139
140
      close();
  }
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
141
be7d2a625   고영탁   엔코더 기능 구현
142
143
144
145
  void GasModelSettingWindow::keyPressEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
146
      case 0x01000032:    // Turn left
be7d2a625   고영탁   엔코더 기능 구현
147
148
149
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
150
be7d2a625   고영탁   엔코더 기능 구현
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
          if(i==0){
              i = m_vectorTabOrder.size()-1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i < m_vectorTabOrder.size()) {
              i = i - 1;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      case 0x01000031:    // Push
  
          break;
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
167
      case 0x01000030:    // Turn right
be7d2a625   고영탁   엔코더 기능 구현
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
  
          if(i<m_vectorTabOrder.size()-1){
              i+=1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i== (m_vectorTabOrder.size()-1)){
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      }
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
186
  }
be7d2a625   고영탁   엔코더 기능 구현
187
188
189
190
  void GasModelSettingWindow::keyReleaseEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
191
      case 0x01000032:    // Turn left
be7d2a625   고영탁   엔코더 기능 구현
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
  
          if(i==0){
              i = m_vectorTabOrder.size()-1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i < m_vectorTabOrder.size()) {
              i = i - 1;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      case 0x01000031:    // Push
      {
          QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
          if(btn != NULL){
              btn->click();
          }
          break;
      }
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
217
      case 0x01000030:    // Turn right
be7d2a625   고영탁   엔코더 기능 구현
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
  
          if(i<m_vectorTabOrder.size()-1){
              i+=1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i== (m_vectorTabOrder.size()-1)){
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      }
9e1f8d093   김태훈   엔코더 구현 대비 선행 수정
236
  }
be7d2a625   고영탁   엔코더 기능 구현
237