Blame view

app/gui/oven_control/configwindow.cpp 12.7 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"
35b9cc32e   고영탁   다국어 지원 수정 및 메뉴얼 테...
18
  #include "manualviewerdlg.h"
94c1b260b   고영탁   고객사 요청 사항 반영 V1.3.00
19
  #include "flushwaterwindow.h"
81b55e046   고영탁   config pannel but...
20
538041ab9   김태훈   소스 코드 구조 개선
21
  ConfigWindow::ConfigWindow(QWidget *parent) :
8c2952457   김태훈   응용 프로그램 추가
22
      QMainWindow(parent),
538041ab9   김태훈   소스 코드 구조 개선
23
      ui(new Ui::ConfigWindow)
8c2952457   김태훈   응용 프로그램 추가
24
25
  {
      ui->setupUi(this);
6f96c947a   김태훈   GUI 0.1.4
26
27
28
  
      ui->clockContainer->setParent(ui->upperStack);
      setAttribute(Qt::WA_DeleteOnClose);
5a38a241e   김태훈   환경 설정 뼈대 추가
29
e3205cf83   고영탁   고객사 요구 사항 반영
30
      Config* cfg = Config::getInstance();
81b55e046   고영탁   config pannel but...
31
      ui->scrollAreaMenuLayout->setAlignment(Qt::AlignTop);
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
32
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
33
34
      foreach (QPushButton *button, findChildren<QPushButton *>())
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
e3205cf83   고영탁   고객사 요구 사항 반영
35
      config_item item;
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
36
      m_nCurConfigPos = config_menu_favorite;
81b55e046   고영탁   config pannel but...
37
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
38
      reloadUi();
5a38a241e   김태훈   환경 설정 뼈대 추가
39
e3205cf83   고영탁   고객사 요구 사항 반영
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();
003971acb   고영탁   에러 발생시 패스워드 인풋 윈도...
47
          connect(dlg, SIGNAL(rejected()), SLOT(deleteLater()));
e3205cf83   고영탁   고객사 요구 사항 반영
48
      }
8c2952457   김태훈   응용 프로그램 추가
49
  }
e3205cf83   고영탁   고객사 요구 사항 반영
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  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   김태훈   응용 프로그램 추가
69
70
71
72
73
74
75
  ConfigWindow::~ConfigWindow()
  {
      delete ui;
  }
  
  void ConfigWindow::on_pushButton_clicked()
  {
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
76
77
78
79
      if(m_nCurConfigPos != config_menu_favorite){
          m_nCurConfigPos = config_menu_favorite;
          reloadUi();
      }
5a38a241e   김태훈   환경 설정 뼈대 추가
80
  }
