Blame view

app/gui/oven_control/configwindow.cpp 12.4 KB
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
1
  #include <QList>
8c2952457   김태훈   응용 프로그램 추가
2
3
  #include "configwindow.h"
  #include "ui_configwindow.h"
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
4
  #include "configfavoritebutton.h"
8c2952457   김태훈   응용 프로그램 추가
5
  #include "functiontestwindow.h"
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
6
  #include "engineermenuwindow.h"
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
7
  #include "config.h"
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
8
  #include "configinfodlg.h"
dbfe7c9ea   고영탁   설정 저장 기능 추가
9
  #include "yesnopopupdlg.h"
0603c0b43   고영탁   rtc 설정을 시스템에서 하도록 수정
10
  #include "configdatetimedlg.h"
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
11
  #include "servicepassinputdlg.h"
1f685a2a5   고영탁   설정 시스템 관리 기능 개발
12
  #include "fileprocessor.h"
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
13
  #include "soundplayer.h"
e00c6a2a9   김태훈   기능 추가 구현
14
15
  #include "washwindow.h"
  #include "mainwindow.h"
663943a37   고영탁   설정 기능 마무리 진행 중
16
  #include "configdoormonitoring.h"
e3205cf83   고영탁   고객사 요구 사항 반영
17
  #include "servicepassinputdlg.h"
81b55e046   고영탁   config pannel but...
18
538041ab9   김태훈   소스 코드 구조 개선
19
  ConfigWindow::ConfigWindow(QWidget *parent) :
8c2952457   김태훈   응용 프로그램 추가
20
      QMainWindow(parent),
538041ab9   김태훈   소스 코드 구조 개선
21
      ui(new Ui::ConfigWindow)
8c2952457   김태훈   응용 프로그램 추가
22
23
  {
      ui->setupUi(this);
6f96c947a   김태훈   GUI 0.1.4
24
25
26
  
      ui->clockContainer->setParent(ui->upperStack);
      setAttribute(Qt::WA_DeleteOnClose);
5a38a241e   김태훈   환경 설정 뼈대 추가
27
e3205cf83   고영탁   고객사 요구 사항 반영
28
      Config* cfg = Config::getInstance();
81b55e046   고영탁   config pannel but...
29
      ui->scrollAreaMenuLayout->setAlignment(Qt::AlignTop);
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
30
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
31
32
      foreach (QPushButton *button, findChildren<QPushButton *>())
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
e3205cf83   고영탁   고객사 요구 사항 반영
33
      config_item item;
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
34
      m_nCurConfigPos = config_menu_favorite;
81b55e046   고영탁   config pannel but...
35
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
36
      reloadUi();
5a38a241e   김태훈   환경 설정 뼈대 추가
37
e3205cf83   고영탁   고객사 요구 사항 반영
38
39
40
41
42
43
44
45
46
  
      item = cfg->getConfigValue(config_demo_mode);
      if(item.d32!=0){
          QDialog* dlg = new ServicePassInputDlg(this, DEMO_SERVICE_PASS_MODE);
          dlg->setModal(true);
          dlg->showFullScreen();
          dlg->raise();
          connect(dlg, SIGNAL(rejected()), SLOT(close()));
      }
8c2952457   김태훈   응용 프로그램 추가
47
  }
e3205cf83   고영탁   고객사 요구 사항 반영
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  void ConfigWindow::onLoadedWindow(){
      QDialog* dlg = new ServicePassInputDlg(this);
      dlg->exec();
      this->show();
  }
  
  void ConfigWindow::showFullScreen(){
      Config* cfg = Config::getInstance();
      config_item item = cfg->getConfigValue(config_demo_mode);
      if(item.d32){
          //QMainWindow::showFullScreen();
  //        QDialog* dlg = new ServicePassInputDlg(this->parentWidget());
  //        dlg->exec();
          QMainWindow::showFullScreen();
      }
      else{
          QMainWindow::showFullScreen();
      }
  }
8c2952457   김태훈   응용 프로그램 추가
67
68
69
70
71
72
73
  ConfigWindow::~ConfigWindow()
  {
      delete ui;
  }
  
  void ConfigWindow::on_pushButton_clicked()
  {
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
74
75
76
77
      if(m_nCurConfigPos != config_menu_favorite){
          m_nCurConfigPos = config_menu_favorite;
          reloadUi();
      }
5a38a241e   김태훈   환경 설정 뼈대 추가
78
  }
