Blame view

app/gui/oven_control/configlanguagedlg.cpp 4.87 KB
2ddb05828   고영탁   다국어 처리 추가
1
  #include <QDebug>
92fef6124   고영탁   환경 설정 - 설정 UI 완료
2
3
4
  #include "config.h"
  #include "configlanguagedlg.h"
  #include "ui_configlanguagedlg.h"
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
5
  #include "soundplayer.h"
92fef6124   고영탁   환경 설정 - 설정 UI 완료
6
7
8
9
10
11
12
13
  
  using namespace Define;
  
  ConfigLanguageDlg::ConfigLanguageDlg(QWidget *parent) :
      QDialog(parent),
      ui(new Ui::ConfigLanguageDlg)
  {
      ui->setupUi(this);
40f5d047f   고영탁   엔코더 작업 진행 중
14
      this->setWindowFlags(Qt::FramelessWindowHint);
92fef6124   고영탁   환경 설정 - 설정 UI 완료
15
      this->setAttribute( Qt::WA_DeleteOnClose);
40f5d047f   고영탁   엔코더 작업 진행 중
16
17
      qApp->setActiveWindow(this);
      this->setFocus();
92fef6124   고영탁   환경 설정 - 설정 UI 완료
18
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
19
20
      foreach (QPushButton *button, findChildren<QPushButton *>())
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
92fef6124   고영탁   환경 설정 - 설정 UI 완료
21
22
23
24
  
      ui->pushButton_1->setText(tr(language_menu[0]));
      ui->pushButton_2->setText(tr(language_menu[1]));
      ui->pushButton_3->setText(tr(language_menu[2]));
663943a37   고영탁   설정 기능 마무리 진행 중
25
26
      Config *cfg = Config::getInstance();
      config_item item;
2ddb05828   고영탁   다국어 처리 추가
27
      item = cfg->getConfigValue(config_language);
663943a37   고영탁   설정 기능 마무리 진행 중
28
29
30
31
32
33
34
35
36
37
38
39
      m_nCurSelLang = item.d32;
  
      m_pSignalMapper = new QSignalMapper(this);
      m_pSignalMapper->setMapping(ui->pushButton_1,0);
      m_pSignalMapper->setMapping(ui->pushButton_2,1);
      m_pSignalMapper->setMapping(ui->pushButton_3,2);
  
      connect(ui->pushButton_1,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
      connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
      connect(ui->pushButton_3,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
  
      connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
40f5d047f   고영탁   엔코더 작업 진행 중
40
41
42
43
44
45
46
      m_vectorTabOrder.append(this);
      m_vectorTabOrder.append(ui->pushButton_1);
      m_vectorTabOrder.append(ui->pushButton_2);
      m_vectorTabOrder.append(ui->pushButton_3);
      m_vectorTabOrder.append(ui->ctrBtnOk);
      m_vectorTabOrder.append(ui->ctrBtnCancel);
      reloadUi();
92fef6124   고영탁   환경 설정 - 설정 UI 완료
47
48
49
50
51
52
53
54
55
  }
  
  ConfigLanguageDlg::~ConfigLanguageDlg()
  {
      delete ui;
  }
  
  void ConfigLanguageDlg::on_ctrBtnOk_clicked()
  {
663943a37   고영탁   설정 기능 마무리 진행 중
56
57
58
59
      Config* cfg = Config::getInstance();
      config_item item;
      item.d32 = m_nCurSelLang;
      cfg->setConfigValue(config_language, item);
92fef6124   고영탁   환경 설정 - 설정 UI 완료
60
61
62
63
64
65
66
      this->accept();
  }
  
  void ConfigLanguageDlg::on_ctrBtnCancel_clicked()
  {
      this->reject();
  }
663943a37   고영탁   설정 기능 마무리 진행 중
67
68
69
70
71
72
  
  void ConfigLanguageDlg::onConfigBtnClicked(const int sel){
            m_nCurSelLang = sel;
  }
  
  void ConfigLanguageDlg::reloadUi(){
2ddb05828   고영탁   다국어 처리 추가
73
      qDebug() << "Set Lang checked " << m_nCurSelLang;
663943a37   고영탁   설정 기능 마무리 진행 중
74
75
76
77
78
79
80
81
82
83
84
85
86
87
      switch(m_nCurSelLang){
      case 0:
          ui->pushButton_1->setChecked(true);
          break;
     case 1:
          ui->pushButton_2->setChecked(true);
          break;
      case 2:
          ui->pushButton_3->setChecked(true);
          break;
      default:
          break;
      }
  }
40f5d047f   고영탁   엔코더 작업 진행 중
88
89
90
91
92
  
  void ConfigLanguageDlg::keyPressEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
93
      case 0x01000032:    // Turn left
40f5d047f   고영탁   엔코더 작업 진행 중
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
  
          if(i==0){
              i = m_vectorTabOrder.size()-1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i < m_vectorTabOrder.size()) {
              i = i - 1;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      case 0x01000031:    // Push
  
          break;
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
114
      case 0x01000030:    // Turn right
40f5d047f   고영탁   엔코더 작업 진행 중
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
  
          if(i<m_vectorTabOrder.size()-1){
              i+=1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i== (m_vectorTabOrder.size()-1)){
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      }
  }
  
  void ConfigLanguageDlg::keyReleaseEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
139
      case 0x01000032:    // Turn left
40f5d047f   고영탁   엔코더 작업 진행 중
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
  
          if(i==0){
              i = m_vectorTabOrder.size()-1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i < m_vectorTabOrder.size()) {
              i = i - 1;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      case 0x01000031:    // Push
      {
          QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
          if(btn != NULL){
              btn->click();
          }
          break;
      }
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
165
      case 0x01000030:    // Turn right
40f5d047f   고영탁   엔코더 작업 진행 중
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
          for(i = 0; i < m_vectorTabOrder.size();i++){
              if(focusWidget() == m_vectorTabOrder[i]) break;
          }
  
          if(i<m_vectorTabOrder.size()-1){
              i+=1;
              m_vectorTabOrder[i]->setFocus();
          }
          else if(i== (m_vectorTabOrder.size()-1)){
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          else{
              i=0;
              m_vectorTabOrder[i]->setFocus();
          }
          break;
      }
  }