Blame view

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