80c5eb48b   고영탁   configwindow 엔코더 ...
79
  void ConfigWindow::prevFocus(){
40f5d047f   고영탁   엔코더 작업 진행 중
80
81
82
      int i = 0;
      for(i = 0; i < m_vectorTabOrder.size();i++){
          if(focusWidget() == m_vectorTabOrder[i]) break;
80c5eb48b   고영탁   configwindow 엔코더 ...
83
      }
40f5d047f   고영탁   엔코더 작업 진행 중
84
85
86
87
  
      if(i==0){
          i = m_vectorTabOrder.size()-1;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
88
      }
40f5d047f   고영탁   엔코더 작업 진행 중
89
90
91
      else if(i < m_vectorTabOrder.size()) {
          i = i - 1;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
92
      }
40f5d047f   고영탁   엔코더 작업 진행 중
93
94
95
      else{
          i=0;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
96
      }
80c5eb48b   고영탁   configwindow 엔코더 ...
97
98
99
  }
  
  void ConfigWindow::nextFocus(){
40f5d047f   고영탁   엔코더 작업 진행 중
100
101
102
      int i = 0;
      for(i = 0; i < m_vectorTabOrder.size();i++){
          if(focusWidget() == m_vectorTabOrder[i]) break;
80c5eb48b   고영탁   configwindow 엔코더 ...
103
      }
40f5d047f   고영탁   엔코더 작업 진행 중
104
105
106
107
  
      if(i<m_vectorTabOrder.size()-1){
          i+=1;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
108
      }
40f5d047f   고영탁   엔코더 작업 진행 중
109
110
111
      else if(i== (m_vectorTabOrder.size()-1)){
          i=0;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
112
      }
40f5d047f   고영탁   엔코더 작업 진행 중
113
114
115
      else{
          i=0;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
116
      }
40f5d047f   고영탁   엔코더 작업 진행 중
117
      return;
80c5eb48b   고영탁   configwindow 엔코더 ...
118
119
120
121
122
  }
  
  void ConfigWindow::keyReleaseEvent(QKeyEvent *event){
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
123
      case 0x01000032:    // Turn left
80c5eb48b   고영탁   configwindow 엔코더 ...
124
          prevFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
125
          ui->scrollArea->ensureWidgetVisible(m_vectorTabOrder[m_nTabIndex]);
80c5eb48b   고영탁   configwindow 엔코더 ...
126
127
128
129
130
131
132
133
134
135
          break;
      case 0x01000031:    // Push
      {
          QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
          if(btn != NULL){
              btn->click();
          }
          qDebug() << "pushed ";
          break;
      }
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
136
      case 0x01000030:    // Turn right
80c5eb48b   고영탁   configwindow 엔코더 ...
137
          nextFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
138
          ui->scrollArea->ensureWidgetVisible(focusWidget());
80c5eb48b   고영탁   configwindow 엔코더 ...
139
140
141
142
143
144
145
146
          qDebug() << "Turn Right";
          break;
      }
  }
  
  void ConfigWindow::keyPressEvent(QKeyEvent *event){
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
147
      case 0x01000032:    // Turn left
80c5eb48b   고영탁   configwindow 엔코더 ...
148
          prevFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
149
          ui->scrollArea->ensureWidgetVisible(focusWidget());
80c5eb48b   고영탁   configwindow 엔코더 ...
150
151
152
153
154
155
          qDebug() << "turn left";
          break;
      case 0x01000031:    // Push
  
          qDebug() << "pushed ";
          break;
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
156
      case 0x01000030:    // Turn right
80c5eb48b   고영탁   configwindow 엔코더 ...
157
          nextFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
158
          ui->scrollArea->ensureWidgetVisible(focusWidget());
80c5eb48b   고영탁   configwindow 엔코더 ...
159
160
161
162
          qDebug() << "Turn Right";
          break;
      }
  }