80c5eb48b   고영탁   configwindow 엔코더 ...
81
  void ConfigWindow::prevFocus(){
40f5d047f   고영탁   엔코더 작업 진행 중
82
83
84
      int i = 0;
      for(i = 0; i < m_vectorTabOrder.size();i++){
          if(focusWidget() == m_vectorTabOrder[i]) break;
80c5eb48b   고영탁   configwindow 엔코더 ...
85
      }
40f5d047f   고영탁   엔코더 작업 진행 중
86
87
88
89
  
      if(i==0){
          i = m_vectorTabOrder.size()-1;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
90
      }
40f5d047f   고영탁   엔코더 작업 진행 중
91
92
93
      else if(i < m_vectorTabOrder.size()) {
          i = i - 1;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
94
      }
40f5d047f   고영탁   엔코더 작업 진행 중
95
96
97
      else{
          i=0;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
98
      }
80c5eb48b   고영탁   configwindow 엔코더 ...
99
100
101
  }
  
  void ConfigWindow::nextFocus(){
40f5d047f   고영탁   엔코더 작업 진행 중
102
103
104
      int i = 0;
      for(i = 0; i < m_vectorTabOrder.size();i++){
          if(focusWidget() == m_vectorTabOrder[i]) break;
80c5eb48b   고영탁   configwindow 엔코더 ...
105
      }
40f5d047f   고영탁   엔코더 작업 진행 중
106
107
108
109
  
      if(i<m_vectorTabOrder.size()-1){
          i+=1;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
110
      }
40f5d047f   고영탁   엔코더 작업 진행 중
111
112
113
      else if(i== (m_vectorTabOrder.size()-1)){
          i=0;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
114
      }
40f5d047f   고영탁   엔코더 작업 진행 중
115
116
117
      else{
          i=0;
          m_vectorTabOrder[i]->setFocus();
80c5eb48b   고영탁   configwindow 엔코더 ...
118
      }
40f5d047f   고영탁   엔코더 작업 진행 중
119
      return;
80c5eb48b   고영탁   configwindow 엔코더 ...
120
121
122
123
124
  }
  
  void ConfigWindow::keyReleaseEvent(QKeyEvent *event){
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
125
      case 0x01000032:    // Turn left
80c5eb48b   고영탁   configwindow 엔코더 ...
126
          prevFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
127
          ui->scrollArea->ensureWidgetVisible(m_vectorTabOrder[m_nTabIndex]);
80c5eb48b   고영탁   configwindow 엔코더 ...
128
129
130
131
132
133
134
135
136
137
          break;
      case 0x01000031:    // Push
      {
          QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
          if(btn != NULL){
              btn->click();
          }
          qDebug() << "pushed ";
          break;
      }
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
138
      case 0x01000030:    // Turn right
80c5eb48b   고영탁   configwindow 엔코더 ...
139
          nextFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
140
          ui->scrollArea->ensureWidgetVisible(focusWidget());
80c5eb48b   고영탁   configwindow 엔코더 ...
141
142
143
144
145
146
147
148
          qDebug() << "Turn Right";
          break;
      }
  }
  
  void ConfigWindow::keyPressEvent(QKeyEvent *event){
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
149
      case 0x01000032:    // Turn left
80c5eb48b   고영탁   configwindow 엔코더 ...
150
          prevFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
151
          ui->scrollArea->ensureWidgetVisible(focusWidget());
80c5eb48b   고영탁   configwindow 엔코더 ...
152
153
154
155
156
157
          qDebug() << "turn left";
          break;
      case 0x01000031:    // Push
  
          qDebug() << "pushed ";
          break;
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
158
      case 0x01000030:    // Turn right
80c5eb48b   고영탁   configwindow 엔코더 ...
159
          nextFocus();
40f5d047f   고영탁   엔코더 작업 진행 중
160
          ui->scrollArea->ensureWidgetVisible(focusWidget());
80c5eb48b   고영탁   configwindow 엔코더 ...
161
162
163
164
          qDebug() << "Turn Right";
          break;
      }
  }
5a38a241e   김태훈   환경 설정 뼈대 추가
165
166
  void ConfigWindow::on_backButton_clicked()
  {
dbfe7c9ea   고영탁   설정 저장 기능 추가
167
168
169
170
171
172
      Config* cfg = Config::getInstance();
      QDialog* dlg = new YesNoPopupDlg(this,tr("현재 설정을 적용하시겠습니까?"));
      dlg->setModal(true);
      dlg->exec();
      if(dlg->result() == QDialog::Accepted){
          cfg->saveConfig();
eaa388fe1   고영탁   설정 즐겨찾기 저장 기능 개발
173
          cfg->saveFavorite();
dbfe7c9ea   고영탁   설정 저장 기능 추가
174
175
176
      }
      else{
          cfg->loadConfig();
eaa388fe1   고영탁   설정 즐겨찾기 저장 기능 개발
177
          cfg->loadFavorite();
dbfe7c9ea   고영탁   설정 저장 기능 추가
178
      }
af41f4730   고영탁   볼륨조절 표시 변경
179
      cfg->applyConfig();
5a38a241e   김태훈   환경 설정 뼈대 추가
180
      close();
8c2952457   김태훈   응용 프로그램 추가
181
  }
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
182
183
184
  
  void ConfigWindow::on_pushButton_3_clicked()
  {
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
185
      /*EngineerMenuWindow *w = new EngineerMenuWindow(this);
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
186
      w->setWindowModality(Qt::WindowModal);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
187
188
189
190
191
      w->showFullScreen();*/
      if(m_nCurConfigPos != config_menu_service){
          m_nCurConfigPos = config_menu_service;
          reloadUi();
      }
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
192
  }
