Blame view

app/gui/oven_control/configinfodlg.cpp 5.82 KB
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
1
2
3
4
5
  #include <QMap>
  #include <QLabel>
  #include <QDebug>
  #include "configinfodlg.h"
  #include "ui_configinfodlg.h"
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
6
  #include "soundplayer.h"
767497484   고영탁   제품 정보 페이지 기능 개선
7
  #include "config.h"
a6492fbec   고영탁   오븐 정보 다이얼로그 수정
8
  #include "define.h"
767497484   고영탁   제품 정보 페이지 기능 개선
9
cb1e6464c   고영탁   제품 정보 변경 기능 추가 및 ...
10
767497484   고영탁   제품 정보 페이지 기능 개선
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  
  static const char* g_strModelTypeName[] ={
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "전기식 10단"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "전기식 20단"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "전기식 24단"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "전기식 40단"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 10단 LPG"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 20단 LPG"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 24단 LPG"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 40단 LPG"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 10단 LNG"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 20단 LNG"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 24단 LNG"),
      QT_TRANSLATE_NOOP("ConfigInfoDlg", "가스식 40단 LNG")
  };
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
26
27
28
29
30
31
32
33
34
  
  ConfigInfoDlg::ConfigInfoDlg(QWidget *parent, ConfigType type) :
      QDialog(parent),
      ui(new Ui::ConfigInfoDlg)
  {
      Config* cfg = Config::getInstance();
      ui->setupUi(this);
      this->setWindowFlags( Qt::FramelessWindowHint);
      this->setAttribute( Qt::WA_DeleteOnClose);
ce39b99ff   고영탁   엔코더 구현 진행중
35
36
      qApp->setActiveWindow(this);
      this->setFocus();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
37
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
38
39
      foreach (QPushButton *button, findChildren<QPushButton *>())
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
      m_nType = type;
  
      ui->ctrTitle->setText(cfg->getTitleString(type));
  
      switch(type){
      case config_hotline_chef:
          loadHotlineChefInfo();
          break;
      case config_hotline_service:
          loadHotlineServiceInfo();
          break;
      case config_software_info:
      default:
          loadSoftwareInfo();
          break;
      }
ce39b99ff   고영탁   엔코더 구현 진행중
56
      ui->ctrBtnOk->setFocus();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
57
58
59
60
61
62
63
64
65
66
67
  }
  
  ConfigInfoDlg::~ConfigInfoDlg()
  {
      delete ui;
  }
  
  void ConfigInfoDlg::on_ctrBtnOk_clicked()
  {
      deleteLater();
  }