5a38a241e   김태훈   환경 설정 뼈대 추가
163
164
  void ConfigWindow::on_backButton_clicked()
  {
dbfe7c9ea   고영탁   설정 저장 기능 추가
165
166
167
168
169
170
      Config* cfg = Config::getInstance();
      QDialog* dlg = new YesNoPopupDlg(this,tr("현재 설정을 적용하시겠습니까?"));
      dlg->setModal(true);
      dlg->exec();
      if(dlg->result() == QDialog::Accepted){
          cfg->saveConfig();
eaa388fe1   고영탁   설정 즐겨찾기 저장 기능 개발
171
          cfg->saveFavorite();
dbfe7c9ea   고영탁   설정 저장 기능 추가
172
173
174
      }
      else{
          cfg->loadConfig();
eaa388fe1   고영탁   설정 즐겨찾기 저장 기능 개발
175
          cfg->loadFavorite();
dbfe7c9ea   고영탁   설정 저장 기능 추가
176
      }
af41f4730   고영탁   볼륨조절 표시 변경
177
      cfg->applyConfig();
5a38a241e   김태훈   환경 설정 뼈대 추가
178
      close();
8c2952457   김태훈   응용 프로그램 추가
179
  }
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
180
181
182
  
  void ConfigWindow::on_pushButton_3_clicked()
  {
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
183
      /*EngineerMenuWindow *w = new EngineerMenuWindow(this);
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
184
      w->setWindowModality(Qt::WindowModal);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
185
186
187
188
189
      w->showFullScreen();*/
      if(m_nCurConfigPos != config_menu_service){
          m_nCurConfigPos = config_menu_service;
          reloadUi();
      }
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
190
  }
81b55e046   고영탁   config pannel but...
191
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
192
  void ConfigWindow::on_pushButton_8_clicked() //설정 버튼
81b55e046   고영탁   config pannel but...
193
  {
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
194
195
196
197
      if(m_nCurConfigPos != config_menu_setting){
          m_nCurConfigPos = config_menu_setting;
          reloadUi();
      }
81b55e046   고영탁   config pannel but...
198
  }
937409186   고영탁   config enum 설정 진행...
199
200
201
202
203
204
205
206
  void ConfigWindow::reloadValue(){
      Config* cfg = Config::getInstance();
      QString strtemp="";
      for(int i=0;i<m_vectorMenuList.count();i++){
          strtemp = cfg->getValueString(m_arrConfigListInfos[m_nCurConfigPos][i]);
          m_vectorMenuList[i]->setValue(strtemp);
      }
  }
