Blame view

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