Blame view

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