81b55e046   고영탁   config pannel but...
207
  void ConfigWindow::onConfigBtnClicked(uint16_t id){
92fef6124   고영탁   환경 설정 - 설정 UI 완료
208
      Config *cfg = Config::getInstance();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
209
      QDialog* dlg;
40f5d047f   고영탁   엔코더 작업 진행 중
210
      QWidget *focusedWidget = focusWidget();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
211
      switch(id){
663943a37   고영탁   설정 기능 마무리 진행 중
212
213
214
215
216
217
218
219
220
      case config_loading_door_monitoring:
      case config_cooking_door_monitoring:
          ConfigDoorMonitoring* wnd;
          wnd = new ConfigDoorMonitoring(this,(ConfigType) id);
          connect(wnd,SIGNAL(destroyed(QObject*)),this,SLOT(reloadValue()));
          wnd->setWindowModality(Qt::WindowModal);
          wnd->showFullScreen();
          qDebug() << "closed window";
          break;
0603c0b43   고영탁   rtc 설정을 시스템에서 하도록 수정
221
222
      case config_datetime:
          dlg = new ConfigDateTimeDlg(this);
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
223
          dlg->exec();
0603c0b43   고영탁   rtc 설정을 시스템에서 하도록 수정
224
225
          if(m_nCurConfigPos != config_menu_favorite) reloadValue();
          break;
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
226
227
      case config_enter_engineer_mode:
          {
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
228
229
              dlg = new ServicePassInputDlg(this);
              dlg->exec();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
230
231
232
233
234
235
236
237
238
239
240
241
              break;
          }
      case config_software_info:
      case config_hotline_chef:
      case config_hotline_service:
          dlg = new ConfigInfoDlg(this,(ConfigType)id);
          dlg->exec();
          break;
      default:
          cfg->execConfigWindow(this,(Define::ConfigType)id);
          if(m_nCurConfigPos != config_menu_favorite) reloadValue();
          break;
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
242
      }
40f5d047f   고영탁   엔코더 작업 진행 중
243
      focusedWidget->setFocus();
81b55e046   고영탁   config pannel but...
244
245
246
247
  }
  
  
  void ConfigWindow::onConfigCheckBtnClicked(uint16_t id, bool checked){
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
248
249
250
251
252
253
254
255
      Config* cfg = Config::getInstance();
      qDebug()<<"favorite pressed " << id;
      if(checked){
          cfg->insertFavorite((ConfigType)id);
      }
      else{
          cfg->removeFavorite((ConfigType)id);
      }
81b55e046   고영탁   config pannel but...
256
  }
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
257
258
  
  void ConfigWindow::reloadUi(void){
937409186   고영탁   config enum 설정 진행...
259
      ConfigPanelButton** pws = m_vectorMenuList.data();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
260
      ConfigFavoriteButton** fpws = m_vectorFavorMenuList.data();
937409186   고영탁   config enum 설정 진행...
261
      ConfigPanelButton* pw;
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
262
      ConfigPanelButton *pcb;
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
263
264
265
266
267
268
269
  
      ConfigFavoriteButton* fpw;
      ConfigFavoriteButton* fpcb;
  
      uint32_t idx;
  
      int i = 0;
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
270
271
      Config* cfg = Config::getInstance();
      QString strtemp="";
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
272
      for(i = 0; i < m_vectorMenuList.count();i++){
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
273
274
275
276
277
          pw = pws[i];
          ui->scrollAreaMenuLayout->removeWidget(pw);
          delete pw;
      }
      m_vectorMenuList.clear();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
278
279
280
281
282
283
      for(i=0;i<m_vectorFavorMenuList.count();i++){
          fpw = fpws[i];
          ui->scrollAreaMenuLayout->removeWidget(fpw);
          delete fpw;
      }
      m_vectorFavorMenuList.clear();
40f5d047f   고영탁   엔코더 작업 진행 중
284
285
286
287
288
289
290
291
292
293
      m_vectorTabOrder.clear();
      m_vectorTabOrder.append(this);
      m_vectorTabOrder.append(ui->pushButton);
      m_vectorTabOrder.append(ui->pushButton_8);
      m_vectorTabOrder.append(ui->pushButton_7);
      m_vectorTabOrder.append(ui->pushButton_2);
      m_vectorTabOrder.append(ui->pushButton_4);
      m_vectorTabOrder.append(ui->pushButton_5);
      m_vectorTabOrder.append(ui->pushButton_6);
      m_vectorTabOrder.append(ui->pushButton_3);
80c5eb48b   고영탁   configwindow 엔코더 ...
294
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
295
      if(m_nCurConfigPos != config_menu_favorite){
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
296
          for(i=0 ; i < m_arrMaxMenuCount[m_nCurConfigPos] ;i++){
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
297
298
299
300
301
302
303
304
              pcb = new ConfigPanelButton(this,m_arrConfigListInfos[m_nCurConfigPos][i]);
              qDebug() <<m_arrConfigListInfos[m_nCurConfigPos][i] << cfg->getTitleString(m_arrConfigListInfos[m_nCurConfigPos][i]);
              strtemp = cfg->getTitleString(m_arrConfigListInfos[m_nCurConfigPos][i]);
              pcb->setText(strtemp);
              strtemp = cfg->getValueString(m_arrConfigListInfos[m_nCurConfigPos][i]);
              pcb->setValue(strtemp);
              pcb->showFavoriteButton();
              pcb->setFavoriteCheck(cfg->isFavorite(m_arrConfigListInfos[m_nCurConfigPos][i]));
40f5d047f   고영탁   엔코더 작업 진행 중
305
306
              m_vectorTabOrder.append(pcb->getFavoriteBtn());
              m_vectorTabOrder.append(pcb->getBtn());
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
307
308
309
              ui->scrollAreaMenuLayout->addWidget(pcb);
              m_vectorMenuList.append(pcb);
              connect(pcb ,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t)));
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
310
311
312
313
314
315
316
317
318
319
              connect(pcb,SIGNAL(checkButtonClicked(uint16_t,bool)),SLOT(onConfigCheckBtnClicked(uint16_t,bool)));
          }
      }
      else{
          QList<uint32_t> list = cfg->getConstSortedFavorite();
          for(i=0;i <  list.count();i++){
              idx = list[i];
              fpcb = new ConfigFavoriteButton(this,idx);
              strtemp = cfg->getTitleString((ConfigType)idx);
              fpcb->setText(strtemp);
40f5d047f   고영탁   엔코더 작업 진행 중
320
321
              m_vectorTabOrder.append(fpcb->getBtn());
              m_vectorTabOrder.append(fpcb->getDelBtn());
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
322
323
324
325
              ui->scrollAreaMenuLayout->addWidget(fpcb);
              m_vectorFavorMenuList.append(fpcb);
              connect(fpcb,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t)));
              connect(fpcb,SIGNAL(delBtnClicked(uint16_t)),SLOT(onDeleteFavoriteBtnClicked(uint16_t)));
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
326
327
          }
      }