767497484   고영탁   제품 정보 페이지 기능 개선
68
69
70
71
72
73
  bool ConfigInfoDlg::readFromInfoFile(QMap<QString, QString> &info_map, const QString &filename){
      QFile file(filename);
      QString label,value;
      qDebug() << "orgin size " << info_map.size();
      if(file.open(QIODevice::ReadOnly | QIODevice::Text)){
          while(!file.atEnd()){
a6492fbec   고영탁   오븐 정보 다이얼로그 수정
74
75
              QString line = (QString::fromUtf8(file.readLine())).remove(QChar('
  '));
767497484   고영탁   제품 정보 페이지 기능 개선
76
77
78
79
              info_map[line.section(',',0,0)] = line.section(',',1,1);
          }
          qDebug() << file.fileName() << "read OK!";
          qDebug() << "final size " << info_map.size();
a6492fbec   고영탁   오븐 정보 다이얼로그 수정
80
81
82
83
          QList<QString>  list = info_map.keys();
          for(int i=0; i< info_map.size() ;i++){
              qDebug() << list[i] << info_map[list[i]];
          }
767497484   고영탁   제품 정보 페이지 기능 개선
84
85
86
87
88
89
90
          return true;
      }
      else {
          qDebug() << file.fileName() + " file not found";
      }
      return false;
  }
a6492fbec   고영탁   오븐 정보 다이얼로그 수정
91
92
93
94
95
96
  QString ConfigInfoDlg::getSoftwareVerString()
  {
      if(MAJOR_VER == 0)
          return QString("V%1.%2.%3 BETA").arg(MAJOR_VER).arg(MINOR_VER).arg(HOTFIX_VER);
      else return QString("V%1.%2.%3").arg(MAJOR_VER).arg(MINOR_VER).arg(HOTFIX_VER);
  }
767497484   고영탁   제품 정보 페이지 기능 개선
97
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
98
  void ConfigInfoDlg::loadSoftwareInfo(){
767497484   고영탁   제품 정보 페이지 기능 개선
99
      Config* cfg = Config::getInstance();
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
100
101
102
      QString strTemp;
      QMap<QString , QString> mapInfos;
      QLabel* label;
66338dd9a   고영탁   제품유형/소프트웨어에 관한 정보 변경
103
66338dd9a   고영탁   제품유형/소프트웨어에 관한 정보 변경
104
767497484   고영탁   제품 정보 페이지 기능 개선
105
106
107
108
109
110
  //Default Value;
      mapInfos[tr("모  델  명")] = "PRIME ST-01";
      mapInfos[tr("제조일자")] = "2017-06";
      mapInfos[tr("제조국")] = "Korea";
      mapInfos[tr("제조사")] = "프라임";
      mapInfos[tr("제품번호")] = "01";
a6492fbec   고영탁   오븐 정보 다이얼로그 수정
111
      mapInfos[tr("소프트웨어 버전")] = getSoftwareVerString();
767497484   고영탁   제품 정보 페이지 기능 개선
112
      mapInfos[tr("현재모델")] =  tr(g_strModelTypeName[cfg->getConfigValue(Define::config_model).d32]);
66338dd9a   고영탁   제품유형/소프트웨어에 관한 정보 변경
113
767497484   고영탁   제품 정보 페이지 기능 개선
114
      readFromInfoFile(mapInfos, QString(MODEL_INFO_FILE_NAME));
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
115
116
  
      for(int i =0;i<MAX_SOFTWARE_INFO_CNT;i++){
767497484   고영탁   제품 정보 페이지 기능 개선
117
          strTemp = mapInfos[tr(software_item_name[i])];
a6492fbec   고영탁   오븐 정보 다이얼로그 수정
118
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
119
          label = new QLabel(this);
767497484   고영탁   제품 정보 페이지 기능 개선
120
          label ->setText(tr(software_item_name[i]).append(" :"));
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
121
122
123
124
125
126
127
128
129
130
131
          ui->gridLayout_info->addWidget(label,i,0);
          label = new QLabel(this);
          label->setText(strTemp);
          ui->gridLayout_info->addWidget(label,i,1);
      }
  }
  
  void ConfigInfoDlg::loadHotlineChefInfo(){
      QString strTemp;
      QMap<QString , QString> mapInfos;
      QLabel* label;
66338dd9a   고영탁   제품유형/소프트웨어에 관한 정보 변경
132
66338dd9a   고영탁   제품유형/소프트웨어에 관한 정보 변경
133
cc63fa9f8   고영탁   데모모드 삭제 및 파일 복사 기...
134
  //Default Value;
767497484   고영탁   제품 정보 페이지 기능 개선
135
136
137
138
139
      mapInfos[tr("연 락 처")] = "010-3004-6517";
      mapInfos[tr("이       름")] = "김성우";
      mapInfos[tr("위치정보")] ="인천광역시 남동구 남동동로 34번길 56";
  
      readFromInfoFile(mapInfos, QString(CHEF_INFO_FILE_NAME));
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
140
141
  
      for(int i =0;i<MAX_HOTLINE_CHEF_CNT;i++){
767497484   고영탁   제품 정보 페이지 기능 개선
142
          strTemp = mapInfos[tr(hotline_chef_item_name[i])];
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
143
144
145
146
          label = new QLabel(this);
          label ->setText(tr(hotline_chef_item_name[i]).append(":"));
          ui->gridLayout_info->addWidget(label,i,0);
          label = new QLabel(this);
79e2e0a28   고영탁   정보 다이얼로그 수정
147
          label->setWordWrap(true);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
148
149
150
151
152
153
154
155
156
          label->setText(strTemp);
          ui->gridLayout_info->addWidget(label,i,1);
      }
  }
  
  void ConfigInfoDlg::loadHotlineServiceInfo(){
      QString strTemp;
      QMap<QString , QString> mapInfos;
      QLabel* label;
66338dd9a   고영탁   제품유형/소프트웨어에 관한 정보 변경
157
cc63fa9f8   고영탁   데모모드 삭제 및 파일 복사 기...
158
  //Default Value
767497484   고영탁   제품 정보 페이지 기능 개선
159
160
161
162
      mapInfos[tr("연 락 처")] = "1644-9533";
      mapInfos[tr("위치정보")] ="인천광역시 남동구 남동동로 34번길 56";
  
      readFromInfoFile(mapInfos, SERVICE_INFO_FILE_NAME);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
163
164
  
      for(int i =0;i<MAX_HOTLINE_SERVICE_CNT;i++){
767497484   고영탁   제품 정보 페이지 기능 개선
165
          strTemp = mapInfos[tr(hotline_service_item_name[i])];
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
166
167
168
169
          label = new QLabel(this);
          label ->setText(tr(hotline_service_item_name[i]).append(":"));
          ui->gridLayout_info->addWidget(label,i,0);
          label = new QLabel(this);
79e2e0a28   고영탁   정보 다이얼로그 수정
170
          label->setWordWrap(true);
776411ce5   고영탁   설정 기능 5월 개발 범위 UI...
171
172
173
174
          label->setText(strTemp);
          ui->gridLayout_info->addWidget(label,i,1);
      }
  }
ce39b99ff   고영탁   엔코더 구현 진행중
175
0faa32511   김태훈   컴파일 경고 제거 및 리팩토링
176
  void ConfigInfoDlg::keyPressEvent(QKeyEvent */*event*/){
ce39b99ff   고영탁   엔코더 구현 진행중
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
  
  }
  
  void ConfigInfoDlg::keyReleaseEvent(QKeyEvent *event){
      switch (event->key())
      {
      case 0x01000031:    // Push
      {
          QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
          if(btn != NULL){
              btn->click();
          }
          break;
      }
      }
  }