#include "servicepassinputdlg.h" #include "ui_servicepassinputdlg.h" #include "engineermenuwindow.h" #include #include "soundplayer.h" ServicePassInputDlg::ServicePassInputDlg(QWidget *parent) : QDialog(parent), ui(new Ui::ServicePassInputDlg) { ui->setupUi(this); setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_NoSystemBackground); setAttribute(Qt::WA_TranslucentBackground); setAttribute(Qt::WA_DeleteOnClose); this->setResult(QDialog::Accepted); foreach (QPushButton *button, findChildren()) connect(button, &QPushButton::pressed, SoundPlayer::playClick); ui->ctrProgressBar->setMaxProgress(0,MAX_PASSWORD); m_nCurInputCount = 0; this->setFocus(); memset(m_strInputPass, 0x00, MAX_PASSWORD+1); } ServicePassInputDlg::~ServicePassInputDlg() { delete ui; } void ServicePassInputDlg::on_ctrBtnOk_clicked() { if( QString(m_strInputPass) == QString(PASS_WORD)){ qDebug() << this->parentWidget() <parent(); EngineerMenuWindow *w = new EngineerMenuWindow(this->parentWidget()); connect(w,SIGNAL(destroyed(QObject*)),this,SLOT(close())); w->setWindowModality(Qt::WindowModal); w->show(); this->hide(); } else { reject(); } } void ServicePassInputDlg::on_ctrBtnCancel_clicked() { reject(); } void ServicePassInputDlg::keyPressEvent(QKeyEvent *event){ if(event->key() == Qt::Key_Backspace){ if(m_nCurInputCount>0) m_nCurInputCount--; m_strInputPass[m_nCurInputCount] = 0; qDebug() <<"back space input" << QString(m_strInputPass); ui->ctrProgressBar->setCurrentProgress(m_nCurInputCount); } } void ServicePassInputDlg::inputMethodEvent(QInputMethodEvent *event){ if(m_nCurInputCount < MAX_PASSWORD){ if(!event->commitString().isEmpty()){ const QChar* in = event->commitString().constData(); m_strInputPass[m_nCurInputCount++] = in[0]; qDebug() <<"input event" << QString(m_strInputPass); ui->ctrProgressBar->setCurrentProgress(m_nCurInputCount); } } }