Blame view

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