40f5d047f   고영탁   엔코더 작업 진행 중
328
329
330
      m_vectorTabOrder.append(ui->backButton);
      m_vectorTabOrder.append(ui->washButton);
      m_vectorTabOrder.append(ui->helpButton);
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
331
332
333
334
335
336
337
338
339
340
341
342
  
      ui->scrollAreaMenu->adjustSize(); //Display 전 Contents 사이즈 수정 깜빡임 제거함.
  
  }
  
  void ConfigWindow::on_pushButton_7_clicked() //음향 관리
  {
      if(m_nCurConfigPos != config_menu_sound){
          m_nCurConfigPos = config_menu_sound;
          reloadUi();
      }
  }
937409186   고영탁   config enum 설정 진행...
343
344
345
346
347
348
349
350
  
  void ConfigWindow::on_pushButton_2_clicked()
  {
      if(m_nCurConfigPos != config_menu_system){
          m_nCurConfigPos = config_menu_system;
          reloadUi();
      }
  }
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
  
  void ConfigWindow::on_pushButton_4_clicked()
  {
      if(m_nCurConfigPos != config_menu_energy){
          m_nCurConfigPos = config_menu_energy;
          reloadUi();
      }
  }
  
  void ConfigWindow::on_pushButton_5_clicked()
  {
      if(m_nCurConfigPos != config_menu_expert){
          m_nCurConfigPos = config_menu_expert;
          reloadUi();
      }
  }
  
  void ConfigWindow::onDeleteFavoriteBtnClicked(uint16_t id){
      Config* cfg = Config::getInstance();
      ConfigFavoriteButton* btn;
63a45681f   고영탁   엔코더 기능 구현
371
372
373
374
375
376
377
378
379
380
      m_vectorTabOrder.clear();
      m_vectorTabOrder.append(this);
      m_vectorTabOrder.append(ui->pushButton);
      m_vectorTabOrder.append(ui->pushButton_8);
      m_vectorTabOrder.append(ui->pushButton_7);
      m_vectorTabOrder.append(ui->pushButton_2);
      m_vectorTabOrder.append(ui->pushButton_4);
      m_vectorTabOrder.append(ui->pushButton_5);
      m_vectorTabOrder.append(ui->pushButton_6);
      m_vectorTabOrder.append(ui->pushButton_3);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
381
382
383
384
385
386
387
388
      for(int i = 0;i<m_vectorFavorMenuList.count();i++){
          if(m_vectorFavorMenuList[i]->getBtnId() == id){
              btn = m_vectorFavorMenuList[i];
              ui->scrollAreaMenuLayout->removeWidget(btn);
              m_vectorFavorMenuList.remove(i);
              delete btn;
              cfg->removeFavorite((ConfigType)id);
          }
63a45681f   고영탁   엔코더 기능 구현
389
390
391
392
          else{
              m_vectorTabOrder.append(m_vectorFavorMenuList[i]->getBtn());
              m_vectorTabOrder.append(m_vectorFavorMenuList[i]->getDelBtn());
          }
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
393
      }
63a45681f   고영탁   엔코더 기능 구현
394
395
396
397
  
      m_vectorTabOrder.append(ui->backButton);
      m_vectorTabOrder.append(ui->washButton);
      m_vectorTabOrder.append(ui->helpButton);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
398
  }
e00c6a2a9   김태훈   기능 추가 구현
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
  
  void ConfigWindow::on_washButton_clicked()
  {
      Config* cfg = Config::getInstance();
      QDialog* dlg = new YesNoPopupDlg(this,tr("현재 설정을 적용하시겠습니까?"));
      dlg->setModal(true);
      dlg->exec();
      if(dlg->result() == QDialog::Accepted){
          cfg->saveConfig();
          cfg->saveFavorite();
      }
      else{
          cfg->loadConfig();
          cfg->loadFavorite();
      }
      cfg->applyConfig();
  
      WashWindow *w = new WashWindow(MainWindow::getInstance());
      w->setWindowModality(Qt::WindowModal);
      w->showFullScreen();
      w->raise();
  
      MainWindow::jump(w);
  }
  
  void ConfigWindow::on_helpButton_clicked()
  {
  
  }
e3205cf83   고영탁   고객사 요구 사항 반영
428