Blame view

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