81b55e046   고영탁   config pannel but...
193
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
194
  void ConfigWindow::on_pushButton_8_clicked() //설정 버튼
81b55e046   고영탁   config pannel but...
195
  {
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
196
197
198
199
      if(m_nCurConfigPos != config_menu_setting){
          m_nCurConfigPos = config_menu_setting;
          reloadUi();
      }
81b55e046   고영탁   config pannel but...
200
  }
937409186   고영탁   config enum 설정 진행...
201
202
203
204
205
206
207
208
  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...
209
  void ConfigWindow::onConfigBtnClicked(uint16_t id){
92fef6124   고영탁   환경 설정 - 설정 UI 완료
210
      Config *cfg = Config::getInstance();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
211
      QDialog* dlg;
40f5d047f   고영탁   엔코더 작업 진행 중
212
      QWidget *focusedWidget = focusWidget();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
213
      switch(id){
94c1b260b   고영탁   고객사 요청 사항 반영 V1.3.00
214
215
216
217
218
219
      case config_anti_freeze:
          {
              FlushWaterWindow *w = new FlushWaterWindow(this);
              w->showFullScreen();
              break;
          }
663943a37   고영탁   설정 기능 마무리 진행 중
220
221
222
223
224
225
226
227
228
      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 설정을 시스템에서 하도록 수정
229
230
      case config_datetime:
          dlg = new ConfigDateTimeDlg(this);
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
231
          dlg->exec();
0603c0b43   고영탁   rtc 설정을 시스템에서 하도록 수정
232
233
          if(m_nCurConfigPos != config_menu_favorite) reloadValue();
          break;
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
234
235
      case config_enter_engineer_mode:
          {
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
236
237
              dlg = new ServicePassInputDlg(this);
              dlg->exec();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
238
239
240
241
242
243
244
245
246
247
248
249
              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...
250
      }
40f5d047f   고영탁   엔코더 작업 진행 중
251
      focusedWidget->setFocus();
81b55e046   고영탁   config pannel but...
252
253
254
255
  }
  
  
  void ConfigWindow::onConfigCheckBtnClicked(uint16_t id, bool checked){
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
256
257
258
259
260
261
262
263
      Config* cfg = Config::getInstance();
      qDebug()<<"favorite pressed " << id;
      if(checked){
          cfg->insertFavorite((ConfigType)id);
      }
      else{
          cfg->removeFavorite((ConfigType)id);
      }
81b55e046   고영탁   config pannel but...
264
  }
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
265
266
  
  void ConfigWindow::reloadUi(void){
937409186   고영탁   config enum 설정 진행...
267
      ConfigPanelButton** pws = m_vectorMenuList.data();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
268
      ConfigFavoriteButton** fpws = m_vectorFavorMenuList.data();
937409186   고영탁   config enum 설정 진행...
269
      ConfigPanelButton* pw;
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
270
      ConfigPanelButton *pcb;
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
271
272
273
274
275
276
277
  
      ConfigFavoriteButton* fpw;
      ConfigFavoriteButton* fpcb;
  
      uint32_t idx;
  
      int i = 0;
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
278
279
      Config* cfg = Config::getInstance();
      QString strtemp="";
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
280
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
281
      for(i = 0; i < m_vectorMenuList.count();i++){
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
282
283
          pw = pws[i];
          ui->scrollAreaMenuLayout->removeWidget(pw);
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
284
          pw->deleteLater();
a7905269d   고영탁   설정 메뉴 화면 기본 구조 완성
285
286
      }
      m_vectorMenuList.clear();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
287
288
289
      for(i=0;i<m_vectorFavorMenuList.count();i++){
          fpw = fpws[i];
          ui->scrollAreaMenuLayout->removeWidget(fpw);
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
290
          fpw->deleteLater();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
291
292
      }
      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
  
  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()
  {
35b9cc32e   고영탁   다국어 지원 수정 및 메뉴얼 테...
435
      ManualViewerDlg* dlg = new ManualViewerDlg(this);
c03c0ecca   고영탁   메뉴얼 보기 기능 추가
436
437
      dlg->showFullScreen();
      dlg->raise();
e00c6a2a9   김태훈   기능 추가 구현
438
  }
e3205cf83   고영탁   고객사 요구 사항 반영
439