Blame view

app/gui/oven_control/servicepassinputdlg.cpp 3.97 KB
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
1
2
  #include "servicepassinputdlg.h"
  #include "ui_servicepassinputdlg.h"
d66410abd   고영탁   에러 팝업 형태 변경
3
4
  #include "engineermenuwindow.h"
  #include <QDebug>
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
5
  #include "soundplayer.h"
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
6
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
7
e3205cf83   고영탁   고객사 요구 사항 반영
8
  ServicePassInputDlg::ServicePassInputDlg(QWidget *parent, service_pass_type mode) :
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
9
10
11
12
13
14
15
16
      QDialog(parent),
      ui(new Ui::ServicePassInputDlg)
  {
      ui->setupUi(this);
      setWindowFlags(Qt::FramelessWindowHint);
      setAttribute(Qt::WA_NoSystemBackground);
      setAttribute(Qt::WA_TranslucentBackground);
      setAttribute(Qt::WA_DeleteOnClose);
63a45681f   고영탁   엔코더 기능 구현
17
18
      qApp->setActiveWindow(this);
      ui->ctrProgressBar->setFocus();
d66410abd   고영탁   에러 팝업 형태 변경
19
      this->setResult(QDialog::Accepted);
66e60ceb5   김태훈   모든 버튼에 음향 효과 추가
20
21
      foreach (QPushButton *button, findChildren<QPushButton *>())
          connect(button, &QPushButton::pressed, SoundPlayer::playClick);
79daa7209   고영탁   비밀번호 8자 변경
22
      ui->ctrProgressBar->setMaxProgress(0,MAX_PASSWORD);
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
23
      m_nCurInputCount = 0;
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
24
      memset(m_strInputPass, 0x00, MAX_PASSWORD+1);
63a45681f   고영탁   엔코더 기능 구현
25
26
27
28
29
      connect(ui->keyboardwidget,SIGNAL(onBackspaceKeyClicked()), SLOT(backspaceKeyPressEvent()));
      connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), SLOT(keyEnter_clicked()));
      connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()),SLOT(keyCancel_clicked()));
      connect(ui->keyboardwidget,SIGNAL(onKeyboardClickSignal(QString)),SLOT(keyboardInputEvent(QString)));
      ui->keyboardwidget->focusInKeyboard();
e3205cf83   고영탁   고객사 요구 사항 반영
30
      m_nMode = mode;
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
31
32
33
34
35
36
37
38
39
  }
  
  ServicePassInputDlg::~ServicePassInputDlg()
  {
      delete ui;
  }
  
  void ServicePassInputDlg::on_ctrBtnOk_clicked()
  {
e3205cf83   고영탁   고객사 요구 사항 반영
40
41
  
      if( QString(m_strInputPass) == QString(NORMAL_PASS_WORD) && m_nMode == NORMAL_SERVICE_PASS_MODE){
d66410abd   고영탁   에러 팝업 형태 변경
42
43
44
45
          qDebug() << this->parentWidget() <<this->parent();
          EngineerMenuWindow *w = new EngineerMenuWindow(this->parentWidget());
          connect(w,SIGNAL(destroyed(QObject*)),this,SLOT(close()));
          w->setWindowModality(Qt::WindowModal);
e3205cf83   고영탁   고객사 요구 사항 반영
46
47
          w->showFullScreen();
          w->raise();
1f685a2a5   고영탁   설정 시스템 관리 기능 개발
48
          this->hide();
d66410abd   고영탁   에러 팝업 형태 변경
49
      }
e3205cf83   고영탁   고객사 요구 사항 반영
50
51
52
      else if(QString(m_strInputPass) == QString(DEMO_PASS_WORD) && m_nMode == DEMO_SERVICE_PASS_MODE){
          accept();
      }
d66410abd   고영탁   에러 팝업 형태 변경
53
      else {
d66410abd   고영탁   에러 팝업 형태 변경
54
          reject();
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
55
      }
d0ee3ccc8   고영탁   버그 수정 및 비밀 번호 입력창 개발
56
57
58
59
60
61
  }
  
  void ServicePassInputDlg::on_ctrBtnCancel_clicked()
  {
      reject();
  }
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
62
63a45681f   고영탁   엔코더 기능 구현
63
64
65
66
67
  void ServicePassInputDlg::backspaceKeyPressEvent(){
      if(m_nCurInputCount>0) m_nCurInputCount--;
      m_strInputPass[m_nCurInputCount] = 0;
      qDebug() <<"back space input" << QString(m_strInputPass);
       ui->ctrProgressBar->setCurrentProgress(m_nCurInputCount);
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
68
  }
63a45681f   고영탁   엔코더 기능 구현
69
  void ServicePassInputDlg::keyboardInputEvent(QString strIn){
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
70
      if(m_nCurInputCount < MAX_PASSWORD){
63a45681f   고영탁   엔코더 기능 구현
71
              const QChar* in = strIn.constData();
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
72
73
74
              m_strInputPass[m_nCurInputCount++] = in[0];
              qDebug() <<"input event" << QString(m_strInputPass);
              ui->ctrProgressBar->setCurrentProgress(m_nCurInputCount);
63a45681f   고영탁   엔코더 기능 구현
75
76
77
78
79
80
81
      }
  }
  
  void ServicePassInputDlg::keyPressEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
82
      case 0x01000032:    // Turn left
63a45681f   고영탁   엔코더 기능 구현
83
84
85
86
87
88
          if(focusWidget() == ui->ctrProgressBar) ui->ctrBtnCancel->setFocus();
          else focusPreviousChild();
          break;
      case 0x01000031:    // Push
  
          break;
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
89
      case 0x01000030:    // Turn right
63a45681f   고영탁   엔코더 기능 구현
90
91
92
93
94
95
96
97
98
99
100
          if(focusWidget() == ui->ctrBtnCancel) ui->ctrProgressBar->setFocus();
          else focusNextChild();
  
          break;
      }
  }
  
  void ServicePassInputDlg::keyReleaseEvent(QKeyEvent *event){
      int i = 0;
      switch (event->key())
      {
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
101
      case 0x01000032:    // Turn left
63a45681f   고영탁   엔코더 기능 구현
102
103
104
105
106
107
108
109
          if(focusWidget() == ui->ctrProgressBar) ui->ctrBtnCancel->setFocus();
          else focusPreviousChild();
          break;
      case 0x01000031:    // Push
      {
          QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
          if(btn != NULL){
              btn->click();
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
110
          }
63a45681f   고영탁   엔코더 기능 구현
111
112
113
114
115
          else{
              ui->keyboardwidget->focusInKeyboard();
          }
          break;
      }
01249f413   김태훈   엔코더 방향 반전. 하드웨어가 변경됨
116
      case 0x01000030:    // Turn right
63a45681f   고영탁   엔코더 기능 구현
117
118
119
          if(focusWidget() == ui->ctrBtnCancel) ui->ctrProgressBar->setFocus();
          else focusNextChild();
          break;
be2756ef5   고영탁   패스워드 입력 디자인 변경 외 1건
120
121
      }
  }
63a45681f   고영탁   엔코더 기능 구현
122
123
124
125
126
127
128
129
  
  void ServicePassInputDlg::keyCancel_clicked(){
      ui->ctrBtnCancel->click();
  }
  
  void ServicePassInputDlg::keyEnter_clicked(){
      ui->ctrBtnOk->click();
  }